< prev index next >

make/hotspot/lib/CompileJvm.gmk

Print this page
rev 56941 : 8233787: Break cycle in vm_version* includes
Reviewed-by:


  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 "...".


< prev index next >