71 # A list of locales we support but don't have resource files. |
71 # A list of locales we support but don't have resource files. |
72 # This is defined to optimize the search of resource bundles. |
72 # This is defined to optimize the search of resource bundles. |
73 # |
73 # |
74 JRE_NONEXIST_LOCALES = en en_US de_DE es_ES fr_FR it_IT ja_JP ko_KR sv_SE zh |
74 JRE_NONEXIST_LOCALES = en en_US de_DE es_ES fr_FR it_IT ja_JP ko_KR sv_SE zh |
75 |
75 |
76 # |
|
77 # All libraries except libjava and libjvm itself link against libjvm and |
|
78 # libjava, the latter for its exported common utilities. libjava only links |
|
79 # against libjvm. Programs' makefiles take their own responsibility for |
|
80 # adding other libs. |
|
81 # |
|
82 ifdef PACKAGE |
|
83 # put JAVALIB first, but do not lose any platform specific values.... |
|
84 LDLIBS_COMMON = $(JAVALIB) |
|
85 endif # PACKAGE |
|
86 |
|
87 # |
|
88 # Libraries that must appear ahead of libc.so on the link command line |
|
89 # |
|
90 ifdef PROGRAM |
|
91 |
|
92 ifeq ($(PLATFORM), solaris) |
|
93 LDLIBS_COMMON = -lthread -ldl |
|
94 endif |
|
95 |
|
96 ifeq ($(PLATFORM), linux) |
|
97 LDLIBS_COMMON = -ldl |
|
98 endif |
|
99 |
|
100 endif # PROGRAM |
|
101 |
|
102 LDLIBS_COMMON += $(EXTRA_LIBS) |
|
103 |
|
104 # |
|
105 # Default is to build, not import native binaries |
|
106 # |
|
107 ifndef IMPORT_NATIVE_BINARIES |
|
108 IMPORT_NATIVE_BINARIES=false |
|
109 endif |
|
110 # If importing libraries in, no incremental builds |
|
111 ifeq ($(IMPORT_NATIVE_BINARIES),true) |
|
112 INCREMENTAL_BUILD=false |
|
113 endif |
|
114 |
|
115 # for generated libraries |
|
116 LIBDIR = $(OUTPUTDIR)/lib |
76 LIBDIR = $(OUTPUTDIR)/lib |
117 ABS_LIBDIR = $(ABS_OUTPUTDIR)/lib |
77 ABS_LIBDIR = $(ABS_OUTPUTDIR)/lib |
118 # Optional place to save the windows .lib files |
|
119 LIBFILES_DIR = $(OUTPUTDIR)/libfiles |
|
120 # for ext jre files |
78 # for ext jre files |
121 EXTDIR = $(LIBDIR)/ext |
79 EXTDIR = $(LIBDIR)/ext |
122 # for generated include files |
|
123 INCLUDEDIR = $(OUTPUTDIR)/include |
|
124 # for generated class files |
80 # for generated class files |
125 CLASSBINDIR = $(OUTPUTDIR)/classes |
81 CLASSBINDIR = $(OUTPUTDIR)/classes |
126 DEMOCLASSDIR = $(OUTPUTDIR)/democlasses |
82 DEMOCLASSDIR = $(OUTPUTDIR)/democlasses |
127 # for generated tool class files |
83 # for generated tool class files |
128 BUILDTOOLCLASSDIR = $(OUTPUTDIR)/btclasses |
84 BUILDTOOLCLASSDIR = $(OUTPUTDIR)/btclasses |
129 # for build tool jar files |
85 # for build tool jar files |
130 BUILDTOOLJARDIR = $(OUTPUTDIR)/btjars |
86 BUILDTOOLJARDIR = $(OUTPUTDIR)/btjars |
131 ABS_BUILDTOOLJARDIR = $(ABS_OUTPUTDIR)/btjars |
87 ABS_BUILDTOOLJARDIR = $(ABS_OUTPUTDIR)/btjars |
132 # for generated java source files |
88 # for generated java source files |
133 GENSRCDIR = $(OUTPUTDIR)/gensrc |
89 GENSRCDIR = $(OUTPUTDIR)/gensrc |
134 # for generated C source files (not javah) |
|
135 GENNATIVESRCDIR = $(OUTPUTDIR)/gennativesrc |
|
136 # for imported source files |
90 # for imported source files |
137 IMPORTSRCDIR = $(OUTPUTDIR)/impsrc |
91 IMPORTSRCDIR = $(OUTPUTDIR)/impsrc |
138 # for imported documents |
92 # for imported documents |
139 IMPORTDOCDIR = $(OUTPUTDIR)/impdoc |
93 IMPORTDOCDIR = $(OUTPUTDIR)/impdoc |
140 # for generated demo |
94 # for generated demo |
194 |
148 |
195 # This must be created right away for pattern rules in Sanity.gmk to work. |
149 # This must be created right away for pattern rules in Sanity.gmk to work. |
196 dummy1:=$(shell $(MKDIR) -p $(TEMPDIR)) |
150 dummy1:=$(shell $(MKDIR) -p $(TEMPDIR)) |
197 dummy2:=$(shell $(MKDIR) -p $(TEMP_DISK)) |
151 dummy2:=$(shell $(MKDIR) -p $(TEMP_DISK)) |
198 |
152 |
199 # OBJDIRNAME is the name of the directory where the object code is to |
|
200 # be placed. It's name depends on whether the data model architecture |
|
201 # is 32-bit or not. |
|
202 ifneq ($(ARCH_DATA_MODEL), 32) |
|
203 OBJDIRNAME = obj$(ARCH_DATA_MODEL)$(OBJDIRNAME_SUFFIX) |
|
204 else |
|
205 OBJDIRNAME = obj$(OBJDIRNAME_SUFFIX) |
|
206 endif |
|
207 OBJDIR = $(TEMPDIR)/$(OBJDIRNAME) |
|
208 |
|
209 # CLASSHDRDIR is where the generated C Class Header files go. |
|
210 CLASSHDRDIR = $(TEMPDIR)/CClassHeaders |
|
211 |
|
212 # |
153 # |
213 # CLASSDESTDIR can be used to specify the directory where generated classes |
154 # CLASSDESTDIR can be used to specify the directory where generated classes |
214 # are to be placed. The default is CLASSBINDIR. |
155 # are to be placed. The default is CLASSBINDIR. |
215 # |
156 # |
216 ifndef CLASSDESTDIR |
157 ifndef CLASSDESTDIR |
217 CLASSDESTDIR = $(CLASSBINDIR) |
158 CLASSDESTDIR = $(CLASSBINDIR) |
218 endif |
159 endif |
219 |
|
220 INCLUDES = -I. -I$(CLASSHDRDIR) \ |
|
221 $(patsubst %,-I%,$(subst $(CLASSPATH_SEPARATOR), ,$(VPATH.h))) $(OTHER_INCLUDES) |
|
222 OTHER_CPPFLAGS = $(INCLUDES) |
|
223 |
|
224 |
160 |
225 # |
161 # |
226 # vpaths. These are the default locations searched for source files. |
162 # vpaths. These are the default locations searched for source files. |
227 # GNUmakefiles of individual areas often override the default settings. |
163 # GNUmakefiles of individual areas often override the default settings. |
228 # There are no longer default vpath entries for C and assembler files |
164 # There are no longer default vpath entries for C and assembler files |
233 |
169 |
234 VPATH0.java = $(GENSRCDIR)$(CLASSPATH_SEPARATOR)$(PLATFORM_SRC)/classes$(CLASSPATH_SEPARATOR)$(SHARE_SRC)/classes |
170 VPATH0.java = $(GENSRCDIR)$(CLASSPATH_SEPARATOR)$(PLATFORM_SRC)/classes$(CLASSPATH_SEPARATOR)$(SHARE_SRC)/classes |
235 VPATH.java = $(VPATH0.java) |
171 VPATH.java = $(VPATH0.java) |
236 vpath %.java $(VPATH.java) |
172 vpath %.java $(VPATH.java) |
237 vpath %.class $(CLASSBINDIR) |
173 vpath %.class $(CLASSBINDIR) |
238 vpath %.$(OBJECT_SUFFIX) $(OBJDIR) |
|
239 |
|
240 # |
|
241 # VPATH.h is used elsewhere to generate include flags. By default, |
|
242 # anyone has access to the include files that the JVM area exports, |
|
243 # namely jni.h, jvm.h, and jni_utils.h, plus their platform-specific |
|
244 # relatives. |
|
245 # |
|
246 ifeq ($(PLATFORM), windows) |
|
247 VPATH.h = $(BOOTDIR)/include;$(BOOTDIR)/include/$(PLATFORM_INCLUDE_NAME) |
|
248 else |
|
249 VPATH.h = $(PLATFORM_SRC)/javavm/export$(CLASSPATH_SEPARATOR)$(SHARE_SRC)/javavm/export$(CLASSPATH_SEPARATOR)$(SHARE_SRC)/javavm/include$(CLASSPATH_SEPARATOR)$(PLATFORM_SRC)/javavm/include |
|
250 endif |
|
251 vpath %.h $(VPATH.h) |
|
252 |
|
253 # |
|
254 # Used in two ways: helps link against libjava.so. Also if overridden |
|
255 # determines where your shared library is installed. |
|
256 # |
|
257 ifndef LIB_LOCATION |
|
258 LIB_LOCATION = $(LIBDIR)/$(LIBARCH) |
|
259 endif |
|
260 |
|
261 # |
|
262 # Java header and stub variables |
|
263 # |
|
264 CLASSHDRS = $(patsubst %,$(CLASSHDRDIR)/%.h,$(subst .,_,$(CLASSES.export))) |
|
265 CLASSSTUBOBJS = classstubs.$(OBJECT_SUFFIX) |
|
266 STUBPREAMBLE = $(INCLUDEDIR)/StubPreamble.h |
|
267 |
174 |
268 # |
175 # |
269 # Classpath seen by javac (different from the one seen by the VM |
176 # Classpath seen by javac (different from the one seen by the VM |
270 # running javac), and useful variables. |
177 # running javac), and useful variables. |
271 # |
178 # |
336 RELEASE=$(RELEASE) || exit 1; \ |
243 RELEASE=$(RELEASE) || exit 1; \ |
337 fi ; \ |
244 fi ; \ |
338 done |
245 done |
339 endef |
246 endef |
340 |
247 |
341 # |
|
342 # Create BYFILE OPT and DBG settings, if CFLAGS_OPT/foobar.o is set then it is |
|
343 # used for this file, otherwise the default settings are used. |
|
344 # |
|
345 CFLAGS_$(VARIANT)/BYFILE = $(CFLAGS_$(VARIANT)/$(@F)) \ |
|
346 $(CFLAGS_$(VARIANT)$(CFLAGS_$(VARIANT)/$(@F))) |
|
347 CXXFLAGS_$(VARIANT)/BYFILE = $(CXXFLAGS_$(VARIANT)/$(@F)) \ |
|
348 $(CXXFLAGS_$(VARIANT)$(CXXFLAGS_$(VARIANT)/$(@F))) |
|
349 |
|
350 # |
|
351 # Tool flags |
|
352 # |
|
353 ASFLAGS = $(ASFLAGS_$(VARIANT)) $(ASFLAGS_COMMON) $(OTHER_ASFLAGS) |
|
354 CFLAGS = $(CFLAGS_$(VARIANT)/BYFILE) $(CFLAGS_COMMON) $(OTHER_CFLAGS) |
|
355 CXXFLAGS = $(CXXFLAGS_$(VARIANT)/BYFILE) $(CXXFLAGS_COMMON) $(OTHER_CXXFLAGS) |
|
356 CPPFLAGS = $(CPPFLAGS_$(VARIANT)) $(CPPFLAGS_COMMON) $(OTHER_CPPFLAGS) \ |
|
357 $(DEFINES) $(OPTIONS:%=-D%) |
|
358 LDFLAGS = $(LDFLAGS_$(VARIANT)) $(LDFLAGS_COMMON) $(OTHER_LDFLAGS) |
|
359 LDLIBS = $(OTHER_LDLIBS) $(LDLIBS_$(VARIANT)) $(LDLIBS_COMMON) |
|
360 LINTFLAGS = $(LINTFLAGS_$(VARIANT)) $(LINTFLAGS_COMMON) \ |
|
361 $(OTHER_LINTFLAGS) |
|
362 |
|
363 # this should be moved into Defs-<platform>.gmk..... |
|
364 ifeq ($(PLATFORM), windows) |
|
365 VERSION_DEFINES = -DRELEASE="\"$(RELEASE)\"" |
|
366 else |
|
367 VERSION_DEFINES = -DRELEASE='"$(RELEASE)"' |
|
368 endif |
|
369 |
|
370 # Prevent the use of many default suffix rules we do not need |
248 # Prevent the use of many default suffix rules we do not need |
371 .SUFFIXES: |
249 .SUFFIXES: |
372 .SUFFIXES: .c .o .h .obj .cpp .hpp .java .class |
250 .SUFFIXES: .java .class |
373 |
251 |
374 # Make sure we are all insane |
252 # Make sure we are all insane |
375 ifdef INSANE |
253 ifdef INSANE |
376 export INSANE |
254 export INSANE |
377 endif |
255 endif |