make/solaris/makefiles/launcher.make

changeset 5109
aabf54ccedb1
parent 4087
37518f191ddb
equal deleted inserted replaced
5108:f0bc60565ba8 5109:aabf54ccedb1
1 #
2 # Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 #
5 # This code is free software; you can redistribute it and/or modify it
6 # under the terms of the GNU General Public License version 2 only, as
7 # published by the Free Software Foundation.
8 #
9 # This code is distributed in the hope that it will be useful, but WITHOUT
10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 # version 2 for more details (a copy is included in the LICENSE file that
13 # accompanied this code).
14 #
15 # You should have received a copy of the GNU General Public License version
16 # 2 along with this work; if not, write to the Free Software Foundation,
17 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 #
19 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 # or visit www.oracle.com if you need additional information or have any
21 # questions.
22 #
23 #
24
25 # Rules to build gamma launcher, used by vm.make
26
27 LAUNCHER_SCRIPT = hotspot
28 LAUNCHER = gamma
29
30 LAUNCHERDIR = $(GAMMADIR)/src/os/posix/launcher
31 LAUNCHERDIR_SHARE := $(GAMMADIR)/src/share/tools/launcher
32 LAUNCHERFLAGS = $(ARCHFLAG) \
33 -I$(LAUNCHERDIR) -I$(GAMMADIR)/src/share/vm/prims \
34 -I$(LAUNCHERDIR_SHARE) \
35 -DFULL_VERSION=\"$(HOTSPOT_RELEASE_VERSION)\" \
36 -DJDK_MAJOR_VERSION=\"$(JDK_MAJOR_VERSION)\" \
37 -DJDK_MINOR_VERSION=\"$(JDK_MINOR_VERSION)\" \
38 -DARCH=\"$(LIBARCH)\" \
39 -DGAMMA \
40 -DLAUNCHER_TYPE=\"gamma\" \
41 -DLINK_INTO_$(LINK_INTO) \
42 $(TARGET_DEFINES)
43
44 ifeq ($(LINK_INTO),AOUT)
45 LAUNCHER.o = launcher.o $(JVM_OBJ_FILES)
46 LAUNCHER_MAPFILE = mapfile_extended
47 LFLAGS_LAUNCHER$(LDNOMAP) += $(MAPFLAG:FILENAME=$(LAUNCHER_MAPFILE))
48 LIBS_LAUNCHER += $(LIBS)
49 else
50 LAUNCHER.o = launcher.o
51 LFLAGS_LAUNCHER += -L `pwd`
52 LIBS_LAUNCHER += -l$(JVM) $(LIBS)
53 endif
54
55 LINK_LAUNCHER = $(LINK.CXX)
56
57 LINK_LAUNCHER/PRE_HOOK = $(LINK_LIB.CXX/PRE_HOOK)
58 LINK_LAUNCHER/POST_HOOK = $(LINK_LIB.CXX/POST_HOOK)
59
60 ifeq ("${Platform_compiler}", "sparcWorks")
61 # Enable the following LAUNCHERFLAGS addition if you need to compare the
62 # built ELF objects.
63 #
64 # The -g option makes static data global and the "-W0,-noglobal"
65 # option tells the compiler to not globalize static data using a unique
66 # globalization prefix. Instead force the use of a static globalization
67 # prefix based on the source filepath so the objects from two identical
68 # compilations are the same.
69 #
70 # Note: The blog says to use "-W0,-xglobalstatic", but that doesn't
71 # seem to work. I got "-W0,-noglobal" from Kelly and that works.
72 #LAUNCHERFLAGS += -W0,-noglobal
73 endif # Platform_compiler == sparcWorks
74
75 LAUNCHER_OUT = launcher
76
77 SUFFIXES += .d
78
79 SOURCES := $(shell find $(LAUNCHERDIR) -name "*.c")
80 SOURCES_SHARE := $(shell find $(LAUNCHERDIR_SHARE) -name "*.c")
81
82 OBJS := $(patsubst $(LAUNCHERDIR)/%.c,$(LAUNCHER_OUT)/%.o,$(SOURCES)) $(patsubst $(LAUNCHERDIR_SHARE)/%.c,$(LAUNCHER_OUT)/%.o,$(SOURCES_SHARE))
83
84 DEPFILES := $(patsubst %.o,%.d,$(OBJS))
85 -include $(DEPFILES)
86
87 $(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR_SHARE)/%.c
88 $(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); }
89 $(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CXXFLAGS)
90
91 $(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR)/%.c
92 $(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); }
93 $(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CXXFLAGS)
94
95 $(LAUNCHER): $(OBJS) $(LIBJVM) $(LAUNCHER_MAPFILE)
96 ifeq ($(filter -sbfast -xsbfast, $(CFLAGS_BROWSE)),)
97 $(QUIETLY) echo Linking launcher...
98 $(QUIETLY) $(LINK_LAUNCHER/PRE_HOOK)
99 $(QUIETLY) $(LINK_LAUNCHER) $(LFLAGS_LAUNCHER) -o $@ $(sort $(OBJS)) $(LIBS_LAUNCHER)
100 $(QUIETLY) $(LINK_LAUNCHER/POST_HOOK)
101 endif # filter -sbfast -xsbfast
102
103 $(LAUNCHER): $(LAUNCHER_SCRIPT)
104
105 $(LAUNCHER_SCRIPT): $(LAUNCHERDIR)/launcher.script
106 $(QUIETLY) sed -e 's/@@LIBARCH@@/$(LIBARCH)/g' $< > $@
107 $(QUIETLY) chmod +x $@
108

mercurial