1 # 2 # Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. 3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 # 5 # This code is free software; you can redistribute it and/or modify it 6 # under the terms of the GNU General Public License version 2 only, as 7 # published by the Free Software Foundation. Oracle designates this 8 # particular file as subject to the "Classpath" exception as provided 9 # by Oracle in the LICENSE file that accompanied this code. 10 # 11 # This code is distributed in the hope that it will be useful, but WITHOUT 12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 # version 2 for more details (a copy is included in the LICENSE file that 15 # accompanied this code). 16 # 17 # You should have received a copy of the GNU General Public License version 18 # 2 along with this work; if not, write to the Free Software Foundation, 19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 # 21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 # or visit www.oracle.com if you need additional information or have any 23 # questions. 24 # 25 26 WIN_VERIFY_LIB := $(JDK_OUTPUTDIR)/objs/libverify/verify.lib 27 28 ########################################################################################## 29 30 BUILD_LIBFDLIBM_OPTIMIZATION := HIGH 31 32 ifneq ($(OPENJDK_TARGET_OS), solaris) 33 BUILD_LIBFDLIBM_OPTIMIZATION := NONE 34 endif 35 36 ifneq ($(OPENJDK_TARGET_OS), macosx) 37 $(eval $(call SetupNativeCompilation,BUILD_LIBFDLIBM, \ 38 STATIC_LIBRARY := fdlibm, \ 39 OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs, \ 40 SRC := $(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/src, \ 41 LANG := C, \ 42 OPTIMIZATION := $(BUILD_LIBFDLIBM_OPTIMIZATION), \ 43 CFLAGS := $(CFLAGS_JDKLIB) \ 44 -I$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/include, \ 45 CFLAGS_windows_debug := -DLOGGING, \ 46 CFLAGS_aix := -qfloat=nomaf, \ 47 ARFLAGS := $(ARFLAGS), \ 48 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libfdlibm, \ 49 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 50 51 else 52 53 # On macosx the old build does partial (incremental) linking of fdlibm instead of 54 # a plain static library. 55 $(eval $(call SetupNativeCompilation,BUILD_LIBFDLIBM_MAC, \ 56 LIBRARY := fdlibm, \ 57 OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs/libfdlibm, \ 58 SRC := $(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/src, \ 59 LANG := C, \ 60 CFLAGS := $(CFLAGS_JDKLIB) \ 61 -I$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/include, \ 62 LDFLAGS := -nostdlib -r -arch x86_64, \ 63 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libfdlibm, \ 64 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 65 66 BUILD_LIBFDLIBM := $(JDK_OUTPUTDIR)/objs/$(LIBRARY_PREFIX)fdlibm$(STATIC_LIBRARY_SUFFIX) 67 $(BUILD_LIBFDLIBM): $(BUILD_LIBFDLIBM_MAC) 68 $(call install-file) 69 70 endif 71 72 BUILD_LIBRARIES += $(BUILD_LIBFDLIBM) 73 74 ########################################################################################## 75 76 BUILD_LIBVERIFY_SRC := check_code.c check_format.c 77 78 ifeq ($(OPENJDK_TARGET_OS), solaris) 79 ifneq ($(OPENJDK_TARGET_CPU), x86_64) 80 BUILD_LIBVERIFY_REORDER := $(JDK_TOPDIR)/make/mapfiles/libverify/reorder-$(OPENJDK_TARGET_CPU) 81 endif 82 endif 83 84 LIBVERIFY_OPTIMIZATION := HIGH 85 ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux), ) 86 ifeq ($(ENABLE_DEBUG_SYMBOLS), true) 87 LIBVERIFY_OPTIMIZATION := LOW 88 endif 89 endif 90 91 $(eval $(call SetupNativeCompilation,BUILD_LIBVERIFY, \ 92 LIBRARY := verify, \ 93 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ 94 SRC := $(JDK_TOPDIR)/src/share/native/common, \ 95 INCLUDE_FILES := $(BUILD_LIBVERIFY_SRC), \ 96 LANG := C, \ 97 OPTIMIZATION := $(LIBVERIFY_OPTIMIZATION), \ 98 CFLAGS := $(CFLAGS_JDKLIB), \ 99 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libverify/mapfile-vers, \ 100 LDFLAGS := $(LDFLAGS_JDKLIB) \ 101 $(call SET_SHARED_LIBRARY_ORIGIN), \ 102 LDFLAGS_SUFFIX_posix := -ljvm -lc, \ 103 LDFLAGS_SUFFIX_windows := jvm.lib, \ 104 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ 105 RC_FLAGS := $(RC_FLAGS) \ 106 -D "JDK_FNAME=verify.dll" \ 107 -D "JDK_INTERNAL_NAME=verify" \ 108 -D "JDK_FTYPE=0x2L", \ 109 REORDER := $(BUILD_LIBVERIFY_REORDER), \ 110 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libverify, \ 111 DEBUG_SYMBOLS := true)) 112 113 BUILD_LIBRARIES += $(BUILD_LIBVERIFY) 114 115 ########################################################################################## 116 117 LIBJAVA_SRC_DIRS := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/lang \ 118 $(JDK_TOPDIR)/src/share/native/java/lang \ 119 $(JDK_TOPDIR)/src/share/native/java/lang/reflect \ 120 $(JDK_TOPDIR)/src/share/native/java/io \ 121 $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/io \ 122 $(JDK_TOPDIR)/src/share/native/java/nio \ 123 $(JDK_TOPDIR)/src/share/native/java/security \ 124 $(JDK_TOPDIR)/src/share/native/common \ 125 $(JDK_TOPDIR)/src/share/native/sun/misc \ 126 $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/misc \ 127 $(JDK_TOPDIR)/src/share/native/sun/reflect \ 128 $(JDK_TOPDIR)/src/share/native/java/util \ 129 $(JDK_TOPDIR)/src/share/native/java/util/concurrent/atomic \ 130 $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/common \ 131 $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/util 132 133 ifeq ($(OPENJDK_TARGET_OS), windows) 134 LIBJAVA_SRC_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/util/locale/provider 135 else ifeq ($(OPENJDK_TARGET_OS), macosx) 136 LIBJAVA_SRC_DIRS += $(JDK_TOPDIR)/src/macosx/native/sun/util/locale/provider 137 endif 138 139 ifeq ($(OPENJDK_TARGET_OS), windows) 140 LIBJAVA_SRC_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/provider \ 141 $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/io 142 endif 143 144 LIBJAVA_CFLAGS := $(foreach dir, $(LIBJAVA_SRC_DIRS), -I$(dir)) \ 145 -I$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/include \ 146 -DARCHPROPNAME='"$(OPENJDK_TARGET_CPU_OSARCH)"' 147 148 LIBJAVA_CFLAGS += -DJDK_MAJOR_VERSION='"$(JDK_MAJOR_VERSION)"' \ 149 -DJDK_MINOR_VERSION='"$(JDK_MINOR_VERSION)"' \ 150 -DJDK_MICRO_VERSION='"$(JDK_MICRO_VERSION)"' \ 151 -DJDK_BUILD_NUMBER='"$(JDK_BUILD_NUMBER)"' 152 153 ifneq (, $(JDK_UPDATE_VERSION)) 154 LIBJAVA_CFLAGS += -DJDK_UPDATE_VERSION='"$(JDK_UPDATE_VERSION)"' 155 endif 156 157 LIBJAVA_EXCLUDE_FILES := check_code.c check_format.c jspawnhelper.c 158 159 ifneq ($(OPENJDK_TARGET_OS), macosx) 160 LIBJAVA_EXCLUDE_FILES += java_props_macosx.c 161 else 162 BUILD_LIBJAVA_java_props_md.c_CFLAGS := -x objective-c 163 BUILD_LIBJAVA_java_props_macosx.c_CFLAGS := -x objective-c 164 endif 165 166 ifeq ($(OPENJDK_TARGET_OS), windows) 167 LIBJAVA_EXCLUDE_FILES += \ 168 UNIXProcess_md.c \ 169 UnixFileSystem_md.c \ 170 FileSystemPreferences.c 171 else 172 LIBJAVA_EXCLUDE_FILES += \ 173 ProcessImpl_md.c \ 174 WinNTFileSystem_md.c \ 175 dirent_md.c \ 176 WindowsPreferences.c \ 177 sun/security/provider/WinCAPISeedGenerator.c \ 178 sun/io/Win32ErrorMode.c 179 endif 180 181 ifeq ($(OPENJDK_TARGET_OS), solaris) 182 ifneq ($(OPENJDK_TARGET_CPU), x86_64) 183 LIBJAVA_REORDER := $(JDK_TOPDIR)/make/mapfiles/libjava/reorder-$(OPENJDK_TARGET_CPU) 184 endif 185 endif 186 187 $(eval $(call SetupNativeCompilation,BUILD_LIBJAVA, \ 188 LIBRARY := java, \ 189 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ 190 SRC := $(LIBJAVA_SRC_DIRS), \ 191 EXCLUDES := fdlibm/src zip prefs, \ 192 EXCLUDE_FILES := $(LIBJAVA_EXCLUDE_FILES), \ 193 LANG := C, \ 194 OPTIMIZATION := HIGH, \ 195 CFLAGS := $(CFLAGS_JDKLIB) \ 196 $(LIBJAVA_CFLAGS), \ 197 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjava/mapfile-vers, \ 198 LDFLAGS := $(LDFLAGS_JDKLIB) \ 199 $(call SET_SHARED_LIBRARY_ORIGIN), \ 200 LDFLAGS_SUFFIX_posix := -ljvm -lverify, \ 201 LDFLAGS_SUFFIX_solaris := -lsocket -lnsl -lscf $(LIBDL) $(BUILD_LIBFDLIBM) -lc, \ 202 LDFLAGS_SUFFIX_linux := $(LIBDL) $(BUILD_LIBFDLIBM), \ 203 LDFLAGS_SUFFIX_aix := $(LIBDL) $(BUILD_LIBFDLIBM) -lm,\ 204 LDFLAGS_SUFFIX_macosx := -L$(JDK_OUTPUTDIR)/objs/ -lfdlibm \ 205 -framework CoreFoundation \ 206 -framework Foundation \ 207 -framework Security -framework SystemConfiguration, \ 208 LDFLAGS_SUFFIX_windows := -export:winFileHandleOpen -export:handleLseek \ 209 jvm.lib $(BUILD_LIBFDLIBM) $(WIN_VERIFY_LIB) \ 210 shell32.lib delayimp.lib -DELAYLOAD:shell32.dll \ 211 advapi32.lib, \ 212 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ 213 RC_FLAGS := $(RC_FLAGS) \ 214 -D "JDK_FNAME=java.dll" \ 215 -D "JDK_INTERNAL_NAME=java" \ 216 -D "JDK_FTYPE=0x2L", \ 217 REORDER := $(LIBJAVA_REORDER), \ 218 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjava, \ 219 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 220 221 BUILD_LIBRARIES += $(BUILD_LIBJAVA) 222 223 $(BUILD_LIBJAVA): $(LIBJLI_BINARY) 224 225 $(BUILD_LIBJAVA): $(BUILD_LIBVERIFY) 226 227 $(BUILD_LIBJAVA): $(BUILD_LIBFDLIBM) 228 229 ########################################################################################## 230 231 BUILD_LIBZIP_EXCLUDES := 232 ifeq ($(USE_EXTERNAL_LIBZ), true) 233 LIBZ := -lz 234 LIBZIP_EXCLUDES += zlib-1.2.5 235 else 236 ZLIB_CPPFLAGS := -I$(JDK_TOPDIR)/src/share/native/java/util/zip/zlib-1.2.5 237 endif 238 239 BUILD_LIBZIP_REORDER := 240 ifeq ($(OPENJDK_TARGET_OS), solaris) 241 ifneq ($(OPENJDK_TARGET_CPU), x86_64) 242 BUILD_LIBZIP_REORDER := $(JDK_TOPDIR)/make/mapfiles/libzip/reorder-$(OPENJDK_TARGET_CPU) 243 endif 244 endif 245 246 ifeq ($(LIBZIP_CAN_USE_MMAP), true) 247 BUILD_LIBZIP_MMAP := -DUSE_MMAP 248 endif 249 250 $(eval $(call SetupNativeCompilation,BUILD_LIBZIP, \ 251 LIBRARY := zip, \ 252 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ 253 LANG := C, \ 254 OPTIMIZATION := LOW, \ 255 SRC := $(JDK_TOPDIR)/src/share/native/java/util/zip, \ 256 EXCLUDES := $(LIBZIP_EXCLUDES), \ 257 CFLAGS := $(CFLAGS_JDKLIB) \ 258 $(ZLIB_CPPFLAGS) \ 259 -I$(JDK_TOPDIR)/src/share/native/java/io \ 260 -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/io, \ 261 CFLAGS_posix := $(BUILD_LIBZIP_MMAP) -UDEBUG, \ 262 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libzip/mapfile-vers, \ 263 REORDER := $(BUILD_LIBZIP_REORDER), \ 264 LDFLAGS := $(LDFLAGS_JDKLIB) \ 265 $(call SET_SHARED_LIBRARY_ORIGIN) \ 266 $(EXPORT_ZIP_FUNCS), \ 267 LDFLAGS_windows := -export:ZIP_Open -export:ZIP_Close -export:ZIP_FindEntry \ 268 -export:ZIP_ReadEntry -export:ZIP_GetNextEntry jvm.lib \ 269 $(WIN_JAVA_LIB), \ 270 LDFLAGS_SUFFIX_linux := -ljvm -ljava $(LIBZ), \ 271 LDFLAGS_SUFFIX_solaris := -ljvm -ljava $(LIBZ) -lc, \ 272 LDFLAGS_SUFFIX_aix := -ljvm -ljava $(LIBZ),\ 273 LDFLAGS_SUFFIX_macosx := $(LIBZ) -ljava -ljvm, \ 274 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ 275 RC_FLAGS := $(RC_FLAGS) \ 276 -D "JDK_FNAME=zip.dll" \ 277 -D "JDK_INTERNAL_NAME=zip" \ 278 -D "JDK_FTYPE=0x2L", \ 279 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libzip, \ 280 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 281 282 283 $(BUILD_LIBZIP): $(BUILD_LIBJAVA) 284 285 BUILD_LIBRARIES += $(BUILD_LIBZIP) 286 287 ########################################################################################## 288 289 ifeq ($(OPENJDK_TARGET_OS), macosx) 290 LIBPREF_SRC_DIRS := $(JDK_TOPDIR)/src/macosx/native/java/util/prefs 291 else 292 LIBPREF_SRC_DIRS := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/util/prefs 293 endif 294 295 $(eval $(call SetupNativeCompilation,BUILD_LIBPREFS, \ 296 LIBRARY := prefs, \ 297 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ 298 SRC := $(LIBPREF_SRC_DIRS), \ 299 LANG := C, \ 300 OPTIMIZATION := HIGH, \ 301 CFLAGS := $(CFLAGS_JDKLIB), \ 302 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libprefs/mapfile-vers, \ 303 LDFLAGS := $(LDFLAGS_JDKLIB) \ 304 $(call SET_SHARED_LIBRARY_ORIGIN), \ 305 LDFLAGS_SUFFIX_linux := -ljvm -ljava, \ 306 LDFLAGS_SUFFIX_solaris := -ljvm -ljava -lc, \ 307 LDFLAGS_SUFFIX_aix := -ljvm -ljava, \ 308 LDFLAGS_SUFFIX_windows := advapi32.lib jvm.lib $(WIN_JAVA_LIB), \ 309 LDFLAGS_SUFFIX_macosx := -ljvm -framework CoreFoundation, \ 310 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ 311 RC_FLAGS := $(RC_FLAGS) \ 312 -D "JDK_FNAME=prefs.dll" \ 313 -D "JDK_INTERNAL_NAME=prefs" \ 314 -D "JDK_FTYPE=0x2L", \ 315 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libprefs, \ 316 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 317 318 $(BUILD_LIBPREFS): $(BUILD_LIBJAVA) 319 320 BUILD_LIBRARIES += $(BUILD_LIBPREFS) 321 322 ########################################################################################## 323 324 $(eval $(call SetupNativeCompilation,BUILD_LIBUNPACK, \ 325 LIBRARY := unpack, \ 326 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ 327 SRC := $(JDK_TOPDIR)/src/share/native/com/sun/java/util/jar/pack, \ 328 EXCLUDE_FILES := main.cpp, \ 329 LANG := C++, \ 330 OPTIMIZATION := LOW, \ 331 CFLAGS := $(CXXFLAGS_JDKLIB) \ 332 -DNO_ZLIB -DUNPACK_JNI -DFULL, \ 333 CFLAGS_release := -DPRODUCT, \ 334 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libunpack/mapfile-vers, \ 335 LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \ 336 $(call SET_SHARED_LIBRARY_ORIGIN), \ 337 LDFLAGS_windows := -map:$(JDK_OUTPUTDIR)/objs/unpack.map -debug \ 338 jvm.lib $(WIN_JAVA_LIB), \ 339 LDFLAGS_SUFFIX_posix := -ljvm $(LIBCXX) -ljava -lc, \ 340 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libunpack, \ 341 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ 342 RC_FLAGS := $(RC_FLAGS) \ 343 -D "JDK_FNAME=unpack.dll" \ 344 -D "JDK_INTERNAL_NAME=unpack" \ 345 -D "JDK_FTYPE=0x2L", \ 346 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 347 348 $(BUILD_LIBUNPACK): $(BUILD_LIBJAVA) 349 350 BUILD_LIBRARIES += $(BUILD_LIBUNPACK) 351 352 ########################################################################################## 353 354 BUILD_LIBJLI_SRC_DIRS := $(JDK_TOPDIR)/src/share/bin $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin 355 LIBJLI_CFLAGS := $(CFLAGS_JDKLIB) $(foreach dir, $(BUILD_LIBJLI_SRC_DIRS), -I$(dir)) 356 357 BUILD_LIBJLI_FILES := \ 358 java.c \ 359 splashscreen_stubs.c \ 360 parse_manifest.c \ 361 version_comp.c \ 362 wildcard.c \ 363 jli_util.c 364 365 ifeq ($(JVM_VARIANT_ZERO), true) 366 ERGO_FAMILY := zero 367 else 368 ifeq ($(OPENJDK_TARGET_CPU_ARCH), x86) 369 ERGO_FAMILY := i586 370 else 371 ERGO_FAMILY := $(OPENJDK_TARGET_CPU_ARCH) 372 endif 373 endif 374 375 ifeq ($(OPENJDK_TARGET_OS), macosx) 376 LIBJLI_CFLAGS += -I$(JDK_TOPDIR)/src/macosx/bin 377 BUILD_LIBJLI_SRC_DIRS += $(JDK_TOPDIR)/src/macosx/bin 378 BUILD_LIBJLI_FILES += java_md_common.c java_md_macosx.c 379 380 BUILD_LIBJLI_java_md_macosx.c_CFLAGS := -x objective-c 381 BUILD_LIBJLI_STATIC_java_md_macosx.c_CFLAGS := -x objective-c 382 endif 383 384 ifeq ($(OPENJDK_TARGET_OS), windows) 385 BUILD_LIBJLI_FILES += java_md.c \ 386 cmdtoargs.c 387 # Staticically link with c runtime on windows. 388 LIBJLI_CFLAGS := $(filter-out -MD, $(LIBJLI_CFLAGS)) 389 else ifneq ($(OPENJDK_TARGET_OS), macosx) 390 391 BUILD_LIBJLI_FILES += java_md_common.c 392 BUILD_LIBJLI_FILES += java_md_solinux.c ergo.c 393 394 ERGO_ARCH_FILE = ergo_$(ERGO_FAMILY).c 395 396 # if the architecture specific ergo file exists then 397 # use it, else use the generic definitions from ergo.c 398 ifneq ($(wildcard $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin/$(ERGO_ARCH_FILE)), ) 399 BUILD_LIBJLI_FILES += $(ERGO_ARCH_FILE) 400 else # !ERGO_ARCH_FILE 401 LIBJLI_CFLAGS += -DUSE_GENERIC_ERGO 402 endif # ERGO_ARCH_FILE 403 endif #WINDOWS 404 405 # Append defines depending on target platform 406 LIBJLI_CFLAGS += $(OPENJDK_TARGET_CPU_JLI_CFLAGS) 407 408 ifeq ($(OPENJDK_TARGET_OS), macosx) 409 LIBJLI_CFLAGS += -DPACKAGE_PATH=\"$(PACKAGE_PATH)\" 410 endif 411 412 ifneq ($(USE_EXTERNAL_LIBZ), true) 413 BUILD_LIBJLI_SRC_DIRS += $(JDK_TOPDIR)/src/share/native/java/util/zip/zlib-1.2.5 414 LIBJLI_CFLAGS += $(ZLIB_CPPFLAGS) 415 BUILD_LIBJLI_FILES += \ 416 inflate.c \ 417 inftrees.c \ 418 inffast.c \ 419 zadler32.c \ 420 zcrc32.c \ 421 zutil.c 422 endif 423 424 ifeq ($(OPENJDK_TARGET_OS), windows) 425 LIBJLI_OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE) 426 else 427 LIBJLI_OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE)/jli 428 endif 429 430 $(eval $(call SetupNativeCompilation,BUILD_LIBJLI, \ 431 LIBRARY := jli, \ 432 OUTPUT_DIR := $(LIBJLI_OUTPUT_DIR), \ 433 SRC := $(BUILD_LIBJLI_SRC_DIRS), \ 434 INCLUDE_FILES := $(BUILD_LIBJLI_FILES), \ 435 LANG := C, \ 436 OPTIMIZATION := HIGH, \ 437 CFLAGS := $(LIBJLI_CFLAGS), \ 438 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjli/mapfile-vers, \ 439 LDFLAGS := $(LDFLAGS_JDKLIB) \ 440 $(call SET_SHARED_LIBRARY_ORIGIN), \ 441 LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \ 442 LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \ 443 LDFLAGS_macosx := -framework Cocoa -framework Security -framework ApplicationServices, \ 444 LDFLAGS_SUFFIX_solaris := $(LIBZ) $(LIBDL) -lc, \ 445 LDFLAGS_SUFFIX_linux := $(LIBZ) $(LIBDL) -lc -lpthread, \ 446 LDFLAGS_SUFFIX_aix := $(LIBZ) $(LIBDL),\ 447 LDFLAGS_SUFFIX_macosx := $(LIBZ), \ 448 LDFLAGS_SUFFIX_windows := \ 449 -export:JLI_Launch \ 450 -export:JLI_ManifestIterate \ 451 -export:JLI_SetTraceLauncher \ 452 -export:JLI_ReportErrorMessage \ 453 -export:JLI_ReportErrorMessageSys \ 454 -export:JLI_ReportMessage \ 455 -export:JLI_ReportExceptionDescription \ 456 -export:JLI_MemAlloc \ 457 -export:JLI_CmdToArgs \ 458 -export:JLI_GetStdArgc \ 459 -export:JLI_GetStdArgs \ 460 advapi32.lib \ 461 comctl32.lib \ 462 user32.lib, \ 463 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ 464 RC_FLAGS := $(RC_FLAGS) \ 465 -D "JDK_FNAME=jli.dll" \ 466 -D "JDK_INTERNAL_NAME=jli" \ 467 -D "JDK_FTYPE=0x2L", \ 468 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjli, \ 469 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 470 471 BUILD_LIBRARIES += $(BUILD_LIBJLI) 472 473 # On windows, the static library has the same suffix as the import library created by 474 # with the shared library, so the static library is given a different name. No harm 475 # in doing it for all platform to reduce complexity. 476 ifeq ($(OPENJDK_TARGET_OS), windows) 477 $(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC, \ 478 STATIC_LIBRARY := jli_static, \ 479 OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs, \ 480 SRC := $(BUILD_LIBJLI_SRC_DIRS), \ 481 INCLUDE_FILES := $(BUILD_LIBJLI_FILES), \ 482 LANG := C, \ 483 OPTIMIZATION := HIGH, \ 484 CFLAGS := $(STATIC_LIBRARY_FLAGS) $(LIBJLI_CFLAGS), \ 485 ARFLAGS := $(ARFLAGS), \ 486 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjli_static, \ 487 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 488 489 BUILD_LIBRARIES += $(BUILD_LIBJLI_STATIC) 490 491 else ifeq ($(OPENJDK_TARGET_OS), macosx) 492 # 493 # On macosx they do partial (incremental) linking of libjli_static.a 494 # code it here...rather than add support to NativeCompilation 495 # as this is first time I see it 496 $(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC, \ 497 LIBRARY := jli_static, \ 498 OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs, \ 499 SRC := $(BUILD_LIBJLI_SRC_DIRS), \ 500 INCLUDE_FILES := $(BUILD_LIBJLI_FILES), \ 501 LANG := C, \ 502 OPTIMIZATION := HIGH, \ 503 CFLAGS := $(CFLAGS_JDKLIB) $(LIBJLI_CFLAGS), \ 504 LDFLAGS := -nostdlib -r, \ 505 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjli_static, \ 506 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 507 508 $(JDK_OUTPUTDIR)/objs/libjli_static.a: $(BUILD_LIBJLI_STATIC) 509 $(call install-file) 510 511 BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/objs/libjli_static.a 512 513 else ifeq ($(OPENJDK_TARGET_OS), aix) 514 # AIX also requires a static libjli because the compiler doesn't support '-rpath' 515 $(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC,\ 516 STATIC_LIBRARY:=jli_static,\ 517 OUTPUT_DIR:=$(JDK_OUTPUTDIR)/objs,\ 518 SRC:=$(BUILD_LIBJLI_SRC_DIRS),\ 519 INCLUDE_FILES:=$(BUILD_LIBJLI_FILES),\ 520 LANG:=C,\ 521 OPTIMIZATION:=HIGH, \ 522 CFLAGS:=$(STATIC_LIBRARY_FLAGS) $(LIBJLI_CFLAGS),\ 523 ARFLAGS:=$(ARFLAGS),\ 524 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjli_static)) 525 526 BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/objs/libjli_static.a 527 528 endif 529 530 ########################################################################################## 531 532 $(eval $(call SetupNativeCompilation,BUILD_LIBNPT, \ 533 LIBRARY := npt, \ 534 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ 535 SRC := $(JDK_TOPDIR)/src/share/npt $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt, \ 536 LANG := C, \ 537 OPTIMIZATION := LOW, \ 538 CFLAGS := $(CFLAGS_JDKLIB) \ 539 -I$(JDK_TOPDIR)/src/share/npt \ 540 -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt, \ 541 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libnpt/mapfile-vers, \ 542 LDFLAGS := $(LDFLAGS_JDKLIB) \ 543 $(call SET_SHARED_LIBRARY_ORIGIN), \ 544 LDFLAGS_macosx := -liconv, \ 545 LDFLAGS_SUFFIX_windows := -export:nptInitialize -export:nptTerminate, \ 546 LDFLAGS_SUFFIX_solaris := -lc, \ 547 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ 548 RC_FLAGS := $(RC_FLAGS) \ 549 -D "JDK_FNAME=npt.dll" \ 550 -D "JDK_INTERNAL_NAME=npt" \ 551 -D "JDK_FTYPE=0x2L", \ 552 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libnpt, \ 553 DEBUG_SYMBOLS := true)) 554 555 BUILD_LIBRARIES += $(BUILD_LIBNPT)