87 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \ 88 )) 89 90 BUILD_LIBFDLIBM := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/$(LIBRARY_PREFIX)fdlibm$(STATIC_LIBRARY_SUFFIX) 91 $(BUILD_LIBFDLIBM): $(BUILD_LIBFDLIBM_MAC) 92 $(call install-file) 93 94 endif 95 96 ########################################################################################## 97 98 LIBVERIFY_OPTIMIZATION := HIGH 99 ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux), ) 100 ifeq ($(COMPILE_WITH_DEBUG_SYMBOLS), true) 101 LIBVERIFY_OPTIMIZATION := LOW 102 endif 103 endif 104 105 $(eval $(call SetupJdkLibrary, BUILD_LIBVERIFY, \ 106 NAME := verify, \ 107 SRC := $(TOPDIR)/src/java.base/share/native/libverify, \ 108 OPTIMIZATION := $(LIBVERIFY_OPTIMIZATION), \ 109 CFLAGS := $(CFLAGS_JDKLIB), \ 110 DISABLED_WARNINGS_gcc := implicit-fallthrough, \ 111 DISABLED_WARNINGS_microsoft := 4244 4267, \ 112 LDFLAGS := $(LDFLAGS_JDKLIB) \ 113 $(call SET_SHARED_LIBRARY_ORIGIN), \ 114 LIBS_unix := -ljvm, \ 115 LIBS_windows := jvm.lib, \ 116 )) 117 118 TARGETS += $(BUILD_LIBVERIFY) 119 120 ########################################################################################## 121 122 # Allow a custom makefile to add extra src dirs 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 130 ifeq ($(OPENJDK_TARGET_OS), macosx) 131 BUILD_LIBJAVA_java_props_md.c_CFLAGS := -x objective-c 132 BUILD_LIBJAVA_java_props_macosx.c_CFLAGS := -x objective-c 133 endif 134 135 $(eval $(call SetupJdkLibrary, BUILD_LIBJAVA, \ 136 NAME := java, \ 137 SRC := $(LIBJAVA_SRC_DIRS), \ 138 OPTIMIZATION := HIGH, \ 139 CFLAGS := $(CFLAGS_JDKLIB) \ 140 $(LIBJAVA_CFLAGS), \ 141 System.c_CFLAGS := $(VERSION_CFLAGS), \ 142 jdk_util.c_CFLAGS := $(VERSION_CFLAGS), \ 143 WARNINGS_AS_ERRORS_xlc := false, \ 144 DISABLED_WARNINGS_gcc := unused-result, \ 145 DISABLED_WARNINGS_solstudio := E_STATEMENT_NOT_REACHED, \ 146 LDFLAGS := $(LDFLAGS_JDKLIB) \ 147 $(call SET_SHARED_LIBRARY_ORIGIN), \ 148 LDFLAGS_macosx := -L$(SUPPORT_OUTPUTDIR)/native/$(MODULE)/, \ 149 LDFLAGS_windows := -delayload:shell32.dll, \ 150 LIBS_unix := -ljvm -lverify, \ 151 LIBS_linux := $(LIBDL) $(BUILD_LIBFDLIBM), \ 152 LIBS_solaris := -lsocket -lnsl -lscf $(LIBDL) $(BUILD_LIBFDLIBM), \ 153 LIBS_aix := $(LIBDL) $(BUILD_LIBFDLIBM) $(LIBM),\ 154 LIBS_macosx := -lfdlibm \ 155 -framework CoreFoundation \ 156 -framework Foundation \ 157 -framework Security -framework SystemConfiguration, \ 158 LIBS_windows := jvm.lib $(BUILD_LIBFDLIBM) $(WIN_VERIFY_LIB) \ 159 shell32.lib delayimp.lib \ 160 advapi32.lib version.lib, \ 161 )) 162 163 TARGETS += $(BUILD_LIBJAVA) 164 165 $(BUILD_LIBJAVA): $(BUILD_LIBVERIFY) 166 167 $(BUILD_LIBJAVA): $(BUILD_LIBFDLIBM) 168 169 ########################################################################################## 170 171 BUILD_LIBZIP_EXCLUDES := 172 ifeq ($(USE_EXTERNAL_LIBZ), true) 173 LIBZIP_EXCLUDES += zlib 174 endif 175 176 ifeq ($(LIBZIP_CAN_USE_MMAP), true) 177 BUILD_LIBZIP_MMAP := -DUSE_MMAP 178 endif 179 180 $(eval $(call SetupJdkLibrary, BUILD_LIBZIP, \ 181 NAME := zip, \ 182 OPTIMIZATION := LOW, \ 183 SRC := $(TOPDIR)/src/java.base/share/native/libzip, \ 184 EXCLUDES := $(LIBZIP_EXCLUDES), \ 185 CFLAGS := $(CFLAGS_JDKLIB) \ 186 $(LIBZ_CFLAGS) \ 187 -I$(TOPDIR)/src/java.base/share/native/libjava \ 188 -I$(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjava \ 189 -I$(SUPPORT_OUTPUTDIR)/headers/java.base, \ 190 CFLAGS_unix := $(BUILD_LIBZIP_MMAP) -UDEBUG, \ 191 LDFLAGS := $(LDFLAGS_JDKLIB) \ 192 $(call SET_SHARED_LIBRARY_ORIGIN), \ 193 LIBS_unix := -ljvm -ljava $(LIBZ_LIBS), \ 194 LIBS_windows := jvm.lib $(WIN_JAVA_LIB), \ 195 )) 196 197 $(BUILD_LIBZIP): $(BUILD_LIBJAVA) 198 199 TARGETS += $(BUILD_LIBZIP) 200 201 ########################################################################################## 202 203 JIMAGELIB_CPPFLAGS := \ 204 -I$(TOPDIR)/src/java.base/share/native/libjava \ 205 -I$(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjava \ 206 -I$(TOPDIR)/src/java.base/share/native/libjimage \ 207 -I$(SUPPORT_OUTPUTDIR)/headers/java.base \ 208 # 209 210 $(eval $(call SetupJdkLibrary, BUILD_LIBJIMAGE, \ 211 NAME := jimage, \ 212 TOOLCHAIN := TOOLCHAIN_LINK_CXX, \ 213 OPTIMIZATION := LOW, \ 214 SRC := $(TOPDIR)/src/java.base/share/native/libjimage \ 215 $(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjimage, \ 216 EXCLUDES := $(LIBJIMAGE_EXCLUDES), \ 217 CFLAGS := $(CFLAGS_JDKLIB) $(JIMAGELIB_CPPFLAGS), \ 218 CXXFLAGS := $(CXXFLAGS_JDKLIB) $(JIMAGELIB_CPPFLAGS), \ 219 DISABLED_WARNINGS_gcc := implicit-fallthrough, \ 220 CFLAGS_unix := -UDEBUG, \ 221 LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \ 222 $(call SET_SHARED_LIBRARY_ORIGIN), \ 223 LIBS_unix := -ljvm -ldl $(LIBCXX), \ 224 LIBS_macosx := -lc++, \ 225 LIBS_windows := jvm.lib, \ 226 )) 227 228 $(BUILD_LIBJIMAGE): $(BUILD_LIBJAVA) 229 230 TARGETS += $(BUILD_LIBJIMAGE) 231 232 ########################################################################################## 233 234 LIBJLI_SRC_DIRS := $(call FindSrcDirsForLib, java.base, jli) 235 236 LIBJLI_CFLAGS := $(CFLAGS_JDKLIB) 237 238 ifeq ($(call check-jvm-variant, zero), true) 239 ERGO_FAMILY := zero 240 else 241 ifeq ($(OPENJDK_TARGET_CPU_ARCH), x86) 242 ERGO_FAMILY := i586 243 else 244 ERGO_FAMILY := $(OPENJDK_TARGET_CPU_ARCH) 245 endif 246 endif 247 LIBJLI_ALL_ERGO := $(wildcard $(addsuffix /ergo_*.c, $(LIBJLI_SRC_DIRS))) 248 LIBJLI_EXCLUDE_ERGO := $(filter-out %/ergo_$(ERGO_FAMILY).c, $(LIBJLI_ALL_ERGO)) 249 # If all specialized ergo files are excluded, use generic ergo 250 ifeq ($(LIBJLI_ALL_ERGO), $(LIBJLI_EXCLUDE_ERGO)) 251 LIBJLI_CFLAGS += -DUSE_GENERIC_ERGO 252 endif 253 LIBJLI_EXCLUDE_FILES += $(notdir $(LIBJLI_EXCLUDE_ERGO)) 254 255 ifeq ($(OPENJDK_TARGET_OS), macosx) 256 LIBJLI_EXCLUDE_FILES += java_md_solinux.c ergo.c ergo_i586.c 257 258 BUILD_LIBJLI_java_md_macosx.c_CFLAGS := -x objective-c 259 BUILD_LIBJLI_STATIC_java_md_macosx.c_CFLAGS := -x objective-c 260 261 LIBJLI_CFLAGS += -DPACKAGE_PATH=\"$(PACKAGE_PATH)\" 262 endif 263 264 ifeq ($(OPENJDK_TARGET_OS), windows) 265 # Staticically link with c runtime on windows. 266 LIBJLI_CFLAGS := $(filter-out -MD, $(LIBJLI_CFLAGS)) 267 LIBJLI_OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE) 268 # Supply the name of the C runtime lib. 269 LIBJLI_CFLAGS += -DMSVCR_DLL_NAME='"$(notdir $(MSVCR_DLL))"' 270 ifneq ($(MSVCP_DLL), ) 271 LIBJLI_CFLAGS += -DMSVCP_DLL_NAME='"$(notdir $(MSVCP_DLL))"' 272 endif 273 else 274 LIBJLI_OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE)/jli 275 endif 276 277 LIBJLI_CFLAGS += $(addprefix -I, $(LIBJLI_SRC_DIRS)) 278 279 LIBJLI_CFLAGS += $(LIBZ_CFLAGS) 280 281 ifneq ($(USE_EXTERNAL_LIBZ), true) 282 LIBJLI_EXTRA_FILES += \ 283 $(addprefix $(TOPDIR)/src/java.base/share/native/libzip/zlib/, \ 284 inflate.c \ 285 inftrees.c \ 286 inffast.c \ 287 zadler32.c \ 288 zcrc32.c \ 289 zutil.c \ 290 ) 291 endif 292 293 $(eval $(call SetupJdkLibrary, BUILD_LIBJLI, \ 294 NAME := jli, \ 295 OUTPUT_DIR := $(LIBJLI_OUTPUT_DIR), \ 296 SRC := $(LIBJLI_SRC_DIRS), \ 297 EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \ 298 EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \ 299 OPTIMIZATION := HIGH, \ 300 CFLAGS := $(LIBJLI_CFLAGS), \ 301 DISABLED_WARNINGS_gcc := maybe-uninitialized, \ 302 DISABLED_WARNINGS_solstudio := \ 303 E_ASM_DISABLES_OPTIMIZATION \ 304 E_STATEMENT_NOT_REACHED, \ 305 LDFLAGS := $(LDFLAGS_JDKLIB) \ 306 $(call SET_SHARED_LIBRARY_ORIGIN), \ 307 LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \ 308 LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \ 309 LIBS_unix := $(LIBZ_LIBS), \ 310 LIBS_linux := $(LIBDL) -lpthread, \ 311 LIBS_solaris := $(LIBDL), \ 312 LIBS_aix := $(LIBDL),\ 313 LIBS_macosx := -framework Cocoa -framework Security -framework ApplicationServices, \ 314 LIBS_windows := advapi32.lib comctl32.lib user32.lib, \ 315 )) 316 317 TARGETS += $(BUILD_LIBJLI) 318 319 # On windows, the static library has the same suffix as the import library created by 320 # with the shared library, so the static library is given a different name. No harm 321 # in doing it for all platform to reduce complexity. 322 ifeq ($(OPENJDK_TARGET_OS), windows) 323 $(eval $(call SetupNativeCompilation, BUILD_LIBJLI_STATIC, \ 324 NAME := jli_static, \ 325 TYPE := STATIC_LIBRARY, \ 326 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \ 327 SRC := $(LIBJLI_SRC_DIRS), \ 328 EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \ 329 EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \ 330 OPTIMIZATION := HIGH, \ 331 CFLAGS := $(STATIC_LIBRARY_FLAGS) $(LIBJLI_CFLAGS), \ 332 ARFLAGS := $(ARFLAGS), \ 333 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static, \ 334 )) 335 336 TARGETS += $(BUILD_LIBJLI_STATIC) 337 338 else ifeq ($(OPENJDK_TARGET_OS), macosx) 339 # 340 # On macosx they do partial (incremental) linking of libjli_static.a 341 # code it here...rather than add support to NativeCompilation 342 # as this is first time I see it 343 $(eval $(call SetupNativeCompilation, BUILD_LIBJLI_STATIC, \ 344 NAME := jli_static, \ 345 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \ 346 SRC := $(LIBJLI_SRC_DIRS), \ 347 EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \ 348 EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \ 349 OPTIMIZATION := HIGH, \ 350 CFLAGS := $(CFLAGS_JDKLIB) $(LIBJLI_CFLAGS), \ 351 LDFLAGS := -nostdlib $(ARFLAGS), \ 352 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static, \ 353 )) 354 355 ifeq ($(STATIC_BUILD), true) 356 TARGETS += $(BUILD_LIBJLI_STATIC) 357 else 358 $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static.a: $(BUILD_LIBJLI_STATIC) 359 $(call install-file) 360 361 TARGETS += $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static.a 362 endif 363 364 else ifeq ($(OPENJDK_TARGET_OS), aix) 365 # AIX also requires a static libjli because the compiler doesn't support '-rpath' 366 $(eval $(call SetupNativeCompilation, BUILD_LIBJLI_STATIC, \ 367 NAME := jli_static, \ 368 TYPE := STATIC_LIBRARY, \ 369 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \ 370 SRC := $(LIBJLI_SRC_DIRS), \ 371 EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \ 372 EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \ 373 OPTIMIZATION := HIGH, \ 374 CFLAGS := $(STATIC_LIBRARY_FLAGS) $(LIBJLI_CFLAGS), \ 375 ARFLAGS := $(ARFLAGS), \ 376 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static)) 377 378 TARGETS += $(BUILD_LIBJLI_STATIC) 379 380 endif | 87 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \ 88 )) 89 90 BUILD_LIBFDLIBM := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/$(LIBRARY_PREFIX)fdlibm$(STATIC_LIBRARY_SUFFIX) 91 $(BUILD_LIBFDLIBM): $(BUILD_LIBFDLIBM_MAC) 92 $(call install-file) 93 94 endif 95 96 ########################################################################################## 97 98 LIBVERIFY_OPTIMIZATION := HIGH 99 ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux), ) 100 ifeq ($(COMPILE_WITH_DEBUG_SYMBOLS), true) 101 LIBVERIFY_OPTIMIZATION := LOW 102 endif 103 endif 104 105 $(eval $(call SetupJdkLibrary, BUILD_LIBVERIFY, \ 106 NAME := verify, \ 107 OPTIMIZATION := $(LIBVERIFY_OPTIMIZATION), \ 108 CFLAGS := $(CFLAGS_JDKLIB), \ 109 DISABLED_WARNINGS_gcc := implicit-fallthrough, \ 110 DISABLED_WARNINGS_microsoft := 4244 4267, \ 111 LDFLAGS := $(LDFLAGS_JDKLIB) \ 112 $(call SET_SHARED_LIBRARY_ORIGIN), \ 113 LIBS_unix := -ljvm, \ 114 LIBS_windows := jvm.lib, \ 115 )) 116 117 TARGETS += $(BUILD_LIBVERIFY) 118 119 ########################################################################################## 120 121 LIBJAVA_CFLAGS := -DARCHPROPNAME='"$(OPENJDK_TARGET_CPU_OSARCH)"' 122 123 ifeq ($(OPENJDK_TARGET_OS), macosx) 124 BUILD_LIBJAVA_java_props_md.c_CFLAGS := -x objective-c 125 BUILD_LIBJAVA_java_props_macosx.c_CFLAGS := -x objective-c 126 endif 127 128 $(eval $(call SetupJdkLibrary, BUILD_LIBJAVA, \ 129 NAME := java, \ 130 OPTIMIZATION := HIGH, \ 131 CFLAGS := $(CFLAGS_JDKLIB) \ 132 $(LIBJAVA_CFLAGS), \ 133 System.c_CFLAGS := $(VERSION_CFLAGS), \ 134 jdk_util.c_CFLAGS := $(VERSION_CFLAGS), \ 135 EXTRA_HEADER_DIRS := libfdlibm, \ 136 WARNINGS_AS_ERRORS_xlc := false, \ 137 DISABLED_WARNINGS_gcc := unused-result, \ 138 DISABLED_WARNINGS_solstudio := E_STATEMENT_NOT_REACHED, \ 139 LDFLAGS := $(LDFLAGS_JDKLIB) \ 140 $(call SET_SHARED_LIBRARY_ORIGIN), \ 141 LDFLAGS_macosx := -L$(SUPPORT_OUTPUTDIR)/native/$(MODULE)/, \ 142 LDFLAGS_windows := -delayload:shell32.dll, \ 143 LIBS_unix := -ljvm -lverify, \ 144 LIBS_linux := $(LIBDL) $(BUILD_LIBFDLIBM), \ 145 LIBS_solaris := -lsocket -lnsl -lscf $(LIBDL) $(BUILD_LIBFDLIBM), \ 146 LIBS_aix := $(LIBDL) $(BUILD_LIBFDLIBM) $(LIBM),\ 147 LIBS_macosx := -lfdlibm \ 148 -framework CoreFoundation \ 149 -framework Foundation \ 150 -framework Security -framework SystemConfiguration, \ 151 LIBS_windows := jvm.lib $(BUILD_LIBFDLIBM) $(WIN_VERIFY_LIB) \ 152 shell32.lib delayimp.lib \ 153 advapi32.lib version.lib, \ 154 )) 155 156 TARGETS += $(BUILD_LIBJAVA) 157 158 $(BUILD_LIBJAVA): $(BUILD_LIBVERIFY) 159 160 $(BUILD_LIBJAVA): $(BUILD_LIBFDLIBM) 161 162 ########################################################################################## 163 164 BUILD_LIBZIP_EXCLUDES := 165 ifeq ($(USE_EXTERNAL_LIBZ), true) 166 LIBZIP_EXCLUDES += zlib 167 endif 168 169 ifeq ($(LIBZIP_CAN_USE_MMAP), true) 170 BUILD_LIBZIP_MMAP := -DUSE_MMAP 171 endif 172 173 $(eval $(call SetupJdkLibrary, BUILD_LIBZIP, \ 174 NAME := zip, \ 175 OPTIMIZATION := LOW, \ 176 EXCLUDES := $(LIBZIP_EXCLUDES), \ 177 CFLAGS := $(CFLAGS_JDKLIB) \ 178 $(LIBZ_CFLAGS), \ 179 CFLAGS_unix := $(BUILD_LIBZIP_MMAP) -UDEBUG, \ 180 LDFLAGS := $(LDFLAGS_JDKLIB) \ 181 $(call SET_SHARED_LIBRARY_ORIGIN), \ 182 LIBS_unix := -ljvm -ljava $(LIBZ_LIBS), \ 183 LIBS_windows := jvm.lib $(WIN_JAVA_LIB), \ 184 )) 185 186 $(BUILD_LIBZIP): $(BUILD_LIBJAVA) 187 188 TARGETS += $(BUILD_LIBZIP) 189 190 ########################################################################################## 191 192 $(eval $(call SetupJdkLibrary, BUILD_LIBJIMAGE, \ 193 NAME := jimage, \ 194 TOOLCHAIN := TOOLCHAIN_LINK_CXX, \ 195 OPTIMIZATION := LOW, \ 196 CFLAGS := $(CFLAGS_JDKLIB), \ 197 CXXFLAGS := $(CXXFLAGS_JDKLIB), \ 198 DISABLED_WARNINGS_gcc := implicit-fallthrough, \ 199 CFLAGS_unix := -UDEBUG, \ 200 LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \ 201 $(call SET_SHARED_LIBRARY_ORIGIN), \ 202 LIBS_unix := -ljvm -ldl $(LIBCXX), \ 203 LIBS_macosx := -lc++, \ 204 LIBS_windows := jvm.lib, \ 205 )) 206 207 $(BUILD_LIBJIMAGE): $(BUILD_LIBJAVA) 208 209 TARGETS += $(BUILD_LIBJIMAGE) 210 211 ########################################################################################## 212 213 ifeq ($(call check-jvm-variant, zero), true) 214 ERGO_FAMILY := zero 215 else 216 ifeq ($(OPENJDK_TARGET_CPU_ARCH), x86) 217 ERGO_FAMILY := i586 218 else 219 ERGO_FAMILY := $(OPENJDK_TARGET_CPU_ARCH) 220 endif 221 endif 222 LIBJLI_ALL_ERGO := $(wildcard $(addsuffix /ergo_*.c, $(LIBJLI_SRC_DIRS))) 223 LIBJLI_EXCLUDE_ERGO := $(filter-out %/ergo_$(ERGO_FAMILY).c, $(LIBJLI_ALL_ERGO)) 224 # If all specialized ergo files are excluded, use generic ergo 225 ifeq ($(LIBJLI_ALL_ERGO), $(LIBJLI_EXCLUDE_ERGO)) 226 LIBJLI_CFLAGS += -DUSE_GENERIC_ERGO 227 endif 228 LIBJLI_EXCLUDE_FILES += $(notdir $(LIBJLI_EXCLUDE_ERGO)) 229 230 ifeq ($(OPENJDK_TARGET_OS), macosx) 231 LIBJLI_EXCLUDE_FILES += java_md_solinux.c ergo.c ergo_i586.c 232 233 BUILD_LIBJLI_java_md_macosx.c_CFLAGS := -x objective-c 234 BUILD_LIBJLI_STATIC_java_md_macosx.c_CFLAGS := -x objective-c 235 236 LIBJLI_CFLAGS += -DPACKAGE_PATH=\"$(PACKAGE_PATH)\" 237 endif 238 239 ifeq ($(OPENJDK_TARGET_OS), windows) 240 # Staticically link with c runtime on windows. 241 LIBJLI_CFLAGS_JDKLIB := $(filter-out -MD, $(CFLAGS_JDKLIB)) 242 LIBJLI_OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE) 243 # Supply the name of the C runtime lib. 244 LIBJLI_CFLAGS += -DMSVCR_DLL_NAME='"$(notdir $(MSVCR_DLL))"' 245 ifneq ($(MSVCP_DLL), ) 246 LIBJLI_CFLAGS += -DMSVCP_DLL_NAME='"$(notdir $(MSVCP_DLL))"' 247 endif 248 else 249 LIBJLI_CFLAGS_JDKLIB := $(CFLAGS_JDKLIB) 250 LIBJLI_OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE)/jli 251 endif 252 253 LIBJLI_CFLAGS += $(LIBZ_CFLAGS) 254 255 ifneq ($(USE_EXTERNAL_LIBZ), true) 256 LIBJLI_EXTRA_FILES += \ 257 $(addprefix $(TOPDIR)/src/java.base/share/native/libzip/zlib/, \ 258 inflate.c \ 259 inftrees.c \ 260 inffast.c \ 261 zadler32.c \ 262 zcrc32.c \ 263 zutil.c \ 264 ) 265 endif 266 267 $(eval $(call SetupJdkLibrary, BUILD_LIBJLI, \ 268 NAME := jli, \ 269 OUTPUT_DIR := $(LIBJLI_OUTPUT_DIR), \ 270 EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \ 271 EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \ 272 OPTIMIZATION := HIGH, \ 273 CFLAGS := $(LIBJLI_CFLAGS_JDKLIB) $(LIBJLI_CFLAGS), \ 274 DISABLED_WARNINGS_gcc := maybe-uninitialized, \ 275 DISABLED_WARNINGS_solstudio := \ 276 E_ASM_DISABLES_OPTIMIZATION \ 277 E_STATEMENT_NOT_REACHED, \ 278 LDFLAGS := $(LDFLAGS_JDKLIB) \ 279 $(call SET_SHARED_LIBRARY_ORIGIN), \ 280 LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \ 281 LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \ 282 LIBS_unix := $(LIBZ_LIBS), \ 283 LIBS_linux := $(LIBDL) -lpthread, \ 284 LIBS_solaris := $(LIBDL), \ 285 LIBS_aix := $(LIBDL),\ 286 LIBS_macosx := -framework Cocoa -framework Security -framework ApplicationServices, \ 287 LIBS_windows := advapi32.lib comctl32.lib user32.lib, \ 288 )) 289 290 TARGETS += $(BUILD_LIBJLI) 291 292 LIBJLI_SRC_DIRS := $(call FindSrcDirsForComponent, java.base, libjli) 293 294 # On windows, the static library has the same suffix as the import library created by 295 # with the shared library, so the static library is given a different name. No harm 296 # in doing it for all platform to reduce complexity. 297 ifeq ($(OPENJDK_TARGET_OS), windows) 298 $(eval $(call SetupNativeCompilation, BUILD_LIBJLI_STATIC, \ 299 NAME := jli_static, \ 300 TYPE := STATIC_LIBRARY, \ 301 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \ 302 SRC := $(LIBJLI_SRC_DIRS), \ 303 EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \ 304 EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \ 305 OPTIMIZATION := HIGH, \ 306 CFLAGS := $(STATIC_LIBRARY_FLAGS) $(LIBJLI_CFLAGS_JDKLIB) $(LIBJLI_CFLAGS) \ 307 $(addprefix -I, $(LIBJLI_SRC_DIRS)), \ 308 ARFLAGS := $(ARFLAGS), \ 309 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static, \ 310 )) 311 312 TARGETS += $(BUILD_LIBJLI_STATIC) 313 314 else ifeq ($(OPENJDK_TARGET_OS), macosx) 315 # 316 # On macosx they do partial (incremental) linking of libjli_static.a 317 # code it here...rather than add support to NativeCompilation 318 # as this is first time I see it 319 $(eval $(call SetupNativeCompilation, BUILD_LIBJLI_STATIC, \ 320 NAME := jli_static, \ 321 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \ 322 SRC := $(LIBJLI_SRC_DIRS), \ 323 EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \ 324 EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \ 325 OPTIMIZATION := HIGH, \ 326 CFLAGS := $(LIBJLI_CFLAGS_JDKLIB) $(LIBJLI_CFLAGS) \ 327 $(addprefix -I, $(LIBJLI_SRC_DIRS)), \ 328 LDFLAGS := -nostdlib $(ARFLAGS), \ 329 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static, \ 330 )) 331 332 ifeq ($(STATIC_BUILD), true) 333 TARGETS += $(BUILD_LIBJLI_STATIC) 334 else 335 $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static.a: $(BUILD_LIBJLI_STATIC) 336 $(call install-file) 337 338 TARGETS += $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static.a 339 endif 340 341 else ifeq ($(OPENJDK_TARGET_OS), aix) 342 # AIX also requires a static libjli because the compiler doesn't support '-rpath' 343 $(eval $(call SetupNativeCompilation, BUILD_LIBJLI_STATIC, \ 344 NAME := jli_static, \ 345 TYPE := STATIC_LIBRARY, \ 346 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \ 347 SRC := $(LIBJLI_SRC_DIRS), \ 348 EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \ 349 EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \ 350 OPTIMIZATION := HIGH, \ 351 CFLAGS := $(STATIC_LIBRARY_FLAGS) $(LIBJLI_CFLAGS_JDKLIB) $(LIBJLI_CFLAGS), \ 352 ARFLAGS := $(ARFLAGS), \ 353 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static)) 354 355 TARGETS += $(BUILD_LIBJLI_STATIC) 356 357 endif |