make/lib/CoreLibraries.gmk
branchihse-jdk-library-branch
changeset 56433 c3cf838aa2da
parent 56421 92bea2b7732a
child 56435 e177cddcbf77
equal deleted inserted replaced
56421:92bea2b7732a 56433:c3cf838aa2da
   102   endif
   102   endif
   103 endif
   103 endif
   104 
   104 
   105 $(eval $(call SetupJdkLibrary, BUILD_LIBVERIFY, \
   105 $(eval $(call SetupJdkLibrary, BUILD_LIBVERIFY, \
   106     NAME := verify, \
   106     NAME := verify, \
   107     SRC := $(TOPDIR)/src/java.base/share/native/libverify, \
       
   108     OPTIMIZATION := $(LIBVERIFY_OPTIMIZATION), \
   107     OPTIMIZATION := $(LIBVERIFY_OPTIMIZATION), \
   109     CFLAGS := $(CFLAGS_JDKLIB), \
   108     CFLAGS := $(CFLAGS_JDKLIB), \
   110     DISABLED_WARNINGS_gcc := implicit-fallthrough, \
   109     DISABLED_WARNINGS_gcc := implicit-fallthrough, \
   111     DISABLED_WARNINGS_microsoft := 4244 4267, \
   110     DISABLED_WARNINGS_microsoft := 4244 4267, \
   112     LDFLAGS := $(LDFLAGS_JDKLIB) \
   111     LDFLAGS := $(LDFLAGS_JDKLIB) \
   117 
   116 
   118 TARGETS += $(BUILD_LIBVERIFY)
   117 TARGETS += $(BUILD_LIBVERIFY)
   119 
   118 
   120 ##########################################################################################
   119 ##########################################################################################
   121 
   120 
   122 # Allow a custom makefile to add extra src dirs
   121 LIBJAVA_CFLAGS := -DARCHPROPNAME='"$(OPENJDK_TARGET_CPU_OSARCH)"'
   123 LIBJAVA_SRC_DIRS += $(call FindSrcDirsForLib, java.base, java)
       
   124 
       
   125 LIBJAVA_CFLAGS := $(addprefix -I, $(LIBJAVA_SRC_DIRS)) \
       
   126     -I$(TOPDIR)/src/java.base/share/native/libfdlibm \
       
   127     -I$(SUPPORT_OUTPUTDIR)/headers/java.base \
       
   128     -DARCHPROPNAME='"$(OPENJDK_TARGET_CPU_OSARCH)"'
       
   129 
   122 
   130 ifeq ($(OPENJDK_TARGET_OS), macosx)
   123 ifeq ($(OPENJDK_TARGET_OS), macosx)
   131   BUILD_LIBJAVA_java_props_md.c_CFLAGS := -x objective-c
   124   BUILD_LIBJAVA_java_props_md.c_CFLAGS := -x objective-c
   132   BUILD_LIBJAVA_java_props_macosx.c_CFLAGS := -x objective-c
   125   BUILD_LIBJAVA_java_props_macosx.c_CFLAGS := -x objective-c
   133 endif
   126 endif
   134 
   127 
   135 $(eval $(call SetupJdkLibrary, BUILD_LIBJAVA, \
   128 $(eval $(call SetupJdkLibrary, BUILD_LIBJAVA, \
   136     NAME := java, \
   129     NAME := java, \
   137     SRC := $(LIBJAVA_SRC_DIRS), \
       
   138     OPTIMIZATION := HIGH, \
   130     OPTIMIZATION := HIGH, \
   139     CFLAGS := $(CFLAGS_JDKLIB) \
   131     CFLAGS := $(CFLAGS_JDKLIB) \
   140         $(LIBJAVA_CFLAGS), \
   132         $(LIBJAVA_CFLAGS), \
   141     System.c_CFLAGS := $(VERSION_CFLAGS), \
   133     System.c_CFLAGS := $(VERSION_CFLAGS), \
   142     jdk_util.c_CFLAGS := $(VERSION_CFLAGS), \
   134     jdk_util.c_CFLAGS := $(VERSION_CFLAGS), \
       
   135     HEADER_FLAGS := \
       
   136         -I$(TOPDIR)/src/java.base/share/native/libfdlibm \
       
   137         -I$(SUPPORT_OUTPUTDIR)/headers/java.base, \
   143     WARNINGS_AS_ERRORS_xlc := false, \
   138     WARNINGS_AS_ERRORS_xlc := false, \
   144     DISABLED_WARNINGS_gcc := unused-result, \
   139     DISABLED_WARNINGS_gcc := unused-result, \
   145     DISABLED_WARNINGS_solstudio := E_STATEMENT_NOT_REACHED, \
   140     DISABLED_WARNINGS_solstudio := E_STATEMENT_NOT_REACHED, \
   146     LDFLAGS := $(LDFLAGS_JDKLIB) \
   141     LDFLAGS := $(LDFLAGS_JDKLIB) \
   147         $(call SET_SHARED_LIBRARY_ORIGIN), \
   142         $(call SET_SHARED_LIBRARY_ORIGIN), \
   178 endif
   173 endif
   179 
   174 
   180 $(eval $(call SetupJdkLibrary, BUILD_LIBZIP, \
   175 $(eval $(call SetupJdkLibrary, BUILD_LIBZIP, \
   181     NAME := zip, \
   176     NAME := zip, \
   182     OPTIMIZATION := LOW, \
   177     OPTIMIZATION := LOW, \
   183     SRC := $(TOPDIR)/src/java.base/share/native/libzip, \
       
   184     EXCLUDES := $(LIBZIP_EXCLUDES), \
   178     EXCLUDES := $(LIBZIP_EXCLUDES), \
   185     CFLAGS := $(CFLAGS_JDKLIB) \
   179     CFLAGS := $(CFLAGS_JDKLIB) \
   186         $(LIBZ_CFLAGS) \
   180         $(LIBZ_CFLAGS), \
       
   181     CFLAGS_unix := $(BUILD_LIBZIP_MMAP) -UDEBUG, \
       
   182     HEADER_FLAGS := \
   187         -I$(TOPDIR)/src/java.base/share/native/libjava \
   183         -I$(TOPDIR)/src/java.base/share/native/libjava \
   188         -I$(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjava \
   184         -I$(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjava \
   189         -I$(SUPPORT_OUTPUTDIR)/headers/java.base, \
   185         -I$(SUPPORT_OUTPUTDIR)/headers/java.base, \
   190     CFLAGS_unix := $(BUILD_LIBZIP_MMAP) -UDEBUG, \
       
   191     DISABLED_WARNINGS_gcc := implicit-fallthrough, \
   186     DISABLED_WARNINGS_gcc := implicit-fallthrough, \
   192     LDFLAGS := $(LDFLAGS_JDKLIB) \
   187     LDFLAGS := $(LDFLAGS_JDKLIB) \
   193         $(call SET_SHARED_LIBRARY_ORIGIN), \
   188         $(call SET_SHARED_LIBRARY_ORIGIN), \
   194     LIBS_unix := -ljvm -ljava $(LIBZ_LIBS), \
   189     LIBS_unix := -ljvm -ljava $(LIBZ_LIBS), \
   195     LIBS_windows := jvm.lib $(WIN_JAVA_LIB), \
   190     LIBS_windows := jvm.lib $(WIN_JAVA_LIB), \
   198 $(BUILD_LIBZIP): $(BUILD_LIBJAVA)
   193 $(BUILD_LIBZIP): $(BUILD_LIBJAVA)
   199 
   194 
   200 TARGETS += $(BUILD_LIBZIP)
   195 TARGETS += $(BUILD_LIBZIP)
   201 
   196 
   202 ##########################################################################################
   197 ##########################################################################################
   203 
       
   204 JIMAGELIB_CPPFLAGS := \
       
   205     -I$(TOPDIR)/src/java.base/share/native/libjava \
       
   206     -I$(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjava \
       
   207     -I$(TOPDIR)/src/java.base/share/native/libjimage \
       
   208     -I$(SUPPORT_OUTPUTDIR)/headers/java.base \
       
   209     #
       
   210 
   198 
   211 $(eval $(call SetupJdkLibrary, BUILD_LIBJIMAGE, \
   199 $(eval $(call SetupJdkLibrary, BUILD_LIBJIMAGE, \
   212     NAME := jimage, \
   200     NAME := jimage, \
   213     TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
   201     TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
   214     OPTIMIZATION := LOW, \
   202     OPTIMIZATION := LOW, \
   215     SRC := $(TOPDIR)/src/java.base/share/native/libjimage \
   203     CFLAGS := $(CFLAGS_JDKLIB), \
   216         $(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjimage, \
   204     HEADER_FLAGS := \
   217     EXCLUDES := $(LIBJIMAGE_EXCLUDES), \
   205         -I$(TOPDIR)/src/java.base/share/native/libjava \
   218     CFLAGS := $(CFLAGS_JDKLIB) $(JIMAGELIB_CPPFLAGS), \
   206         -I$(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjava \
   219     CXXFLAGS := $(CXXFLAGS_JDKLIB) $(JIMAGELIB_CPPFLAGS), \
   207         -I$(SUPPORT_OUTPUTDIR)/headers/java.base, \
       
   208     CXXFLAGS := $(CXXFLAGS_JDKLIB), \
   220     DISABLED_WARNINGS_gcc := implicit-fallthrough, \
   209     DISABLED_WARNINGS_gcc := implicit-fallthrough, \
   221     CFLAGS_unix := -UDEBUG, \
   210     CFLAGS_unix := -UDEBUG, \
   222     LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \
   211     LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \
   223         $(call SET_SHARED_LIBRARY_ORIGIN), \
   212         $(call SET_SHARED_LIBRARY_ORIGIN), \
   224     LIBS_unix := -ljvm -ldl $(LIBCXX), \
   213     LIBS_unix := -ljvm -ldl $(LIBCXX), \
   229 $(BUILD_LIBJIMAGE): $(BUILD_LIBJAVA)
   218 $(BUILD_LIBJIMAGE): $(BUILD_LIBJAVA)
   230 
   219 
   231 TARGETS += $(BUILD_LIBJIMAGE)
   220 TARGETS += $(BUILD_LIBJIMAGE)
   232 
   221 
   233 ##########################################################################################
   222 ##########################################################################################
   234 
       
   235 LIBJLI_SRC_DIRS := $(call FindSrcDirsForLib, java.base, jli)
       
   236 
       
   237 LIBJLI_CFLAGS := $(CFLAGS_JDKLIB)
       
   238 
   223 
   239 ifeq ($(call check-jvm-variant, zero), true)
   224 ifeq ($(call check-jvm-variant, zero), true)
   240   ERGO_FAMILY := zero
   225   ERGO_FAMILY := zero
   241 else
   226 else
   242   ifeq ($(OPENJDK_TARGET_CPU_ARCH), x86)
   227   ifeq ($(OPENJDK_TARGET_CPU_ARCH), x86)
   262   LIBJLI_CFLAGS += -DPACKAGE_PATH=\"$(PACKAGE_PATH)\"
   247   LIBJLI_CFLAGS += -DPACKAGE_PATH=\"$(PACKAGE_PATH)\"
   263 endif
   248 endif
   264 
   249 
   265 ifeq ($(OPENJDK_TARGET_OS), windows)
   250 ifeq ($(OPENJDK_TARGET_OS), windows)
   266   # Staticically link with c runtime on windows.
   251   # Staticically link with c runtime on windows.
   267   LIBJLI_CFLAGS := $(filter-out -MD, $(LIBJLI_CFLAGS))
   252   LIBJLI_CFLAGS_JDKLIB := $(filter-out -MD, $(CFLAGS_JDKLIB))
   268   LIBJLI_OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE)
   253   LIBJLI_OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE)
   269   # Supply the name of the C runtime lib.
   254   # Supply the name of the C runtime lib.
   270   LIBJLI_CFLAGS += -DMSVCR_DLL_NAME='"$(notdir $(MSVCR_DLL))"'
   255   LIBJLI_CFLAGS += -DMSVCR_DLL_NAME='"$(notdir $(MSVCR_DLL))"'
   271   ifneq ($(MSVCP_DLL), )
   256   ifneq ($(MSVCP_DLL), )
   272     LIBJLI_CFLAGS += -DMSVCP_DLL_NAME='"$(notdir $(MSVCP_DLL))"'
   257     LIBJLI_CFLAGS += -DMSVCP_DLL_NAME='"$(notdir $(MSVCP_DLL))"'
   273   endif
   258   endif
   274 else
   259 else
       
   260   LIBJLI_CFLAGS_JDKLIB := $(CFLAGS_JDKLIB)
   275   LIBJLI_OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE)/jli
   261   LIBJLI_OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE)/jli
   276 endif
   262 endif
   277 
       
   278 LIBJLI_CFLAGS += $(addprefix -I, $(LIBJLI_SRC_DIRS))
       
   279 
   263 
   280 LIBJLI_CFLAGS += $(LIBZ_CFLAGS)
   264 LIBJLI_CFLAGS += $(LIBZ_CFLAGS)
   281 
   265 
   282 ifneq ($(USE_EXTERNAL_LIBZ), true)
   266 ifneq ($(USE_EXTERNAL_LIBZ), true)
   283   LIBJLI_EXTRA_FILES += \
   267   LIBJLI_EXTRA_FILES += \
   292 endif
   276 endif
   293 
   277 
   294 $(eval $(call SetupJdkLibrary, BUILD_LIBJLI, \
   278 $(eval $(call SetupJdkLibrary, BUILD_LIBJLI, \
   295     NAME := jli, \
   279     NAME := jli, \
   296     OUTPUT_DIR := $(LIBJLI_OUTPUT_DIR), \
   280     OUTPUT_DIR := $(LIBJLI_OUTPUT_DIR), \
   297     SRC := $(LIBJLI_SRC_DIRS), \
       
   298     EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
   281     EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
   299     EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
   282     EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
   300     OPTIMIZATION := HIGH, \
   283     OPTIMIZATION := HIGH, \
   301     CFLAGS := $(LIBJLI_CFLAGS), \
   284     CFLAGS := $(LIBJLI_CFLAGS_JDKLIB) $(LIBJLI_CFLAGS), \
   302     DISABLED_WARNINGS_gcc := maybe-uninitialized, \
   285     DISABLED_WARNINGS_gcc := maybe-uninitialized, \
   303     DISABLED_WARNINGS_solstudio := \
   286     DISABLED_WARNINGS_solstudio := \
   304         E_ASM_DISABLES_OPTIMIZATION \
   287         E_ASM_DISABLES_OPTIMIZATION \
   305         E_STATEMENT_NOT_REACHED, \
   288         E_STATEMENT_NOT_REACHED, \
   306     LDFLAGS := $(LDFLAGS_JDKLIB) \
   289     LDFLAGS := $(LDFLAGS_JDKLIB) \
   314     LIBS_macosx := -framework Cocoa -framework Security -framework ApplicationServices, \
   297     LIBS_macosx := -framework Cocoa -framework Security -framework ApplicationServices, \
   315     LIBS_windows := advapi32.lib comctl32.lib user32.lib, \
   298     LIBS_windows := advapi32.lib comctl32.lib user32.lib, \
   316 ))
   299 ))
   317 
   300 
   318 TARGETS += $(BUILD_LIBJLI)
   301 TARGETS += $(BUILD_LIBJLI)
       
   302 
       
   303 LIBJLI_SRC_DIRS := $(call FindSrcDirsForLib, java.base, jli)
   319 
   304 
   320 # On windows, the static library has the same suffix as the import library created by
   305 # On windows, the static library has the same suffix as the import library created by
   321 # with the shared library, so the static library is given a different name. No harm
   306 # with the shared library, so the static library is given a different name. No harm
   322 # in doing it for all platform to reduce complexity.
   307 # in doing it for all platform to reduce complexity.
   323 ifeq ($(OPENJDK_TARGET_OS), windows)
   308 ifeq ($(OPENJDK_TARGET_OS), windows)
   327       OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
   312       OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
   328       SRC := $(LIBJLI_SRC_DIRS), \
   313       SRC := $(LIBJLI_SRC_DIRS), \
   329       EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
   314       EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
   330       EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
   315       EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
   331       OPTIMIZATION := HIGH, \
   316       OPTIMIZATION := HIGH, \
   332       CFLAGS := $(STATIC_LIBRARY_FLAGS) $(LIBJLI_CFLAGS), \
   317       CFLAGS := $(STATIC_LIBRARY_FLAGS) $(LIBJLI_CFLAGS_JDKLIB) $(LIBJLI_CFLAGS), \
   333       ARFLAGS := $(ARFLAGS), \
   318       ARFLAGS := $(ARFLAGS), \
   334       OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static, \
   319       OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static, \
   335   ))
   320   ))
   336 
   321 
   337   TARGETS += $(BUILD_LIBJLI_STATIC)
   322   TARGETS += $(BUILD_LIBJLI_STATIC)
   346       OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
   331       OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
   347       SRC := $(LIBJLI_SRC_DIRS), \
   332       SRC := $(LIBJLI_SRC_DIRS), \
   348       EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
   333       EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
   349       EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
   334       EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
   350       OPTIMIZATION := HIGH, \
   335       OPTIMIZATION := HIGH, \
   351       CFLAGS := $(CFLAGS_JDKLIB) $(LIBJLI_CFLAGS), \
   336       CFLAGS := $(LIBJLI_CFLAGS_JDKLIB) $(LIBJLI_CFLAGS), \
   352       LDFLAGS := -nostdlib $(ARFLAGS), \
   337       LDFLAGS := -nostdlib $(ARFLAGS), \
   353       OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static, \
   338       OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static, \
   354   ))
   339   ))
   355 
   340 
   356   ifeq ($(STATIC_BUILD), true)
   341   ifeq ($(STATIC_BUILD), true)
   370       OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
   355       OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
   371       SRC := $(LIBJLI_SRC_DIRS), \
   356       SRC := $(LIBJLI_SRC_DIRS), \
   372       EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
   357       EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
   373       EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
   358       EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
   374       OPTIMIZATION := HIGH, \
   359       OPTIMIZATION := HIGH, \
   375       CFLAGS := $(STATIC_LIBRARY_FLAGS) $(LIBJLI_CFLAGS), \
   360       CFLAGS := $(STATIC_LIBRARY_FLAGS) $(LIBJLI_CFLAGS_JDKLIB) $(LIBJLI_CFLAGS), \
   376       ARFLAGS := $(ARFLAGS), \
   361       ARFLAGS := $(ARFLAGS), \
   377       OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static))
   362       OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static))
   378 
   363 
   379   TARGETS += $(BUILD_LIBJLI_STATIC)
   364   TARGETS += $(BUILD_LIBJLI_STATIC)
   380 
   365