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_ver>.<minor_ver>.<micro_ver>[-<identifier>][-<debug_target>][-b<nn>]
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 ifeq ($(findstring true, $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK)), true)
67 PLATFORM_FILE = $(shell dirname $(shell dirname $(shell pwd)))/platform_zero
68 else
69 ifdef USE_SUNCC
70 PLATFORM_FILE = $(GAMMADIR)/make/$(OS_FAMILY)/platform_$(BUILDARCH).suncc
71 else
72 PLATFORM_FILE = $(GAMMADIR)/make/$(OS_FAMILY)/platform_$(BUILDARCH)
110 TOPLEVEL_EXCLUDE_DIRS = $(ALWAYS_EXCLUDE_DIRS) -o -name adlc -o -name opto -o -name libadt -o -name agent
111 endif
112 endif
113
114 # Get things from the platform file.
115 COMPILER = $(shell sed -n 's/^compiler[ ]*=[ ]*//p' $(PLATFORM_FILE))
116
117 SIMPLE_DIRS = \
118 $(PLATFORM_DIR)/generated/dependencies \
119 $(PLATFORM_DIR)/generated/adfiles \
120 $(PLATFORM_DIR)/generated/jvmtifiles \
121 $(PLATFORM_DIR)/generated/tracefiles \
122 $(PLATFORM_DIR)/generated/extensions
123
124 TARGETS = debug fastdebug optimized product
125 SUBMAKE_DIRS = $(addprefix $(PLATFORM_DIR)/,$(TARGETS))
126
127 # For dependencies and recursive makes.
128 BUILDTREE_MAKE = $(GAMMADIR)/make/$(OS_FAMILY)/makefiles/buildtree.make
129
130 BUILDTREE_TARGETS = Makefile flags.make flags_vm.make vm.make adlc.make jvmti.make trace.make sa.make dtrace.make
131
132 BUILDTREE_VARS = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OS_FAMILY) \
133 SRCARCH=$(SRCARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH) VARIANT=$(VARIANT)
134
135 # Define variables to be set in flags.make.
136 # Default values are set in make/defs.make.
137 ifeq ($(HOTSPOT_BUILD_VERSION),)
138 HS_BUILD_VER=$(HOTSPOT_RELEASE_VERSION)
139 else
140 HS_BUILD_VER=$(HOTSPOT_RELEASE_VERSION)-$(HOTSPOT_BUILD_VERSION)
141 endif
142 # Set BUILD_USER from system-dependent hints: $LOGNAME, $(whoami)
143 ifndef HOTSPOT_BUILD_USER
144 HOTSPOT_BUILD_USER := $(shell echo $$LOGNAME)
145 endif
146 ifndef HOTSPOT_BUILD_USER
147 HOTSPOT_BUILD_USER := $(shell whoami)
148 endif
149 # Define HOTSPOT_VM_DISTRO based on settings in make/openjdk_distro
150 # or make/hotspot_distro.
202 DATA_MODE = $(DATA_MODE/$(BUILDARCH))
203
204 flags.make: $(BUILDTREE_MAKE) ../shared_dirs.lst
205 @echo $(LOG_INFO) Creating $@ ...
206 $(QUIETLY) ( \
207 $(BUILDTREE_COMMENT); \
208 echo; \
209 echo "Platform_file = $(PLATFORM_FILE)" | sed -e 's|$(HS_ALT_MAKE)|$$(HS_ALT_MAKE)|' -e 's|$(GAMMADIR)|$$(GAMMADIR)|'; \
210 sed -n '/=/s/^ */Platform_/p' < $(PLATFORM_FILE); \
211 echo; \
212 echo "GAMMADIR = $(GAMMADIR)"; \
213 echo "HS_ALT_MAKE = $(HS_ALT_MAKE)"; \
214 echo "OSNAME = $(OSNAME)"; \
215 echo "SYSDEFS = \$$(Platform_sysdefs)"; \
216 echo "SRCARCH = $(SRCARCH)"; \
217 echo "BUILDARCH = $(BUILDARCH)"; \
218 echo "LIBARCH = $(LIBARCH)"; \
219 echo "TARGET = $(TARGET)"; \
220 echo "HS_BUILD_VER = $(HS_BUILD_VER)"; \
221 echo "JRE_RELEASE_VER = $(JRE_RELEASE_VERSION)"; \
222 echo "SA_BUILD_VERSION = $(HS_BUILD_VER)"; \
223 echo "HOTSPOT_BUILD_USER = $(HOTSPOT_BUILD_USER)"; \
224 echo "HOTSPOT_VM_DISTRO = $(HOTSPOT_VM_DISTRO)"; \
225 echo "OPENJDK = $(OPENJDK)"; \
226 echo "$(LP64_SETTING/$(DATA_MODE))"; \
227 echo; \
228 echo "# Used for platform dispatching"; \
229 echo "TARGET_DEFINES = -DTARGET_OS_FAMILY_\$$(Platform_os_family)"; \
230 echo "TARGET_DEFINES += -DTARGET_ARCH_\$$(Platform_arch)"; \
231 echo "TARGET_DEFINES += -DTARGET_ARCH_MODEL_\$$(Platform_arch_model)"; \
232 echo "TARGET_DEFINES += -DTARGET_OS_ARCH_\$$(Platform_os_arch)"; \
233 echo "TARGET_DEFINES += -DTARGET_OS_ARCH_MODEL_\$$(Platform_os_arch_model)"; \
234 echo "TARGET_DEFINES += -DTARGET_COMPILER_\$$(Platform_compiler)"; \
235 echo "CFLAGS += \$$(TARGET_DEFINES)"; \
236 echo; \
237 echo "Src_Dirs_V = \\"; \
238 sed 's/$$/ \\/;s|$(GAMMADIR)|$$(GAMMADIR)|' ../shared_dirs.lst; \
239 echo "$(call gamma-path,altsrc,cpu/$(SRCARCH)/vm) \\"; \
240 echo "$(call gamma-path,commonsrc,cpu/$(SRCARCH)/vm) \\"; \
241 echo "$(call gamma-path,altsrc,os_cpu/$(OS_FAMILY)_$(SRCARCH)/vm) \\"; \
242 echo "$(call gamma-path,commonsrc,os_cpu/$(OS_FAMILY)_$(SRCARCH)/vm) \\"; \
332 @echo $(LOG_INFO) Creating $@ ...
333 $(QUIETLY) ( \
334 $(BUILDTREE_COMMENT); \
335 echo; \
336 echo include flags.make; \
337 echo; \
338 echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
339 ) > $@
340
341 jvmti.make: $(BUILDTREE_MAKE)
342 @echo $(LOG_INFO) Creating $@ ...
343 $(QUIETLY) ( \
344 $(BUILDTREE_COMMENT); \
345 echo; \
346 echo include flags.make; \
347 echo; \
348 echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
349 ) > $@
350
351 trace.make: $(BUILDTREE_MAKE)
352 @echo $(LOG_INFO) Creating $@ ...
353 $(QUIETLY) ( \
354 $(BUILDTREE_COMMENT); \
355 echo; \
356 echo include flags.make; \
357 echo; \
358 echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
359 ) > $@
360
361 sa.make: $(BUILDTREE_MAKE)
362 @echo $(LOG_INFO) Creating $@ ...
363 $(QUIETLY) ( \
364 $(BUILDTREE_COMMENT); \
365 echo; \
366 echo include flags.make; \
367 echo; \
368 echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
369 ) > $@
370
371 dtrace.make: $(BUILDTREE_MAKE)
372 @echo $(LOG_INFO) Creating $@ ...
373 $(QUIETLY) ( \
374 $(BUILDTREE_COMMENT); \
375 echo; \
376 echo include flags.make; \
377 echo; \
378 echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
379 ) > $@
380
381 FORCE:
|
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_ver>.<minor_ver>.<micro_ver>[-<identifier>][-<debug_target>][-b<nn>]
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 #
53 # The makefiles are split this way so that "make foo" will run faster by not
54 # having to read the dependency files for the vm.
55
56 -include $(SPEC)
57 include $(GAMMADIR)/make/scm.make
58 include $(GAMMADIR)/make/defs.make
59 include $(GAMMADIR)/make/altsrc.make
60
61
62 # 'gmake MAKE_VERBOSE=y' or 'gmake QUIETLY=' gives all the gory details.
63 QUIETLY$(MAKE_VERBOSE) = @
64
65 ifeq ($(findstring true, $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK)), true)
66 PLATFORM_FILE = $(shell dirname $(shell dirname $(shell pwd)))/platform_zero
67 else
68 ifdef USE_SUNCC
69 PLATFORM_FILE = $(GAMMADIR)/make/$(OS_FAMILY)/platform_$(BUILDARCH).suncc
70 else
71 PLATFORM_FILE = $(GAMMADIR)/make/$(OS_FAMILY)/platform_$(BUILDARCH)
109 TOPLEVEL_EXCLUDE_DIRS = $(ALWAYS_EXCLUDE_DIRS) -o -name adlc -o -name opto -o -name libadt -o -name agent
110 endif
111 endif
112
113 # Get things from the platform file.
114 COMPILER = $(shell sed -n 's/^compiler[ ]*=[ ]*//p' $(PLATFORM_FILE))
115
116 SIMPLE_DIRS = \
117 $(PLATFORM_DIR)/generated/dependencies \
118 $(PLATFORM_DIR)/generated/adfiles \
119 $(PLATFORM_DIR)/generated/jvmtifiles \
120 $(PLATFORM_DIR)/generated/tracefiles \
121 $(PLATFORM_DIR)/generated/extensions
122
123 TARGETS = debug fastdebug optimized product
124 SUBMAKE_DIRS = $(addprefix $(PLATFORM_DIR)/,$(TARGETS))
125
126 # For dependencies and recursive makes.
127 BUILDTREE_MAKE = $(GAMMADIR)/make/$(OS_FAMILY)/makefiles/buildtree.make
128
129 BUILDTREE_TARGETS = Makefile flags.make flags_vm.make vm.make adlc.make jvmti.make trace.make dtrace.make
130
131 BUILDTREE_VARS = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OS_FAMILY) \
132 SRCARCH=$(SRCARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH) VARIANT=$(VARIANT)
133
134 # Define variables to be set in flags.make.
135 # Default values are set in make/defs.make.
136 ifeq ($(HOTSPOT_BUILD_VERSION),)
137 HS_BUILD_VER=$(HOTSPOT_RELEASE_VERSION)
138 else
139 HS_BUILD_VER=$(HOTSPOT_RELEASE_VERSION)-$(HOTSPOT_BUILD_VERSION)
140 endif
141 # Set BUILD_USER from system-dependent hints: $LOGNAME, $(whoami)
142 ifndef HOTSPOT_BUILD_USER
143 HOTSPOT_BUILD_USER := $(shell echo $$LOGNAME)
144 endif
145 ifndef HOTSPOT_BUILD_USER
146 HOTSPOT_BUILD_USER := $(shell whoami)
147 endif
148 # Define HOTSPOT_VM_DISTRO based on settings in make/openjdk_distro
149 # or make/hotspot_distro.
201 DATA_MODE = $(DATA_MODE/$(BUILDARCH))
202
203 flags.make: $(BUILDTREE_MAKE) ../shared_dirs.lst
204 @echo $(LOG_INFO) Creating $@ ...
205 $(QUIETLY) ( \
206 $(BUILDTREE_COMMENT); \
207 echo; \
208 echo "Platform_file = $(PLATFORM_FILE)" | sed -e 's|$(HS_ALT_MAKE)|$$(HS_ALT_MAKE)|' -e 's|$(GAMMADIR)|$$(GAMMADIR)|'; \
209 sed -n '/=/s/^ */Platform_/p' < $(PLATFORM_FILE); \
210 echo; \
211 echo "GAMMADIR = $(GAMMADIR)"; \
212 echo "HS_ALT_MAKE = $(HS_ALT_MAKE)"; \
213 echo "OSNAME = $(OSNAME)"; \
214 echo "SYSDEFS = \$$(Platform_sysdefs)"; \
215 echo "SRCARCH = $(SRCARCH)"; \
216 echo "BUILDARCH = $(BUILDARCH)"; \
217 echo "LIBARCH = $(LIBARCH)"; \
218 echo "TARGET = $(TARGET)"; \
219 echo "HS_BUILD_VER = $(HS_BUILD_VER)"; \
220 echo "JRE_RELEASE_VER = $(JRE_RELEASE_VERSION)"; \
221 echo "HOTSPOT_BUILD_USER = $(HOTSPOT_BUILD_USER)"; \
222 echo "HOTSPOT_VM_DISTRO = $(HOTSPOT_VM_DISTRO)"; \
223 echo "OPENJDK = $(OPENJDK)"; \
224 echo "$(LP64_SETTING/$(DATA_MODE))"; \
225 echo; \
226 echo "# Used for platform dispatching"; \
227 echo "TARGET_DEFINES = -DTARGET_OS_FAMILY_\$$(Platform_os_family)"; \
228 echo "TARGET_DEFINES += -DTARGET_ARCH_\$$(Platform_arch)"; \
229 echo "TARGET_DEFINES += -DTARGET_ARCH_MODEL_\$$(Platform_arch_model)"; \
230 echo "TARGET_DEFINES += -DTARGET_OS_ARCH_\$$(Platform_os_arch)"; \
231 echo "TARGET_DEFINES += -DTARGET_OS_ARCH_MODEL_\$$(Platform_os_arch_model)"; \
232 echo "TARGET_DEFINES += -DTARGET_COMPILER_\$$(Platform_compiler)"; \
233 echo "CFLAGS += \$$(TARGET_DEFINES)"; \
234 echo; \
235 echo "Src_Dirs_V = \\"; \
236 sed 's/$$/ \\/;s|$(GAMMADIR)|$$(GAMMADIR)|' ../shared_dirs.lst; \
237 echo "$(call gamma-path,altsrc,cpu/$(SRCARCH)/vm) \\"; \
238 echo "$(call gamma-path,commonsrc,cpu/$(SRCARCH)/vm) \\"; \
239 echo "$(call gamma-path,altsrc,os_cpu/$(OS_FAMILY)_$(SRCARCH)/vm) \\"; \
240 echo "$(call gamma-path,commonsrc,os_cpu/$(OS_FAMILY)_$(SRCARCH)/vm) \\"; \
330 @echo $(LOG_INFO) Creating $@ ...
331 $(QUIETLY) ( \
332 $(BUILDTREE_COMMENT); \
333 echo; \
334 echo include flags.make; \
335 echo; \
336 echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
337 ) > $@
338
339 jvmti.make: $(BUILDTREE_MAKE)
340 @echo $(LOG_INFO) Creating $@ ...
341 $(QUIETLY) ( \
342 $(BUILDTREE_COMMENT); \
343 echo; \
344 echo include flags.make; \
345 echo; \
346 echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
347 ) > $@
348
349 trace.make: $(BUILDTREE_MAKE)
350 @echo $(LOG_INFO) Creating $@ ...
351 $(QUIETLY) ( \
352 $(BUILDTREE_COMMENT); \
353 echo; \
354 echo include flags.make; \
355 echo; \
356 echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
357 ) > $@
358
359 dtrace.make: $(BUILDTREE_MAKE)
360 @echo $(LOG_INFO) Creating $@ ...
361 $(QUIETLY) ( \
362 $(BUILDTREE_COMMENT); \
363 echo; \
364 echo include flags.make; \
365 echo; \
366 echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
367 ) > $@
368
369 FORCE:
|