build/solaris/makefiles/launcher.make

changeset 435
a61af66fc99e
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/build/solaris/makefiles/launcher.make	Sat Dec 01 00:00:00 2007 +0000
     1.3 @@ -0,0 +1,92 @@
     1.4 +#
     1.5 +# Copyright 2005-2007 Sun Microsystems, Inc.  All Rights Reserved.
     1.6 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     1.7 +#
     1.8 +# This code is free software; you can redistribute it and/or modify it
     1.9 +# under the terms of the GNU General Public License version 2 only, as
    1.10 +# published by the Free Software Foundation.
    1.11 +#
    1.12 +# This code is distributed in the hope that it will be useful, but WITHOUT
    1.13 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    1.14 +# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    1.15 +# version 2 for more details (a copy is included in the LICENSE file that
    1.16 +# accompanied this code).
    1.17 +#
    1.18 +# You should have received a copy of the GNU General Public License version
    1.19 +# 2 along with this work; if not, write to the Free Software Foundation,
    1.20 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    1.21 +#
    1.22 +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
    1.23 +# CA 95054 USA or visit www.sun.com if you need additional information or
    1.24 +# have any questions.
    1.25 +#  
    1.26 +#
    1.27 +
    1.28 +# Rules to build gamma launcher, used by vm.make
    1.29 +
    1.30 +# gamma[_g]: launcher
    1.31 +LAUNCHER = gamma$(G_SUFFIX)
    1.32 +
    1.33 +LAUNCHERDIR   = $(GAMMADIR)/src/os/$(Platform_os_family)/launcher
    1.34 +LAUNCHERFLAGS = $(ARCHFLAG) \
    1.35 +                -I$(LAUNCHERDIR) -I$(GAMMADIR)/src/share/vm/prims \
    1.36 +                -DFULL_VERSION=\"$(HOTSPOT_RELEASE_VERSION)\" \
    1.37 +                -DARCH=\"$(LIBARCH)\" \
    1.38 +                -DGAMMA \
    1.39 +                -DLAUNCHER_TYPE=\"gamma\" \
    1.40 +                -DLINK_INTO_$(LINK_INTO)
    1.41 +
    1.42 +ifeq ($(LINK_INTO),AOUT)
    1.43 +  LAUNCHER.o                 = launcher.o $(JVM_OBJ_FILES)
    1.44 +  LAUNCHER_MAPFILE           = mapfile_reorder
    1.45 +  LFLAGS_LAUNCHER$(LDNOMAP) += $(MAPFLAG:FILENAME=$(LAUNCHER_MAPFILE))
    1.46 +  LIBS_LAUNCHER             += $(LIBS)
    1.47 +else
    1.48 +  LAUNCHER.o                 = launcher.o
    1.49 +  LFLAGS_LAUNCHER           += -L `pwd`
    1.50 +  LIBS_LAUNCHER             += -l$(JVM) $(LIBS)
    1.51 +endif
    1.52 +
    1.53 +LINK_LAUNCHER = $(LINK.CC)
    1.54 +
    1.55 +LINK_LAUNCHER/PRE_HOOK  = $(LINK_LIB.CC/PRE_HOOK)
    1.56 +LINK_LAUNCHER/POST_HOOK = $(LINK_LIB.CC/POST_HOOK)
    1.57 +
    1.58 +ifeq ("${Platform_compiler}", "sparcWorks")
    1.59 +# Enable the following LAUNCHERFLAGS addition if you need to compare the
    1.60 +# built ELF objects.
    1.61 +#
    1.62 +# The -g option makes static data global and the "-W0,-noglobal"
    1.63 +# option tells the compiler to not globalize static data using a unique
    1.64 +# globalization prefix. Instead force the use of a static globalization
    1.65 +# prefix based on the source filepath so the objects from two identical
    1.66 +# compilations are the same.
    1.67 +#
    1.68 +# Note: The blog says to use "-W0,-xglobalstatic", but that doesn't
    1.69 +#       seem to work. I got "-W0,-noglobal" from Kelly and that works.
    1.70 +#LAUNCHERFLAGS += -W0,-noglobal
    1.71 +endif # Platform_compiler == sparcWorks
    1.72 +
    1.73 +launcher.o: launcher.c $(LAUNCHERDIR)/java.c $(LAUNCHERDIR)/java_md.c
    1.74 +	$(CC) -g -c -o $@ launcher.c $(LAUNCHERFLAGS) $(CPPFLAGS)
    1.75 +
    1.76 +launcher.c:
    1.77 +	@echo Generating $@
    1.78 +	$(QUIETLY) { \
    1.79 +	echo '#define debug launcher_debug'; \
    1.80 +	echo '#include "java.c"'; \
    1.81 +	echo '#include "java_md.c"'; \
    1.82 +	} > $@
    1.83 +
    1.84 +$(LAUNCHER): $(LAUNCHER.o) $(LIBJVM) $(LAUNCHER_MAPFILE)
    1.85 +	$(QUIETLY) \
    1.86 +	case "$(CFLAGS_BROWSE)" in \
    1.87 +	-sbfast|-xsbfast) \
    1.88 +	    ;; \
    1.89 +	*) \
    1.90 +	    echo Linking launcher...; \
    1.91 +	    $(LINK_LAUNCHER/PRE_HOOK) \
    1.92 +	    $(LINK_LAUNCHER) $(LFLAGS_LAUNCHER) -o $@ $(LAUNCHER.o) $(LIBS_LAUNCHER); \
    1.93 +	    $(LINK_LAUNCHER/POST_HOOK) \
    1.94 +	    ;; \
    1.95 +	esac

mercurial