30 # The macros ARCH, GAMMADIR, OS_FAMILY and VARIANT must be defined in the
31 # environment or on the command-line:
32 #
33 # ARCH - sparc, i486, ... HotSpot cpu and os_cpu source directory
34 # BUILDARCH - build directory
35 # LIBARCH - the corresponding directory in JDK/JRE
36 # GAMMADIR - top of workspace
37 # OS_FAMILY - operating system
38 # VARIANT - core, compiler1, compiler2, or tiered
39 # HOTSPOT_RELEASE_VERSION - <major>.<minor>-b<nn> (11.0-b07)
40 # HOTSPOT_BUILD_VERSION - internal, internal-$(USER_RELEASE_SUFFIX) or empty
41 # JRE_RELEASE_VERSION - <major>.<minor>.<micro> (1.7.0)
42 #
43 # Builds the directory trees with makefiles plus some convenience files in
44 # each directory:
45 #
46 # Makefile - for "make foo"
47 # flags.make - with macro settings
48 # vm.make - to support making "$(MAKE) -v vm.make" in makefiles
49 # adlc.make -
50 # trace.make - generate tracing event and type definitions
51 # jvmti.make - generate JVMTI bindings from the spec (JSR-163)
52 # sa.make - generate SA jar file and natives
53 #
54 # The makefiles are split this way so that "make foo" will run faster by not
55 # having to read the dependency files for the vm.
56
57 -include $(SPEC)
58 include $(GAMMADIR)/make/scm.make
59 include $(GAMMADIR)/make/defs.make
60 include $(GAMMADIR)/make/altsrc.make
61
62
63 # 'gmake MAKE_VERBOSE=y' or 'gmake QUIETLY=' gives all the gory details.
64 QUIETLY$(MAKE_VERBOSE) = @
65
66 ### maye ARCH_XXX instead?
67 ifdef USE_GCC
68 PLATFORM_FILE = $(GAMMADIR)/make/$(OS_FAMILY)/platform_$(BUILDARCH).gcc
69 GCC_LIB = /usr/local/lib
70 else
85 #
86 # We do two levels of exclusion in the shared directory.
87 # TOPLEVEL excludes are pruned, they are not recursively searched,
88 # but lower level directories can be named without fear of collision.
89 # ALWAYS excludes are excluded at any level in the directory tree.
90 #
91
92 ALWAYS_EXCLUDE_DIRS = $(SCM_DIRS)
93
94 ifeq ($(VARIANT),tiered)
95 TOPLEVEL_EXCLUDE_DIRS = $(ALWAYS_EXCLUDE_DIRS) -o -name adlc -o -name agent
96 else
97 ifeq ($(VARIANT),compiler2)
98 TOPLEVEL_EXCLUDE_DIRS = $(ALWAYS_EXCLUDE_DIRS) -o -name adlc -o -name c1 -o -name agent
99 else
100 # compiler1 and core use the same exclude list
101 TOPLEVEL_EXCLUDE_DIRS = $(ALWAYS_EXCLUDE_DIRS) -o -name adlc -o -name opto -o -name libadt -o -name agent
102 endif
103 endif
104
105 # Get things from the platform file.
106 COMPILER = $(shell sed -n 's/^compiler[ ]*=[ ]*//p' $(PLATFORM_FILE))
107
108 SIMPLE_DIRS = \
109 $(PLATFORM_DIR)/generated/dependencies \
110 $(PLATFORM_DIR)/generated/adfiles \
111 $(PLATFORM_DIR)/generated/jvmtifiles \
112 $(PLATFORM_DIR)/generated/tracefiles
113
114 TARGETS = debug fastdebug optimized product
115 SUBMAKE_DIRS = $(addprefix $(PLATFORM_DIR)/,$(TARGETS))
116
117 # For dependencies and recursive makes.
118 BUILDTREE_MAKE = $(GAMMADIR)/make/$(OS_FAMILY)/makefiles/buildtree.make
119
120 BUILDTREE_TARGETS = Makefile flags.make flags_vm.make vm.make adlc.make jvmti.make trace.make sa.make
121
122 BUILDTREE_VARS = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OS_FAMILY) \
123 ARCH=$(ARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH) VARIANT=$(VARIANT)
124
125 # Define variables to be set in flags.make.
126 # Default values are set in make/defs.make.
127 ifeq ($(HOTSPOT_BUILD_VERSION),)
128 HS_BUILD_VER=$(HOTSPOT_RELEASE_VERSION)
129 else
130 HS_BUILD_VER=$(HOTSPOT_RELEASE_VERSION)-$(HOTSPOT_BUILD_VERSION)
131 endif
132 # Set BUILD_USER from system-dependent hints: $LOGNAME, $(whoami)
133 ifndef HOTSPOT_BUILD_USER
134 HOTSPOT_BUILD_USER := $(shell echo $$LOGNAME)
135 endif
136 ifndef HOTSPOT_BUILD_USER
137 HOTSPOT_BUILD_USER := $(shell whoami)
138 endif
139 # Define HOTSPOT_VM_DISTRO based on settings in make/openjdk_distro
140 # or make/hotspot_distro.
172 $(QUIETLY) mkdir -p $@
173
174 # Convenience macro which takes a source relative path, applies $(1) to the
175 # absolute path, and then replaces $(GAMMADIR) in the result with a
176 # literal "$(GAMMADIR)/" suitable for inclusion in a Makefile.
177 gamma-path=$(subst $(GAMMADIR),\$$(GAMMADIR),$(call $(1),$(HS_COMMON_SRC)/$(2)))
178
179 # This bit is needed to enable local rebuilds.
180 # Unless the makefile itself sets LP64, any environmental
181 # setting of LP64 will interfere with the build.
182 LP64_SETTING/32 = LP64 = \#empty
183 LP64_SETTING/64 = LP64 = 1
184
185 DATA_MODE/i486 = 32
186 DATA_MODE/sparc = 32
187 DATA_MODE/sparcv9 = 64
188 DATA_MODE/amd64 = 64
189
190 DATA_MODE = $(DATA_MODE/$(BUILDARCH))
191
192 flags.make: $(BUILDTREE_MAKE) ../shared_dirs.lst
193 @echo Creating $@ ...
194 $(QUIETLY) ( \
195 $(BUILDTREE_COMMENT); \
196 echo; \
197 echo "Platform_file = $(PLATFORM_FILE)" | sed 's|$(GAMMADIR)|$$(GAMMADIR)|'; \
198 sed -n '/=/s/^ */Platform_/p' < $(PLATFORM_FILE); \
199 echo; \
200 echo "GAMMADIR = $(GAMMADIR)"; \
201 echo "SYSDEFS = \$$(Platform_sysdefs)"; \
202 echo "SRCARCH = $(ARCH)"; \
203 echo "BUILDARCH = $(BUILDARCH)"; \
204 echo "LIBARCH = $(LIBARCH)"; \
205 echo "TARGET = $(TARGET)"; \
206 echo "HS_BUILD_VER = $(HS_BUILD_VER)"; \
207 echo "JRE_RELEASE_VER = $(JRE_RELEASE_VERSION)"; \
208 echo "SA_BUILD_VERSION = $(HS_BUILD_VER)"; \
209 echo "HOTSPOT_BUILD_USER = $(HOTSPOT_BUILD_USER)"; \
210 echo "HOTSPOT_VM_DISTRO = $(HOTSPOT_VM_DISTRO)"; \
211 echo "OPENJDK = $(OPENJDK)"; \
247 echo "$(call gamma-path,altsrc,os/posix/vm) \\"; \
248 echo "$(call gamma-path,commonsrc,os/posix/vm)"; \
249 [ -n "$(CFLAGS_BROWSE)" ] && \
250 echo && echo "CFLAGS_BROWSE = $(CFLAGS_BROWSE)"; \
251 [ -n "$(ENABLE_FULL_DEBUG_SYMBOLS)" ] && \
252 echo && echo "ENABLE_FULL_DEBUG_SYMBOLS = $(ENABLE_FULL_DEBUG_SYMBOLS)"; \
253 [ -n "$(OBJCOPY)" ] && \
254 echo && echo "OBJCOPY = $(OBJCOPY)"; \
255 [ -n "$(STRIP_POLICY)" ] && \
256 echo && echo "STRIP_POLICY = $(STRIP_POLICY)"; \
257 [ -n "$(ZIP_DEBUGINFO_FILES)" ] && \
258 echo && echo "ZIP_DEBUGINFO_FILES = $(ZIP_DEBUGINFO_FILES)"; \
259 [ -n "$(ZIPEXE)" ] && \
260 echo && echo "ZIPEXE = $(ZIPEXE)"; \
261 [ -n "$(HS_ALT_MAKE)" ] && \
262 echo && echo "HS_ALT_MAKE = $(HS_ALT_MAKE)"; \
263 [ -n "$(HOTSPOT_EXTRA_SYSDEFS)" ] && \
264 echo && \
265 echo "HOTSPOT_EXTRA_SYSDEFS\$$(HOTSPOT_EXTRA_SYSDEFS) = $(HOTSPOT_EXTRA_SYSDEFS)" && \
266 echo "SYSDEFS += \$$(HOTSPOT_EXTRA_SYSDEFS)"; \
267 echo; \
268 [ -n "$(INCLUDE_TRACE)" ] && \
269 echo && echo "INCLUDE_TRACE = $(INCLUDE_TRACE)"; \
270 [ -n "$(SPEC)" ] && \
271 echo "include $(SPEC)"; \
272 echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(VARIANT).make"; \
273 echo "include \$$(GAMMADIR)/make/excludeSrc.make"; \
274 echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(COMPILER).make"; \
275 ) > $@
276
277 flags_vm.make: $(BUILDTREE_MAKE) ../shared_dirs.lst
278 @echo Creating $@ ...
279 $(QUIETLY) ( \
280 $(BUILDTREE_COMMENT); \
281 echo; \
282 echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(TARGET).make"; \
283 ) > $@
284
285 ../shared_dirs.lst: $(BUILDTREE_MAKE) $(GAMMADIR)/src/share/vm
286 @echo Creating directory list $@
287 $(QUIETLY) if [ -d $(HS_ALT_SRC)/share/vm ]; then \
288 find $(HS_ALT_SRC)/share/vm/* -prune \
289 -type d \! \( $(TOPLEVEL_EXCLUDE_DIRS) \) -exec find {} \
317 adlc.make: $(BUILDTREE_MAKE)
318 @echo Creating $@ ...
319 $(QUIETLY) ( \
320 $(BUILDTREE_COMMENT); \
321 echo; \
322 echo include flags.make; \
323 echo; \
324 echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
325 ) > $@
326
327 jvmti.make: $(BUILDTREE_MAKE)
328 @echo Creating $@ ...
329 $(QUIETLY) ( \
330 $(BUILDTREE_COMMENT); \
331 echo; \
332 echo include flags.make; \
333 echo; \
334 echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
335 ) > $@
336
337 trace.make: $(BUILDTREE_MAKE)
338 @echo Creating $@ ...
339 $(QUIETLY) ( \
340 $(BUILDTREE_COMMENT); \
341 echo; \
342 echo include flags.make; \
343 echo; \
344 echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
345 ) > $@
346
347 sa.make: $(BUILDTREE_MAKE)
348 @echo Creating $@ ...
349 $(QUIETLY) ( \
350 $(BUILDTREE_COMMENT); \
351 echo; \
352 echo include flags.make; \
353 echo; \
354 echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
355 ) > $@
356
357 FORCE:
|
30 # The macros ARCH, GAMMADIR, OS_FAMILY and VARIANT must be defined in the
31 # environment or on the command-line:
32 #
33 # ARCH - sparc, i486, ... HotSpot cpu and os_cpu source directory
34 # BUILDARCH - build directory
35 # LIBARCH - the corresponding directory in JDK/JRE
36 # GAMMADIR - top of workspace
37 # OS_FAMILY - operating system
38 # VARIANT - core, compiler1, compiler2, or tiered
39 # HOTSPOT_RELEASE_VERSION - <major>.<minor>-b<nn> (11.0-b07)
40 # HOTSPOT_BUILD_VERSION - internal, internal-$(USER_RELEASE_SUFFIX) or empty
41 # JRE_RELEASE_VERSION - <major>.<minor>.<micro> (1.7.0)
42 #
43 # Builds the directory trees with makefiles plus some convenience files in
44 # each directory:
45 #
46 # Makefile - for "make foo"
47 # flags.make - with macro settings
48 # vm.make - to support making "$(MAKE) -v vm.make" in makefiles
49 # adlc.make -
50 # jfr.make - generate jfr event and type definitions
51 # jvmti.make - generate JVMTI bindings from the spec (JSR-163)
52 # sa.make - generate SA jar file and natives
53 #
54 # The makefiles are split this way so that "make foo" will run faster by not
55 # having to read the dependency files for the vm.
56
57 -include $(SPEC)
58 include $(GAMMADIR)/make/scm.make
59 include $(GAMMADIR)/make/defs.make
60 include $(GAMMADIR)/make/altsrc.make
61
62
63 # 'gmake MAKE_VERBOSE=y' or 'gmake QUIETLY=' gives all the gory details.
64 QUIETLY$(MAKE_VERBOSE) = @
65
66 ### maye ARCH_XXX instead?
67 ifdef USE_GCC
68 PLATFORM_FILE = $(GAMMADIR)/make/$(OS_FAMILY)/platform_$(BUILDARCH).gcc
69 GCC_LIB = /usr/local/lib
70 else
85 #
86 # We do two levels of exclusion in the shared directory.
87 # TOPLEVEL excludes are pruned, they are not recursively searched,
88 # but lower level directories can be named without fear of collision.
89 # ALWAYS excludes are excluded at any level in the directory tree.
90 #
91
92 ALWAYS_EXCLUDE_DIRS = $(SCM_DIRS)
93
94 ifeq ($(VARIANT),tiered)
95 TOPLEVEL_EXCLUDE_DIRS = $(ALWAYS_EXCLUDE_DIRS) -o -name adlc -o -name agent
96 else
97 ifeq ($(VARIANT),compiler2)
98 TOPLEVEL_EXCLUDE_DIRS = $(ALWAYS_EXCLUDE_DIRS) -o -name adlc -o -name c1 -o -name agent
99 else
100 # compiler1 and core use the same exclude list
101 TOPLEVEL_EXCLUDE_DIRS = $(ALWAYS_EXCLUDE_DIRS) -o -name adlc -o -name opto -o -name libadt -o -name agent
102 endif
103 endif
104
105 ifeq ($(ENABLE_JFR),false)
106 ALWAYS_EXCLUDE_DIRS += -o -name jfr
107 endif
108
109 # Get things from the platform file.
110 COMPILER = $(shell sed -n 's/^compiler[ ]*=[ ]*//p' $(PLATFORM_FILE))
111
112 SIMPLE_DIRS = \
113 $(PLATFORM_DIR)/generated/dependencies \
114 $(PLATFORM_DIR)/generated/adfiles \
115 $(PLATFORM_DIR)/generated/jvmtifiles \
116 $(PLATFORM_DIR)/generated/jfrfiles
117
118 TARGETS = debug fastdebug optimized product
119 SUBMAKE_DIRS = $(addprefix $(PLATFORM_DIR)/,$(TARGETS))
120
121 # For dependencies and recursive makes.
122 BUILDTREE_MAKE = $(GAMMADIR)/make/$(OS_FAMILY)/makefiles/buildtree.make
123
124 BUILDTREE_TARGETS = Makefile flags.make flags_vm.make vm.make adlc.make jvmti.make jfr.make sa.make
125
126 BUILDTREE_VARS = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OS_FAMILY) \
127 ARCH=$(ARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH) VARIANT=$(VARIANT)
128
129 # Define variables to be set in flags.make.
130 # Default values are set in make/defs.make.
131 ifeq ($(HOTSPOT_BUILD_VERSION),)
132 HS_BUILD_VER=$(HOTSPOT_RELEASE_VERSION)
133 else
134 HS_BUILD_VER=$(HOTSPOT_RELEASE_VERSION)-$(HOTSPOT_BUILD_VERSION)
135 endif
136 # Set BUILD_USER from system-dependent hints: $LOGNAME, $(whoami)
137 ifndef HOTSPOT_BUILD_USER
138 HOTSPOT_BUILD_USER := $(shell echo $$LOGNAME)
139 endif
140 ifndef HOTSPOT_BUILD_USER
141 HOTSPOT_BUILD_USER := $(shell whoami)
142 endif
143 # Define HOTSPOT_VM_DISTRO based on settings in make/openjdk_distro
144 # or make/hotspot_distro.
176 $(QUIETLY) mkdir -p $@
177
178 # Convenience macro which takes a source relative path, applies $(1) to the
179 # absolute path, and then replaces $(GAMMADIR) in the result with a
180 # literal "$(GAMMADIR)/" suitable for inclusion in a Makefile.
181 gamma-path=$(subst $(GAMMADIR),\$$(GAMMADIR),$(call $(1),$(HS_COMMON_SRC)/$(2)))
182
183 # This bit is needed to enable local rebuilds.
184 # Unless the makefile itself sets LP64, any environmental
185 # setting of LP64 will interfere with the build.
186 LP64_SETTING/32 = LP64 = \#empty
187 LP64_SETTING/64 = LP64 = 1
188
189 DATA_MODE/i486 = 32
190 DATA_MODE/sparc = 32
191 DATA_MODE/sparcv9 = 64
192 DATA_MODE/amd64 = 64
193
194 DATA_MODE = $(DATA_MODE/$(BUILDARCH))
195
196 ifeq ($(ENABLE_JFR), true)
197 INCLUDE_JFR = 1
198 else
199 INCLUDE_JFR = 0
200 endif
201
202 flags.make: $(BUILDTREE_MAKE) ../shared_dirs.lst
203 @echo Creating $@ ...
204 $(QUIETLY) ( \
205 $(BUILDTREE_COMMENT); \
206 echo; \
207 echo "Platform_file = $(PLATFORM_FILE)" | sed 's|$(GAMMADIR)|$$(GAMMADIR)|'; \
208 sed -n '/=/s/^ */Platform_/p' < $(PLATFORM_FILE); \
209 echo; \
210 echo "GAMMADIR = $(GAMMADIR)"; \
211 echo "SYSDEFS = \$$(Platform_sysdefs)"; \
212 echo "SRCARCH = $(ARCH)"; \
213 echo "BUILDARCH = $(BUILDARCH)"; \
214 echo "LIBARCH = $(LIBARCH)"; \
215 echo "TARGET = $(TARGET)"; \
216 echo "HS_BUILD_VER = $(HS_BUILD_VER)"; \
217 echo "JRE_RELEASE_VER = $(JRE_RELEASE_VERSION)"; \
218 echo "SA_BUILD_VERSION = $(HS_BUILD_VER)"; \
219 echo "HOTSPOT_BUILD_USER = $(HOTSPOT_BUILD_USER)"; \
220 echo "HOTSPOT_VM_DISTRO = $(HOTSPOT_VM_DISTRO)"; \
221 echo "OPENJDK = $(OPENJDK)"; \
257 echo "$(call gamma-path,altsrc,os/posix/vm) \\"; \
258 echo "$(call gamma-path,commonsrc,os/posix/vm)"; \
259 [ -n "$(CFLAGS_BROWSE)" ] && \
260 echo && echo "CFLAGS_BROWSE = $(CFLAGS_BROWSE)"; \
261 [ -n "$(ENABLE_FULL_DEBUG_SYMBOLS)" ] && \
262 echo && echo "ENABLE_FULL_DEBUG_SYMBOLS = $(ENABLE_FULL_DEBUG_SYMBOLS)"; \
263 [ -n "$(OBJCOPY)" ] && \
264 echo && echo "OBJCOPY = $(OBJCOPY)"; \
265 [ -n "$(STRIP_POLICY)" ] && \
266 echo && echo "STRIP_POLICY = $(STRIP_POLICY)"; \
267 [ -n "$(ZIP_DEBUGINFO_FILES)" ] && \
268 echo && echo "ZIP_DEBUGINFO_FILES = $(ZIP_DEBUGINFO_FILES)"; \
269 [ -n "$(ZIPEXE)" ] && \
270 echo && echo "ZIPEXE = $(ZIPEXE)"; \
271 [ -n "$(HS_ALT_MAKE)" ] && \
272 echo && echo "HS_ALT_MAKE = $(HS_ALT_MAKE)"; \
273 [ -n "$(HOTSPOT_EXTRA_SYSDEFS)" ] && \
274 echo && \
275 echo "HOTSPOT_EXTRA_SYSDEFS\$$(HOTSPOT_EXTRA_SYSDEFS) = $(HOTSPOT_EXTRA_SYSDEFS)" && \
276 echo "SYSDEFS += \$$(HOTSPOT_EXTRA_SYSDEFS)"; \
277 echo && echo "CFLAGS += -DINCLUDE_JFR=$(INCLUDE_JFR)"; \
278 echo; \
279 [ -n "$(INCLUDE_JFR)" ] && \
280 echo && echo "INCLUDE_JFR = $(INCLUDE_JFR)"; \
281 [ -n "$(SPEC)" ] && \
282 echo "include $(SPEC)"; \
283 echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(VARIANT).make"; \
284 echo "include \$$(GAMMADIR)/make/excludeSrc.make"; \
285 echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(COMPILER).make"; \
286 ) > $@
287
288 flags_vm.make: $(BUILDTREE_MAKE) ../shared_dirs.lst
289 @echo Creating $@ ...
290 $(QUIETLY) ( \
291 $(BUILDTREE_COMMENT); \
292 echo; \
293 echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(TARGET).make"; \
294 ) > $@
295
296 ../shared_dirs.lst: $(BUILDTREE_MAKE) $(GAMMADIR)/src/share/vm
297 @echo Creating directory list $@
298 $(QUIETLY) if [ -d $(HS_ALT_SRC)/share/vm ]; then \
299 find $(HS_ALT_SRC)/share/vm/* -prune \
300 -type d \! \( $(TOPLEVEL_EXCLUDE_DIRS) \) -exec find {} \
328 adlc.make: $(BUILDTREE_MAKE)
329 @echo Creating $@ ...
330 $(QUIETLY) ( \
331 $(BUILDTREE_COMMENT); \
332 echo; \
333 echo include flags.make; \
334 echo; \
335 echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
336 ) > $@
337
338 jvmti.make: $(BUILDTREE_MAKE)
339 @echo Creating $@ ...
340 $(QUIETLY) ( \
341 $(BUILDTREE_COMMENT); \
342 echo; \
343 echo include flags.make; \
344 echo; \
345 echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
346 ) > $@
347
348 jfr.make: $(BUILDTREE_MAKE)
349 @echo Creating $@ ...
350 $(QUIETLY) ( \
351 $(BUILDTREE_COMMENT); \
352 echo; \
353 echo include flags.make; \
354 echo; \
355 echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
356 ) > $@
357
358 sa.make: $(BUILDTREE_MAKE)
359 @echo Creating $@ ...
360 $(QUIETLY) ( \
361 $(BUILDTREE_COMMENT); \
362 echo; \
363 echo include flags.make; \
364 echo; \
365 echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
366 ) > $@
367
368 FORCE:
|