source: trunk/openjdk/hotspot/make/solaris/makefiles/launcher.make

Last change on this file was 309, checked in by dmik, 14 years ago

trunk: Merged in openjdk6 b24 from branches/vendor/oracle.

File size: 4.1 KB
Line 
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
27LAUNCHER_SCRIPT = hotspot
28LAUNCHER = gamma
29
30LAUNCHERDIR = $(GAMMADIR)/src/os/posix/launcher
31LAUNCHERDIR_SHARE := $(GAMMADIR)/src/share/tools/launcher
32LAUNCHERFLAGS = $(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
44ifeq ($(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)
49else
50 LAUNCHER.o = launcher.o
51 LFLAGS_LAUNCHER += -L `pwd`
52 LIBS_LAUNCHER += -l$(JVM) $(LIBS)
53endif
54
55LINK_LAUNCHER = $(LINK.CC)
56
57LINK_LAUNCHER/PRE_HOOK = $(LINK_LIB.CC/PRE_HOOK)
58LINK_LAUNCHER/POST_HOOK = $(LINK_LIB.CC/POST_HOOK)
59
60ifeq ("${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
73endif # Platform_compiler == sparcWorks
74
75LAUNCHER_OUT = launcher
76
77SUFFIXES += .d
78
79SOURCES := $(shell find $(LAUNCHERDIR) -name "*.c")
80SOURCES_SHARE := $(shell find $(LAUNCHERDIR_SHARE) -name "*.c")
81
82OBJS := $(patsubst $(LAUNCHERDIR)/%.c,$(LAUNCHER_OUT)/%.o,$(SOURCES)) $(patsubst $(LAUNCHERDIR_SHARE)/%.c,$(LAUNCHER_OUT)/%.o,$(SOURCES_SHARE))
83
84DEPFILES := $(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)
96ifeq ($(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)
101endif # 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
Note: See TracBrowser for help on using the repository browser.