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