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 ARFLAGS := $(ARFLAGS), \ 47 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libfdlibm, \ 48 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 49 50 else 51 52 # On macosx the old build does partial (incremental) linking of fdlibm instead of 53 # a plain static library. 54 $(eval $(call SetupNativeCompilation,BUILD_LIBFDLIBM_MAC, \ 55 LIBRARY := fdlibm, \ 56 OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs/libfdlibm, \ 57 SRC := $(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/src, \ 58 LANG := C, \ 59 CFLAGS := $(CFLAGS_JDKLIB) \ 60 -I$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/include, \ 61 LDFLAGS := -nostdlib -r -arch x86_64, \ 62 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libfdlibm, \ 63 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 64 65 BUILD_LIBFDLIBM := $(JDK_OUTPUTDIR)/objs/$(LIBRARY_PREFIX)fdlibm$(STATIC_LIBRARY_SUFFIX) 66 $(BUILD_LIBFDLIBM): $(BUILD_LIBFDLIBM_MAC) 67 $(call install-file) 68 69 endif 70 71 BUILD_LIBRARIES += $(BUILD_LIBFDLIBM) 72 73 ########################################################################################## 74 75 BUILD_LIBVERIFY_SRC := check_code.c check_format.c 76 77 ifeq ($(OPENJDK_TARGET_OS), solaris) 78 ifneq ($(OPENJDK_TARGET_CPU), x86_64) 79 BUILD_LIBVERIFY_REORDER := $(JDK_TOPDIR)/makefiles/mapfiles/libverify/reorder-$(OPENJDK_TARGET_CPU) 80 endif 81 endif 82 83 LIBVERIFY_OPTIMIZATION := HIGH 84 ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux), ) 85 ifeq ($(ENABLE_DEBUG_SYMBOLS), true) 86 LIBVERIFY_OPTIMIZATION := LOW 87 endif 88 endif 89 90 $(eval $(call SetupNativeCompilation,BUILD_LIBVERIFY, \ 91 LIBRARY := verify, \ 92 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ 93 SRC := $(JDK_TOPDIR)/src/share/native/common, \ 94 INCLUDE_FILES := $(BUILD_LIBVERIFY_SRC), \ 95 LANG := C, \ 96 OPTIMIZATION := $(LIBVERIFY_OPTIMIZATION), \ 97 CFLAGS := $(CFLAGS_JDKLIB), \ 98 MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libverify/mapfile-vers, \ 99 LDFLAGS := $(LDFLAGS_JDKLIB) \ 100 $(call SET_SHARED_LIBRARY_ORIGIN), \ 101 LDFLAGS_SUFFIX_posix := -ljvm -lc, \ 102 LDFLAGS_SUFFIX_windows := jvm.lib, \ 103 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ 104 RC_FLAGS := $(RC_FLAGS) \ 105 -D "JDK_FNAME=verify.dll" \ 106 -D "JDK_INTERNAL_NAME=verify" \ 107 -D "JDK_FTYPE=0x2L", \ 108 REORDER := $(BUILD_LIBVERIFY_REORDER), \ 109 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libverify, \ 110 DEBUG_SYMBOLS := true)) 111 112 BUILD_LIBRARIES += $(BUILD_LIBVERIFY) 113 114 ########################################################################################## 115 116 LIBJAVA_SRC_DIRS := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/lang \ 117 $(JDK_TOPDIR)/src/share/native/java/lang \ 118 $(JDK_TOPDIR)/src/share/native/java/lang/ref \ 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 ifneq ($(OPENJDK_TARGET_OS), macosx) 133 LIBJAVA_SRC_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/util/locale/provider 134 else 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)/makefiles/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)/makefiles/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_macosx := -L$(JDK_OUTPUTDIR)/objs/ -lfdlibm \ 203 -framework CoreFoundation \ 204 -framework Foundation \ 205 -framework Security -framework SystemConfiguration, \ 206 LDFLAGS_SUFFIX_windows := -export:winFileHandleOpen -export:handleLseek \ 207 jvm.lib $(BUILD_LIBFDLIBM) $(WIN_VERIFY_LIB) \ 208 shell32.lib delayimp.lib -DELAYLOAD:shell32.dll \ 209 advapi32.lib, \ 210 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ 211 RC_FLAGS := $(RC_FLAGS) \ 212 -D "JDK_FNAME=java.dll" \ 213 -D "JDK_INTERNAL_NAME=java" \ 214 -D "JDK_FTYPE=0x2L", \ 215 REORDER := $(LIBJAVA_REORDER), \ 216 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjava, \ 217 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 218 219 BUILD_LIBRARIES += $(BUILD_LIBJAVA) 220 221 $(BUILD_LIBJAVA): $(LIBJLI_BINARY) 222 223 $(BUILD_LIBJAVA): $(BUILD_LIBVERIFY) 224 225 $(BUILD_LIBJAVA): $(BUILD_LIBFDLIBM) 226 227 ########################################################################################## 228 229 BUILD_LIBZIP_EXCLUDES := 230 ifeq ($(USE_EXTERNAL_LIBZ), true) 231 LIBZ := -lz 232 LIBZIP_EXCLUDES += zlib-1.2.5 233 else 234 ZLIB_CPPFLAGS := -I$(JDK_TOPDIR)/src/share/native/java/util/zip/zlib-1.2.5 235 endif 236 237 BUILD_LIBZIP_REORDER := 238 ifeq ($(OPENJDK_TARGET_OS), solaris) 239 ifneq ($(OPENJDK_TARGET_CPU), x86_64) 240 BUILD_LIBZIP_REORDER := $(JDK_TOPDIR)/makefiles/mapfiles/libzip/reorder-$(OPENJDK_TARGET_CPU) 241 endif 242 endif 243 244 ifeq ($(LIBZIP_CAN_USE_MMAP), true) 245 BUILD_LIBZIP_MMAP := -DUSE_MMAP 246 endif 247 248 $(eval $(call SetupNativeCompilation,BUILD_LIBZIP, \ 249 LIBRARY := zip, \ 250 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ 251 LANG := C, \ 252 OPTIMIZATION := LOW, \ 253 SRC := $(JDK_TOPDIR)/src/share/native/java/util/zip, \ 254 EXCLUDES := $(LIBZIP_EXCLUDES), \ 255 CFLAGS := $(CFLAGS_JDKLIB) \ 256 $(ZLIB_CPPFLAGS) \ 257 -I$(JDK_TOPDIR)/src/share/native/java/io \ 258 -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/io, \ 259 CFLAGS_posix := $(BUILD_LIBZIP_MMAP) -UDEBUG, \ 260 MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libzip/mapfile-vers, \ 261 REORDER := $(BUILD_LIBZIP_REORDER), \ 262 LDFLAGS := $(LDFLAGS_JDKLIB) \ 263 $(call SET_SHARED_LIBRARY_ORIGIN) \ 264 $(EXPORT_ZIP_FUNCS), \ 265 LDFLAGS_windows := -export:ZIP_Open -export:ZIP_Close -export:ZIP_FindEntry \ 266 -export:ZIP_ReadEntry -export:ZIP_GetNextEntry jvm.lib \ 267 $(WIN_JAVA_LIB), \ 268 LDFLAGS_SUFFIX_linux := -ljvm -ljava $(LIBZ), \ 269 LDFLAGS_SUFFIX_solaris := -ljvm -ljava $(LIBZ) -lc, \ 270 LDFLAGS_SUFFIX_macosx := $(LIBZ) -ljava -ljvm, \ 271 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ 272 RC_FLAGS := $(RC_FLAGS) \ 273 -D "JDK_FNAME=zip.dll" \ 274 -D "JDK_INTERNAL_NAME=zip" \ 275 -D "JDK_FTYPE=0x2L", \ 276 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libzip, \ 277 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 278 279 280 $(BUILD_LIBZIP): $(BUILD_LIBJAVA) 281 282 BUILD_LIBRARIES += $(BUILD_LIBZIP) 283 284 ########################################################################################## 285 286 $(eval $(call SetupNativeCompilation,BUILD_LIBUNPACK, \ 287 LIBRARY := unpack, \ 288 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ 289 SRC := $(JDK_TOPDIR)/src/share/native/com/sun/java/util/jar/pack, \ 290 EXCLUDE_FILES := main.cpp, \ 291 LANG := C++, \ 292 OPTIMIZATION := LOW, \ 293 CFLAGS := $(CXXFLAGS_JDKLIB) \ 294 -DNO_ZLIB -DUNPACK_JNI -DFULL, \ 295 CFLAGS_release := -DPRODUCT, \ 296 MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libunpack/mapfile-vers, \ 297 LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \ 298 $(call SET_SHARED_LIBRARY_ORIGIN), \ 299 LDFLAGS_windows := -map:$(JDK_OUTPUTDIR)/objs/unpack.map -debug \ 300 jvm.lib $(WIN_JAVA_LIB), \ 301 LDFLAGS_SUFFIX_posix := -ljvm $(LIBCXX) -ljava -lc, \ 302 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libunpack, \ 303 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ 304 RC_FLAGS := $(RC_FLAGS) \ 305 -D "JDK_FNAME=unpack.dll" \ 306 -D "JDK_INTERNAL_NAME=unpack" \ 307 -D "JDK_FTYPE=0x2L", \ 308 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 309 310 $(BUILD_LIBUNPACK): $(BUILD_LIBJAVA) 311 312 BUILD_LIBRARIES += $(BUILD_LIBUNPACK) 313 314 ifeq ($(OPENJDK_TARGET_OS), windows) 315 $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)unpack.map: $(BUILD_LIBUNPACK) 316 $(ECHO) Copying $(@F) 317 $(CP) $(patsubst %$(SHARED_LIBRARY_SUFFIX), %.map, $<) $@ 318 319 $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)unpack.pdb: $(BUILD_LIBUNPACK) 320 $(ECHO) Copying $(@F) 321 $(CP) $(patsubst %$(SHARED_LIBRARY_SUFFIX), %.pdb, $<) $@ 322 endif 323 324 ########################################################################################## 325 326 BUILD_LIBJLI_SRC_DIRS := $(JDK_TOPDIR)/src/share/bin $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin 327 LIBJLI_CFLAGS := $(CFLAGS_JDKLIB) $(foreach dir, $(BUILD_LIBJLI_SRC_DIRS), -I$(dir)) 328 329 BUILD_LIBJLI_FILES := \ 330 java.c \ 331 splashscreen_stubs.c \ 332 parse_manifest.c \ 333 version_comp.c \ 334 wildcard.c \ 335 jli_util.c 336 337 ifeq ($(JVM_VARIANT_ZERO), true) 338 ERGO_FAMILY := zero 339 else 340 ifeq ($(OPENJDK_TARGET_CPU_ARCH), x86) 341 ERGO_FAMILY := i586 342 else 343 ERGO_FAMILY := $(OPENJDK_TARGET_CPU_ARCH) 344 endif 345 endif 346 347 ifeq ($(OPENJDK_TARGET_OS), macosx) 348 LIBJLI_CFLAGS += -I$(JDK_TOPDIR)/src/macosx/bin 349 BUILD_LIBJLI_SRC_DIRS += $(JDK_TOPDIR)/src/macosx/bin 350 BUILD_LIBJLI_FILES += java_md_common.c java_md_macosx.c 351 352 BUILD_LIBJLI_java_md_macosx.c_CFLAGS := -x objective-c 353 BUILD_LIBJLI_STATIC_java_md_macosx.c_CFLAGS := -x objective-c 354 endif 355 356 ifeq ($(OPENJDK_TARGET_OS), windows) 357 BUILD_LIBJLI_FILES += java_md.c \ 358 cmdtoargs.c 359 # Staticically link with c runtime on windows. 360 LIBJLI_CFLAGS := $(filter-out -MD, $(LIBJLI_CFLAGS)) 361 else ifneq ($(OPENJDK_TARGET_OS), macosx) 362 363 BUILD_LIBJLI_FILES += java_md_common.c 364 BUILD_LIBJLI_FILES += java_md_solinux.c ergo.c 365 366 ERGO_ARCH_FILE = ergo_$(ERGO_FAMILY).c 367 368 # if the architecture specific ergo file exists then 369 # use it, else use the generic definitions from ergo.c 370 ifneq ($(wildcard $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin/$(ERGO_ARCH_FILE)), ) 371 BUILD_LIBJLI_FILES += $(ERGO_ARCH_FILE) 372 else # !ERGO_ARCH_FILE 373 LIBJLI_CFLAGS += -DUSE_GENERIC_ERGO 374 endif # ERGO_ARCH_FILE 375 endif #WINDOWS 376 377 # Append defines depending on target platform 378 LIBJLI_CFLAGS += $(OPENJDK_TARGET_CPU_JLI_CFLAGS) 379 380 ifeq ($(OPENJDK_TARGET_OS), macosx) 381 LIBJLI_CFLAGS += -DPACKAGE_PATH=\"$(PACKAGE_PATH)\" 382 endif 383 384 ifneq ($(USE_EXTERNAL_LIBZ), true) 385 BUILD_LIBJLI_SRC_DIRS += $(JDK_TOPDIR)/src/share/native/java/util/zip/zlib-1.2.5 386 LIBJLI_CFLAGS += $(ZLIB_CPPFLAGS) 387 BUILD_LIBJLI_FILES += \ 388 inflate.c \ 389 inftrees.c \ 390 inffast.c \ 391 zadler32.c \ 392 zcrc32.c \ 393 zutil.c 394 endif 395 396 ifeq ($(OPENJDK_TARGET_OS), windows) 397 LIBJLI_OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE) 398 else 399 LIBJLI_OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE)/jli 400 endif 401 402 $(eval $(call SetupNativeCompilation,BUILD_LIBJLI, \ 403 LIBRARY := jli, \ 404 OUTPUT_DIR := $(LIBJLI_OUTPUT_DIR), \ 405 SRC := $(BUILD_LIBJLI_SRC_DIRS), \ 406 INCLUDE_FILES := $(BUILD_LIBJLI_FILES), \ 407 LANG := C, \ 408 OPTIMIZATION := HIGH, \ 409 CFLAGS := $(LIBJLI_CFLAGS), \ 410 MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjli/mapfile-vers, \ 411 LDFLAGS := $(LDFLAGS_JDKLIB) \ 412 $(call SET_SHARED_LIBRARY_ORIGIN), \ 413 LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \ 414 LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \ 415 LDFLAGS_macosx := -framework Cocoa -framework Security -framework ApplicationServices, \ 416 LDFLAGS_SUFFIX_solaris := $(LIBZ) $(LIBDL) -lc, \ 417 LDFLAGS_SUFFIX_linux := $(LIBZ) $(LIBDL) -lc -lpthread, \ 418 LDFLAGS_SUFFIX_macosx := $(LIBZ), \ 419 LDFLAGS_SUFFIX_windows := \ 420 -export:JLI_Launch \ 421 -export:JLI_ManifestIterate \ 422 -export:JLI_SetTraceLauncher \ 423 -export:JLI_ReportErrorMessage \ 424 -export:JLI_ReportErrorMessageSys \ 425 -export:JLI_ReportMessage \ 426 -export:JLI_ReportExceptionDescription \ 427 -export:JLI_MemAlloc \ 428 -export:JLI_CmdToArgs \ 429 -export:JLI_GetStdArgc \ 430 -export:JLI_GetStdArgs \ 431 advapi32.lib \ 432 comctl32.lib \ 433 user32.lib, \ 434 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ 435 RC_FLAGS := $(RC_FLAGS) \ 436 -D "JDK_FNAME=jli.dll" \ 437 -D "JDK_INTERNAL_NAME=jli" \ 438 -D "JDK_FTYPE=0x2L", \ 439 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjli, \ 440 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 441 442 BUILD_LIBRARIES += $(BUILD_LIBJLI) 443 444 # On windows, the static library has the same suffix as the import library created by 445 # with the shared library, so the static library is given a different name. No harm 446 # in doing it for all platform to reduce complexity. 447 ifeq ($(OPENJDK_TARGET_OS), windows) 448 $(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC, \ 449 STATIC_LIBRARY := jli_static, \ 450 OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs, \ 451 SRC := $(BUILD_LIBJLI_SRC_DIRS), \ 452 INCLUDE_FILES := $(BUILD_LIBJLI_FILES), \ 453 LANG := C, \ 454 OPTIMIZATION := HIGH, \ 455 CFLAGS := $(STATIC_LIBRARY_FLAGS) $(LIBJLI_CFLAGS), \ 456 ARFLAGS := $(ARFLAGS), \ 457 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjli_static, \ 458 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 459 460 BUILD_LIBRARIES += $(BUILD_LIBJLI_STATIC) 461 462 else ifeq ($(OPENJDK_TARGET_OS), macosx) 463 # 464 # On macosx they do partial (incremental) linking of libjli_static.a 465 # code it here...rather than add support to NativeCompilation 466 # as this is first time I see it 467 $(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC, \ 468 LIBRARY := jli_static, \ 469 OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs, \ 470 SRC := $(BUILD_LIBJLI_SRC_DIRS), \ 471 INCLUDE_FILES := $(BUILD_LIBJLI_FILES), \ 472 LANG := C, \ 473 OPTIMIZATION := HIGH, \ 474 CFLAGS := $(CFLAGS_JDKLIB) $(LIBJLI_CFLAGS), \ 475 LDFLAGS := -nostdlib -r, \ 476 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjli_static, \ 477 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) 478 479 $(JDK_OUTPUTDIR)/objs/libjli_static.a: $(BUILD_LIBJLI_STATIC) 480 $(call install-file) 481 482 BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/objs/libjli_static.a 483 endif 484 485 ########################################################################################## 486 487 $(eval $(call SetupNativeCompilation,BUILD_LIBNPT, \ 488 LIBRARY := npt, \ 489 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ 490 SRC := $(JDK_TOPDIR)/src/share/npt $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt, \ 491 LANG := C, \ 492 OPTIMIZATION := LOW, \ 493 CFLAGS := $(CFLAGS_JDKLIB) \ 494 -I$(JDK_TOPDIR)/src/share/npt \ 495 -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt, \ 496 MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libnpt/mapfile-vers, \ 497 LDFLAGS := $(LDFLAGS_JDKLIB) \ 498 $(call SET_SHARED_LIBRARY_ORIGIN), \ 499 LDFLAGS_macosx := -liconv, \ 500 LDFLAGS_SUFFIX_windows := -export:nptInitialize -export:nptTerminate, \ 501 LDFLAGS_SUFFIX_solaris := -lc, \ 502 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ 503 RC_FLAGS := $(RC_FLAGS) \ 504 -D "JDK_FNAME=npt.dll" \ 505 -D "JDK_INTERNAL_NAME=npt" \ 506 -D "JDK_FTYPE=0x2L", \ 507 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libnpt, \ 508 DEBUG_SYMBOLS := true)) 509 510 BUILD_LIBRARIES += $(BUILD_LIBNPT)