1 | #
|
---|
2 | # Copyright (c) 2005, 2010, 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_reorder
|
---|
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.CC)
|
---|
56 |
|
---|
57 | LINK_LAUNCHER/PRE_HOOK = $(LINK_LIB.CC/PRE_HOOK)
|
---|
58 | LINK_LAUNCHER/POST_HOOK = $(LINK_LIB.CC/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) $(CPPFLAGS)
|
---|
90 |
|
---|
91 | $(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR)/%.c
|
---|
92 | $(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); }
|
---|
93 | $(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CPPFLAGS)
|
---|
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 $@ $(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 |
|
---|