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/share/native/sun/reflect \ 127 $(JDK_TOPDIR)/src/share/native/java/util \ 128 $(JDK_TOPDIR)/src/share/native/java/util/concurrent/atomic \ 129 $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/common \ 130 $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/util 131 132 ifeq ($(OPENJDK_TARGET_OS), windows) 133 LIBJAVA_SRC_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/util/locale/provider 134 else ifeq ($(OPENJDK_TARGET_OS), macosx) 135 LIBJAVA_SRC_DIRS += $(JDK_TOPDIR)/src/macosx/native/sun/util/locale/provider 136 endif 137 138 ifeq ($(OPENJDK_TARGET_OS), windows) 139 LIBJAVA_SRC_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/provider \ 140 $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/io 141 endif 142 143 LIBJAVA_CFLAGS := $(foreach dir, $(LIBJAVA_SRC_DIRS), -I$(dir)) \ 144 -I$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/include \ 145 -DARCHPROPNAME='"$(OPENJDK_TARGET_CPU_OSARCH)"' 146 147 LIBJAVA_CFLAGS += -DJDK_MAJOR_VERSION='"$(JDK_MAJOR_VERSION)"' \ 148 -DJDK_MINOR_VERSION='"$(JDK_MINOR_VERSION)"' \ 149 -DJDK_MICRO_VERSION='"$(JDK_MICRO_VERSION)"' \ 150 -DJDK_BUILD_NUMBER='"$(JDK_BUILD_NUMBER)"' 151 152 ifneq (, $(JDK_UPDATE_VERSION)) 153 LIBJAVA_CFLAGS += -DJDK_UPDATE_VERSION='"$(JDK_UPDATE_VERSION)"' 154 endif 155 156 LIBJAVA_EXCLUDE_FILES := check_code.c check_format.c jspawnhelper.c 157 158 ifneq ($(OPENJDK_TARGET_OS), macosx) 159 LIBJAVA_EXCLUDE_FILES += java_props_macosx.c 160 else 161 BUILD_LIBJAVA_java_props_md.c_CFLAGS := -x objective-c 162 BUILD_LIBJAVA_java_props_macosx.c_CFLAGS := -x objective-c 163 endif 164 165 ifeq ($(OPENJDK_TARGET_OS), windows) 166 LIBJAVA_EXCLUDE_FILES += \ 167 UNIXProcess_md.c \ 168 UnixFileSystem_md.c \ 169 FileSystemPreferences.c 170 else 171 LIBJAVA_EXCLUDE_FILES += \ 172 ProcessImpl_md.c \ 173 WinNTFileSystem_md.c \ 174 dirent_md.c \ 175 WindowsPreferences.c \ 176 sun/security/provider/WinCAPISeedGenerator.c \ 177 sun/io/Win32ErrorMode.c 178 endif 179 180 ifeq ($(OPENJDK_TARGET_OS), solaris) 181 ifneq ($(OPENJDK_TARGET_CPU), x86_64) 182 LIBJAVA_REORDER := $(JDK_TOPDIR)/make/mapfiles/libjava/reorder-$(OPENJDK_TARGET_CPU) 183 endif 184 endif 185 186 $(eval $(call SetupNativeCompilation,BUILD_LIBJAVA, \ 187 LIBRARY := java, \ 188 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ 189 SRC := $(LIBJAVA_SRC_DIRS), \ 190 EXCLUDES := fdlibm/src zip, \ 191 EXCLUDE_FILES := $(LIBJAVA_EXCLUDE_FILES), \ 192 LANG := C, \ 193 OPTIMIZATION := HIGH, \ 194 CFLAGS := $(CFLAGS_JDKLIB) \ 195 $(LIBJAVA_CFLAGS), \ 196 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjava/mapfile-vers, \ 197 LDFLAGS := $(LDFLAGS_JDKLIB) \ 198 $(call SET_SHARED_LIBRARY_ORIGIN), \ 199 LDFLAGS_SUFFIX_posix := -ljvm -lverify, \ 200 LDFLAGS_SUFFIX_solaris := -lsocket -lnsl -lscf $(LIBDL) $(BUILD_LIBFDLIBM) -lc, \ 201 LDFLAGS_SUFFIX_linux := $(LIBDL) $(BUILD_LIBFDLIBM), \ 202 LDFLAGS_SUFFIX_aix := $(LIBDL) $(BUILD_LIBFDLIBM) -lm,\ 203 LDFLAGS_SUFFIX_macosx := -L$(JDK_OUTPUTDIR)/objs/ -lfdlibm \ 204 -framework CoreFoundation \ 205 -framework Foundation \ 206 -framework Security -framework SystemConfiguration, \ 207 LDFLAGS_SUFFIX_windows := -export:winFileHandleOpen -export:handleLseek \ 208 jvm.lib $(BUILD_LIBFDLIBM) $(WIN_VERIFY_LIB) \ 209 shell32.lib delayimp.lib -DELAYLOAD:shell32.dll \ 210 advapi32.lib, \ 211 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ 212 RC_FLAGS := $(RC_FLAGS) \ 213 -D "JDK_FNAME=java.dll" \ 214 -D "JDK_INTERNAL_NAME=java" \ 215 -D "JDK_FTYPE=0x2L", \ 216 REORDER := $(LIBJAVA_REORDER), \ 217 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjava, \ 218 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 219 220 BUILD_LIBRARIES += $(BUILD_LIBJAVA) 221 222 $(BUILD_LIBJAVA): $(LIBJLI_BINARY) 223 224 $(BUILD_LIBJAVA): $(BUILD_LIBVERIFY) 225 226 $(BUILD_LIBJAVA): $(BUILD_LIBFDLIBM) 227 228 ########################################################################################## 229 230 BUILD_LIBZIP_EXCLUDES := 231 ifeq ($(USE_EXTERNAL_LIBZ), true) 232 LIBZ := -lz 233 LIBZIP_EXCLUDES += zlib-1.2.5 234 else 235 ZLIB_CPPFLAGS := -I$(JDK_TOPDIR)/src/share/native/java/util/zip/zlib-1.2.5 236 endif 237 238 BUILD_LIBZIP_REORDER := 239 ifeq ($(OPENJDK_TARGET_OS), solaris) 240 ifneq ($(OPENJDK_TARGET_CPU), x86_64) 241 BUILD_LIBZIP_REORDER := $(JDK_TOPDIR)/make/mapfiles/libzip/reorder-$(OPENJDK_TARGET_CPU) 242 endif 243 endif 244 245 ifeq ($(LIBZIP_CAN_USE_MMAP), true) 246 BUILD_LIBZIP_MMAP := -DUSE_MMAP 247 endif 248 249 $(eval $(call SetupNativeCompilation,BUILD_LIBZIP, \ 250 LIBRARY := zip, \ 251 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ 252 LANG := C, \ 253 OPTIMIZATION := LOW, \ 254 SRC := $(JDK_TOPDIR)/src/share/native/java/util/zip, \ 255 EXCLUDES := $(LIBZIP_EXCLUDES), \ 256 CFLAGS := $(CFLAGS_JDKLIB) \ 257 $(ZLIB_CPPFLAGS) \ 258 -I$(JDK_TOPDIR)/src/share/native/java/io \ 259 -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/io, \ 260 CFLAGS_posix := $(BUILD_LIBZIP_MMAP) -UDEBUG, \ 261 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libzip/mapfile-vers, \ 262 REORDER := $(BUILD_LIBZIP_REORDER), \ 263 LDFLAGS := $(LDFLAGS_JDKLIB) \ 264 $(call SET_SHARED_LIBRARY_ORIGIN) \ 265 $(EXPORT_ZIP_FUNCS), \ 266 LDFLAGS_windows := -export:ZIP_Open -export:ZIP_Close -export:ZIP_FindEntry \ 267 -export:ZIP_ReadEntry -export:ZIP_GetNextEntry jvm.lib \ 268 $(WIN_JAVA_LIB), \ 269 LDFLAGS_SUFFIX_linux := -ljvm -ljava $(LIBZ), \ 270 LDFLAGS_SUFFIX_solaris := -ljvm -ljava $(LIBZ) -lc, \ 271 LDFLAGS_SUFFIX_aix := -ljvm -ljava $(LIBZ),\ 272 LDFLAGS_SUFFIX_macosx := $(LIBZ) -ljava -ljvm, \ 273 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ 274 RC_FLAGS := $(RC_FLAGS) \ 275 -D "JDK_FNAME=zip.dll" \ 276 -D "JDK_INTERNAL_NAME=zip" \ 277 -D "JDK_FTYPE=0x2L", \ 278 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libzip, \ 279 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 280 281 282 $(BUILD_LIBZIP): $(BUILD_LIBJAVA) 283 284 BUILD_LIBRARIES += $(BUILD_LIBZIP) 285 286 ########################################################################################## 287 288 $(eval $(call SetupNativeCompilation,BUILD_LIBUNPACK, \ 289 LIBRARY := unpack, \ 290 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ 291 SRC := $(JDK_TOPDIR)/src/share/native/com/sun/java/util/jar/pack, \ 292 EXCLUDE_FILES := main.cpp, \ 293 LANG := C++, \ 294 OPTIMIZATION := LOW, \ 295 CFLAGS := $(CXXFLAGS_JDKLIB) \ 296 -DNO_ZLIB -DUNPACK_JNI -DFULL, \ 297 CFLAGS_release := -DPRODUCT, \ 298 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libunpack/mapfile-vers, \ 299 LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \ 300 $(call SET_SHARED_LIBRARY_ORIGIN), \ 301 LDFLAGS_windows := -map:$(JDK_OUTPUTDIR)/objs/unpack.map -debug \ 302 jvm.lib $(WIN_JAVA_LIB), \ 303 LDFLAGS_SUFFIX_posix := -ljvm $(LIBCXX) -ljava -lc, \ 304 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libunpack, \ 305 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ 306 RC_FLAGS := $(RC_FLAGS) \ 307 -D "JDK_FNAME=unpack.dll" \ 308 -D "JDK_INTERNAL_NAME=unpack" \ 309 -D "JDK_FTYPE=0x2L", \ 310 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 311 312 $(BUILD_LIBUNPACK): $(BUILD_LIBJAVA) 313 314 BUILD_LIBRARIES += $(BUILD_LIBUNPACK) 315 316 ########################################################################################## 317 318 BUILD_LIBJLI_SRC_DIRS := $(JDK_TOPDIR)/src/share/bin $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin 319 LIBJLI_CFLAGS := $(CFLAGS_JDKLIB) $(foreach dir, $(BUILD_LIBJLI_SRC_DIRS), -I$(dir)) 320 321 BUILD_LIBJLI_FILES := \ 322 java.c \ 323 splashscreen_stubs.c \ 324 parse_manifest.c \ 325 version_comp.c \ 326 wildcard.c \ 327 jli_util.c 328 329 ifeq ($(JVM_VARIANT_ZERO), true) 330 ERGO_FAMILY := zero 331 else 332 ifeq ($(OPENJDK_TARGET_CPU_ARCH), x86) 333 ERGO_FAMILY := i586 334 else 335 ERGO_FAMILY := $(OPENJDK_TARGET_CPU_ARCH) 336 endif 337 endif 338 339 ifeq ($(OPENJDK_TARGET_OS), macosx) 340 LIBJLI_CFLAGS += -I$(JDK_TOPDIR)/src/macosx/bin 341 BUILD_LIBJLI_SRC_DIRS += $(JDK_TOPDIR)/src/macosx/bin 342 BUILD_LIBJLI_FILES += java_md_common.c java_md_macosx.c 343 344 BUILD_LIBJLI_java_md_macosx.c_CFLAGS := -x objective-c 345 BUILD_LIBJLI_STATIC_java_md_macosx.c_CFLAGS := -x objective-c 346 endif 347 348 ifeq ($(OPENJDK_TARGET_OS), windows) 349 BUILD_LIBJLI_FILES += java_md.c \ 350 cmdtoargs.c 351 # Staticically link with c runtime on windows. 352 LIBJLI_CFLAGS := $(filter-out -MD, $(LIBJLI_CFLAGS)) 353 else ifneq ($(OPENJDK_TARGET_OS), macosx) 354 355 BUILD_LIBJLI_FILES += java_md_common.c 356 BUILD_LIBJLI_FILES += java_md_solinux.c ergo.c 357 358 ERGO_ARCH_FILE = ergo_$(ERGO_FAMILY).c 359 360 # if the architecture specific ergo file exists then 361 # use it, else use the generic definitions from ergo.c 362 ifneq ($(wildcard $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin/$(ERGO_ARCH_FILE)), ) 363 BUILD_LIBJLI_FILES += $(ERGO_ARCH_FILE) 364 else # !ERGO_ARCH_FILE 365 LIBJLI_CFLAGS += -DUSE_GENERIC_ERGO 366 endif # ERGO_ARCH_FILE 367 endif #WINDOWS 368 369 # Append defines depending on target platform 370 LIBJLI_CFLAGS += $(OPENJDK_TARGET_CPU_JLI_CFLAGS) 371 372 ifeq ($(OPENJDK_TARGET_OS), macosx) 373 LIBJLI_CFLAGS += -DPACKAGE_PATH=\"$(PACKAGE_PATH)\" 374 endif 375 376 ifneq ($(USE_EXTERNAL_LIBZ), true) 377 BUILD_LIBJLI_SRC_DIRS += $(JDK_TOPDIR)/src/share/native/java/util/zip/zlib-1.2.5 378 LIBJLI_CFLAGS += $(ZLIB_CPPFLAGS) 379 BUILD_LIBJLI_FILES += \ 380 inflate.c \ 381 inftrees.c \ 382 inffast.c \ 383 zadler32.c \ 384 zcrc32.c \ 385 zutil.c 386 endif 387 388 ifeq ($(OPENJDK_TARGET_OS), windows) 389 LIBJLI_OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE) 390 else 391 LIBJLI_OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE)/jli 392 endif 393 394 $(eval $(call SetupNativeCompilation,BUILD_LIBJLI, \ 395 LIBRARY := jli, \ 396 OUTPUT_DIR := $(LIBJLI_OUTPUT_DIR), \ 397 SRC := $(BUILD_LIBJLI_SRC_DIRS), \ 398 INCLUDE_FILES := $(BUILD_LIBJLI_FILES), \ 399 LANG := C, \ 400 OPTIMIZATION := HIGH, \ 401 CFLAGS := $(LIBJLI_CFLAGS), \ 402 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjli/mapfile-vers, \ 403 LDFLAGS := $(LDFLAGS_JDKLIB) \ 404 $(call SET_SHARED_LIBRARY_ORIGIN), \ 405 LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \ 406 LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \ 407 LDFLAGS_macosx := -framework Cocoa -framework Security -framework ApplicationServices, \ 408 LDFLAGS_SUFFIX_solaris := $(LIBZ) $(LIBDL) -lc, \ 409 LDFLAGS_SUFFIX_linux := $(LIBZ) $(LIBDL) -lc -lpthread, \ 410 LDFLAGS_SUFFIX_aix := $(LIBZ) $(LIBDL),\ 411 LDFLAGS_SUFFIX_macosx := $(LIBZ), \ 412 LDFLAGS_SUFFIX_windows := \ 413 -export:JLI_Launch \ 414 -export:JLI_ManifestIterate \ 415 -export:JLI_SetTraceLauncher \ 416 -export:JLI_ReportErrorMessage \ 417 -export:JLI_ReportErrorMessageSys \ 418 -export:JLI_ReportMessage \ 419 -export:JLI_ReportExceptionDescription \ 420 -export:JLI_MemAlloc \ 421 -export:JLI_CmdToArgs \ 422 -export:JLI_GetStdArgc \ 423 -export:JLI_GetStdArgs \ 424 advapi32.lib \ 425 comctl32.lib \ 426 user32.lib, \ 427 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ 428 RC_FLAGS := $(RC_FLAGS) \ 429 -D "JDK_FNAME=jli.dll" \ 430 -D "JDK_INTERNAL_NAME=jli" \ 431 -D "JDK_FTYPE=0x2L", \ 432 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjli, \ 433 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 434 435 BUILD_LIBRARIES += $(BUILD_LIBJLI) 436 437 # On windows, the static library has the same suffix as the import library created by 438 # with the shared library, so the static library is given a different name. No harm 439 # in doing it for all platform to reduce complexity. 440 ifeq ($(OPENJDK_TARGET_OS), windows) 441 $(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC, \ 442 STATIC_LIBRARY := jli_static, \ 443 OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs, \ 444 SRC := $(BUILD_LIBJLI_SRC_DIRS), \ 445 INCLUDE_FILES := $(BUILD_LIBJLI_FILES), \ 446 LANG := C, \ 447 OPTIMIZATION := HIGH, \ 448 CFLAGS := $(STATIC_LIBRARY_FLAGS) $(LIBJLI_CFLAGS), \ 449 ARFLAGS := $(ARFLAGS), \ 450 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjli_static, \ 451 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 452 453 BUILD_LIBRARIES += $(BUILD_LIBJLI_STATIC) 454 455 else ifeq ($(OPENJDK_TARGET_OS), macosx) 456 # 457 # On macosx they do partial (incremental) linking of libjli_static.a 458 # code it here...rather than add support to NativeCompilation 459 # as this is first time I see it 460 $(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC, \ 461 LIBRARY := jli_static, \ 462 OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs, \ 463 SRC := $(BUILD_LIBJLI_SRC_DIRS), \ 464 INCLUDE_FILES := $(BUILD_LIBJLI_FILES), \ 465 LANG := C, \ 466 OPTIMIZATION := HIGH, \ 467 CFLAGS := $(CFLAGS_JDKLIB) $(LIBJLI_CFLAGS), \ 468 LDFLAGS := -nostdlib -r, \ 469 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjli_static, \ 470 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 471 472 $(JDK_OUTPUTDIR)/objs/libjli_static.a: $(BUILD_LIBJLI_STATIC) 473 $(call install-file) 474 475 BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/objs/libjli_static.a 476 477 else ifeq ($(OPENJDK_TARGET_OS), aix) 478 # AIX also requires a static libjli because the compiler doesn't support '-rpath' 479 $(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC,\ 480 STATIC_LIBRARY:=jli_static,\ 481 OUTPUT_DIR:=$(JDK_OUTPUTDIR)/objs,\ 482 SRC:=$(BUILD_LIBJLI_SRC_DIRS),\ 483 INCLUDE_FILES:=$(BUILD_LIBJLI_FILES),\ 484 LANG:=C,\ 485 OPTIMIZATION:=HIGH, \ 486 CFLAGS:=$(STATIC_LIBRARY_FLAGS) $(LIBJLI_CFLAGS),\ 487 ARFLAGS:=$(ARFLAGS),\ 488 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjli_static)) 489 490 BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/objs/libjli_static.a 491 492 endif 493 494 ########################################################################################## 495 496 $(eval $(call SetupNativeCompilation,BUILD_LIBNPT, \ 497 LIBRARY := npt, \ 498 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ 499 SRC := $(JDK_TOPDIR)/src/share/npt $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt, \ 500 LANG := C, \ 501 OPTIMIZATION := LOW, \ 502 CFLAGS := $(CFLAGS_JDKLIB) \ 503 -I$(JDK_TOPDIR)/src/share/npt \ 504 -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt, \ 505 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libnpt/mapfile-vers, \ 506 LDFLAGS := $(LDFLAGS_JDKLIB) \ 507 $(call SET_SHARED_LIBRARY_ORIGIN), \ 508 LDFLAGS_macosx := -liconv, \ 509 LDFLAGS_SUFFIX_windows := -export:nptInitialize -export:nptTerminate, \ 510 LDFLAGS_SUFFIX_solaris := -lc, \ 511 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ 512 RC_FLAGS := $(RC_FLAGS) \ 513 -D "JDK_FNAME=npt.dll" \ 514 -D "JDK_INTERNAL_NAME=npt" \ 515 -D "JDK_FTYPE=0x2L", \ 516 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libnpt, \ 517 DEBUG_SYMBOLS := true)) 518 519 BUILD_LIBRARIES += $(BUILD_LIBNPT)