40
41 ################################################################################
42 # Platform independent setup
43
44 JVM_LDFLAGS += \
45 $(SHARED_LIBRARY_FLAGS) \
46 $(JVM_LDFLAGS_FEATURES) \
47 $(EXTRA_LDFLAGS) \
48 #
49
50 JVM_ASFLAGS += $(EXTRA_ASFLAGS)
51
52 JVM_LIBS += \
53 $(JVM_LIBS_FEATURES) \
54 #
55
56 # These files and directories are always excluded
57 JVM_EXCLUDE_FILES += args.cc
58 JVM_EXCLUDES += adlc
59
60 # Needed by vm_version.cpp
61 ifeq ($(call isTargetCpu, x86_64), true)
62 OPENJDK_TARGET_CPU_VM_VERSION := amd64
63 else ifeq ($(call isTargetCpu, sparcv9), true)
64 OPENJDK_TARGET_CPU_VM_VERSION := sparc
65 else
66 OPENJDK_TARGET_CPU_VM_VERSION := $(OPENJDK_TARGET_CPU)
67 endif
68
69 CFLAGS_VM_VERSION := \
70 $(VERSION_CFLAGS) \
71 -DHOTSPOT_VERSION_STRING='"$(VERSION_STRING)"' \
72 -DDEBUG_LEVEL='"$(DEBUG_LEVEL)"' \
73 -DHOTSPOT_BUILD_USER='"$(USERNAME)"' \
74 -DHOTSPOT_VM_DISTRO='"$(HOTSPOT_VM_DISTRO)"' \
75 -DCPU='"$(OPENJDK_TARGET_CPU_VM_VERSION)"' \
76 #
77
78 ################################################################################
79 # Disabled warnings
80
166 # parameter to SetupNativeCompilation allows an empty value to override the
167 # default.
168 JVM_STRIPFLAGS ?= $(STRIPFLAGS)
169
170 # This source set is reused so save in cache.
171 $(call FillFindCache, $(JVM_SRC_DIRS))
172
173 ################################################################################
174 # Now set up the actual compilation of the main hotspot native library
175
176 $(eval $(call SetupNativeCompilation, BUILD_LIBJVM, \
177 NAME := jvm, \
178 TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
179 OUTPUT_DIR := $(JVM_LIB_OUTPUTDIR), \
180 SRC := $(JVM_SRC_DIRS), \
181 EXCLUDES := $(JVM_EXCLUDES), \
182 EXCLUDE_FILES := $(JVM_EXCLUDE_FILES), \
183 EXCLUDE_PATTERNS := $(JVM_EXCLUDE_PATTERNS), \
184 EXTRA_OBJECT_FILES := $(DTRACE_EXTRA_OBJECT_FILES), \
185 CFLAGS := $(JVM_CFLAGS), \
186 vm_version.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \
187 arguments.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \
188 DISABLED_WARNINGS_gcc := $(DISABLED_WARNINGS_gcc), \
189 DISABLED_WARNINGS_clang := $(DISABLED_WARNINGS_clang), \
190 DISABLED_WARNINGS_solstudio := $(DISABLED_WARNINGS_solstudio), \
191 DISABLED_WARNINGS_xlc := $(DISABLED_WARNINGS_xlc), \
192 DISABLED_WARNINGS_microsoft := $(DISABLED_WARNINGS_microsoft), \
193 ASFLAGS := $(JVM_ASFLAGS), \
194 LDFLAGS := $(JVM_LDFLAGS), \
195 LIBS := $(JVM_LIBS), \
196 OPTIMIZATION := $(JVM_OPTIMIZATION), \
197 OBJECT_DIR := $(JVM_OUTPUTDIR)/objs, \
198 MAPFILE := $(JVM_MAPFILE), \
199 USE_MAPFILE_FOR_SYMBOLS := true, \
200 STRIPFLAGS := $(JVM_STRIPFLAGS), \
201 EMBED_MANIFEST := true, \
202 RC_FLAGS := $(JVM_RCFLAGS), \
203 VERSIONINFO_RESOURCE := $(TOPDIR)/src/hotspot/os/windows/version.rc, \
204 PRECOMPILED_HEADER := $(JVM_PRECOMPILED_HEADER), \
205 PRECOMPILED_HEADER_EXCLUDE := $(JVM_PRECOMPILED_HEADER_EXCLUDE), \
206 DEFINE_THIS_FILE := false, \
207 ))
208
209 # Always recompile vm_version.cpp if libjvm needs to be relinked. This ensures
210 # that the internal vm version is updated as it relies on __DATE__ and __TIME__
211 # macros.
212 VM_VERSION_OBJ := $(JVM_OUTPUTDIR)/objs/vm_version$(OBJ_SUFFIX)
213 $(VM_VERSION_OBJ): $(filter-out $(VM_VERSION_OBJ) $(JVM_MAPFILE), \
214 $(BUILD_LIBJVM_TARGET_DEPS))
215
216 ifneq ($(GENERATE_COMPILE_COMMANDS_ONLY), true)
217 ifeq ($(call isTargetOs, windows), true)
218 # It doesn't matter which jvm.lib file gets exported, but we need
219 # to pick just one.
220 ifeq ($(JVM_VARIANT), $(JVM_VARIANT_MAIN))
221 $(eval $(call SetupCopyFiles, COPY_JVM_LIB, \
222 DEST := $(LIB_OUTPUTDIR), \
223 FILES :=$(BUILD_LIBJVM_IMPORT_LIBRARY), \
224 ))
225 TARGETS += $(COPY_JVM_LIB)
226 endif
227 endif
228 endif
229
230 # AIX warning explanation:
231 # 1500-010 : (W) WARNING in ...: Infinite loop. Program may not stop.
232 # There are several infinite loops in the vm, so better suppress.
233 # 1540-0198 : (W) The omitted keyword "private" is assumed for base class "...".
|
40
41 ################################################################################
42 # Platform independent setup
43
44 JVM_LDFLAGS += \
45 $(SHARED_LIBRARY_FLAGS) \
46 $(JVM_LDFLAGS_FEATURES) \
47 $(EXTRA_LDFLAGS) \
48 #
49
50 JVM_ASFLAGS += $(EXTRA_ASFLAGS)
51
52 JVM_LIBS += \
53 $(JVM_LIBS_FEATURES) \
54 #
55
56 # These files and directories are always excluded
57 JVM_EXCLUDE_FILES += args.cc
58 JVM_EXCLUDES += adlc
59
60 # Needed by abstract_vm_version.cpp
61 ifeq ($(call isTargetCpu, x86_64), true)
62 OPENJDK_TARGET_CPU_VM_VERSION := amd64
63 else ifeq ($(call isTargetCpu, sparcv9), true)
64 OPENJDK_TARGET_CPU_VM_VERSION := sparc
65 else
66 OPENJDK_TARGET_CPU_VM_VERSION := $(OPENJDK_TARGET_CPU)
67 endif
68
69 CFLAGS_VM_VERSION := \
70 $(VERSION_CFLAGS) \
71 -DHOTSPOT_VERSION_STRING='"$(VERSION_STRING)"' \
72 -DDEBUG_LEVEL='"$(DEBUG_LEVEL)"' \
73 -DHOTSPOT_BUILD_USER='"$(USERNAME)"' \
74 -DHOTSPOT_VM_DISTRO='"$(HOTSPOT_VM_DISTRO)"' \
75 -DCPU='"$(OPENJDK_TARGET_CPU_VM_VERSION)"' \
76 #
77
78 ################################################################################
79 # Disabled warnings
80
166 # parameter to SetupNativeCompilation allows an empty value to override the
167 # default.
168 JVM_STRIPFLAGS ?= $(STRIPFLAGS)
169
170 # This source set is reused so save in cache.
171 $(call FillFindCache, $(JVM_SRC_DIRS))
172
173 ################################################################################
174 # Now set up the actual compilation of the main hotspot native library
175
176 $(eval $(call SetupNativeCompilation, BUILD_LIBJVM, \
177 NAME := jvm, \
178 TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
179 OUTPUT_DIR := $(JVM_LIB_OUTPUTDIR), \
180 SRC := $(JVM_SRC_DIRS), \
181 EXCLUDES := $(JVM_EXCLUDES), \
182 EXCLUDE_FILES := $(JVM_EXCLUDE_FILES), \
183 EXCLUDE_PATTERNS := $(JVM_EXCLUDE_PATTERNS), \
184 EXTRA_OBJECT_FILES := $(DTRACE_EXTRA_OBJECT_FILES), \
185 CFLAGS := $(JVM_CFLAGS), \
186 abstract_vm_version.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \
187 arguments.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \
188 DISABLED_WARNINGS_gcc := $(DISABLED_WARNINGS_gcc), \
189 DISABLED_WARNINGS_clang := $(DISABLED_WARNINGS_clang), \
190 DISABLED_WARNINGS_solstudio := $(DISABLED_WARNINGS_solstudio), \
191 DISABLED_WARNINGS_xlc := $(DISABLED_WARNINGS_xlc), \
192 DISABLED_WARNINGS_microsoft := $(DISABLED_WARNINGS_microsoft), \
193 ASFLAGS := $(JVM_ASFLAGS), \
194 LDFLAGS := $(JVM_LDFLAGS), \
195 LIBS := $(JVM_LIBS), \
196 OPTIMIZATION := $(JVM_OPTIMIZATION), \
197 OBJECT_DIR := $(JVM_OUTPUTDIR)/objs, \
198 MAPFILE := $(JVM_MAPFILE), \
199 USE_MAPFILE_FOR_SYMBOLS := true, \
200 STRIPFLAGS := $(JVM_STRIPFLAGS), \
201 EMBED_MANIFEST := true, \
202 RC_FLAGS := $(JVM_RCFLAGS), \
203 VERSIONINFO_RESOURCE := $(TOPDIR)/src/hotspot/os/windows/version.rc, \
204 PRECOMPILED_HEADER := $(JVM_PRECOMPILED_HEADER), \
205 PRECOMPILED_HEADER_EXCLUDE := $(JVM_PRECOMPILED_HEADER_EXCLUDE), \
206 DEFINE_THIS_FILE := false, \
207 ))
208
209 # Always recompile abstract_vm_version.cpp if libjvm needs to be relinked. This ensures
210 # that the internal vm version is updated as it relies on __DATE__ and __TIME__
211 # macros.
212 ABSTRACT_VM_VERSION_OBJ := $(JVM_OUTPUTDIR)/objs/abstract_vm_version$(OBJ_SUFFIX)
213 $(ABSTRACT_VM_VERSION_OBJ): $(filter-out $(ABSTRACT_VM_VERSION_OBJ) $(JVM_MAPFILE), \
214 $(BUILD_LIBJVM_TARGET_DEPS))
215
216 ifneq ($(GENERATE_COMPILE_COMMANDS_ONLY), true)
217 ifeq ($(call isTargetOs, windows), true)
218 # It doesn't matter which jvm.lib file gets exported, but we need
219 # to pick just one.
220 ifeq ($(JVM_VARIANT), $(JVM_VARIANT_MAIN))
221 $(eval $(call SetupCopyFiles, COPY_JVM_LIB, \
222 DEST := $(LIB_OUTPUTDIR), \
223 FILES :=$(BUILD_LIBJVM_IMPORT_LIBRARY), \
224 ))
225 TARGETS += $(COPY_JVM_LIB)
226 endif
227 endif
228 endif
229
230 # AIX warning explanation:
231 # 1500-010 : (W) WARNING in ...: Infinite loop. Program may not stop.
232 # There are several infinite loops in the vm, so better suppress.
233 # 1540-0198 : (W) The omitted keyword "private" is assumed for base class "...".
|