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 defalt: all
  27 
  28 include $(SPEC)
  29 include MakeBase.gmk
  30 include NativeCompilation.gmk
  31 
  32 # Setup the java compilers for the JDK build.
  33 include Setup.gmk
  34 
  35 # Copy files (can now depend on $(COPY_FILES))
  36 include CopyFiles.gmk
  37 
  38 # Prepare the find cache. Only used if running on windows.
  39 $(eval $(call FillCacheFind,$(JDK_TOPDIR)/src))
  40 
  41 # Build tools
  42 include Tools.gmk
  43 
  44 # Include the javah generated headers.
  45 CFLAGS_JDKLIB += -I$(JDK_OUTPUTDIR)/gensrc_headers
  46 CXXFLAGS_JDKLIB += -I$(JDK_OUTPUTDIR)/gensrc_headers
  47 
  48 # Put the libraries here. Different locations for different target apis.
  49 ifeq ($(OPENJDK_TARGET_OS_API),posix)
  50     INSTALL_LIBRARIES_HERE:=$(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)
  51 else
  52     INSTALL_LIBRARIES_HERE:=$(JDK_OUTPUTDIR)/bin
  53 endif
  54 
  55 BUILD_LIBRARIES=
  56 
  57 # Absolute paths to lib files on windows for use in LDFLAGS. Should figure out a more
  58 # elegant solution to this.
  59 WIN_VERIFY_LIB := $(JDK_OUTPUTDIR)/objs/libverify/verify.lib
  60 WIN_JAVA_LIB := $(JDK_OUTPUTDIR)/objs/libjava/java.lib
  61 WIN_AWT_LIB := $(JDK_OUTPUTDIR)/objs/libawt/awt.lib
  62 
  63 # Use this variable to set DEBUG_SYMBOLS true on windows for all libraries, but
  64 # not on other platforms.
  65 ifeq ($(OPENJDK_TARGET_OS), windows)
  66     DEBUG_ALL_BINARIES := true
  67 endif
  68 
  69 # Build everything with debugging on OpenJDK
  70 ifdef OPENJDK
  71     DEBUG_ALL_BINARIES := true
  72 endif
  73 
  74 #
  75 # TODO replace with X_FLAGS / X_LIBS
  76 #   and add them to configure
  77 #
  78 OPENWIN_LIB:=$(OPENWIN_HOME)/lib
  79 
  80 ##########################################################################################
  81 
  82 BUILD_LIBFDLIBM_OPTIMIZATION:=HIGH
  83 
  84 ifneq ($(OPENJDK_TARGET_OS), solaris)
  85       BUILD_LIBFDLIBM_OPTIMIZATION:=NONE
  86 endif
  87 
  88 ifneq ($(OPENJDK_TARGET_OS),macosx)
  89 $(eval $(call SetupNativeCompilation,BUILD_LIBFDLIBM,\
  90                 STATIC_LIBRARY:=fdlibm,\
  91                 OUTPUT_DIR:=$(JDK_OUTPUTDIR)/objs,\
  92                 SRC:=$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/src,\
  93                 LANG:=C,\
  94                 OPTIMIZATION:=$(BUILD_LIBFDLIBM_OPTIMIZATION), \
  95                 CFLAGS:=$(CFLAGS_JDKLIB) \
  96                         -I$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/include,\
  97                 CFLAGS_windows_debug:=-DLOGGING,\
  98                 ARFLAGS:=$(ARFLAGS),\
  99                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libfdlibm,\
 100                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
 101 
 102 else
 103 
 104 # On macosx the old build does partial (incremental) linking of fdlibm instead of
 105 # a plain static library.
 106 $(eval $(call SetupNativeCompilation,BUILD_LIBFDLIBM_MAC,\
 107                 LIBRARY:=fdlibm,\
 108                 OUTPUT_DIR:=$(JDK_OUTPUTDIR)/objs/libfdlibm,\
 109                 SRC:=$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/src,\
 110                 LANG:=C,\
 111                 CFLAGS:=$(CFLAGS_JDKLIB) \
 112                         -I$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/include,\
 113                 LDFLAGS:=-nostdlib -r -arch x86_64,\
 114                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libfdlibm,\
 115                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
 116 
 117 BUILD_LIBFDLIBM := $(JDK_OUTPUTDIR)/objs/$(LIBRARY_PREFIX)fdlibm$(STATIC_LIBRARY_SUFFIX)
 118 $(BUILD_LIBFDLIBM) : $(BUILD_LIBFDLIBM_MAC)
 119         $(call install-file)
 120 
 121 endif
 122 BUILD_LIBRARIES += $(BUILD_LIBFDLIBM)
 123 
 124 ##########################################################################################
 125 
 126 BUILD_LIBVERIFY_SRC:=check_code.c check_format.c
 127 
 128 ifeq ($(OPENJDK_TARGET_OS), solaris)
 129         ifneq ($(OPENJDK_TARGET_CPU), x86_64)
 130                 BUILD_LIBVERIFY_REORDER:=$(JDK_TOPDIR)/makefiles/mapfiles/libverify/reorder-$(OPENJDK_TARGET_CPU)
 131         endif
 132 endif
 133 
 134 LIBVERIFY_OPTIMIZATION:=HIGH
 135 ifneq ($(findstring $(OPENJDK_TARGET_OS),solaris linux),)
 136     ifeq ($(ENABLE_DEBUG_SYMBOLS), true)
 137         LIBVERIFY_OPTIMIZATION:=LOW
 138     endif
 139 endif
 140 
 141 
 142 $(eval $(call SetupNativeCompilation,BUILD_LIBVERIFY,\
 143                 LIBRARY:=verify, \
 144                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
 145                 SRC:=$(JDK_TOPDIR)/src/share/native/common,\
 146                 INCLUDE_FILES:=$(BUILD_LIBVERIFY_SRC),\
 147                 LANG:=C,\
 148                 OPTIMIZATION:=$(LIBVERIFY_OPTIMIZATION), \
 149                 CFLAGS:=$(CFLAGS_JDKLIB),\
 150                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libverify/mapfile-vers, \
 151                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
 152                          $(call SET_SHARED_LIBRARY_ORIGIN), \
 153                 LDFLAGS_SUFFIX_posix:=-ljvm -lc,\
 154                 LDFLAGS_SUFFIX_windows:=jvm.lib,\
 155                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
 156                 RC_FLAGS:=$(RC_FLAGS) \
 157                           -D "JDK_FNAME=verify.dll" \
 158                           -D "JDK_INTERNAL_NAME=verify" \
 159                           -D "JDK_FTYPE=0x2L",\
 160                 REORDER:=$(BUILD_LIBVERIFY_REORDER),\
 161                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libverify,\
 162                 DEBUG_SYMBOLS:=true))
 163 
 164 BUILD_LIBRARIES += $(BUILD_LIBVERIFY)
 165 
 166 ##########################################################################################
 167 
 168 LIBJAVA_SRC_DIRS:=$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/lang \
 169                 $(JDK_TOPDIR)/src/share/native/java/lang \
 170                 $(JDK_TOPDIR)/src/share/native/java/lang/ref \
 171                 $(JDK_TOPDIR)/src/share/native/java/lang/reflect \
 172                 $(JDK_TOPDIR)/src/share/native/java/io \
 173                 $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/io \
 174                 $(JDK_TOPDIR)/src/share/native/java/nio \
 175                 $(JDK_TOPDIR)/src/share/native/java/security \
 176                 $(JDK_TOPDIR)/src/share/native/common \
 177                 $(JDK_TOPDIR)/src/share/native/sun/misc \
 178                 $(JDK_TOPDIR)/src/share/native/sun/reflect \
 179                 $(JDK_TOPDIR)/src/share/native/java/util \
 180                 $(JDK_TOPDIR)/src/share/native/java/util/concurrent/atomic \
 181                 $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/common \
 182                 $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/util
 183 
 184 ifneq ($(OPENJDK_TARGET_OS),macosx)
 185     LIBJAVA_SRC_DIRS+=$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/util/locale/provider
 186 else
 187     LIBJAVA_SRC_DIRS+=$(JDK_TOPDIR)/src/macosx/native/sun/util/locale/provider
 188 endif
 189 
 190 ifeq ($(OPENJDK_TARGET_OS),windows)
 191     LIBJAVA_SRC_DIRS+=$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/provider \
 192                 $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/io
 193 endif
 194 
 195 LIBJAVA_CFLAGS:=$(foreach dir,$(LIBJAVA_SRC_DIRS),-I$(dir)) \
 196                   -I$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/include \
 197                   -DARCHPROPNAME='"$(OPENJDK_TARGET_CPU_OSARCH)"'
 198 
 199 LIBJAVA_CFLAGS += -DJDK_MAJOR_VERSION='"$(JDK_MAJOR_VERSION)"' \
 200                   -DJDK_MINOR_VERSION='"$(JDK_MINOR_VERSION)"' \
 201                   -DJDK_MICRO_VERSION='"$(JDK_MICRO_VERSION)"' \
 202                   -DJDK_BUILD_NUMBER='"$(JDK_BUILD_NUMBER)"' 
 203 
 204 ifneq (,$(JDK_UPDATE_VERSION))
 205         LIBJAVA_CFLAGS += -DJDK_UPDATE_VERSION='"$(JDK_UPDATE_VERSION)"'
 206 endif
 207 
 208 LIBJAVA_EXCLUDE_FILES:=check_code.c check_format.c
 209 
 210 ifneq ($(OPENJDK_TARGET_OS),macosx)
 211         LIBJAVA_EXCLUDE_FILES += java_props_macosx.c
 212 else
 213         BUILD_LIBJAVA_java_props_md.c_CFLAGS:=-x objective-c
 214 endif
 215 
 216 ifeq ($(OPENJDK_TARGET_OS),windows)
 217         LIBJAVA_EXCLUDE_FILES += \
 218                 UNIXProcess_md.c \
 219                 UnixFileSystem_md.c \
 220                 FileSystemPreferences.c
 221 else
 222         LIBJAVA_EXCLUDE_FILES += \
 223                 ProcessImpl_md.c \
 224                 WinNTFileSystem_md.c \
 225                 dirent_md.c \
 226                 WindowsPreferences.c \
 227                 sun/security/provider/WinCAPISeedGenerator.c \
 228                 sun/io/Win32ErrorMode.c
 229 endif
 230 
 231 ifeq ($(OPENJDK_TARGET_OS), solaris)
 232     ifneq ($(OPENJDK_TARGET_CPU), x86_64)
 233         LIBJAVA_REORDER:=$(JDK_TOPDIR)/makefiles/mapfiles/libjava/reorder-$(OPENJDK_TARGET_CPU)
 234     endif
 235 endif
 236 
 237 $(eval $(call SetupNativeCompilation,BUILD_LIBJAVA,\
 238                 LIBRARY:=java,\
 239                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
 240                 SRC:=$(LIBJAVA_SRC_DIRS),\
 241                 EXCLUDES:=fdlibm/src zip, \
 242                 EXCLUDE_FILES:=$(LIBJAVA_EXCLUDE_FILES), \
 243                 LANG:=C,\
 244                 OPTIMIZATION:=HIGH, \
 245                 CFLAGS:=$(CFLAGS_JDKLIB) \
 246                         $(LIBJAVA_CFLAGS),\
 247                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjava/mapfile-vers, \
 248                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
 249                          $(call SET_SHARED_LIBRARY_ORIGIN), \
 250                 LDFLAGS_SUFFIX_posix:=-ljvm -lverify, \
 251                 LDFLAGS_SUFFIX_solaris:=-lsocket -lnsl -lscf $(LIBDL) $(BUILD_LIBFDLIBM) -lc,\
 252                 LDFLAGS_SUFFIX_linux:=$(LIBDL) $(BUILD_LIBFDLIBM),\
 253                 LDFLAGS_SUFFIX_macosx:=-L$(JDK_OUTPUTDIR)/objs/ -lfdlibm \
 254                                          -framework CoreFoundation \
 255                                          -framework Security -framework SystemConfiguration, \
 256                 LDFLAGS_SUFFIX_windows:=-export:winFileHandleOpen -export:handleLseek \
 257                                         jvm.lib $(BUILD_LIBFDLIBM) $(WIN_VERIFY_LIB) \
 258                                         shell32.lib delayimp.lib -DELAYLOAD:shell32.dll \
 259                                         advapi32.lib,\
 260                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
 261                 RC_FLAGS:=$(RC_FLAGS)\
 262                           -D "JDK_FNAME=java.dll" \
 263                           -D "JDK_INTERNAL_NAME=java" \
 264                           -D "JDK_FTYPE=0x2L",\
 265                 REORDER:=$(LIBJAVA_REORDER), \
 266                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjava,\
 267                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
 268 
 269 BUILD_LIBRARIES += $(BUILD_LIBJAVA)
 270 
 271 $(BUILD_LIBJAVA) : $(LIBJLI_BINARY)
 272 
 273 $(BUILD_LIBJAVA) : $(BUILD_LIBVERIFY)
 274 
 275 $(BUILD_LIBJAVA) : $(BUILD_LIBFDLIBM)
 276 
 277 ##########################################################################################
 278 
 279 BUILD_LIBMLIB_SRC:=$(JDK_TOPDIR)/src/share/native/sun/awt/medialib
 280 BUILD_LIBMLIB_CFLAGS:=-D__USE_J2D_NAMES -D__MEDIALIB_OLD_NAMES \
 281                         -I$(BUILD_LIBMLIB_SRC) \
 282                         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt/medialib 
 283 
 284 BUILD_LIBMLIB_LDLIBS:=
 285 BUILD_LIBMLIB_IMAGE_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libmlib_image/mapfile-vers
 286 
 287 BUILD_LIBMLIB_CFLAGS += -DMLIB_NO_LIBSUNMATH
 288 
 289 ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
 290         BUILD_LIBMLIB_CFLAGS += -DMLIB_OS64BIT
 291 endif
 292 
 293 ifneq ($(OPENJDK_TARGET_OS), windows)
 294         BUILD_LIBMLIB_LDLIBS += $(LIBM) $(LIBDL)
 295 endif
 296 
 297 $(eval $(call SetupNativeCompilation,BUILD_LIBMLIB_IMAGE,\
 298                 LIBRARY:=mlib_image,\
 299                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
 300                 SRC:=$(BUILD_LIBMLIB_SRC),\
 301                 EXCLUDE_FILES:=awt_ImagingLib.c mlib_c_ImageBlendTable.c,\
 302                 LANG:=C,\
 303                 OPTIMIZATION:=HIGHEST, \
 304                 CFLAGS:=$(CFLAGS_JDKLIB) \
 305                         $(BUILD_LIBMLIB_CFLAGS),\
 306                 MAPFILE:=$(BUILD_LIBMLIB_IMAGE_MAPFILE), \
 307                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
 308                          $(call SET_SHARED_LIBRARY_ORIGIN),\
 309                 LDFLAGS_SUFFIX:=$(BUILD_LIBMLIB_LDLIBS) \
 310                                 $(LDFLAGS_JDKLIB_SUFFIX),\
 311                 LDFLAGS_SUFFIX_solaris:=-lc, \
 312                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
 313                 RC_FLAGS:=$(RC_FLAGS)\
 314                           -D "JDK_FNAME=mlib_image.dll" \
 315                           -D "JDK_INTERNAL_NAME=mlib_image" \
 316                           -D "JDK_FTYPE=0x2L",\
 317                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libmlib_image,\
 318                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
 319 
 320 $(BUILD_LIBMLIB_IMAGE) : $(BUILD_LIBJAVA)
 321 
 322 BUILD_LIBRARIES += $(BUILD_LIBMLIB_IMAGE)
 323 
 324 ##########################################################################################
 325 
 326 ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH),solaris-sparc)
 327 
 328 BUILD_LIBMLIB_IMAGE_V_FILES:=\
 329         mlib_v_ImageLookUp.c \
 330         mlib_ImageCreate.c \
 331         mlib_ImageAffine.c \
 332         mlib_ImageConvMxN.c \
 333         mlib_ImageConvKernelConvert.c \
 334         mlib_sys.c \
 335         mlib_ImageLookUp_64.c \
 336         mlib_ImageLookUp_Bit.c \
 337         mlib_ImageColorTrue2Index.c \
 338         mlib_c_ImageThresh1_U8.c \
 339         mlib_v_ImageLookUpS16S16Func.c \
 340         mlib_v_ImageLookUpS16S32Func.c \
 341         mlib_v_ImageLookUpS16U16Func.c \
 342         mlib_v_ImageLookUpS16U8Func.c \
 343         mlib_v_ImageLookUpS32S16Func.c \
 344         mlib_v_ImageLookUpS32S32Func.c \
 345         mlib_v_ImageLookUpS32U16Func.c \
 346         mlib_v_ImageLookUpS32U8Func.c \
 347         mlib_v_ImageLookUpSIS16S16Func.c \
 348         mlib_v_ImageLookUpSIS16S32Func.c \
 349         mlib_v_ImageLookUpSIS16U16Func.c \
 350         mlib_v_ImageLookUpSIS16U8Func.c \
 351         mlib_v_ImageLookUpSIS32S16Func.c \
 352         mlib_v_ImageLookUpSIS32S32Func.c \
 353         mlib_v_ImageLookUpSIS32U16Func.c \
 354         mlib_v_ImageLookUpSIS32U8Func.c \
 355         mlib_v_ImageLookUpSIU16S16Func.c \
 356         mlib_v_ImageLookUpSIU16S32Func.c \
 357         mlib_v_ImageLookUpSIU16U16Func.c \
 358         mlib_v_ImageLookUpSIU16U8Func.c \
 359         mlib_v_ImageLookUpSIU8S16Func.c \
 360         mlib_v_ImageLookUpSIU8S32Func.c \
 361         mlib_v_ImageLookUpSIU8U16Func.c \
 362         mlib_v_ImageLookUpSIU8U8Func.c \
 363         mlib_v_ImageLookUpU16S16Func.c \
 364         mlib_v_ImageLookUpU16S32Func.c \
 365         mlib_v_ImageLookUpU16U16Func.c \
 366         mlib_v_ImageLookUpU16U8Func.c \
 367         mlib_v_ImageLookUpU8S16Func.c \
 368         mlib_v_ImageLookUpU8S32Func.c \
 369         mlib_v_ImageLookUpU8U16Func.c \
 370         mlib_v_ImageLookUpU8U8Func.c \
 371         mlib_v_ImageAffineIndex_BC.c \
 372         mlib_v_ImageAffine_BC.c \
 373         mlib_v_ImageAffine_BC_S16.c \
 374         mlib_v_ImageAffine_BC_U16.c \
 375         mlib_v_ImageAffine_BL.c \
 376         mlib_v_ImageAffine_BL_S16.c \
 377         mlib_v_ImageAffine_BL_U16.c \
 378         mlib_v_ImageAffine_NN.c \
 379         mlib_v_ImageFilters.c \
 380         mlib_ImageAffineEdge.c \
 381         mlib_ImageAffine_BC_D64.c \
 382         mlib_ImageAffine_BC_F32.c \
 383         mlib_ImageAffine_BC_S32.c \
 384         mlib_ImageAffine_BL_D64.c \
 385         mlib_ImageAffine_BL_F32.c \
 386         mlib_ImageAffine_BL_S32.c \
 387         mlib_ImageAffine_NN.c \
 388         mlib_ImageAffine_NN_Bit.c \
 389         mlib_ImageFilters.c \
 390         mlib_ImageScanPoly.c \
 391         mlib_ImageConv_8nw.c \
 392         mlib_ImageConv_8ext.c \
 393         mlib_ImageConv_16nw.c \
 394         mlib_ImageConv_16ext.c \
 395         mlib_ImageConv_u16nw.c \
 396         mlib_ImageConv_u16ext.c \
 397         mlib_ImageConv_32nw.c \
 398         mlib_ImageConv_F32nw.c \
 399         mlib_ImageConvMxN_Fp.c \
 400         mlib_ImageConvMxN_ext.c \
 401         mlib_ImageConv_D64nw.c \
 402         mlib_ImageClipping.c \
 403         mlib_ImageConvCopyEdge_Bit.c \
 404         mlib_ImageConvClearEdge_Bit.c \
 405         mlib_ImageConv2x2_f.c \
 406         mlib_ImageConvClearEdge_Fp.c \
 407         mlib_v_ImageConvMxN_8.c \
 408         mlib_v_ImageConvClearEdge.c \
 409         mlib_v_ImageConvCopyEdge.c \
 410         mlib_v_ImageConvMxN_8ext.c \
 411         mlib_v_ImageConvVersion.c \
 412         mlib_v_ImageConv_8nw.c \
 413         mlib_ImageConvCopyEdge_Fp.c \
 414         mlib_v_ImageChannelInsert_1.c \
 415         mlib_v_ImageChannelExtract_43.c \
 416         mlib_v_ImageChannelExtract_1.c \
 417         mlib_ImageCopy_Bit.c \
 418         mlib_v_ImageCopy_f.c \
 419         mlib_ImageUtils.c \
 420         mlib_ImageDivTables.c
 421 
 422 BUILD_LIBMLIB_V_CFLAGS := $(filter-out -DMLIB_NO_LIBSUNMATH,$(BUILD_LIBMLIB_CFLAGS))
 423 
 424 $(eval $(call SetupNativeCompilation,BUILD_LIBMLIB_IMAGE_V,\
 425                 LIBRARY:=mlib_image_v, \
 426                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
 427                 SRC:=$(JDK_TOPDIR)/src/share/native/sun/awt/medialib \
 428                      $(JDK_TOPDIR)/src/solaris/native/sun/awt/medialib,\
 429                 LANG:=C,\
 430                 INCLUDE_FILES:=$(BUILD_LIBMLIB_IMAGE_V_FILES),\
 431                 OPTIMIZATION:=HIGHEST, \
 432                 CFLAGS:=-xarch=sparcvis \
 433                       $(JDK_TOPDIR)/src/solaris/native/sun/awt/medialib/vis_$(OPENJDK_TARGET_CPU_BITS).il\
 434                       $(BUILD_LIBMLIB_V_CFLAGS) \
 435                       $(CFLAGS_JDKLIB), \
 436                 MAPFILE:=$(BUILD_LIBMLIB_IMAGE_MAPFILE), \
 437                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
 438                          $(BUILD_LIBMLIB_LDLIBS) -ljava -ljvm \
 439                          $(call SET_SHARED_LIBRARY_ORIGIN),\
 440                 LDFLAGS_SUFFIX_solaris:=-lc,\
 441                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libmlib_image_v,\
 442                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
 443 
 444 $(BUILD_LIBMLIB_IMAGE_V): $(BUILD_LIBJAVA)
 445 
 446 BUILD_LIBRARIES += $(BUILD_LIBMLIB_IMAGE_V)
 447 
 448 endif
 449 
 450 ##########################################################################################
 451 
 452 LIBAWT_DIRS:=\
 453         $(JDK_TOPDIR)/src/share/native/sun/awt \
 454         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt \
 455         $(JDK_TOPDIR)/src/share/native/sun/awt/image \
 456         $(JDK_TOPDIR)/src/share/native/sun/awt/image/gif \
 457         $(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \
 458         $(JDK_TOPDIR)/src/share/native/sun/awt/medialib \
 459         $(JDK_TOPDIR)/src/share/native/sun/awt/debug \
 460         $(JDK_TOPDIR)/src/share/native/sun/awt/utility \
 461         $(JDK_TOPDIR)/src/share/native/sun/java2d \
 462         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d \
 463         $(JDK_TOPDIR)/src/share/native/sun/java2d/loops \
 464         $(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \
 465         $(JDK_TOPDIR)/src/share/native/sun/awt/image \
 466         $(JDK_TOPDIR)/src/share/native/sun/java2d/opengl \
 467         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/opengl \
 468         $(JDK_TOPDIR)/src/share/native/sun/font
 469 
 470 ifeq ($(OPENJDK_TARGET_OS),windows)
 471     LIBAWT_DIRS+=\
 472         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/windows \
 473         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/windows \
 474         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/d3d
 475     LIBAWT_CFLAGS+=-I$(DXSDK_INCLUDE_PATH)
 476 else
 477     LIBAWT_DIRS+=\
 478         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/x11
 479 endif
 480 
 481 LIBAWT_CFLAGS+=-D__MEDIALIB_OLD_NAMES -D__USE_J2D_NAMES \
 482         $(X_CFLAGS) \
 483         $(foreach dir,$(LIBAWT_DIRS),-I$(dir))
 484 
 485 LIBAWT_FILES:=\
 486         gifdecoder.c \
 487         imageInitIDs.c \
 488         img_globals.c \
 489         SurfaceData.c \
 490         Region.c \
 491         BufImgSurfaceData.c \
 492         Disposer.c \
 493         Trace.c \
 494         GraphicsPrimitiveMgr.c \
 495         Blit.c \
 496         BlitBg.c \
 497         ScaledBlit.c \
 498         FillRect.c \
 499         FillSpans.c \
 500         FillParallelogram.c \
 501         DrawParallelogram.c \
 502         DrawLine.c \
 503         DrawRect.c \
 504         DrawPolygons.c \
 505         DrawPath.c \
 506         FillPath.c \
 507         ProcessPath.c \
 508         MaskBlit.c \
 509         MaskFill.c \
 510         TransformHelper.c \
 511         AlphaMath.c \
 512         AlphaMacros.c \
 513         AnyByte.c \
 514         ByteBinary1Bit.c \
 515         ByteBinary2Bit.c \
 516         ByteBinary4Bit.c \
 517         ByteIndexed.c \
 518         ByteGray.c \
 519         Index8Gray.c \
 520         Index12Gray.c \
 521         AnyShort.c \
 522         Ushort555Rgb.c \
 523         Ushort565Rgb.c \
 524         Ushort4444Argb.c \
 525         Ushort555Rgbx.c \
 526         UshortGray.c \
 527         UshortIndexed.c \
 528         Any3Byte.c \
 529         ThreeByteBgr.c \
 530         AnyInt.c \
 531         IntArgb.c \
 532         IntArgbPre.c \
 533         IntArgbBm.c \
 534         IntRgb.c \
 535         IntBgr.c \
 536         IntRgbx.c \
 537         Any4Byte.c \
 538         FourByteAbgr.c \
 539         FourByteAbgrPre.c \
 540         BufferedMaskBlit.c \
 541         BufferedRenderPipe.c \
 542         ShapeSpanIterator.c \
 543         SpanClipRenderer.c \
 544         awt_ImageRep.c \
 545         awt_ImagingLib.c \
 546         awt_Mlib.c \
 547         awt_parseImage.c \
 548         DataBufferNative.c \
 549         dither.c \
 550         debug_assert.c \
 551         debug_mem.c \
 552         debug_trace.c \
 553         debug_util.c
 554 
 555 ifneq (,$(filter $(OPENJDK_TARGET_OS), solaris linux))
 556         LIBAWT_FILES += awt_LoadLibrary.c initIDs.c img_colors.c
 557 endif
 558 
 559 ifeq ($(OPENJDK_TARGET_OS),macosx)
 560         LIBAWT_FILES += awt_LoadLibrary.c img_colors.c
 561         LIBAWT_DIRS += $(JDK_TOPDIR)/src/macosx/native/com/apple/resources
 562         LIBAWT_FILES += awt_LoadLibrary.c MacOSXResourceBundle.m
 563         LIBAWT_CFLAGS += -F/System/Library/Frameworks/JavaVM.framework/Frameworks
 564 
 565         LIBAWT_MacOSXResourceBundle.m_CFLAGS:=-O0
 566 endif
 567 
 568 ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH), solaris-sparc)
 569         LIBAWT_CFLAGS += -DMLIB_ADD_SUFF
 570         LIBAWT_CFLAGS += -xarch=sparcvis
 571         LIBAWT_CFLAGS += $(JDK_TOPDIR)/src/solaris/native/sun/awt/medialib/vis_$(OPENJDK_TARGET_CPU_BITS).il
 572         LIBAWT_CFLAGS += \
 573             -I$(JDK_TOPDIR)/src/solaris/native/sun/awt/medialib \
 574             -I$(JDK_TOPDIR)/src/solaris/native/sun/java2d/medialib \
 575             -I$(JDK_TOPDIR)/src/solaris/native/sun/java2d/loops
 576 
 577         LIBAWT_DIRS += $(JDK_TOPDIR)/src/solaris/native/sun/awt/medialib \
 578                        $(JDK_TOPDIR)/src/solaris/native/sun/java2d/loops
 579 
 580         LIBAWT_FILES += \
 581                 vis_FuncArray.c           \
 582                 java2d_Mlib.c             \
 583                 mlib_ImageCreate.c        \
 584                 mlib_ImageZoom_NN.c       \
 585                 mlib_ImageCopy_Bit.c      \
 586                 mlib_sys.c                \
 587                 mlib_v_ImageClear.c       \
 588                 mlib_v_ImageClear_f.c     \
 589                 mlib_v_ImageConstXor.c    \
 590                 mlib_v_ImageCopy.c        \
 591                 mlib_v_ImageCopy_f.c      \
 592                 mlib_v_ImageXor.c         \
 593                 mlib_v_ImageZoom_NN_f.c   \
 594                 vis_Interp.c              \
 595                 vis_AlphaMacros.c         \
 596                 vis_AlphaMaskBlit.c       \
 597                 vis_AlphaMaskFill.c       \
 598                 vis_ByteGray.c            \
 599                 vis_ByteGray_FromRgb.c    \
 600                 vis_ByteGray_Mask.c       \
 601                 vis_ByteIndexed.c         \
 602                 vis_DrawLine.c            \
 603                 vis_FourByteAbgr.c        \
 604                 vis_IntArgb.c             \
 605                 vis_IntArgbPre.c          \
 606                 vis_IntArgbPre_Mask.c     \
 607                 vis_IntBgr.c              \
 608                 vis_IntRgb.c              \
 609                 vis_IntRgbx.c             \
 610                 vis_SrcMaskFill.c         \
 611                 vis_SrcOverMaskBlit.c     \
 612                 vis_SrcOverMaskFill.c     \
 613                 vis_FourByteAbgrPre.c     \
 614                 vis_GlyphList.c           \
 615                 vis_GlyphListXor.c        \
 616                 vis_IntArgbBm.c           \
 617                 vis_ThreeByteBgr.c        \
 618                 vis_UshortGray.c          \
 619                 vis_UshortGray_FromRgb.c  \
 620                 vis_XorBlit.c             \
 621                 mlib_v_ImageCopy_blk.s
 622 
 623         ifeq ($(OPENJDK_TARGET_CPU),sparcv9)
 624                 LIBAWT_ASFLAGS=-P -xarch=v9a
 625         else
 626                 LIBAWT_ASFLAGS=-P -xarch=v8plusa
 627         endif
 628 else
 629         LIBAWT_FILES += MapAccelFunc.c
 630 endif
 631 
 632 ifneq ($(OPENJDK_TARGET_OS),solaris)
 633         LIBAWT_CFLAGS += -DMLIB_NO_LIBSUNMATH
 634 endif
 635 
 636 LIBAWT_LANG:=C
 637 
 638 ifeq ($(OPENJDK_TARGET_OS),windows)
 639         LIBAWT_FILES += AccelGlyphCache.c \
 640                         ShaderList.c \
 641                         CmdIDList.cpp \
 642                         Hashtable.cpp \
 643                         GDIHashtable.cpp \
 644                         Devices.cpp \
 645                         ObjectList.cpp \
 646                         GDIBlitLoops.cpp \
 647                         GDIRenderer.cpp \
 648                         GDIWindowSurfaceData.cpp \
 649                         WindowsFlags.cpp \
 650                         WPrinterJob.cpp \
 651                         awt_%.cpp \
 652                         D3DBlitLoops.cpp \
 653                         D3DBufImgOps.cpp \
 654                         D3DContext.cpp \
 655                         D3DGlyphCache.cpp \
 656                         D3DGraphicsDevice.cpp \
 657                         D3DMaskBlit.cpp \
 658                         D3DMaskCache.cpp \
 659                         D3DMaskFill.cpp \
 660                         D3DPipelineManager.cpp \
 661                         D3DPaints.cpp \
 662                         D3DRenderer.cpp \
 663                         D3DRenderQueue.cpp \
 664                         D3DResourceManager.cpp \
 665                         D3DSurfaceData.cpp \
 666                         D3DTextRenderer.cpp \
 667                         D3DVertexCacher.cpp \
 668                         ShellFolder2.cpp \
 669                         ThemeReader.cpp \
 670                         ComCtl32Util.cpp \
 671                         DllUtil.cpp \
 672                         initIDs.cpp \
 673                         MouseInfo.cpp \
 674                         rect.c \
 675                         OGLBlitLoops.c \
 676                         OGLBufImgOps.c \
 677                         OGLContext.c \
 678                         OGLFuncs.c \
 679                         OGLMaskBlit.c \
 680                         OGLMaskFill.c \
 681                         OGLPaints.c \
 682                         OGLRenderQueue.c \
 683                         OGLRenderer.c \
 684                         OGLSurfaceData.c \
 685                         OGLTextRenderer.c \
 686                         OGLVertexCache.c \
 687                         WGLGraphicsConfig.c \
 688                         WGLSurfaceData.c
 689         LIBAWT_LANG:=C++
 690         LIBAWT_CFLAGS += -EHsc -DUNICODE -D_UNICODE
 691         ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
 692                 LIBAWT_CFLAGS += -DMLIB_OS64BIT
 693         endif
 694 
 695         ifdef OPENJDK
 696                 LIBAWT_RC_FLAGS:=-i "$(JDK_TOPDIR)/src/windows/resource/icons"
 697         else
 698                 LIBAWT_RC_FLAGS:=-i "$(JDK_TOPDIR)/src/closed/windows/native/sun/windows"
 699         endif
 700         LIBAWT_VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/native/sun/windows/awt.rc
 701 endif
 702 
 703 ifeq ($(MILESTONE), internal)
 704         LIBAWT_CFLAGS += -DINTERNAL_BUILD
 705 endif
 706 
 707 LIBAWT_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libawt/mapfile-vers
 708 ifeq ($(OPENJDK_TARGET_OS),linux)
 709         LIBAWT_MAPFILE:=
 710 endif
 711 
 712 $(eval $(call SetupNativeCompilation,BUILD_LIBAWT,\
 713                 LIBRARY:=awt,\
 714                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
 715                 SRC:=$(LIBAWT_DIRS),\
 716                 INCLUDE_FILES:=$(LIBAWT_FILES),\
 717                 LANG:=$(LIBAWT_LANG),\
 718                 OPTIMIZATION:=LOW, \
 719                 CFLAGS:=$(CFLAGS_JDKLIB) $(LIBAWT_CFLAGS),\
 720                 ASFLAGS:=$(LIBAWT_ASFLAGS),\
 721                 MAPFILE:=$(LIBAWT_MAPFILE), \
 722                 LDFLAGS:=$(LDFLAGS_JDKLIB) $(call SET_SHARED_LIBRARY_ORIGIN),\
 723                 LDFLAGS_solaris:=-R/usr/dt/lib$(OPENJDK_TARGET_CPU_ISADIR) -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR),\
 724                 LDFLAGS_SUFFIX_linux:=-ljvm $(LIBM) $(LIBDL) -ljava,\
 725                 LDFLAGS_SUFFIX_solaris:=-ljvm $(LIBM) $(LIBDL) -ljava -lc,\
 726                 LDFLAGS_SUFFIX_macosx:=-lmlib_image -ljvm $(LIBM) \
 727                                        -framework Cocoa \
 728                                        -framework OpenGL \
 729                                        -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
 730                                        -framework JavaNativeFoundation \
 731                                        -framework JavaRuntimeSupport \
 732                                        -framework ApplicationServices \
 733                                        -framework AudioToolbox \
 734                                        -ljava,\
 735                 LDFLAGS_SUFFIX_windows:=kernel32.lib user32.lib gdi32.lib winspool.lib \
 736                                         imm32.lib ole32.lib uuid.lib shell32.lib \
 737                                         comdlg32.lib winmm.lib comctl32.lib shlwapi.lib \
 738                                         delayimp.lib jvm.lib $(WIN_JAVA_LIB) advapi32.lib \
 739                                         -DELAYLOAD:user32.dll -DELAYLOAD:gdi32.dll \
 740                                         -DELAYLOAD:shell32.dll -DELAYLOAD:winmm.dll \
 741                                         -DELAYLOAD:winspool.drv -DELAYLOAD:imm32.dll \
 742                                         -DELAYLOAD:ole32.dll -DELAYLOAD:comdlg32.dll \
 743                                         -DELAYLOAD:comctl32.dll -DELAYLOAD:shlwapi.dll,\
 744                 VERSIONINFO_RESOURCE:=$(LIBAWT_VERSIONINFO_RESOURCE),\
 745                 RC_FLAGS:=$(RC_FLAGS) $(LIBAWT_RC_FLAGS) \
 746                           -D "JDK_FNAME=awt.dll" \
 747                           -D "JDK_INTERNAL_NAME=awt" \
 748                           -D "JDK_FTYPE=0x2L",\
 749                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libawt,\
 750                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
 751 
 752 $(BUILD_LIBAWT) : $(BUILD_LIBJAVA)
 753 
 754 ifeq ($(OPENJDK_TARGET_OS), macosx)
 755 $(BUILD_LIBAWT) : $(BUILD_LIBMLIB_IMAGE)
 756 endif
 757 
 758 BUILD_LIBRARIES += $(BUILD_LIBAWT)
 759 
 760 ##########################################################################################
 761 
 762 # TODO!!
 763 # Even though this variable as a general name, it is
 764 # only used on macos, in fontpath.c, as prefix for where to find fonts.
 765 #
 766 # It's used for libawt_headless _and_ libawt_xawt
 767 #
 768 X11_PATH:=/usr/X11R6
 769 
 770 ifneq ($(OPENJDK_TARGET_OS), windows)
 771 ifndef BUILD_HEADLESS_ONLY
 772 
 773 LIBAWT_XAWT_DIRS:=\
 774                 $(JDK_TOPDIR)/src/share/native/sun/awt/debug \
 775                 $(JDK_TOPDIR)/src/share/native/sun/awt/utility \
 776                 $(JDK_TOPDIR)/src/share/native/sun/font \
 777                 $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/font \
 778                 $(JDK_TOPDIR)/src/share/native/sun/java2d/opengl \
 779                 $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt \
 780                 $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/opengl \
 781                 $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/x11 \
 782                 $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/xawt \
 783 
 784 LIBAWT_XAWT_CFLAGS:=-DXAWT -DXAWT_HACK \
 785         -DX11_PATH=\"$(X11_PATH)\" -DPACKAGE_PATH=\"$(PACKAGE_PATH)\" \
 786         $(CUPS_CFLAGS) \
 787         $(foreach dir,$(LIBAWT_XAWT_DIRS),-I$(dir)) \
 788         -I$(JDK_TOPDIR)/src/share/native/sun/java2d \
 789         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d \
 790         -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \
 791         -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \
 792         -I$(JDK_TOPDIR)/src/share/native/sun/awt/image \
 793         -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \
 794         -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \
 795         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/jdga
 796 
 797 ifeq ($(OPENJDK_TARGET_OS),solaris)
 798         LIBAWT_XAWT_CFLAGS += -DFUNCPROTO=15
 799 endif
 800 
 801 ifeq ($(MILESTONE),internal)
 802         LIBAWT_XAWT_CFLAGS += -DINTERNAL_BUILD
 803 endif
 804 
 805 LIBAWT_XAWT_FILES:=\
 806         XlibWrapper.c \
 807         XWindow.c \
 808         XToolkit.c \
 809         X11Color.c \
 810         X11SurfaceData.c \
 811         awt_GraphicsEnv.c \
 812         awt_InputMethod.c \
 813         robot_common.c \
 814         awt_Robot.c \
 815         list.c \
 816         multiVis.c \
 817         initIDs.c \
 818         awt_util.c \
 819         awt_Desktop.c \
 820         awt_UNIXToolkit.c \
 821         X11FontScaler_md.c \
 822         X11TextRenderer_md.c \
 823         fontpath.c \
 824         awt_Insets.c \
 825         awt_Event.c \
 826         X11Renderer.c \
 827         X11PMBlitLoops.c \
 828         OGLBlitLoops.c \
 829         OGLBufImgOps.c \
 830         OGLContext.c \
 831         OGLFuncs.c \
 832         OGLMaskBlit.c \
 833         OGLMaskFill.c \
 834         OGLPaints.c \
 835         OGLRenderQueue.c \
 836         OGLRenderer.c \
 837         OGLSurfaceData.c \
 838         OGLTextRenderer.c \
 839         OGLVertexCache.c \
 840         GLXGraphicsConfig.c \
 841         GLXSurfaceData.c \
 842         AccelGlyphCache.c \
 843         awt_Font.c \
 844         multi_font.c \
 845         awt_AWTEvent.c \
 846         awt_DrawingSurface.c \
 847         jawt.c \
 848         CUPSfuncs.c \
 849         debug_assert.c \
 850         debug_mem.c \
 851         debug_trace.c \
 852         debug_util.c \
 853         awt_Plugin.c \
 854         gnome_interface.c \
 855         gtk2_interface.c \
 856         swing_GTKEngine.c \
 857         swing_GTKStyle.c \
 858         rect.c \
 859         sun_awt_X11_GtkFileDialogPeer.c \
 860         XRSurfaceData.c \
 861         XRBackendNative.c
 862 
 863 LIBAWT_XAWT_LDFLAGS_SUFFIX:=$(LIBM) -lawt -lXext -lX11 -lXrender $(LIBDL) -lXtst -lXi  -ljava -ljvm -lc
 864 
 865 ifeq ($(OPENJDK_TARGET_OS), linux)
 866         # To match old build, add this to LDFLAGS instead of suffix.
 867         LIBAWT_XAWT_LDFLAGS += -lpthread
 868 endif
 869 
 870 ifeq ($(OPENJDK_TARGET_OS), macosx)
 871         LIBAWT_XAWT_LDFLAGS_SUFFIX += -lpthread
 872 endif
 873 
 874 # On macosx, the shared library origin is set twice for this lib.
 875 $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_XAWT,\
 876                 LIBRARY:=awt_xawt,\
 877                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
 878                 SRC:=$(LIBAWT_XAWT_DIRS),\
 879                 INCLUDE_FILES:=$(LIBAWT_XAWT_FILES),\
 880                 LANG:=C,\
 881                 OPTIMIZATION:=LOW, \
 882                 CFLAGS:=$(CFLAGS_JDKLIB) $(LIBAWT_XAWT_CFLAGS) \
 883                         $(X_CFLAGS),\
 884                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libawt_xawt/mapfile-vers, \
 885                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
 886                          $(X_LIBS) $(LIBAWT_XAWT_LDFLAGS),\
 887                 LDFLAGS_linux:=$(call SET_SHARED_LIBRARY_ORIGIN) \
 888                                $(call SET_SHARED_LIBRARY_ORIGIN,/..),\
 889                 LDFLAGS_solaris:=-L$(OPENWIN_HOME)/sfw/lib$(OPENJDK_TARGET_CPU_ISADIR) \
 890                                  -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) \
 891                                  -R$(OPENWIN_HOME)/sfw/lib$(OPENJDK_TARGET_CPU_ISADIR) \
 892                                  -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) \
 893                                  -R/usr/dt/lib$(OPENJDK_TARGET_CPU_ISADIR) \
 894                                  $(call SET_SHARED_LIBRARY_ORIGIN) \
 895                                  $(call SET_SHARED_LIBRARY_ORIGIN,/..),\
 896                 LDFLAGS_macosx:=$(call SET_SHARED_LIBRARY_ORIGIN) \
 897                                 $(call SET_SHARED_LIBRARY_ORIGIN). \
 898                                 $(call SET_SHARED_LIBRARY_ORIGIN) \
 899                                 $(call SET_SHARED_LIBRARY_ORIGIN).,\
 900                 LDFLAGS_SUFFIX:=$(LIBAWT_XAWT_LDFLAGS_SUFFIX),\
 901                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
 902                 RC_FLAGS:=$(RC_FLAGS)\
 903                           -D "JDK_FNAME=xawt.dll" \
 904                           -D "JDK_INTERNAL_NAME=xawt" \
 905                           -D "JDK_FTYPE=0x2L",\
 906                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libawt_xawt,\
 907                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
 908 
 909 $(BUILD_LIBAWT_XAWT) : $(BUILD_LIBJAVA)
 910 
 911 $(BUILD_LIBAWT_XAWT) : $(BUILD_LIBAWT)
 912 
 913 BUILD_LIBRARIES += $(BUILD_LIBAWT_XAWT)
 914 
 915 endif
 916 endif
 917 
 918 ##########################################################################################
 919 
 920 BUILD_LIBZIP_EXCLUDES :=
 921 ifeq ($(USE_EXTERNAL_LIBZ),true)
 922     LIBZ := -lz
 923     LIBZIP_EXCLUDES += zlib-1.2.5
 924 else
 925     ZLIB_CPPFLAGS := -I$(JDK_TOPDIR)/src/share/native/java/util/zip/zlib-1.2.5
 926 endif
 927 
 928 BUILD_LIBZIP_REORDER :=
 929 ifeq ($(OPENJDK_TARGET_OS), solaris)
 930     ifneq ($(OPENJDK_TARGET_CPU), x86_64)
 931         BUILD_LIBZIP_REORDER := $(JDK_TOPDIR)/makefiles/mapfiles/libzip/reorder-$(OPENJDK_TARGET_CPU)
 932     endif
 933 endif
 934 
 935 ifeq ($(LIBZIP_CAN_USE_MMAP), true)
 936      BUILD_LIBZIP_MMAP := -DUSE_MMAP
 937 endif
 938 
 939 $(eval $(call SetupNativeCompilation,BUILD_LIBZIP,\
 940                 LIBRARY:=zip,\
 941                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
 942                 LANG:=C,\
 943                 OPTIMIZATION:=LOW, \
 944                 SRC:=$(JDK_TOPDIR)/src/share/native/java/util/zip,\
 945                 EXCLUDES:=$(LIBZIP_EXCLUDES),\
 946                 CFLAGS:=$(CFLAGS_JDKLIB) \
 947                         $(ZLIB_CPPFLAGS) \
 948                         -I$(JDK_TOPDIR)/src/share/native/java/io \
 949                         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/io,\
 950                 CFLAGS_posix:=$(BUILD_LIBZIP_MMAP) -UDEBUG,\
 951                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libzip/mapfile-vers, \
 952                 REORDER:=$(BUILD_LIBZIP_REORDER), \
 953                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
 954                          $(call SET_SHARED_LIBRARY_ORIGIN) \
 955                          $(EXPORT_ZIP_FUNCS), \
 956                 LDFLAGS_windows:=-export:ZIP_Open -export:ZIP_Close -export:ZIP_FindEntry \
 957                                 -export:ZIP_ReadEntry -export:ZIP_GetNextEntry jvm.lib \
 958                                 $(WIN_JAVA_LIB),\
 959                 LDFLAGS_SUFFIX_linux:=-ljvm -ljava $(LIBZ),\
 960                 LDFLAGS_SUFFIX_solaris:=-ljvm -ljava $(LIBZ) -lc,\
 961                 LDFLAGS_SUFFIX_macosx:=$(LIBZ) -ljava -ljvm,\
 962                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
 963                 RC_FLAGS:=$(RC_FLAGS)\
 964                           -D "JDK_FNAME=zip.dll" \
 965                           -D "JDK_INTERNAL_NAME=zip" \
 966                           -D "JDK_FTYPE=0x2L",\
 967                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libzip,\
 968                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
 969 
 970 $(BUILD_LIBZIP) : $(BUILD_LIBJAVA)
 971 
 972 BUILD_LIBRARIES += $(BUILD_LIBZIP)
 973 
 974 ##########################################################################################
 975 
 976 $(eval $(call SetupNativeCompilation,BUILD_LIBUNPACK,\
 977                 LIBRARY:=unpack, \
 978                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
 979                 SRC:=$(JDK_TOPDIR)/src/share/native/com/sun/java/util/jar/pack,\
 980                 EXCLUDE_FILES:=main.cpp,\
 981                 LANG:=C++,\
 982                 OPTIMIZATION:=LOW, \
 983                 CFLAGS:=$(CXXFLAGS_JDKLIB) \
 984                          -DNO_ZLIB -DUNPACK_JNI -DFULL,\
 985                 CFLAGS_release:=-DPRODUCT,\
 986                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libunpack/mapfile-vers, \
 987                 LDFLAGS:=$(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \
 988                          $(call SET_SHARED_LIBRARY_ORIGIN),\
 989                 LDFLAGS_windows:=-map:$(JDK_OUTPUTDIR)/objs/unpack.map -debug \
 990                                 jvm.lib $(WIN_JAVA_LIB),\
 991                 LDFLAGS_SUFFIX_posix:=-ljvm $(LIBCXX) -ljava -lc,\
 992                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libunpack,\
 993                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
 994                 RC_FLAGS:=$(RC_FLAGS)\
 995                           -D "JDK_FNAME=unpack.dll" \
 996                           -D "JDK_INTERNAL_NAME=unpack" \
 997                           -D "JDK_FTYPE=0x2L",\
 998                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
 999 
1000 $(BUILD_LIBUNPACK) : $(BUILD_LIBJAVA)
1001 
1002 BUILD_LIBRARIES += $(BUILD_LIBUNPACK)
1003 
1004 ifeq ($(OPENJDK_TARGET_OS),windows)
1005     $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)unpack.map: $(BUILD_LIBUNPACK)
1006         $(ECHO) Copying $(@F)
1007         $(CP) $(patsubst %$(SHARED_LIBRARY_SUFFIX),%.map,$<) $@
1008 
1009     $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)unpack.pdb: $(BUILD_LIBUNPACK)
1010         $(ECHO) Copying $(@F)
1011         $(CP) $(patsubst %$(SHARED_LIBRARY_SUFFIX),%.pdb,$<) $@
1012 endif
1013 
1014 ##########################################################################################
1015 
1016 LIBATTACH_EXCLUDE_FILES:=
1017 ifneq ($(OPENJDK_TARGET_OS),solaris)
1018     LIBATTACH_EXCLUDE_FILES+=SolarisVirtualMachine.c
1019 endif
1020 ifneq ($(OPENJDK_TARGET_OS),linux)
1021     LIBATTACH_EXCLUDE_FILES+=LinuxVirtualMachine.c
1022 endif
1023 ifneq ($(OPENJDK_TARGET_OS),macosx)
1024     LIBATTACH_EXCLUDE_FILES+=BsdVirtualMachine.c
1025 endif
1026 
1027 $(eval $(call SetupNativeCompilation,BUILD_LIBATTACH,\
1028                 LIBRARY:=attach, \
1029                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1030                 SRC:=$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/tools/attach,\
1031                 EXCLUDE_FILES:=$(LIBATTACH_EXCLUDE_FILES),\
1032                 LANG:=C,\
1033                 OPTIMIZATION:=LOW, \
1034                 CFLAGS:=$(CFLAGS_JDKLIB),\
1035                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libattach/mapfile-$(OPENJDK_TARGET_OS), \
1036                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
1037                 RC_FLAGS:=$(RC_FLAGS) \
1038                           -D "JDK_FNAME=attach.dll" \
1039                           -D "JDK_INTERNAL_NAME=attach" \
1040                           -D "JDK_FTYPE=0x2L",\
1041                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
1042                          $(call SET_SHARED_LIBRARY_ORIGIN),\
1043                 LDFLAGS_solaris:=-ldoor,\
1044                 LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
1045                 LDFLAGS_SUFFIX_windows:=$(WIN_JAVA_LIB) advapi32.lib psapi.lib,\
1046                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libattach,\
1047                 DEBUG_SYMBOLS:=true))
1048 
1049 $(BUILD_LIBATTACH) : $(BUILD_LIBJAVA)
1050 
1051 BUILD_LIBRARIES += $(BUILD_LIBATTACH)
1052 
1053 ##########################################################################################
1054 
1055 $(eval $(call SetupNativeCompilation,BUILD_LIBDT_SOCKET,\
1056                 LIBRARY:=dt_socket,\
1057                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1058                 SRC:=$(JDK_TOPDIR)/src/share/transport/socket \
1059                         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/transport/socket,\
1060                 LANG:=C,\
1061                 OPTIMIZATION:=LOW, \
1062                 CFLAGS:=$(CFLAGS_JDKLIB) -DUSE_MMAP \
1063                         -I$(INCLUDEDIR) -I$(JDK_OUTPUTDIR)/include/$(OPENJDK_TARGET_OS) \
1064                         -I$(JDK_TOPDIR)/src/share/transport/socket \
1065                         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/transport/socket \
1066                         -I$(JDK_TOPDIR)/src/share/back/export \
1067                         -I$(JDK_TOPDIR)/src/share/back,\
1068                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libdt_socket/mapfile-vers, \
1069                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
1070                          $(call SET_SHARED_LIBRARY_ORIGIN), \
1071                 LDFLAGS_SUFFIX_linux:=-lpthread,\
1072                 LDFLAGS_SUFFIX_solaris:=-lnsl -lsocket -lc,\
1073                 LDFLAGS_SUFFIX_windows:=$(LDFLAGS_JDKLIB_SUFFIX) -export:jdwpTransport_OnLoad ws2_32.lib,\
1074                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
1075                 RC_FLAGS:=$(RC_FLAGS)\
1076                           -D "JDK_FNAME=dt_socket.dll" \
1077                           -D "JDK_INTERNAL_NAME=dt_socket" \
1078                           -D "JDK_FTYPE=0x2L",\
1079                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libdt_socket,\
1080                 DEBUG_SYMBOLS:=true))
1081 
1082 $(BUILD_LIBDT_SOCKET) : $(BUILD_LIBJAVA)
1083 
1084 BUILD_LIBRARIES += $(BUILD_LIBDT_SOCKET)
1085 
1086 ##########################################################################################
1087 
1088 ifeq ($(OPENJDK_TARGET_OS),windows)
1089 
1090   $(eval $(call SetupNativeCompilation,BUILD_LIBDT_SHMEM,\
1091                 LIBRARY:=dt_shmem,\
1092                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1093                 SRC:=$(JDK_TOPDIR)/src/share/native/com/sun/tools/jdi \
1094                         $(JDK_TOPDIR)/src/share/transport/shmem \
1095                         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/transport/shmem,\
1096                 LANG:=C,\
1097                 OPTIMIZATION:=LOW, \
1098                 CFLAGS:=$(CFLAGS_JDKLIB) -DUSE_MMAP\
1099                         -I$(INCLUDEDIR) -I$(JDK_OUTPUTDIR)/include/$(OPENJDK_TARGET_OS) \
1100                         -I$(JDK_TOPDIR)/src/share/transport/shmem \
1101                         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/transport/shmem \
1102                         -I$(JDK_TOPDIR)/src/share/back/export, \
1103                 LDFLAGS:=$(LDFLAGS_JDKLIB),\
1104                 LDFLAGS_windows:=-export:jdwpTransport_OnLoad,\
1105                 LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
1106                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
1107                 RC_FLAGS:=$(RC_FLAGS)\
1108                           -D "JDK_FNAME=dt_shmem.dll" \
1109                           -D "JDK_INTERNAL_NAME=dt_shmem" \
1110                           -D "JDK_FTYPE=0x2L",\
1111                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libdt_shmem,\
1112                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
1113 
1114   BUILD_LIBRARIES += $(BUILD_LIBDT_SHMEM)
1115 
1116 endif # OPENJDK_TARGET_OS
1117 
1118 ##########################################################################################
1119 # JDWP_LOGGING causes log messages to be compiled into the library.
1120 $(eval $(call SetupNativeCompilation,BUILD_LIBJDWP,\
1121                 LIBRARY:=jdwp, \
1122                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1123                 SRC:=$(JDK_TOPDIR)/src/share/back $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/back,\
1124                 LANG:=C,\
1125                 OPTIMIZATION:=LOW, \
1126                 CFLAGS:=$(CFLAGS_JDKLIB) -DJDWP_LOGGING\
1127                  -I$(JDK_TOPDIR)/src/share/transport/export \
1128                  -I$(JDK_TOPDIR)/src/share/back/export \
1129                  -I$(JDK_TOPDIR)/src/share/npt \
1130                  -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt \
1131                  -I$(JDK_TOPDIR)/src/share/back \
1132                  -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/back \
1133                  -I$(JDK_OUTPUTDIR)/gensrc_jdwp_headers,\
1134                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjdwp/mapfile-vers, \
1135                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
1136                          $(call SET_SHARED_LIBRARY_ORIGIN),\
1137                 LDFLAGS_SUFFIX_linux:=$(LIBDL),\
1138                 LDFLAGS_SUFFIX_solaris:=$(LIBDL) -lc,\
1139                 LDFLAGS_SUFFIX_windows:=$(LDFLAGS_JDKLIB_SUFFIX),\
1140                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
1141                 RC_FLAGS:=$(RC_FLAGS)\
1142                           -D "JDK_FNAME=jdwp.dll" \
1143                           -D "JDK_INTERNAL_NAME=jdwp" \
1144                           -D "JDK_FTYPE=0x2L",\
1145                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjdwp,\
1146                 DEBUG_SYMBOLS:=true))
1147 
1148 $(BUILD_LIBJDWP) : $(BUILD_LIBJAVA)
1149 
1150 BUILD_LIBRARIES += $(BUILD_LIBJDWP)
1151 
1152 ##########################################################################################
1153 
1154 LIBJAAS_MAPFILE:=
1155 ifneq ($(OPENJDK_TARGET_OS),solaris)
1156    LIBJAAS_EXCLUDE_FILES:=Solaris.c
1157 else
1158    # only on solaris...wonder why
1159    LIBJAAS_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjaas/mapfile-vers
1160 endif
1161 
1162 LIBJAAS_NAME:=jaas_unix
1163 ifeq ($(OPENJDK_TARGET_OS), windows)
1164      LIBJAAS_NAME:=jaas_nt
1165 endif
1166 
1167 $(eval $(call SetupNativeCompilation,BUILD_LIBJAAS,\
1168                 LIBRARY:=$(LIBJAAS_NAME),\
1169                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1170                 SRC:=$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/com/sun/security/auth/module,\
1171                 LANG:=C,\
1172                 OPTIMIZATION:=LOW, \
1173                 CFLAGS:=$(CFLAGS_JDKLIB),\
1174                 MAPFILE:=$(LIBJAAS_MAPFILE),\
1175                 LDFLAGS:=$(filter-out -ljava,$(LDFLAGS_JDKLIB)) \
1176                          $(call SET_SHARED_LIBRARY_ORIGIN),\
1177                 LDFLAGS_windows:=netapi32.lib user32.lib mpr.lib advapi32.lib,\
1178                 LDFLAGS_SUFFIX_windows:=$(LDFLAGS_JDKLIB_SUFFIX),\
1179                 LDFLAGS_SUFFIX_solaris:=-lc,\
1180                 EXCLUDE_FILES:=$(LIBJAAS_EXCLUDE_FILES),\
1181                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
1182                 RC_FLAGS:=$(RC_FLAGS) \
1183                           -D "JDK_FNAME=$(LIBJAAS_NAME).dll" \
1184                           -D "JDK_INTERNAL_NAME=$(LIBJAAS_NAME)" \
1185                           -D "JDK_FTYPE=0x2L",\
1186                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjaas,\
1187                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
1188 
1189 $(BUILD_LIBJAAS) : $(BUILD_LIBJAVA)
1190 
1191 BUILD_LIBRARIES += $(BUILD_LIBJAAS)
1192 
1193 ##########################################################################################
1194 
1195 $(eval $(call SetupNativeCompilation,BUILD_LIBJSDT,\
1196                 LIBRARY:=jsdt,\
1197                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1198                 SRC:=$(JDK_TOPDIR)/src/share/native/sun/tracing/dtrace\
1199                         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/tracing/dtrace,\
1200                 LANG:=C,\
1201                 OPTIMIZATION:=LOW, \
1202                 CFLAGS:=$(CFLAGS_JDKLIB)\
1203                         -I$(JDK_TOPDIR)/src/share/native/sun/tracing/dtrace,\
1204                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjsdt/mapfile-vers, \
1205                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
1206                          $(call SET_SHARED_LIBRARY_ORIGIN),\
1207                 LDFLAGS_SUFFIX_linux:=$(LIBDL),\
1208                 LDFLAGS_SUFFIX_windows:=$(LDFLAGS_JDKLIB_SUFFIX) $(LIBDL),\
1209                 LDFLAGS_SUFFIX_macosx:=                         $(LIBDL),\
1210                 LDFLAGS_SUFFIX_solaris:=-lc,\
1211                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
1212                 RC_FLAGS:=$(RC_FLAGS)\
1213                           -D "JDK_FNAME=jsdt.dll" \
1214                           -D "JDK_INTERNAL_NAME=jsdt" \
1215                           -D "JDK_FTYPE=0x2L",\
1216                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjsdt, \
1217                 DEBUG_SYMBOLS:=true))
1218 
1219 $(BUILD_LIBJSDT) : $(BUILD_LIBJAVA)
1220 
1221 BUILD_LIBRARIES += $(BUILD_LIBJSDT)
1222 
1223 ##########################################################################################
1224 
1225     # TODO: Update awt lib path when awt is converted
1226     $(eval $(call SetupNativeCompilation,BUILD_LIBLCMS,\
1227                 LIBRARY:=lcms,\
1228                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1229                 SRC:=$(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms,\
1230                 LANG:=C,\
1231                 OPTIMIZATION:=HIGHEST, \
1232                 CFLAGS:=$(filter-out -xc99=%none,$(CFLAGS_JDKLIB)) \
1233                         $(SHARED_LIBRARY_FLAGS) \
1234                         -I$(JDK_TOPDIR)/src/share/native/sun/java2d \
1235                         -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug,\
1236                 CFLAGS_solaris:=-xc99=no_lib,\
1237                 CFLAGS_windows:=-DCMS_IS_WINDOWS_,\
1238                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/liblcms/mapfile-vers, \
1239                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
1240                          $(call SET_SHARED_LIBRARY_ORIGIN), \
1241                 LDFLAGS_solaris:=/usr/lib$(OPENJDK_TARGET_CPU_ISADIR)/libm.so.2,\
1242                 LDFLAGS_windows:=$(WIN_AWT_LIB) $(WIN_JAVA_LIB),\
1243                 LDFLAGS_SUFFIX_solaris:=-lawt -ljava -ljvm -lc,\
1244                 LDFLAGS_SUFFIX_macosx:=$(LIBM) -lawt -ljava -ljvm,\
1245                 LDFLAGS_SUFFIX_linux:=-lm -lawt -ljava -ljvm,\
1246                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
1247                 RC_FLAGS:=$(RC_FLAGS)\
1248                           -D "JDK_FNAME=lcms.dll" \
1249                           -D "JDK_INTERNAL_NAME=lcms" \
1250                           -D "JDK_FTYPE=0x2L",\
1251                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/liblcms,\
1252                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
1253 
1254     BUILD_LIBRARIES += $(BUILD_LIBLCMS)
1255 
1256     $(BUILD_LIBLCMS) : $(BUILD_LIBAWT)
1257 
1258 ##########################################################################################
1259 
1260 ifdef OPENJDK
1261     BUILD_LIBJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers
1262 else
1263     BUILD_LIBJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers-closed
1264     BUILD_LIBJPEG_CLOSED_SRC:=$(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
1265     BUILD_LIBJPEG_CLOSED_INCLUDES:=-I$(BUILD_LIBJPEG_CLOSED_SRC)
1266 endif
1267 
1268 BUILD_LIBJPEG_REORDER:=
1269 ifeq ($(OPENJDK_TARGET_OS), solaris)
1270     ifneq ($(OPENJDK_TARGET_CPU), x86_64)
1271         BUILD_LIBJPEG_REORDER:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
1272     endif
1273 endif
1274 
1275 # Suppress gcc warnings like "variable might be clobbered by 'longjmp'
1276 # or 'vfork'": this warning indicates that some variable is placed to
1277 # a register by optimized compiler and it's value might be lost on longjmp().
1278 # Recommended way to avoid such warning is to declare the variable as
1279 # volatile to prevent the optimization. However, this approach does not
1280 # work because we have to declare all variables as volatile in result.
1281 #ifndef CROSS_COMPILE_ARCH
1282 #    CC_43_OR_NEWER:=\
1283 #        $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \
1284 #              \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) )
1285 #    ifeq ($(CC_43_OR_NEWER),1)
1286 #        BUILD_LIBJPEG_CFLAGS_linux += -Wno-clobbered
1287 #    endif
1288 #endif
1289 
1290 $(eval $(call SetupNativeCompilation,BUILD_LIBJPEG,\
1291                 LIBRARY:=jpeg, \
1292                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1293                 SRC:=$(BUILD_LIBJPEG_CLOSED_SRC) \
1294                      $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg,\
1295                 LANG:=C,\
1296                 OPTIMIZATION:=HIGHEST, \
1297                 CFLAGS:=$(CFLAGS_JDKLIB) \
1298                         $(BUILD_LIBJPEG_CLOSED_INCLUDES) \
1299                         -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg,\
1300                 MAPFILE:=$(BUILD_LIBJPEG_MAPFILE), \
1301                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
1302                          $(call SET_SHARED_LIBRARY_ORIGIN),\
1303                 LDFLAGS_windows:=$(WIN_JAVA_LIB) jvm.lib,\
1304                 LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
1305                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
1306                 RC_FLAGS:=$(RC_FLAGS)\
1307                           -D "JDK_FNAME=jpeg.dll" \
1308                           -D "JDK_INTERNAL_NAME=jpeg" \
1309                           -D "JDK_FTYPE=0x2L",\
1310                 REORDER:=$(BUILD_LIBJPEG_REORDER),\
1311                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjpeg,\
1312                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
1313 
1314 $(BUILD_LIBJPEG) : $(BUILD_LIBJAVA)
1315 
1316 BUILD_LIBRARIES += $(BUILD_LIBJPEG)
1317 
1318 ##########################################################################################
1319 
1320 ifndef OPENJDK
1321     FONT_HEADERS:=-I$(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k
1322     BUILD_LIBFONTMANAGER_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libfontmanager/mapfile-vers
1323     LIBFONTMANAGER_EXCLUDE_FILES += freetypeScaler.c
1324 else
1325     FONT_HEADERS:=$(FREETYPE2_CFLAGS)
1326     BUILD_LIBFONTMANAGER_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libfontmanager/mapfile-vers.openjdk
1327     BUILD_LIBFONTMANAGER_FONTLIB:=$(FREETYPE2_LIBS)
1328 endif
1329 
1330 LIBFONTMANAGER_OPTIMIZATION:=HIGH
1331 
1332 ifeq ($(OPENJDK_TARGET_OS),windows)
1333     LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
1334                                     X11TextRenderer.c
1335     LIBFONTMANAGER_OPTIMIZATION:=LOW
1336 else
1337     LIBFONTMANAGER_EXCLUDE_FILES += fontpath.c \
1338                                     lcdglyph.c
1339 endif
1340 
1341 BUILD_LIBFONTMANAGER_CFLAGS_COMMON:=\
1342                         $(X_CFLAGS) \
1343                         -DLE_STANDALONE -DHEADLESS \
1344                         $(FONT_HEADERS) \
1345                         -I$(JDK_TOPDIR)/src/share/native/sun/font \
1346                         -I$(JDK_TOPDIR)/src/share/native/sun/font/layout \
1347                         -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \
1348                         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt \
1349                         -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \
1350                         -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \
1351                         -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \
1352                         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d \
1353                         -I$(JDK_TOPDIR)/src/share/native/sun/java2d
1354 
1355 # Turn off aliasing with GCC for ExtensionSubtables.cpp
1356 ifeq ($(OPENJDK_TARGET_OS), linux)
1357     BUILD_LIBFONTMANAGER_ExtensionSubtables.cpp_CXXFLAGS:=-fno-strict-aliasing
1358 endif
1359 
1360 $(eval $(call SetupNativeCompilation,BUILD_LIBFONTMANAGER,\
1361                 LIBRARY:=fontmanager, \
1362                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1363                 SRC:=$(JDK_TOPDIR)/src/share/native/sun/font\
1364                      $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/font,\
1365                 EXCLUDE_FILES:=$(LIBFONTMANAGER_EXCLUDE_FILES) \
1366                                AccelGlyphCache.c,\
1367                 LANG:=C++,\
1368                 CFLAGS:=$(CFLAGS_JDKLIB) $(BUILD_LIBFONTMANAGER_CFLAGS_COMMON),\
1369                 CXXFLAGS:=$(CXXFLAGS_JDKLIB) $(BUILD_LIBFONTMANAGER_CFLAGS_COMMON),\
1370                 OPTIMIZATION:=$(LIBFONTMANAGER_OPTIMIZATION), \
1371                 CFLAGS_windows= -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/windows \
1372                                 -DCC_NOEX, \
1373                 MAPFILE:=$(BUILD_LIBFONTMANAGER_MAPFILE), \
1374                 LDFLAGS:=$(subst -Xlinker -z -Xlinker defs,,$(LDFLAGS_JDKLIB)) $(LDFLAGS_CXX_JDK) \
1375                          $(call SET_SHARED_LIBRARY_ORIGIN),\
1376                 LDFLAGS_SUFFIX:=$(BUILD_LIBFONTMANAGER_FONTLIB),\
1377                 LDFLAGS_SUFFIX_linux:=-lawt $(LIBM) $(LIBCXX) -ljava -ljvm -lc,\
1378                 LDFLAGS_SUFFIX_solaris:=-lawt -lawt_xawt -lc $(LIBM) $(LIBCXX) -ljava -ljvm,\
1379                 LDFLAGS_SUFFIX_macosx:=-lawt $(LIBM) $(LIBCXX) -undefined dynamic_lookup \
1380                                        -ljava -ljvm,\
1381                 LDFLAGS_SUFFIX_windows:=$(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
1382                                         $(WIN_AWT_LIB),\
1383                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
1384                 RC_FLAGS:=$(RC_FLAGS)\
1385                           -D "JDK_FNAME=fontmanager.dll" \
1386                           -D "JDK_INTERNAL_NAME=fontmanager" \
1387                           -D "JDK_FTYPE=0x2L",\
1388                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libfontmanager,\
1389                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
1390 
1391 $(BUILD_LIBFONTMANAGER) : $(BUILD_LIBAWT)
1392 
1393 ifneq (,$(findstring $(OPENJDK_TARGET_OS),solaris macosx))
1394 $(BUILD_LIBFONTMANAGER) : $(BUILD_LIBAWT_XAWT)
1395 endif
1396 
1397 BUILD_LIBRARIES += $(BUILD_LIBFONTMANAGER)
1398 
1399 ##########################################################################################
1400 
1401 ifndef OPENJDK
1402 
1403 #    ifeq ($(OPENJDK_TARGET_OS), linux)
1404 #        ifeq ("$(CC_VER_MAJOR)", "3")
1405 #            OTHER_LDLIBS  += -Wl,-Bstatic -lgcc_eh -Wl,-Bdynamic
1406 #        endif                           
1407 #    endif
1408 #
1409 # The resulting size of the t2k lib file is (at least on linux) dependant on the order of 
1410 # the input .o files. Because of this the new build will differ in size to the old build.
1411     BUILD_LIBT2K_CFLAGS_COMMON:=-I$(JDK_TOPDIR)/src/share/native/sun/font \
1412                             -I$(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k \
1413                             -I$(JDK_TOPDIR)/src/closed/share/native/sun/font \
1414                             -I$(JDK_TOPDIR)/src/share/share/native/sun/font \
1415                             -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/font \
1416                             -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \
1417                             -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \
1418                             -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d \
1419                             -I$(JDK_TOPDIR)/src/share/native/sun/java2d
1420 
1421     $(eval $(call SetupNativeCompilation,BUILD_LIBT2K,\
1422                 LIBRARY:=t2k, \
1423                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1424                 SRC:=$(JDK_TOPDIR)/src/closed/share/native/sun/font \
1425                      $(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k \
1426                      $(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k/ttHints,\
1427                 EXCLUDE_FILES:=orion.c,\
1428                 LANG:=C++,\
1429                 OPTIMIZATION:=HIGH, \
1430                 CFLAGS:=$(CFLAGS_JDKLIB) $(BUILD_LIBT2K_CFLAGS_COMMON),\
1431                 CXXFLAGS:=$(CXXFLAGS_JDKLIB) $(BUILD_LIBT2K_CFLAGS_COMMON),\
1432                 CFLAGS_windows=-DCC_NOEX, \
1433                 CXXFLAGS_windows=-DCC_NOEX, \
1434                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libt2k/mapfile-vers, \
1435                 LDFLAGS:=$(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \
1436                          $(call SET_SHARED_LIBRARY_ORIGIN),\
1437                 LDFLAGS_windows:=user32.lib $(JDK_OUTPUTDIR)/objs/libfontmanager/fontmanager.lib,\
1438                 LDFLAGS_SUFFIX_posix:=$(LIBM) $(LIBCXX) -lfontmanager -ljava -ljvm -lc,\
1439                 LDFLAGS_SUFFIX_solaris:=-lawt -lawt_xawt,\
1440                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
1441                 RC_FLAGS:=$(RC_FLAGS)\
1442                           -D "JDK_FNAME=t2k.dll" \
1443                           -D "JDK_INTERNAL_NAME=t2k" \
1444                           -D "JDK_FTYPE=0x2L",\
1445                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libt2k,\
1446                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
1447 
1448     # t2k is linked against fontmanager
1449     $(BUILD_LIBT2K) : $(BUILD_LIBFONTMANAGER)
1450 
1451     BUILD_LIBRARIES += $(BUILD_LIBT2K)
1452 endif
1453 
1454 ##########################################################################################
1455 
1456 ifeq ($(OPENJDK_TARGET_OS), windows)
1457     ifeq ($(OPENJDK_TARGET_CPU), x86)
1458         KERNEL32_LIB:=kernel32.lib
1459     endif
1460     $(eval $(call SetupNativeCompilation,BUILD_LIBJAWT,\
1461                 LIBRARY:=jawt, \
1462                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1463                 SRC:=$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/windows,\
1464                 INCLUDE_FILES:=jawt.cpp,\
1465                 LANG:=C++,\
1466                 OPTIMIZATION:=LOW, \
1467                 CFLAGS:=$(CXXFLAGS_JDKLIB) \
1468                         -EHsc -DUNICODE -D_UNICODE \
1469                         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/windows \
1470                         -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \
1471                         -I$(JDK_TOPDIR)/src/share/native/sun/java2d \
1472                         -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \
1473                         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/windows \
1474                         -I$(DXSDK_INCLUDE_PATH), \
1475                 LDFLAGS:=$(LDFLAGS_JDKLIB) $(KERNEL32_LIB) $(LDFLAGS_CXX_JDK) \
1476                          advapi32.lib $(WIN_AWT_LIB),\
1477                 LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
1478                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
1479                 RC_FLAGS:=$(RC_FLAGS)\
1480                           -D "JDK_FNAME=jawt.dll" \
1481                           -D "JDK_INTERNAL_NAME=jawt" \
1482                           -D "JDK_FTYPE=0x2L",\
1483                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjawt,\
1484                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
1485 
1486 $(BUILD_LIBJAWT) : $(BUILD_LIBAWT)
1487 
1488 $(JDK_OUTPUTDIR)/lib/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX): $(BUILD_LIBJAWT)
1489         $(ECHO) Copying $(@F)
1490         $(CP) $(JDK_OUTPUTDIR)/objs/libjawt/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX) $@
1491 
1492 BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/lib/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX)
1493 
1494 else # OPENJDK_TARGET_OS not windows
1495 
1496     JAWT_LIBS:=
1497     ifneq ($(OPENJDK_TARGET_OS), solaris)
1498         JAWT_LIBS += -lawt
1499     endif
1500 
1501     ifndef BUILD_HEADLESS_ONLY
1502         JAWT_LIBS += -lawt_xawt
1503     else
1504         JAWT_LIBS += -lawt_headless
1505         HEADLESS_CFLAG += -DHEADLESS
1506     endif
1507 
1508     JAWT_FILES:=jawt.c
1509     ifeq ($(OPENJDK_TARGET_OS), macosx)
1510         JAWT_FILES:=jawt.m
1511         JAWT_LIBS:=-lawt_lwawt
1512     endif
1513 
1514     $(eval $(call SetupNativeCompilation,BUILD_LIBJAWT,\
1515                 LIBRARY:=jawt, \
1516                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1517                 SRC:=$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt \
1518                      $(JDK_TOPDIR)/src/macosx/native/sun/awt,\
1519                 INCLUDE_FILES:=$(JAWT_FILES),\
1520                 LANG:=C,\
1521                 OPTIMIZATION:=LOW, \
1522                 CFLAGS:=$(CFLAGS_JDKLIB), \
1523                 CFLAGS_linux:=$(HEADLESS_CFLAG),\
1524                 CFLAGS_macosx:=-I$(JDK_TOPDIR)/src/solaris/native/sun/awt ,\
1525                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjawt/mapfile-vers, \
1526                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
1527                          $(call SET_SHARED_LIBRARY_ORIGIN),\
1528                 LDFLAGS_solaris:=-L$(OPENWIN_HOME)/sfw/lib$(OPENJDK_TARGET_CPU_ISADIR) -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR),\
1529                 LDFLAGS_SUFFIX_linux:=$(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX),\
1530                 LDFLAGS_SUFFIX_solaris:=$(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX) -lXrender,\
1531                 LDFLAGS_SUFFIX_macosx:=-Xlinker -rpath -Xlinker @loader_path $(JAWT_LIBS) \
1532                                        -framework Cocoa $(LDFLAGS_JDKLIB_SUFFIX),\
1533                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjawt,\
1534                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
1535 
1536 ifndef BUILD_HEADLESS_ONLY
1537 $(BUILD_LIBJAWT) : $(BUILD_LIBAWT_XAWT)
1538 else
1539 $(BUILD_LIBJAWT) : $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)awt_headless$(SHARED_LIBRARY_SUFFIX)
1540 endif
1541 
1542 ifeq ($(OPENJDK_TARGET_OS),macosx)
1543 $(BUILD_LIBJAWT) : $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)awt_lwawt$(SHARED_LIBRARY_SUFFIX)
1544 endif
1545 
1546 endif # OPENJDK_TARGET_OS
1547 
1548 BUILD_LIBRARIES += $(BUILD_LIBJAWT)
1549 
1550 ##########################################################################################
1551 
1552 LIBINSTRUMENT_SRC   :=$(JDK_TOPDIR)/src/share/instrument \
1553                       $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/io \
1554                       $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/instrument
1555 
1556 LIBINSTRUMENT_FILES :=\
1557         EncodingSupport.c \
1558         EncodingSupport_md.c \
1559         FileSystemSupport_md.c \
1560         InstrumentationImplNativeMethods.c \
1561         InvocationAdapter.c \
1562         JarFacade.c \
1563         JPLISAgent.c \
1564         JPLISAssert.c \
1565         JavaExceptions.c \
1566         PathCharsValidator.c \
1567         Reentrancy.c \
1568         Utilities.c \
1569         canonicalize_md.c
1570 
1571 LIBINSTRUMENT_DIR   :=$(JDK_OUTPUTDIR)/objs/libinstrument
1572 LIBINSTRUMENT_CFLAGS:=$(CFLAGS_JDKLIB) \
1573                       -I$(JDK_TOPDIR)/src/share/instrument \
1574                       -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/instrument \
1575                       -I$(JDK_TOPDIR)/src/share/bin
1576 
1577 LIBINSTRUMENT_LDFLAGS:=
1578 LIBINSTRUMENT_LDFLAGS_SUFFIX:=
1579 
1580 ifeq ($(OPENJDK_TARGET_OS), windows)
1581     LIBINSTRUMENT_LDFLAGS += $(JDK_OUTPUTDIR)/objs/jli_static.lib $(WIN_JAVA_LIB) \
1582                                  -export:Agent_OnAttach advapi32.lib
1583     # Statically link the C runtime so that there are not dependencies on modules 
1584     # not on the search patch when invoked from the Windows system directory 
1585     # (or elsewhere).
1586     LIBINSTRUMENT_CFLAGS := $(filter-out -MD,$(LIBINSTRUMENT_CFLAGS))
1587     # equivalent of strcasecmp is stricmp on Windows
1588     LIBINSTRUMENT_CFLAGS += -Dstrcasecmp=stricmp
1589 endif
1590 
1591 $(eval $(call SetupNativeCompilation,BUILD_LIBINSTRUMENT,\
1592                 LIBRARY:=instrument, \
1593                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1594                 SRC:=$(LIBINSTRUMENT_SRC),\
1595                 INCLUDE_FILES:=$(LIBINSTRUMENT_FILES),\
1596                 LANG:=C,\
1597                 OPTIMIZATION:=LOW, \
1598                 CFLAGS:=$(LIBINSTRUMENT_CFLAGS),\
1599                 CFLAGS_debug:=-DJPLIS_LOGGING,\
1600                 CFLAGS_release:=-DNO_JPLIS_LOGGING,\
1601                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libinstrument/mapfile-vers, \
1602                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
1603                          $(call SET_SHARED_LIBRARY_ORIGIN) \
1604                          $(LIBINSTRUMENT_LDFLAGS),\
1605                 LDFLAGS_linux:=$(call SET_SHARED_LIBRARY_ORIGIN,/jli),\
1606                 LDFLAGS_solaris:= $(call SET_SHARED_LIBRARY_ORIGIN,/jli),\
1607                 LDFLAGS_macosx:=-Xlinker -all_load $(JDK_OUTPUTDIR)/objs/libjli_static.a \
1608                                 -framework Cocoa -framework Security -framework ApplicationServices,\
1609                 LDFLAGS_SUFFIX:=$(LIBINSTRUMENT_LDFLAGS_SUFFIX),\
1610                 LDFLAGS_SUFFIX_macosx:=-liconv $(LIBZ),\
1611                 LDFLAGS_SUFFIX_solaris:=$(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL) -lc,\
1612                 LDFLAGS_SUFFIX_linux:=$(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL),\
1613                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
1614                 RC_FLAGS:=$(RC_FLAGS)\
1615                           -D "JDK_FNAME=instrument.dll" \
1616                           -D "JDK_INTERNAL_NAME=instrument" \
1617                           -D "JDK_FTYPE=0x2L",\
1618                 OBJECT_DIR:=$(LIBINSTRUMENT_DIR),\
1619                 DEBUG_SYMBOLS:=true))
1620 
1621 ifneq (,$(findstring $(OPENJDK_TARGET_OS), macosx windows))
1622 $(BUILD_LIBINSTRUMENT) : $(JDK_OUTPUTDIR)/objs/$(LIBRARY_PREFIX)jli_static$(STATIC_LIBRARY_SUFFIX)
1623 else
1624 $(BUILD_LIBINSTRUMENT) : $(INSTALL_LIBRARIES_HERE)/jli/$(LIBRARY_PREFIX)jli$(SHARED_LIBRARY_SUFFIX)
1625 endif
1626 $(BUILD_LIBINSTRUMENT) : $(BUILD_LIBJAVA)
1627 
1628 BUILD_LIBRARIES += $(BUILD_LIBINSTRUMENT)
1629 
1630 ##########################################################################################
1631 
1632 BUILD_LIBMANAGEMENT_SRC:=$(JDK_TOPDIR)/src/share/native/sun/management \
1633                            $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/management \
1634                            $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/com/sun/management
1635 
1636 BUILD_LIBMANAGEMENT_EXCLUDES:=
1637 
1638 BUILD_LIBMANAGEMENT_CFLAGS:=-I$(JDK_TOPDIR)/src/share/native/sun/management
1639 
1640 ifneq ($(OPENJDK_TARGET_OS), windows)
1641         BUILD_LIBMANAGEMENT_EXCLUDES += OperatingSystem_md.c
1642 else
1643         BUILD_LIBMANAGEMENT_EXCLUDES += UnixOperatingSystem_md.c
1644 endif
1645 
1646 ifneq ($(OPENJDK_TARGET_OS),solaris)
1647         BUILD_LIBMANAGEMENT_EXCLUDES += SolarisOperatingSystem.c
1648 endif
1649 
1650 ifneq ($(OPENJDK_TARGET_OS),linux)
1651         BUILD_LIBMANAGEMENT_EXCLUDES += LinuxOperatingSystem.c
1652 endif
1653 
1654 ifneq ($(OPENJDK_TARGET_OS),macosx)
1655         BUILD_LIBMANAGEMENT_EXCLUDES += MacosxOperatingSystem.c
1656 endif
1657 
1658 LIBMANAGEMENT_OPTIMIZATION:=HIGH
1659 ifneq ($(findstring $(OPENJDK_TARGET_OS),solaris linux),)
1660     ifeq ($(ENABLE_DEBUG_SYMBOLS), true)
1661         LIBMANAGEMENT_OPTIMIZATION:=LOW
1662     endif
1663 endif
1664 
1665 $(eval $(call SetupNativeCompilation,BUILD_LIBMANAGEMENT,\
1666                 LIBRARY:=management,\
1667                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1668                 SRC:=$(BUILD_LIBMANAGEMENT_SRC),\
1669                 EXCLUDE_FILES:=$(BUILD_LIBMANAGEMENT_EXCLUDES),\
1670                 LANG:=C,\
1671                 OPTIMIZATION:=$(LIBMANAGEMENT_OPTIMIZATION), \
1672                 CFLAGS:=$(CFLAGS_JDKLIB) $(BUILD_LIBMANAGEMENT_CFLAGS),\
1673                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libmanagement/mapfile-vers, \
1674                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
1675                          $(call SET_SHARED_LIBRARY_ORIGIN),\
1676                 LDFLAGS_solaris:=-lkstat,\
1677                 LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
1678                 LDFLAGS_SUFFIX_windows:=jvm.lib psapi.lib $(WIN_JAVA_LIB) advapi32.lib,\
1679                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
1680                 RC_FLAGS:=$(RC_FLAGS)\
1681                           -D "JDK_FNAME=management.dll" \
1682                           -D "JDK_INTERNAL_NAME=management" \
1683                           -D "JDK_FTYPE=0x2L",\
1684                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libmanagement,\
1685                 DEBUG_SYMBOLS:=true))
1686 
1687 $(BUILD_LIBMANAGEMENT) : $(BUILD_LIBJAVA)
1688 
1689 BUILD_LIBRARIES += $(BUILD_LIBMANAGEMENT)
1690 
1691 ##########################################################################################
1692 
1693 BUILD_LIBHPROF_SRC:=$(JDK_TOPDIR)/src/share/demo/jvmti/hprof $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/demo/jvmti/hprof
1694 BUILD_LIBHPROF_CFLAGS:=-I$(JDK_TOPDIR)/src/share/demo/jvmti/hprof \
1695                          -I$(JDK_TOPDIR)/src/share/npt \
1696                          -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt \
1697                          -I$(JDK_TOPDIR)/src/share/demo/jvmti/java_crw_demo
1698 
1699 BUILD_LIBHPROF_LDFLAGS:=
1700 
1701 LIBHPROF_OPTIMIZATION:=HIGHEST
1702 ifneq ($(findstring $(OPENJDK_TARGET_OS),solaris linux),)
1703     ifeq ($(ENABLE_DEBUG_SYMBOLS), true)
1704         LIBHPROF_OPTIMIZATION:=LOW
1705     endif
1706 endif
1707 
1708 $(eval $(call SetupNativeCompilation,BUILD_LIBHPROF,\
1709                 LIBRARY:=hprof, \
1710                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1711                 SRC:=$(BUILD_LIBHPROF_SRC),\
1712                 LANG:=C,\
1713                 OPTIMIZATION:=$(LIBHPROF_OPTIMIZATION), \
1714                 CFLAGS:=$(CFLAGS_JDKLIB) \
1715                          $(BUILD_LIBHPROF_CFLAGS),\
1716                 CFLAGS_debug:=-DHPROF_LOGGING,\
1717                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libhprof/mapfile-vers, \
1718                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
1719                          $(call SET_SHARED_LIBRARY_ORIGIN),\
1720                 LDFLAGS_windows:=wsock32.lib winmm.lib advapi32.lib,\
1721                 LDFLAGS_SUFFIX_linux:=$(LIBDL),\
1722                 LDFLAGS_SUFFIX_macosx:=$(LIBDL),\
1723                 LDFLAGS_SUFFIX_solaris:=-lsocket -lnsl $(LIBDL) -lc,\
1724                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
1725                 RC_FLAGS:=$(RC_FLAGS)\
1726                           -D "JDK_FNAME=hprof.dll" \
1727                           -D "JDK_INTERNAL_NAME=hprof" \
1728                           -D "JDK_FTYPE=0x2L",\
1729                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libhprof_jvmti,\
1730                 DEBUG_SYMBOLS:=true))
1731 
1732 BUILD_LIBRARIES += $(BUILD_LIBHPROF)
1733 
1734 ##########################################################################################
1735 
1736 $(eval $(call SetupNativeCompilation,BUILD_LIBJAVA_CRW_DEMO,\
1737                 LIBRARY:=java_crw_demo, \
1738                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1739                 SRC:=$(JDK_TOPDIR)/src/share/demo/jvmti/java_crw_demo,\
1740                 LANG:=C,\
1741                 OPTIMIZATION:=LOW, \
1742                 CFLAGS:=$(CFLAGS_JDKLIB) \
1743                         -I$(JDK_TOPDIR)/src/share/demo/jvmti/java_crw_demo,\
1744                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjava_crw_demo/mapfile-vers, \
1745                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
1746                          $(call SET_SHARED_LIBRARY_ORIGIN),\
1747                 LDFLAGS_SUFFIX_solaris:=-lc,\
1748                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
1749                 RC_FLAGS:=$(RC_FLAGS)\
1750                           -D "JDK_FNAME=java_crw_demo.dll" \
1751                           -D "JDK_INTERNAL_NAME=java_crw_demo" \
1752                           -D "JDK_FTYPE=0x2L",\
1753                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjava_crw_demo,\
1754                 DEBUG_SYMBOLS:=true))
1755 
1756 BUILD_LIBRARIES += $(BUILD_LIBJAVA_CRW_DEMO)
1757 
1758 ##########################################################################################
1759 
1760 $(eval $(call SetupNativeCompilation,BUILD_LIBNPT,\
1761                 LIBRARY:=npt, \
1762                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1763                 SRC:=$(JDK_TOPDIR)/src/share/npt $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt,\
1764                 LANG:=C,\
1765                 OPTIMIZATION:=LOW, \
1766                 CFLAGS:=$(CFLAGS_JDKLIB) \
1767                         -I$(JDK_TOPDIR)/src/share/npt \
1768                         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt,\
1769                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libnpt/mapfile-vers, \
1770                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
1771                          $(call SET_SHARED_LIBRARY_ORIGIN),\
1772                 LDFLAGS_macosx:=-liconv,\
1773                 LDFLAGS_SUFFIX_windows:=-export:nptInitialize -export:nptTerminate,\
1774                 LDFLAGS_SUFFIX_solaris:=-lc, \
1775                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
1776                 RC_FLAGS:=$(RC_FLAGS)\
1777                           -D "JDK_FNAME=npt.dll" \
1778                           -D "JDK_INTERNAL_NAME=npt" \
1779                           -D "JDK_FTYPE=0x2L",\
1780                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libnpt,\
1781                 DEBUG_SYMBOLS:=true))
1782 
1783 BUILD_LIBRARIES += $(BUILD_LIBNPT)
1784 
1785 ##########################################################################################
1786 
1787 LIBNET_SRC_DIRS:=$(JDK_TOPDIR)/src/share/native/java/net \
1788                    $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/net \
1789                    $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/net/dns \
1790                    $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/net/spi
1791 
1792 ifeq ($(OPENJDK_TARGET_OS),windows)
1793     LIBNET_SRC_DIRS+=$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/net/www/protocol/http/ntlm
1794 else
1795     LIBNET_SRC_DIRS+=$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/net/sdp
1796 endif
1797 
1798 LIBNET_CFLAGS:=$(foreach dir,$(LIBNET_SRC_DIRS),-I$(dir))
1799 
1800 LIBNET_EXCLUDE_FILES:=
1801 ifneq ($(OPENJDK_TARGET_OS),linux)
1802         LIBNET_EXCLUDE_FILES += linux_close.c
1803 endif
1804 
1805 ifneq ($(OPENJDK_TARGET_OS),macosx)
1806         LIBNET_EXCLUDE_FILES += bsd_close.c
1807 endif
1808 
1809 ifeq ($(OPENJDK_TARGET_OS),windows)
1810         LIBNET_EXCLUDE_FILES += PlainSocketImpl.c PlainDatagramSocketImpl.c SdpSupport.c
1811 else
1812         LIBNET_EXCLUDE_FILES += TwoStacksPlainSocketImpl.c DualStackPlainSocketImpl.c \
1813                                 TwoStacksPlainDatagramSocketImpl.c DualStackPlainDatagramSocketImpl.c \
1814                                 NTLMAuthSequence.c NetworkInterface_winXP.c
1815 endif
1816 
1817 $(eval $(call SetupNativeCompilation,BUILD_LIBNET,\
1818                 LIBRARY:=net,\
1819                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1820                 SRC:=$(LIBNET_SRC_DIRS),\
1821                 EXCLUDE_FILES:=$(LIBNET_EXCLUDE_FILES), \
1822                 LANG:=C,\
1823                 OPTIMIZATION:=LOW, \
1824                 CFLAGS:=$(CFLAGS_JDKLIB) \
1825                         $(LIBNET_CFLAGS),\
1826                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libnet/mapfile-vers, \
1827                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
1828                          $(call SET_SHARED_LIBRARY_ORIGIN),\
1829                 LDFLAGS_SUFFIX_macosx:=-ljvm -ljava,\
1830                 LDFLAGS_SUFFIX_solaris:=-ljvm -ljava -lnsl -lsocket $(LIBDL) -lc ,\
1831                 LDFLAGS_SUFFIX_linux:=$(LIBDL) -ljvm -lpthread -ljava,\
1832                 LDFLAGS_SUFFIX_windows:=ws2_32.lib jvm.lib secur32.lib iphlpapi.lib \
1833                                         delayimp.lib $(WIN_JAVA_LIB) advapi32.lib \
1834                                         -DELAYLOAD:secur32.dll -DELAYLOAD:iphlpapi.dll, \
1835                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
1836                 RC_FLAGS:=$(RC_FLAGS)\
1837                           -D "JDK_FNAME=net.dll" \
1838                           -D "JDK_INTERNAL_NAME=net" \
1839                           -D "JDK_FTYPE=0x2L",\
1840                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libnet,\
1841                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
1842 
1843 $(BUILD_LIBNET) : $(BUILD_LIBJAVA)
1844 
1845 BUILD_LIBRARIES += $(BUILD_LIBNET)
1846 
1847 $(JDK_OUTPUTDIR)/lib/net.properties: $(JDK_TOPDIR)/src/share/lib/net.properties
1848         $(ECHO) $(LOG_INFO) Copying $(@F)
1849         $(call install-file)
1850 
1851 COPY_FILES += $(JDK_OUTPUTDIR)/lib/net.properties
1852 
1853 ifeq ($(OPENJDK_TARGET_OS), solaris)
1854 $(JDK_OUTPUTDIR)/lib/sdp/sdp.conf.template : $(JDK_TOPDIR)/src/${OPENJDK_TARGET_OS_API_DIR}/lib/sdp/sdp.conf.template
1855         $(ECHO) $(LOG_INFO) Copying $(@F)
1856         $(call install-file)
1857 
1858 COPY_FILES += $(JDK_OUTPUTDIR)/lib/sdp/sdp.conf.template
1859 endif
1860 
1861 ##########################################################################################
1862 
1863 BUILD_LIBNIO_SRC:=\
1864         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/nio \
1865         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/nio/ch \
1866         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/nio/fs
1867 
1868 BUILD_LIBNIO_CFLAGS:=\
1869         -I$(JDK_TOPDIR)/src/share/native/sun/nio/ch \
1870         -I$(JDK_TOPDIR)/src/share/native/java/io \
1871         -I$(JDK_TOPDIR)/src/share/native/java/net \
1872         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/net
1873 
1874 BUILD_LIBNIO_FILES:=\
1875         DatagramChannelImpl.c \
1876         DatagramDispatcher.c \
1877         FileChannelImpl.c \
1878         FileDispatcherImpl.c \
1879         FileKey.c \
1880         IOUtil.c \
1881         MappedByteBuffer.c \
1882         Net.c \
1883         ServerSocketChannelImpl.c \
1884         SocketChannelImpl.c \
1885         SocketDispatcher.c
1886 
1887 ifeq ($(OPENJDK_TARGET_OS), windows)
1888         BUILD_LIBNIO_FILES += \
1889                 Iocp.c \
1890                 RegistryFileTypeDetector.c \
1891                 WindowsAsynchronousFileChannelImpl.c \
1892                 WindowsAsynchronousServerSocketChannelImpl.c \
1893                 WindowsAsynchronousSocketChannelImpl.c \
1894                 WindowsNativeDispatcher.c \
1895                 WindowsSelectorImpl.c
1896 endif
1897 
1898 ifeq ($(OPENJDK_TARGET_OS), linux)
1899         BUILD_LIBNIO_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS)
1900         BUILD_LIBNIO_FILES += \
1901                 EPoll.c \
1902                 EPollArrayWrapper.c \
1903                 EPollPort.c \
1904                 InheritedChannel.c \
1905                 NativeThread.c \
1906                 PollArrayWrapper.c \
1907                 UnixAsynchronousServerSocketChannelImpl.c \
1908                 UnixAsynchronousSocketChannelImpl.c \
1909                 GnomeFileTypeDetector.c \
1910                 MagicFileTypeDetector.c \
1911                 LinuxNativeDispatcher.c \
1912                 LinuxWatchService.c \
1913                 UnixCopyFile.c \
1914                 UnixNativeDispatcher.c
1915 endif
1916 
1917 ifeq ($(OPENJDK_TARGET_OS), macosx)
1918         BUILD_LIBNIO_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS)
1919         BUILD_LIBNIO_SRC += $(JDK_TOPDIR)/src/macosx/native/sun/nio/ch
1920         BUILD_LIBNIO_FILES += \
1921                 InheritedChannel.c \
1922                 NativeThread.c \
1923                 PollArrayWrapper.c \
1924                 UnixAsynchronousServerSocketChannelImpl.c \
1925                 UnixAsynchronousSocketChannelImpl.c \
1926                 BsdNativeDispatcher.c \
1927                 MacOSXNativeDispatcher.c \
1928                 UnixCopyFile.c \
1929                 UnixNativeDispatcher.c \
1930                 KQueue.c \
1931                 KQueuePort.c \
1932                 KQueueArrayWrapper.c
1933 endif
1934 
1935 ifeq ($(OPENJDK_TARGET_OS), solaris)
1936         BUILD_LIBNIO_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS)
1937         BUILD_LIBNIO_FILES += \
1938                 DevPollArrayWrapper.c \
1939                 InheritedChannel.c \
1940                 NativeThread.c \
1941                 PollArrayWrapper.c \
1942                 SolarisEventPort.c \
1943                 UnixAsynchronousServerSocketChannelImpl.c \
1944                 UnixAsynchronousSocketChannelImpl.c \
1945                 GnomeFileTypeDetector.c \
1946                 SolarisNativeDispatcher.c \
1947                 SolarisWatchService.c \
1948                 UnixCopyFile.c \
1949                 UnixNativeDispatcher.c
1950 endif
1951 
1952 $(eval $(call SetupNativeCompilation,BUILD_LIBNIO,\
1953                 LIBRARY:=nio,\
1954                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1955                 SRC:=$(BUILD_LIBNIO_SRC),\
1956                 INCLUDE_FILES:=$(BUILD_LIBNIO_FILES), \
1957                 LANG:=C,\
1958                 OPTIMIZATION:=HIGH, \
1959                 CFLAGS:=$(CFLAGS_JDKLIB) \
1960                         $(BUILD_LIBNIO_CFLAGS),\
1961                 MAPFILE:=$(BUILD_LIBNIO_MAPFILE), \
1962                 LDFLAGS:=$(LDFLAGS_JDKLIB) $(BUILD_LIBNIO_LDFLAGS) \
1963                          $(call SET_SHARED_LIBRARY_ORIGIN),\
1964                 LDFLAGS_SUFFIX_linux:=-ljava -lnet -lpthread $(LIBDL),\
1965                 LDFLAGS_SUFFIX_solaris:=-ljvm -lsocket -lposix4 $(LIBDL) \
1966                                         -lsendfile -ljava -lnet -lc,\
1967                 LDFLAGS_SUFFIX_windows:=jvm.lib ws2_32.lib $(WIN_JAVA_LIB) \
1968                                         $(JDK_OUTPUTDIR)/objs/libnet/net.lib \
1969                                         advapi32.lib,\
1970                 LDFLAGS_SUFFIX_macosx:=-ljava -lnet -pthread -framework CoreFoundation,\
1971                 LDFLAGS_SUFFIX:=,\
1972                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
1973                 RC_FLAGS:=$(RC_FLAGS)\
1974                           -D "JDK_FNAME=nio.dll" \
1975                           -D "JDK_INTERNAL_NAME=nio" \
1976                           -D "JDK_FTYPE=0x2L",\
1977                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libnio,\
1978                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
1979 
1980 BUILD_LIBRARIES += $(BUILD_LIBNIO)
1981 
1982 $(BUILD_LIBNIO) : $(BUILD_LIBNET)
1983 
1984 ##########################################################################################
1985 
1986 ifeq ($(OPENJDK_TARGET_OS_API),posix)
1987 
1988   ifneq ($(OPENJDK_TARGET_OS),macosx)
1989 
1990     SCTP_WERROR := -Werror
1991     ifeq ($(OPENJDK_TARGET_CPU_ARCH), ppc)
1992       SCTP_WERROR :=
1993     endif
1994 
1995     $(eval $(call SetupNativeCompilation,BUILD_LIBSCTP,\
1996                 LIBRARY:=sctp,\
1997                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1998                 SRC:=$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/nio/ch/sctp,\
1999                 LANG:=C,\
2000                 OPTIMIZATION:=LOW, \
2001                 CFLAGS:=$(CFLAGS_JDKLIB)\
2002                         -I$(JDK_TOPDIR)/src/share/native/sun/nio/ch \
2003                         -I$(JDK_TOPDIR)/src/share/native/sun/nio/ch/sctp \
2004                         -I$(JDK_TOPDIR)/src/share/native/java/net \
2005                         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/nio/ch \
2006                         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/net,\
2007                 CFLAGS_linux:=$(SCTP_WERROR),\
2008                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libsctp/mapfile-vers, \
2009                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
2010                          $(call SET_SHARED_LIBRARY_ORIGIN),\
2011                 LDFLAGS_SUFFIX_linux:=-lpthread $(LIBDL) -ljava -ljvm,\
2012                 LDFLAGS_SUFFIX_posix:=-lnio -lnet,\
2013                 LDFLAGS_SUFFIX_solaris:=-lsocket -ljava -ljvm -lc,\
2014                 LDFLAGS_SUFFIX_macosx:=-ljava -ljvm,\
2015                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsctp,\
2016                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2017 
2018     BUILD_LIBRARIES += $(BUILD_LIBSCTP)
2019 
2020     $(BUILD_LIBSCTP) : $(BUILD_LIBNIO)
2021   endif
2022 endif
2023 
2024 ##########################################################################################
2025 
2026 BUILD_LIBJLI_SRC_DIRS:=$(JDK_TOPDIR)/src/share/bin $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin
2027 LIBJLI_CFLAGS:=$(CFLAGS_JDKLIB) $(foreach dir,$(BUILD_LIBJLI_SRC_DIRS),-I$(dir))
2028 
2029 BUILD_LIBJLI_FILES:=\
2030         java.c \
2031         splashscreen_stubs.c \
2032         parse_manifest.c \
2033         version_comp.c \
2034         wildcard.c \
2035         jli_util.c
2036 
2037 ifeq ($(JVM_VARIANT_ZERO), true)
2038         ERGO_FAMILY:=zero
2039 else
2040         ifeq ($(OPENJDK_TARGET_CPU_ARCH), x86)
2041                 ERGO_FAMILY:=i586
2042         else
2043                 ERGO_FAMILY:=$(OPENJDK_TARGET_CPU_ARCH)
2044         endif
2045 endif
2046 
2047 ifeq ($(OPENJDK_TARGET_OS), macosx)
2048         LIBJLI_CFLAGS += -I$(JDK_TOPDIR)/src/macosx/bin
2049         BUILD_LIBJLI_SRC_DIRS += $(JDK_TOPDIR)/src/macosx/bin
2050         BUILD_LIBJLI_FILES += java_md_common.c java_md_macosx.c
2051 
2052         BUILD_LIBJLI_java_md_macosx.c_CFLAGS:=-x objective-c
2053         BUILD_LIBJLI_STATIC_java_md_macosx.c_CFLAGS:=-x objective-c
2054 endif
2055 
2056 ifeq ($(OPENJDK_TARGET_OS), windows)
2057         BUILD_LIBJLI_FILES += java_md.c \
2058                               cmdtoargs.c       
2059         # Staticically link with c runtime on windows.
2060         LIBJLI_CFLAGS:=$(filter-out -MD,$(LIBJLI_CFLAGS))
2061 else ifneq ($(OPENJDK_TARGET_OS), macosx)
2062 
2063         BUILD_LIBJLI_FILES += java_md_common.c
2064         BUILD_LIBJLI_FILES += java_md_solinux.c ergo.c 
2065 
2066         ERGO_ARCH_FILE = ergo_$(ERGO_FAMILY).c
2067 
2068         # if the architecture specific ergo file exists then
2069         # use it, else use the generic definitions from ergo.c
2070         ifneq ($(wildcard $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin/$(ERGO_ARCH_FILE)),)
2071                 BUILD_LIBJLI_FILES += $(ERGO_ARCH_FILE)
2072         else # !ERGO_ARCH_FILE
2073                 LIBJLI_CFLAGS += -DUSE_GENERIC_ERGO
2074         endif # ERGO_ARCH_FILE
2075 endif #WINDOWS
2076 
2077 # Append defines depending on target platform
2078 LIBJLI_CFLAGS += $(OPENJDK_TARGET_CPU_JLI_CFLAGS)
2079 
2080 ifeq ($(OPENJDK_TARGET_OS), macosx)
2081         LIBJLI_CFLAGS += -DPACKAGE_PATH=\"$(PACKAGE_PATH)\"
2082 endif
2083 
2084 ifneq ($(USE_EXTERNAL_LIBZ),true)
2085         BUILD_LIBJLI_SRC_DIRS += $(JDK_TOPDIR)/src/share/native/java/util/zip/zlib-1.2.5
2086         LIBJLI_CFLAGS += $(ZLIB_CPPFLAGS)
2087         BUILD_LIBJLI_FILES += \
2088                 inflate.c \
2089                 inftrees.c \
2090                 inffast.c \
2091                 zadler32.c \
2092                 zcrc32.c \
2093                 zutil.c
2094 endif
2095 
2096 ifeq ($(OPENJDK_TARGET_OS), windows)
2097     LIBJLI_OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE)
2098 else
2099     LIBJLI_OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE)/jli
2100 endif
2101 
2102 $(eval $(call SetupNativeCompilation,BUILD_LIBJLI,\
2103                 LIBRARY:=jli,\
2104                 OUTPUT_DIR:=$(LIBJLI_OUTPUT_DIR),\
2105                 SRC:=$(BUILD_LIBJLI_SRC_DIRS),\
2106                 INCLUDE_FILES:=$(BUILD_LIBJLI_FILES),\
2107                 LANG:=C,\
2108                 OPTIMIZATION:=HIGH, \
2109                 CFLAGS:=$(LIBJLI_CFLAGS),\
2110                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjli/mapfile-vers, \
2111                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
2112                          $(call SET_SHARED_LIBRARY_ORIGIN),\
2113                 LDFLAGS_linux:=$(call SET_SHARED_LIBRARY_ORIGIN,/..),\
2114                 LDFLAGS_solaris:=$(call SET_SHARED_LIBRARY_ORIGIN,/..),\
2115                 LDFLAGS_macosx:=-framework Cocoa -framework Security -framework ApplicationServices,\
2116                 LDFLAGS_SUFFIX_solaris:=$(LIBZ) $(LIBDL) -lc,\
2117                 LDFLAGS_SUFFIX_linux:=$(LIBZ) $(LIBDL) -lc -lpthread,\
2118                 LDFLAGS_SUFFIX_macosx:=$(LIBZ),\
2119                 LDFLAGS_SUFFIX_windows:=\
2120                         -export:JLI_Launch \
2121                         -export:JLI_ManifestIterate \
2122                         -export:JLI_SetTraceLauncher \
2123                         -export:JLI_ReportErrorMessage \
2124                         -export:JLI_ReportErrorMessageSys \
2125                         -export:JLI_ReportMessage \
2126                         -export:JLI_ReportExceptionDescription \
2127                         -export:JLI_MemAlloc \
2128                         -export:JLI_CmdToArgs \
2129                         -export:JLI_GetStdArgc \
2130                         -export:JLI_GetStdArgs \
2131                         advapi32.lib \
2132                         comctl32.lib \
2133                         user32.lib,\
2134                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
2135                 RC_FLAGS:=$(RC_FLAGS) \
2136                           -D "JDK_FNAME=jli.dll" \
2137                           -D "JDK_INTERNAL_NAME=jli" \
2138                           -D "JDK_FTYPE=0x2L",\
2139                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjli,\
2140                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2141 
2142 BUILD_LIBRARIES += $(BUILD_LIBJLI)
2143 
2144 # On windows, the static library has the same suffix as the import library created by
2145 # with the shared library, so the static library is given a different name. No harm
2146 # in doing it for all platform to reduce complexity.
2147 ifeq ($(OPENJDK_TARGET_OS), windows)
2148     $(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC,\
2149                 STATIC_LIBRARY:=jli_static,\
2150                 OUTPUT_DIR:=$(JDK_OUTPUTDIR)/objs,\
2151                 SRC:=$(BUILD_LIBJLI_SRC_DIRS),\
2152                 INCLUDE_FILES:=$(BUILD_LIBJLI_FILES),\
2153                 LANG:=C,\
2154                 OPTIMIZATION:=HIGH, \
2155                 CFLAGS:=$(STATIC_LIBRARY_FLAGS) $(LIBJLI_CFLAGS),\
2156                 ARFLAGS:=$(ARFLAGS),\
2157                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjli_static,\
2158                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2159 
2160 BUILD_LIBRARIES += $(BUILD_LIBJLI_STATIC)
2161 
2162 else ifeq ($(OPENJDK_TARGET_OS),macosx)
2163     #
2164     # On macosx they do partial (incremental) linking of libjli_static.a
2165     #   code it here...rather than add support to NativeCompilation
2166     #   as this is first time I see it
2167     $(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC,\
2168                 LIBRARY:=jli_static, \
2169                 OUTPUT_DIR:=$(JDK_OUTPUTDIR)/objs,\
2170                 SRC:=$(BUILD_LIBJLI_SRC_DIRS),\
2171                 INCLUDE_FILES:=$(BUILD_LIBJLI_FILES),\
2172                 LANG:=C,\
2173                 OPTIMIZATION:=HIGH, \
2174                 CFLAGS:=$(CFLAGS_JDKLIB) $(LIBJLI_CFLAGS),\
2175                 LDFLAGS:=-nostdlib -r,\
2176                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjli_static,\
2177                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2178 
2179 $(JDK_OUTPUTDIR)/objs/libjli_static.a : $(BUILD_LIBJLI_STATIC)
2180         $(call install-file)
2181 
2182 BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/objs/libjli_static.a
2183 endif
2184 
2185 ##########################################################################################
2186 
2187 ifndef OPENJDK
2188 ifeq ($(ENABLE_JFR), true)
2189 
2190 $(eval $(call SetupNativeCompilation,BUILD_LIBJFR,\
2191                 LIBRARY:=jfr,\
2192                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2193                 SRC:=$(JDK_TOPDIR)/src/closed/share/native/oracle/jfr,\
2194                 LANG:=C,\
2195                 OPTIMIZATION:=LOW, \
2196                 CFLAGS:=$(CFLAGS_JDKLIB) \
2197                         -I$(JDK_TOPDIR)/src/closed/share/javavm/export, \
2198                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjfr/mapfile-vers, \
2199                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
2200                          $(call SET_SHARED_LIBRARY_ORIGIN),\
2201                 LDFLAGS_SUFFIX_solaris:=-lc,\
2202                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
2203                 RC_FLAGS:=$(RC_FLAGS)\
2204                           -D "JDK_FNAME=jfr.dll" \
2205                           -D "JDK_INTERNAL_NAME=jfr" \
2206                           -D "JDK_FTYPE=0x2L",\
2207                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjfr,\
2208                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2209 
2210 BUILD_LIBRARIES += $(BUILD_LIBJFR)
2211 
2212 endif
2213 endif
2214 
2215 ##########################################################################################
2216 
2217 ifndef OPENJDK
2218 
2219 BUILD_LIBKCMS_EXCLUDE_FILES:=
2220 ifeq ($(OPENJDK_TARGET_OS),windows)
2221         BUILD_LIBKCMS_EXCLUDE_FILES += ukcpmgr.c unixmem.c
2222 else
2223         BUILD_LIBKCMS_EXCLUDE_FILES += cmmdll.c registry.c spxffile.c sysinfo.c winmem.c wkcpmgr.c
2224 endif
2225 
2226 BUILD_LIBKCMS_FLAGS:=$(CFLAGS_JDKLIB)
2227 
2228 ifeq ($(OPENJDK_TARGET_OS),solaris)
2229      # This particular library uses a feature called PIC_CODE_SMALL (on solaris)
2230      #   implement it like this...since it's only used here
2231      BUILD_LIBKCMS_FLAGS:=$(patsubst -KPIC,-Kpic,$(BUILD_LIBKCMS_FLAGS))
2232 else ifeq ($(OPENJDK_TARGET_CPU_ARCH), ppc)
2233      BUILD_LIBKCMS_FLAGS:=$(patsubst -fPIC,-fpic,$(BUILD_LIBKCMS_FLAGS))
2234 endif
2235 
2236 $(eval $(call SetupNativeCompilation,BUILD_LIBKCMS,\
2237                 LIBRARY:=kcms,\
2238                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2239                 SRC:=$(JDK_TOPDIR)/src/closed/share/native/sun/java2d/cmm/kcms,\
2240                 LANG:=C,\
2241                 EXCLUDE_FILES:=$(BUILD_LIBKCMS_EXCLUDE_FILES),\
2242                 OPTIMIZATION:=LOW, \
2243                 CFLAGS:=$(BUILD_LIBKCMS_FLAGS) \
2244                         -DJAVACMM -DFUT_CALC_EX -DNO_FUT_GCONST,\
2245                 CFLAGS_linux:=-Wno-missing-field-initializers,\
2246                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libkcms/mapfile-vers, \
2247                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
2248                          $(call SET_SHARED_LIBRARY_ORIGIN),\
2249                 LDFLAGS_SUFFIX_linux:=-lc -lpthread,\
2250                 LDFLAGS_SUFFIX_solaris:=-lc,\
2251                 LDFLAGS_SUFFIX_windows:=$(WIN_JAVA_LIB) advapi32.lib user32.lib version.lib, \
2252                 LDFLAGS_SUFFIX_posix:=-lm -ljava -ljvm,\
2253                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/closed/share/native/sun/java2d/cmm/kcms/cmm.rc,\
2254                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/closed/share/native/sun/java2d/cmm/kcms/cmm.rc,\
2255                 RC_FLAGS:=$(RC_FLAGS)\
2256                           -D "JDK_FNAME=kcms.dll" \
2257                           -D "JDK_INTERNAL_NAME=kcms" \
2258                           -D "JDK_FTYPE=0x2L",\
2259                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libkcms,\
2260                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2261 
2262 $(BUILD_LIBKCMS) : $(BUILD_LIBJAVA)
2263 
2264 BUILD_LIBRARIES += $(BUILD_LIBKCMS)
2265 
2266 endif
2267 
2268 ##########################################################################################
2269 
2270 ifndef OPENJDK
2271 ifeq ($(OPENJDK_TARGET_OS), solaris)
2272 ifneq ($(OPENJDK_TARGET_CPU), x86_64)
2273 
2274 ifeq ($(shell if test "$(OS_VERSION_MAJOR)" -eq 5 -a "$(OS_VERSION_MINOR)" -le 10; then $(ECHO) ok; fi), ok)
2275 
2276 SUNWJDGA_MAPFILE:=
2277 ifeq ($(OPENJDK_TARGET_CPU_ARCH), sparc)
2278         SUNWJDGA_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjdga/mapfile-vers
2279 endif
2280 
2281 $(eval $(call SetupNativeCompilation,BUILD_LIBSUNWJDGA, \
2282                 LIBRARY:=sunwjdga,\
2283                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2284                 SRC:=$(JDK_TOPDIR)/src/solaris/native/sun/jdga, \
2285                 LANG:=C, \
2286                 OPTIMIZATION:=LOW, \
2287                 CFLAGS:=$(CFLAGS_JDKLIB) \
2288                         -I$(JDK_TOPDIR)/src/share/javavm/export \
2289                         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/javavm/export \
2290                         -I$(OPENWIN_HOME)/include, \
2291                 MAPFILE:=$(SUNWJDGA_MAPFILE), \
2292                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
2293                          $(call SET_SHARED_LIBRARY_ORIGIN), \
2294                 LDFLAGS_SUFFIX:=-L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -ldga -lX11 $(LIBDL) -lc, \
2295                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsunwjdga,\
2296                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2297 
2298 BUILD_LIBRARIES += $(BUILD_LIBSUNWJDGA)
2299 
2300 endif
2301 endif
2302 endif
2303 endif
2304 
2305 ##########################################################################################
2306 
2307 ifeq ($(BUILD_HEADLESS), true)
2308 ifneq ($(OPENJDK_TARGET_OS), windows)
2309 
2310 LIBAWT_HEADLESS_DIRS:=$(JDK_TOPDIR)/src/share/native/sun/font \
2311                         $(JDK_TOPDIR)/src/share/native/sun/java2d/opengl \
2312                         $(JDK_TOPDIR)/src/solaris/native/sun/font \
2313                         $(JDK_TOPDIR)/src/solaris/native/sun/awt \
2314                         $(JDK_TOPDIR)/src/solaris/native/sun/java2d/opengl \
2315                         $(JDK_TOPDIR)/src/solaris/native/sun/java2d/x11
2316 
2317 ifeq ($(OPENJDK_TARGET_OS),macosx)
2318         LIBAWT_HEADLESS_DIRS+=$(JDK_TOPDIR)/src/macosx/native/sun/font
2319 endif
2320 
2321 LIBAWT_HEADLESS_CFLAGS:=-DHEADLESS=true \
2322                           -DX11_PATH=\"$(X11_PATH)\" -DPACKAGE_PATH=\"$(PACKAGE_PATH)\" \
2323                           $(CUPS_CFLAGS) \
2324                           $(X_CFLAGS) \
2325                           -I$(JDK_TOPDIR)/src/share/native/sun/java2d \
2326                           -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d \
2327                           -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \
2328                           -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \
2329                           -I$(JDK_TOPDIR)/src/share/native/sun/awt/image \
2330                           -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \
2331                           -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \
2332                           -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/jdga \
2333                           $(foreach dir,$(LIBAWT_HEADLESS_DIRS),-I$(dir))
2334 
2335 ifeq ($(OPENJDK_TARGET_OS),macosx)
2336         LIBAWT_HEADLESS_CFLAGS+=\
2337                 -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
2338                 -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks
2339 endif
2340 
2341 LIBAWT_HEADLESS_FILES:=\
2342         awt_Font.c \
2343         HeadlessToolkit.c \
2344         fontpath.c \
2345         VDrawingArea.c \
2346         X11Color.c \
2347         X11Renderer.c \
2348         X11PMBlitLoops.c \
2349         X11SurfaceData.c \
2350         X11FontScaler_md.c \
2351         X11TextRenderer_md.c \
2352         OGLBlitLoops.c \
2353         OGLBufImgOps.c \
2354         OGLContext.c \
2355         OGLFuncs.c \
2356         OGLMaskBlit.c \
2357         OGLMaskFill.c \
2358         OGLPaints.c \
2359         OGLRenderQueue.c \
2360         OGLRenderer.c \
2361         OGLSurfaceData.c \
2362         OGLTextRenderer.c \
2363         OGLVertexCache.c \
2364         GLXGraphicsConfig.c \
2365         GLXSurfaceData.c \
2366         AccelGlyphCache.c \
2367         CUPSfuncs.c
2368 
2369 ifeq ($(OPENJDK_TARGET_OS),macosx)
2370         LIBAWT_HEADLESS_FILES+=\
2371                 AWTFont.m \
2372                 AWTStrike.m \
2373                 CCharToGlyphMapper.m \
2374                 CGGlyphImages.m \
2375                 CGGlyphOutlines.m \
2376                 CoreTextSupport.m
2377 endif
2378 
2379 LIBAWT_HEADLESS_REORDER:=
2380 ifeq ($(OPENJDK_TARGET_OS), solaris)
2381         ifneq ($(OPENJDK_TARGET_CPU), x86_64)
2382                 LIBAWT_HEADLESS_REORDER:=$(JDK_TOPDIR)/makefiles/mapfiles/libawt_headless/reorder-$(OPENJDK_TARGET_CPU)
2383         endif
2384 endif
2385 
2386 $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_HEADLESS,\
2387                 LIBRARY:=awt_headless,\
2388                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2389                 SRC:=$(LIBAWT_HEADLESS_DIRS),\
2390                 INCLUDE_FILES:=$(LIBAWT_HEADLESS_FILES),\
2391                 LANG:=C,\
2392                 OPTIMIZATION:=LOW, \
2393                 CFLAGS:=$(CFLAGS_JDKLIB) $(LIBAWT_HEADLESS_CFLAGS),\
2394                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libawt_headless/mapfile-vers,\
2395                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
2396                          $(call SET_SHARED_LIBRARY_ORIGIN),\
2397                 LDFLAGS_linux:=$(call SET_SHARED_LIBRARY_ORIGIN,/..),\
2398                 LDFLAGS_solaris:=$(call SET_SHARED_LIBRARY_ORIGIN,/..) \
2399                                  -R/usr/dt/lib$(OPENJDK_TARGET_CPU_ISADIR) \
2400                                  -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR),\
2401                 LDFLAGS_macosx:=$(call SET_SHARED_LIBRARY_ORIGIN).,\
2402                 REORDER:=$(LIBAWT_HEADLESS_REORDER), \
2403                 LDFLAGS_SUFFIX_linux:=-ljvm -lawt -lm $(LIBDL) -ljava,\
2404                 LDFLAGS_SUFFIX_solaris:=$(LIBDL) -ljvm -lawt -lm -ljava $(LIBCXX) -lc,\
2405                 LDFLAGS_SUFFIX_macosx:=-ljvm $(LIBCXX) -lawt $(LIBDL) -ljava \
2406                                  -framework Accelerate \
2407                                  -framework ApplicationServices \
2408                                  -framework Cocoa \
2409                                  -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
2410                                  -framework JavaNativeFoundation \
2411                                  -framework JavaRuntimeSupport,\
2412                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libawt_headless,\
2413                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2414 
2415 $(BUILD_LIBAWT_HEADLESS) : $(BUILD_LIBAWT)
2416 
2417 BUILD_LIBRARIES += $(BUILD_LIBAWT_HEADLESS)
2418 
2419 endif
2420 endif
2421 
2422 ##########################################################################################
2423 
2424 ifndef BUILD_HEADLESS_ONLY
2425 LIBSPLASHSCREEN_DIRS:=\
2426         $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg \
2427         $(JDK_TOPDIR)/src/share/native/sun/awt/libpng \
2428         $(JDK_TOPDIR)/src/share/native/sun/awt/splashscreen
2429 
2430 ifeq ($(USE_EXTERNAL_LIBGIF),true)
2431     GIFLIB_LDFLAGS := -lgif
2432 else
2433     LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/sun/awt/giflib
2434     GIFLIB_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/giflib
2435 endif
2436 
2437 ifneq ($(OPENJDK_TARGET_OS), macosx)
2438     LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt/splashscreen
2439 else
2440     LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/macosx/native/sun/awt/splashscreen
2441 endif
2442 
2443 LIBSPLASHSCREEN_CFLAGS:=-DSPLASHSCREEN -DPNG_NO_MMX_CODE \
2444         $(foreach dir,$(LIBSPLASHSCREEN_DIRS),-I$(dir))
2445 
2446 ifeq ($(OPENJDK_TARGET_OS), macosx)
2447         LIBSPLASHSCREEN_CFLAGS:=-I$(JDK_TOPDIR)/src/macosx/native/sun/awt/splashscreen \
2448                                   $(LIBSPLASHSCREEN_CFLAGS) \
2449                                   -F/System/Library/Frameworks/JavaVM.framework/Frameworks
2450         LIBSPLASHSCREEN_CFLAGS += -DWITH_MACOSX
2451         LIBSPLASHSCREEN_CFLAGS += -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp
2452 
2453         LIBSPLASHSCREEN_java_awt_SplashScreen.c_CFLAGS:=-x objective-c -O0
2454         LIBSPLASHSCREEN_splashscreen_gfx_impl.c_CFLAGS:=-x objective-c -O0
2455         LIBSPLASHSCREEN_splashscreen_gif.c_CFLAGS:=-x objective-c -O0
2456         LIBSPLASHSCREEN_splashscreen_impl.c_CFLAGS:=-x objective-c -O0
2457         LIBSPLASHSCREEN_splashscreen_jpeg.c_CFLAGS:=-x objective-c -O0
2458         LIBSPLASHSCREEN_splashscreen_png.c_CFLAGS:=-x objective-c -O0
2459         LIBSPLASHSCREEN_splashscreen_sys.m_CFLAGS:=-O0
2460 
2461 else ifneq ($(OPENJDK_TARGET_OS), windows)
2462         LIBSPLASHSCREEN_CFLAGS += -DWITH_X11 -I$(OPENWIN_HOME)/include -I$(OPENWIN_HOME)/include/X11/extensions
2463 else
2464         LIBSPLASHSCREEN_CFLAGS += -DWITH_WIN32
2465 endif
2466 
2467 LIBSPLASHSCREEN_LDFLAGS_SUFFIX:=
2468 
2469 ifneq ($(USE_EXTERNAL_LIBZ),true)
2470         LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/java/util/zip/zlib-1.2.5
2471         LIBSPLASHSCREEN_CFLAGS += $(ZLIB_CPPFLAGS)
2472 endif
2473 
2474 ifeq ($(OPENJDK_TARGET_OS), macosx)
2475         LIBSPLASHSCREEN_LDFLAGS_SUFFIX += $(LIBM) -lpthread -liconv -losxapp \
2476                                   -framework ApplicationServices \
2477                                   -framework Foundation \
2478                                   -framework Cocoa \
2479                                   -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
2480                                   -framework JavaNativeFoundation
2481 else ifneq ($(OPENJDK_TARGET_OS), windows)
2482         LIBSPLASHSCREEN_LDFLAGS_SUFFIX += -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -lX11 -lXext $(LIBM) -lpthread
2483 else # OPENJDK_TARGET_OS
2484         LIBSPLASHSCREEN_LDFLAGS_SUFFIX += kernel32.lib user32.lib gdi32.lib delayimp.lib -DELAYLOAD:user32.dll
2485 endif # OPENJDK_TARGET_OS
2486 
2487 $(eval $(call SetupNativeCompilation,LIBSPLASHSCREEN,\
2488                 LIBRARY:=splashscreen,\
2489                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2490                 SRC:=$(LIBSPLASHSCREEN_DIRS),\
2491                 EXCLUDE_FILES:=imageioJPEG.c jpegdecoder.c pngtest.c,\
2492                 LANG:=C,\
2493                 OPTIMIZATION:=LOW, \
2494                 CFLAGS:=$(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) $(GIFLIB_CFLAGS),\
2495                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libsplashscreen/mapfile-vers, \
2496                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
2497                          $(call SET_SHARED_LIBRARY_ORIGIN),\
2498                 LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS),\
2499                 LDFLAGS_SUFFIX_solaris:=-lc,\
2500                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
2501                 RC_FLAGS:=$(RC_FLAGS)\
2502                           -D "JDK_FNAME=splashscreen.dll" \
2503                           -D "JDK_INTERNAL_NAME=splashscreen" \
2504                           -D "JDK_FTYPE=0x2L",\
2505                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsplashscreen,\
2506                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2507 
2508 BUILD_LIBRARIES += $(LIBSPLASHSCREEN)
2509 
2510 ifeq ($(OPENJDK_TARGET_OS),macosx)
2511 $(LIBSPLASHSCREEN) :  $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)osxapp$(SHARED_LIBRARY_SUFFIX) 
2512 endif
2513 
2514 endif
2515 
2516 ##########################################################################################
2517 
2518 ifndef OPENJDK
2519 
2520 LIBDCPR_SRC_DIRS:=\
2521         $(JDK_TOPDIR)/src/closed/share/native/sun/dc/doe \
2522         $(JDK_TOPDIR)/src/closed/share/native/sun/dc/path \
2523         $(JDK_TOPDIR)/src/closed/share/native/sun/dc/pr \
2524         $(JDK_TOPDIR)/src/closed/share/native/sun/dc/util
2525 
2526 LIBDCPR_CFLAGS:=$(foreach dir,$(LIBDCPR_SRC_DIRS),-I$(dir)) \
2527                   -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe
2528 
2529 $(eval $(call SetupNativeCompilation,BUILD_LIBDCPR,\
2530                 LIBRARY:=dcpr,\
2531                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2532                 SRC:=$(LIBDCPR_SRC_DIRS),\
2533                 LANG:=C,\
2534                 OPTIMIZATION:=LOW, \
2535                 CFLAGS:=$(CFLAGS_JDKLIB) \
2536                         $(LIBDCPR_CFLAGS), \
2537                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libdcpr/mapfile-vers, \
2538                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
2539                          $(call SET_SHARED_LIBRARY_ORIGIN),\
2540                 LDFLAGS_SUFFIX:=$(LIBM) $(LDFLAGS_JDKLIB_SUFFIX),\
2541                 LDFLAGS_SUFFIX_posix:=-lm,\
2542                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
2543                 RC_FLAGS:=$(RC_FLAGS)\
2544                           -D "JDK_FNAME=dcpr.dll" \
2545                           -D "JDK_INTERNAL_NAME=dcpr" \
2546                           -D "JDK_FTYPE=0x2L",\
2547                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libdcpr,\
2548                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2549 
2550 $(BUILD_LIBDCPR) : $(BUILD_LIBJAVA)
2551 
2552 BUILD_LIBRARIES += $(BUILD_LIBDCPR)
2553 
2554 endif
2555 
2556 ##########################################################################################
2557 
2558 $(eval $(call SetupNativeCompilation,BUILD_LIBJ2PCSC,\
2559                 LIBRARY:=j2pcsc,\
2560                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2561                 SRC:=$(JDK_TOPDIR)/src/share/native/sun/security/smartcardio \
2562                      $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/smartcardio,\
2563                 LANG:=C,\
2564                 CFLAGS_posix:=-D__sun_jdk,\
2565                 OPTIMIZATION:=LOW, \
2566                 CFLAGS:=$(CFLAGS_JDKLIB) \
2567                      -I$(JDK_TOPDIR)/src/share/native/sun/security/smartcardio \
2568                      -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/smartcardio\
2569                      -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/smartcardio/MUSCLE,\
2570                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libj2pcsc/mapfile-vers, \
2571                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
2572                          $(call SET_SHARED_LIBRARY_ORIGIN),\
2573                 LDFLAGS_SUFFIX_posix:=$(LIBDL), \
2574                 LDFLAGS_SUFFIX_windows:=winscard.lib,\
2575                 LDFLAGS_SUFFIX_solaris:=-lc,\
2576                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
2577                 RC_FLAGS:=$(RC_FLAGS)\
2578                           -D "JDK_FNAME=j2pcsc.dll" \
2579                           -D "JDK_INTERNAL_NAME=j2pcsc" \
2580                           -D "JDK_FTYPE=0x2L",\
2581                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2pcsc,\
2582                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2583 
2584 BUILD_LIBRARIES += $(BUILD_LIBJ2PCSC)
2585 
2586 ##########################################################################################
2587 
2588 ifneq ($(OPENJDK_TARGET_OS), windows)
2589 $(eval $(call SetupNativeCompilation,BUILD_LIBJ2GSS,\
2590                 LIBRARY:=j2gss,\
2591                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2592                 SRC:=$(JDK_TOPDIR)/src/share/native/sun/security/jgss/wrapper \
2593                      $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/jgss/wrapper,\
2594                 LANG:=C,\
2595                 OPTIMIZATION:=LOW, \
2596                 CFLAGS:=$(CFLAGS_JDKLIB) \
2597                      -I$(JDK_TOPDIR)/src/share/native/sun/security/jgss/wrapper \
2598                      -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/jgss/wrapper,\
2599                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libj2gss/mapfile-vers, \
2600                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
2601                          $(call SET_SHARED_LIBRARY_ORIGIN),\
2602                 LDFLAGS_SUFFIX:=$(LIBDL),\
2603                 LDFLAGS_SUFFIX_solaris:=-lc,\
2604                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2gss,\
2605                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2606 
2607 BUILD_LIBRARIES += $(BUILD_LIBJ2GSS)
2608 endif
2609 
2610 ##########################################################################################
2611 
2612 ifneq ($(BUILD_CRYPTO),no)
2613   BUILD_LIBKRB5_NAME:=
2614   ifeq ($(OPENJDK_TARGET_OS), windows)
2615      BUILD_LIBKRB5_NAME:=w2k_lsa_auth
2616      BUILD_LIBKRB5_SRC:=$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/krb5
2617      BUILD_LIBKRB5_LIBS:=advapi32.lib Secur32.lib netapi32.lib kernel32.lib user32.lib \
2618                          gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib \
2619                          ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib
2620   else ifeq ($(OPENJDK_TARGET_OS), macosx)
2621      BUILD_LIBKRB5_NAME:=osxkrb5
2622      BUILD_LIBKRB5_SRC:=$(JDK_TOPDIR)/src/share/native/sun/security/krb5
2623      BUILD_LIBKRB5_LIBS:=-framework Kerberos
2624   endif
2625 
2626   ifneq ($(BUILD_LIBKRB5_NAME),)
2627     $(eval $(call SetupNativeCompilation,BUILD_LIBKRB5,\
2628                 LIBRARY:=$(BUILD_LIBKRB5_NAME),\
2629                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2630                 SRC:=$(BUILD_LIBKRB5_SRC),\
2631                 LANG:=C,\
2632                 OPTIMIZATION:=LOW, \
2633                 CFLAGS:=$(CFLAGS_JDKLIB) \
2634                         -I$(JDK_TOPDIR)/src/share/native/sun/security/krb5 \
2635                         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/krb5 ,\
2636                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
2637                          $(call SET_SHARED_LIBRARY_ORIGIN),\
2638                 LDFLAGS_SUFFIX:=$(BUILD_LIBKRB5_LIBS) ,\
2639                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
2640                 RC_FLAGS:=$(RC_FLAGS)\
2641                           -D "JDK_FNAME=$(BUILD_LIBKRB5_NAME).dll" \
2642                           -D "JDK_INTERNAL_NAME=$(BUILD_LIBKRB5_NAME)" \
2643                           -D "JDK_FTYPE=0x2L",\
2644                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libkrb5,\
2645                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2646 
2647     BUILD_LIBRARIES += $(BUILD_LIBKRB5)
2648   endif
2649 endif
2650 
2651 ##########################################################################################
2652 
2653 ifeq ($(OPENJDK_TARGET_OS), windows)
2654 
2655 $(eval $(call SetupNativeCompilation,BUILD_LIBSUNMSCAPI,\
2656                 LIBRARY:=sunmscapi,\
2657                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2658                 SRC:=$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/mscapi,\
2659                 LANG:=C++,\
2660                 OPTIMIZATION:=LOW, \
2661                 CFLAGS:=$(CFLAGS_JDKLIB) \
2662                         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/mscapi ,\
2663                 LDFLAGS:=$(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \
2664                          $(call SET_SHARED_LIBRARY_ORIGIN),\
2665                 LDFLAGS_SUFFIX:=Crypt32.Lib advapi32.lib,\
2666                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
2667                 RC_FLAGS:=$(RC_FLAGS)\
2668                           -D "JDK_FNAME=sunmscapi.dll" \
2669                           -D "JDK_INTERNAL_NAME=sunmscapi" \
2670                           -D "JDK_FTYPE=0x2L",\
2671                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsunmscapi,\
2672                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2673 
2674 BUILD_LIBRARIES += $(BUILD_LIBSUNMSCAPI)
2675 endif
2676 
2677 ##########################################################################################
2678 
2679 $(eval $(call SetupNativeCompilation,BUILD_LIBJ2PKCS11,\
2680                 LIBRARY:=j2pkcs11,\
2681                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2682                 SRC:=$(JDK_TOPDIR)/src/share/native/sun/security/pkcs11 \
2683                      $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/pkcs11 \
2684                      $(JDK_TOPDIR)/src/share/native/sun/security/pkcs11/wrapper \
2685                      $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/pkcs11/wrapper,\
2686                 LANG:=C,\
2687                 OPTIMIZATION:=LOW, \
2688                 CFLAGS:=$(CFLAGS_JDKLIB) \
2689                         -I$(JDK_TOPDIR)/src/share/native/sun/security/pkcs11 \
2690                         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/pkcs11 \
2691                         -I$(JDK_TOPDIR)/src/share/native/sun/security/pkcs11/wrapper \
2692                         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/pkcs11/wrapper,\
2693                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libj2pkcs11/mapfile-vers, \
2694                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
2695                          $(call SET_SHARED_LIBRARY_ORIGIN),\
2696                 LDFLAGS_SUFFIX_posix:=$(LIBDL),\
2697                 LDFLAGS_SUFFIX_solaris:=-lc,\
2698                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
2699                 RC_FLAGS:=$(RC_FLAGS)\
2700                           -D "JDK_FNAME=j2pkcs11.dll" \
2701                           -D "JDK_INTERNAL_NAME=j2pkcs11" \
2702                           -D "JDK_FTYPE=0x2L",\
2703                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2pkcs11,\
2704                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2705 
2706 BUILD_LIBRARIES += $(BUILD_LIBJ2PKCS11)
2707 
2708 ##########################################################################################
2709 
2710 ifeq ($(ENABLE_INTREE_EC),yes)
2711 
2712 BUILD_LIBSUNEC_FLAGS:= -I$(JDK_TOPDIR)/src/share/native/sun/security/ec \
2713                        -I$(JDK_TOPDIR)/src/share/native/sun/security/ec/impl
2714 
2715 #
2716 # On sol-sparc...all libraries are compiled with -xregs=no%appl
2717 #   (set in CFLAGS_REQUIRED_sparc)
2718 #
2719 # except!!! libsunec.so
2720 #
2721 ECC_JNI_SOLSPARC_FILTER:=
2722 ifeq ($(OPENJDK_TARGET_CPU_ARCH), sparc)
2723      ECC_JNI_SOLSPARC_FILTER:=-xregs=no%appl
2724 endif
2725 
2726 $(eval $(call SetupNativeCompilation,BUILD_LIBSUNEC,\
2727                 LIBRARY:=sunec,\
2728                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2729                 SRC:=$(JDK_TOPDIR)/src/share/native/sun/security/ec \
2730                      $(JDK_TOPDIR)/src/share/native/sun/security/ec/impl, \
2731                 LANG:=C++, \
2732                 OPTIMIZATION:=LOW, \
2733                 CFLAGS:=$(filter-out $(ECC_JNI_SOLSPARC_FILTER), $(CFLAGS_JDKLIB))\
2734                         $(BUILD_LIBSUNEC_FLAGS) \
2735                         -DMP_API_COMPATIBLE -DNSS_ECC_MORE_THAN_SUITE_B,\
2736                 CXXFLAGS:=$(filter-out $(ECC_JNI_SOLSPARC_FILTER), $(CXXFLAGS_JDKLIB)) \
2737                           $(BUILD_LIBSUNEC_FLAGS),\
2738                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libsunec/mapfile-vers, \
2739                 LDFLAGS:=$(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK),\
2740                 LDFLAGS_macosx:=$(call SET_SHARED_LIBRARY_ORIGIN),\
2741                 LDFLAGS_SUFFIX:=$(LIBCXX),\
2742                 LDFLAGS_SUFFIX_linux:=-lc ,\
2743                 LDFLAGS_SUFFIX_solaris:=-lc ,\
2744                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
2745                 RC_FLAGS:=$(RC_FLAGS)\
2746                           -D "JDK_FNAME=sunec.dll" \
2747                           -D "JDK_INTERNAL_NAME=sunec" \
2748                           -D "JDK_FTYPE=0x2L",\
2749                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsunec,\
2750                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2751 
2752 BUILD_LIBRARIES += $(BUILD_LIBSUNEC)
2753 endif
2754 
2755 ##########################################################################################
2756 
2757 LIBJSOUND_SRC_DIRS:=\
2758         $(JDK_TOPDIR)/src/share/native/com/sun/media/sound \
2759         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/com/sun/media/sound
2760 
2761 LIBJSOUND_SRC_FILES:=Utilities.c Platform.c
2762 
2763 LIBJSOUND_LANG:=C
2764 LIBJSOUND_CFLAGS:=$(foreach dir,$(LIBJSOUND_SRC_DIRS),-I$(dir))
2765 
2766 EXTRA_SOUND_JNI_LIBS:=
2767 
2768 LIBJSOUND_MIDIFILES:=\
2769         MidiInDevice.c \
2770         MidiInDeviceProvider.c \
2771         MidiOutDevice.c \
2772         MidiOutDeviceProvider.c \
2773         PlatformMidi.c
2774 
2775 # files needed for ports
2776 LIBJSOUND_PORTFILES:=\
2777         PortMixerProvider.c \
2778         PortMixer.c
2779 
2780 # files needed for direct audio
2781 LIBJSOUND_DAUDIOFILES:=\
2782         DirectAudioDeviceProvider.c \
2783         DirectAudioDevice.c
2784 
2785 ifeq ($(OPENJDK_TARGET_OS), windows)
2786         EXTRA_SOUND_JNI_LIBS += jsoundds
2787         LIBJSOUND_CFLAGS += -DX_PLATFORM=X_WINDOWS \
2788                             -DUSE_PLATFORM_MIDI_OUT=TRUE \
2789                             -DUSE_PLATFORM_MIDI_IN=TRUE \
2790                             -DUSE_PORTS=TRUE
2791         LIBJSOUND_SRC_FILES += \
2792                 PLATFORM_API_WinOS_MidiIn.cpp \
2793                 PLATFORM_API_WinOS_MidiOut.c \
2794                 PLATFORM_API_WinOS_Util.c \
2795                 PLATFORM_API_WinOS_Ports.c
2796         LIBJSOUND_SRC_FILES += $(LIBJSOUND_MIDIFILES)
2797         LIBJSOUND_SRC_FILES += $(LIBJSOUND_PORTFILES)
2798 endif # OPENJDK_TARGET_OS windows
2799 
2800 ifeq ($(OPENJDK_TARGET_OS), linux)
2801         EXTRA_SOUND_JNI_LIBS += jsoundalsa
2802         LIBJSOUND_CFLAGS += -DX_PLATFORM=X_LINUX
2803 endif # OPENJDK_TARGET_OS linux
2804 
2805 ifeq ($(OPENJDK_TARGET_OS), macosx)
2806         LIBJSOUND_LANG:=C++
2807         LIBJSOUND_CFLAGS += -DX_PLATFORM=X_MACOSX \
2808                             -DUSE_PORTS=TRUE \
2809                             -DUSE_DAUDIO=TRUE \
2810                             -DUSE_PLATFORM_MIDI_OUT=TRUE \
2811                             -DUSE_PLATFORM_MIDI_IN=TRUE
2812         LIBJSOUND_SRC_DIRS += $(JDK_TOPDIR)/src/macosx/native/com/sun/media/sound
2813         LIBJSOUND_SRC_FILES += \
2814                 PLATFORM_API_MacOSX_Utils.cpp \
2815                 PLATFORM_API_MacOSX_PCM.cpp \
2816                 PLATFORM_API_MacOSX_Ports.cpp \
2817                 PLATFORM_API_MacOSX_MidiIn.c \
2818                 PLATFORM_API_MacOSX_MidiOut.c \
2819                 PLATFORM_API_MacOSX_MidiUtils.c
2820         LIBJSOUND_SRC_FILES += $(LIBJSOUND_MIDIFILES)
2821         LIBJSOUND_SRC_FILES += $(LIBJSOUND_PORTFILES)
2822         LIBJSOUND_SRC_FILES += $(LIBJSOUND_DAUDIOFILES)
2823 endif # OPENJDK_TARGET_OS macosx
2824 
2825 ifeq ($(OPENJDK_TARGET_OS), solaris)
2826         LIBJSOUND_CFLAGS += -DX_PLATFORM=X_SOLARIS \
2827                             -DUSE_PORTS=TRUE \
2828                             -DUSE_DAUDIO=TRUE
2829         LIBJSOUND_SRC_FILES += \
2830                 PLATFORM_API_SolarisOS_Utils.c \
2831                 PLATFORM_API_SolarisOS_Ports.c \
2832                 PLATFORM_API_SolarisOS_PCM.c
2833         LIBJSOUND_SRC_FILES += $(LIBJSOUND_MIDIFILES)
2834         LIBJSOUND_SRC_FILES += $(LIBJSOUND_PORTFILES)
2835         LIBJSOUND_SRC_FILES += $(LIBJSOUND_DAUDIOFILES)
2836 endif # OPENJDK_TARGET_OS solaris
2837 
2838 
2839 ifeq ($(JVM_VARIANT_ZERO), true)
2840         LIBJSOUND_CFLAGS += -DX_ARCH=X_ZERO
2841 else
2842   ifeq ($(OPENJDK_TARGET_CPU), x86)
2843         LIBJSOUND_CFLAGS += -DX_ARCH=X_I586
2844   endif
2845 
2846   ifeq ($(OPENJDK_TARGET_CPU), sparc)
2847         LIBJSOUND_CFLAGS += -DX_ARCH=X_SPARC
2848   endif
2849 
2850   ifeq ($(OPENJDK_TARGET_CPU), sparcv9)
2851         LIBJSOUND_CFLAGS += -DX_ARCH=X_SPARCV9
2852   endif
2853 
2854   ifeq ($(OPENJDK_TARGET_CPU), x86_64)
2855         LIBJSOUND_CFLAGS += -DX_ARCH=X_AMD64
2856   endif
2857 
2858   ifeq ($(OPENJDK_TARGET_CPU), arm)
2859         LIBJSOUND_CFLAGS += -DX_ARCH=X_ARM
2860   endif
2861 
2862   ifeq ($(OPENJDK_TARGET_CPU), ppc)
2863         LIBJSOUND_CFLAGS += -DX_ARCH=X_PPC
2864   endif
2865 endif
2866 
2867 LIBJSOUND_CFLAGS += -DEXTRA_SOUND_JNI_LIBS='"$(EXTRA_SOUND_JNI_LIBS)"'
2868 
2869 $(eval $(call SetupNativeCompilation,BUILD_LIBJSOUND,\
2870                 LIBRARY:=jsound,\
2871                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2872                 SRC:=$(LIBJSOUND_SRC_DIRS),\
2873                 INCLUDE_FILES:=$(LIBJSOUND_SRC_FILES),\
2874                 LANG:=$(LIBJSOUND_LANG),\
2875                 OPTIMIZATION:=LOW, \
2876                 CFLAGS:=$(CFLAGS_JDKLIB) \
2877                         $(LIBJSOUND_CFLAGS), \
2878                 CXXFLAGS:=$(CXXFLAGS_JDKLIB) $(LIBJSOUND_CFLAGS), \
2879                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjsound/mapfile-vers, \
2880                 LDFLAGS:=$(LDFLAGS_JDKLIB)\
2881                          $(call SET_SHARED_LIBRARY_ORIGIN),\
2882                 LDFLAGS_macosx:=-framework CoreAudio -framework CoreFoundation \
2883                                 -framework CoreServices -framework AudioUnit $(LIBCXX) \
2884                                 -framework CoreMIDI -framework AudioToolbox,\
2885                 LDFLAGS_windows:=$(WIN_JAVA_LIB) advapi32.lib winmm.lib,\
2886                 LDFLAGS_SUFFIX_posix:=-ljava -ljvm,\
2887                 LDFLAGS_SUFFIX_solaris:=-lc ,\
2888                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
2889                 RC_FLAGS:=$(RC_FLAGS)\
2890                           -D "JDK_FNAME=jsound.dll" \
2891                           -D "JDK_INTERNAL_NAME=jsound" \
2892                           -D "JDK_FTYPE=0x2L",\
2893                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjsound,\
2894                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2895 
2896 $(BUILD_LIBJSOUND) : $(BUILD_LIBJAVA)
2897 
2898 BUILD_LIBRARIES += $(BUILD_LIBJSOUND)
2899 
2900 ##########################################################################################
2901 
2902 ifneq ($(filter jsoundalsa, $(EXTRA_SOUND_JNI_LIBS)),)
2903 
2904 $(eval $(call SetupNativeCompilation,BUILD_LIBJSOUNDALSA,\
2905                 LIBRARY:=jsoundalsa,\
2906                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2907                 SRC:=$(LIBJSOUND_SRC_DIRS),\
2908                 INCLUDE_FILES:=Utilities.c $(LIBJSOUND_MIDIFILES) $(LIBJSOUND_PORTFILES) \
2909                                 $(LIBJSOUND_DAUDIOFILES) \
2910                                 PLATFORM_API_LinuxOS_ALSA_CommonUtils.c   \
2911                                 PLATFORM_API_LinuxOS_ALSA_PCM.c     \
2912                                 PLATFORM_API_LinuxOS_ALSA_PCMUtils.c   \
2913                                 PLATFORM_API_LinuxOS_ALSA_MidiIn.c  \
2914                                 PLATFORM_API_LinuxOS_ALSA_MidiOut.c \
2915                                 PLATFORM_API_LinuxOS_ALSA_MidiUtils.c \
2916                                 PLATFORM_API_LinuxOS_ALSA_Ports.c,\
2917                 LANG:=C,\
2918                 OPTIMIZATION:=LOW, \
2919                 CFLAGS:=$(CFLAGS_JDKLIB) $(ALSA_CFLAGS) \
2920                         $(LIBJSOUND_CFLAGS) \
2921                         -DUSE_DAUDIO=TRUE \
2922                         -DUSE_PORTS=TRUE  \
2923                         -DUSE_PLATFORM_MIDI_OUT=TRUE \
2924                         -DUSE_PLATFORM_MIDI_IN=TRUE, \
2925                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjsoundalsa/mapfile-vers, \
2926                 LDFLAGS:=$(LDFLAGS_JDKLIB)\
2927                          $(call SET_SHARED_LIBRARY_ORIGIN),\
2928                 LDFLAGS_SUFFIX:=$(ALSA_LIBS) -ljava -ljvm,\
2929                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjsoundalsa,\
2930                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2931 
2932 $(BUILD_LIBJSOUNDALSA) : $(BUILD_LIBJAVA)
2933 
2934 BUILD_LIBRARIES += $(BUILD_LIBJSOUNDALSA)
2935 
2936 endif
2937 
2938 ##########################################################################################
2939 
2940 ifneq ($(filter jsoundds, $(EXTRA_SOUND_JNI_LIBS)),)
2941 
2942 $(eval $(call SetupNativeCompilation,BUILD_LIBJSOUNDDS,\
2943                 LIBRARY:=jsoundds,\
2944                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2945                 SRC:=$(LIBJSOUND_SRC_DIRS),\
2946                 INCLUDE_FILES:=Utilities.c $(LIBJSOUND_DAUDIOFILES) \
2947                                 PLATFORM_API_WinOS_DirectSound.cpp, \
2948                 LANG:=C++,\
2949                 OPTIMIZATION:=LOW, \
2950                 CFLAGS:=$(CFLAGS_JDKLIB) \
2951                         $(LIBJSOUND_CFLAGS) \
2952                         -DUSE_DAUDIO=TRUE \
2953                         -I$(DXSDK_INCLUDE_PATH), \
2954                 LDFLAGS:=$(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \
2955                          $(call SET_SHARED_LIBRARY_ORIGIN),\
2956                 LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX) dsound.lib winmm.lib user32.lib ole32.lib,\
2957                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
2958                 RC_FLAGS:=$(RC_FLAGS)\
2959                           -D "JDK_FNAME=jsoundds.dll" \
2960                           -D "JDK_INTERNAL_NAME=jsoundds" \
2961                           -D "JDK_FTYPE=0x2L",\
2962                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjsoundds,\
2963                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2964 
2965 $(BUILD_LIBJSOUNDDS) : $(BUILD_LIBJAVA)
2966 
2967 BUILD_LIBRARIES += $(BUILD_LIBJSOUNDDS)
2968 
2969 endif
2970 
2971 ##########################################################################################
2972 
2973 ifeq ($(OPENJDK_TARGET_OS), solaris)
2974 ifndef OPENJDK
2975 
2976 $(eval $(call SetupNativeCompilation,BUILD_LIBJ2UCRYPTO,\
2977                 LIBRARY:=j2ucrypto,\
2978                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2979                 SRC:=$(JDK_TOPDIR)/src/closed/solaris/native/com/oracle/security/ucrypto,\
2980                 LANG:=C,\
2981                 OPTIMIZATION:=LOW, \
2982                 CFLAGS:=$(CFLAGS_JDKLIB) \
2983                         -I$(JDK_TOPDIR)/src/closed/solaris/native/com/oracle/security/ucrypto ,\
2984                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libj2ucrypto/mapfile-vers, \
2985                 LDFLAGS:=$(LDFLAGS_JDKLIB),\
2986                 LDFLAGS_SUFFIX:=$(LIBDL),\
2987                 LDFLAGS_SUFFIX_solaris:=-lc,\
2988                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2ucrypto,\
2989                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2990 
2991 $(BUILD_LIBJ2UCRYPTO) : $(BUILD_LIBJAVA)
2992 
2993 BUILD_LIBRARIES += $(BUILD_LIBJ2UCRYPTO)
2994 
2995 endif
2996 endif
2997 
2998 ##########################################################################################
2999 
3000 ifeq ($(OPENJDK_TARGET_OS), macosx)
3001 
3002 $(eval $(call SetupNativeCompilation,BUILD_LIBAPPLESCRIPTENGINE,\
3003                 LIBRARY:=AppleScriptEngine,\
3004                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
3005                 SRC:=$(JDK_TOPDIR)/src/macosx/native/apple/applescript,\
3006                 LANG:=C,\
3007                 OPTIMIZATION:=LOW, \
3008                 CFLAGS:=$(CFLAGS_JDKLIB) \
3009                         -I$(JDK_TOPDIR)/src/macosx/native/apple/applescript \
3010                         -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
3011                         -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks, \
3012                 LDFLAGS:=$(LDFLAGS_JDKLIB)\
3013                          $(call SET_SHARED_LIBRARY_ORIGIN), \
3014                 LDFLAGS_SUFFIX:=-framework Cocoa \
3015                                 -framework Carbon \
3016                                 -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
3017                                 -framework JavaNativeFoundation \
3018                                 $(LDFLAGS_JDKLIB_SUFFIX),\
3019                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libAppleScriptEngine,\
3020                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
3021 
3022 $(BUILD_LIBAPPLESCRIPTENGINE) : $(BUILD_LIBJAVA)
3023 
3024 BUILD_LIBRARIES += $(BUILD_LIBAPPLESCRIPTENGINE)
3025 
3026 endif
3027 
3028 ##########################################################################################
3029 
3030 ifeq ($(OPENJDK_TARGET_OS), macosx)
3031 
3032 $(eval $(call SetupNativeCompilation,BUILD_LIBOSXAPP,\
3033                 LIBRARY:=osxapp,\
3034                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
3035                 SRC:=$(JDK_TOPDIR)/src/macosx/native/sun/osxapp,\
3036                 LANG:=C,\
3037                 OPTIMIZATION:=LOW, \
3038                 CFLAGS:=$(CFLAGS_JDKLIB) \
3039                         -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp \
3040                         -I$(JDK_OUTPUTDIR)/gensrc/sun/osxapp \
3041                         -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
3042                         -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks,\
3043                 LDFLAGS:=$(LDFLAGS_JDKLIB)\
3044                          $(call SET_SHARED_LIBRARY_ORIGIN), \
3045                 LDFLAGS_SUFFIX_macosx:=\
3046         -framework Accelerate \
3047         -framework ApplicationServices \
3048         -framework AudioToolbox \
3049         -framework Carbon \
3050         -framework Cocoa \
3051         -framework Security \
3052         -framework ExceptionHandling \
3053         -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
3054         -framework JavaNativeFoundation \
3055         -framework JavaRuntimeSupport \
3056         -framework OpenGL \
3057         -framework IOSurface \
3058         -framework QuartzCore, \
3059                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libosxapp,\
3060                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
3061 
3062 BUILD_LIBRARIES += $(BUILD_LIBOSXAPP)
3063 
3064 endif
3065 
3066 ##########################################################################################
3067 
3068 ifeq ($(OPENJDK_TARGET_OS), macosx)
3069 
3070 LIBOSX_DIRS:=\
3071   $(JDK_TOPDIR)/src/macosx/native/com/apple/concurrent \
3072   $(JDK_TOPDIR)/src/macosx/native/java/util \
3073   $(JDK_TOPDIR)/src/macosx/native/com/apple/eio \
3074   $(JDK_TOPDIR)/src/macosx/native/apple/security \
3075   $(JDK_TOPDIR)/src/macosx/native/apple/launcher
3076 
3077 $(eval $(call SetupNativeCompilation,BUILD_LIBOSX,\
3078                 LIBRARY:=osx,\
3079                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
3080                 SRC:=$(LIBOSX_DIRS),\
3081                 LANG:=C,\
3082                 OPTIMIZATION:=LOW, \
3083                 CFLAGS:=$(CFLAGS_JDKLIB) \
3084                         $(foreach dir,$(LIBOSX_DIRS),-I$(dir)) \
3085                         -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp \
3086                         -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
3087                         -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks,\
3088                 LDFLAGS:=$(LDFLAGS_JDKLIB)\
3089                          $(call SET_SHARED_LIBRARY_ORIGIN), \
3090                 LDFLAGS_SUFFIX_macosx:=\
3091     -losxapp \
3092     -framework Cocoa \
3093     -framework ApplicationServices \
3094     -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
3095     -framework JavaNativeFoundation \
3096     -framework JavaRuntimeSupport \
3097     -framework Security \
3098     -framework SystemConfiguration \
3099     $(LDFLAGS_JDKLIB_SUFFIX), \
3100                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libosx,\
3101                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
3102 
3103 BUILD_LIBRARIES += $(BUILD_LIBOSX)
3104 
3105 $(BUILD_LIBOSX) : $(BUILD_LIBOSXAPP)
3106 
3107 $(BUILD_LIBOSX) : $(BUILD_LIBJAVA)
3108 
3109 endif
3110 
3111 ##########################################################################################
3112 
3113 ifeq ($(OPENJDK_TARGET_OS), macosx)
3114 
3115 LIBAWT_LWAWT_FILES:=\
3116         awt.m \
3117         ApplicationDelegate.m \
3118         CFRetainedResource.m \
3119         CGLGraphicsConfig.m \
3120         CGLSurfaceData.m \
3121         CGLLayer.m \
3122         CGraphicsConfig.m \
3123         CGraphicsDevice.m \
3124         CGraphicsEnv.m \
3125         CCharToGlyphMapper.m \
3126         CSystemColors.m \
3127         AWTFont.m \
3128         CGGlyphOutlines.m \
3129         CGGlyphImages.m \
3130         CoreTextSupport.m \
3131         AWTStrike.m \
3132         InitIDs.m \
3133         AWTEvent.m \
3134         AWTView.m \
3135         AWTWindow.m \
3136         AWTSurfaceLayers.m \
3137         CCursorManager.m \
3138         CClipboard.m \
3139         CDataTransferer.m \
3140         CDragSource.m \
3141         CDragSourceContextPeer.m \
3142         CDropTarget.m \
3143         CDropTargetContextPeer.m \
3144         CInputMethod.m \
3145         CDesktopPeer.m \
3146         OSVersion.m \
3147         DnDUtilities.m \
3148         CFileDialog.m \
3149         CImage.m \
3150         CMenu.m \
3151         CMenuBar.m \
3152         CMenuComponent.m \
3153         CMenuItem.m \
3154         CPopupMenu.m \
3155         CRobot.m \
3156         CTrayIcon.m \
3157         CWrapper.m \
3158         JavaAccessibilityAction.m \
3159         JavaAccessibilityUtilities.m \
3160         JavaComponentAccessibility.m \
3161         JavaTextAccessibility.m \
3162         LWCToolkit.m \
3163         GeomUtilities.m \
3164         CPrinterJob.m \
3165         PrintModel.m \
3166         PrinterSurfaceData.m \
3167         PrinterView.m \
3168         QuartzSurfaceData.m \
3169         QuartzRenderer.m \
3170         CTextPipe.m \
3171         ImageSurfaceData.m \
3172         awt_DrawingSurface.m \
3173         \
3174         OGLBlitLoops.c \
3175         OGLBufImgOps.c \
3176         OGLContext.c \
3177         OGLFuncs.c \
3178         OGLMaskBlit.c \
3179         OGLMaskFill.c \
3180         OGLPaints.c \
3181         OGLRenderQueue.c \
3182         OGLRenderer.c \
3183         OGLSurfaceData.c \
3184         OGLTextRenderer.c \
3185         OGLVertexCache.c \
3186         AccelGlyphCache.c \
3187         CUPSfuncs.c
3188 
3189 
3190 LIBAWT_LWAWT_DIRS:=\
3191   $(JDK_TOPDIR)/src/macosx/native/sun/awt \
3192   $(JDK_TOPDIR)/src/macosx/native/sun/font \
3193   $(JDK_TOPDIR)/src/macosx/native/sun/java2d/opengl \
3194   $(JDK_TOPDIR)/src/solaris/native/sun/awt \
3195   $(JDK_TOPDIR)/src/share/native/sun/font \
3196   $(JDK_TOPDIR)/src/share/native/sun/java2d/opengl \
3197 
3198 $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_LWAWT,\
3199                 LIBRARY:=awt_lwawt,\
3200                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
3201                 SRC:=$(LIBAWT_LWAWT_DIRS),\
3202                 LANG:=C,\
3203                 INCLUDE_FILES:=$(LIBAWT_LWAWT_FILES),\
3204                 OPTIMIZATION:=LOW, \
3205                 CFLAGS:=$(CFLAGS_JDKLIB) \
3206                         $(X_CFLAGS) \
3207                         $(X_LIBS) \
3208                         $(foreach dir,$(LIBAWT_LWAWT_DIRS),-I$(dir)) \
3209                         -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp \
3210                         -I$(JDK_TOPDIR)/src/share/native/sun/java2d \
3211                         -I$(JDK_TOPDIR)/src/solaris/native/sun/java2d \
3212                         -I$(JDK_TOPDIR)/src/share/native/sun/awt/image \
3213                         -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \
3214                         -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \
3215                         -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \
3216                         -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \
3217                         -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
3218                         -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks,\
3219                 LDFLAGS:=$(LDFLAGS_JDKLIB)\
3220                          $(call SET_SHARED_LIBRARY_ORIGIN), \
3221                 LDFLAGS_SUFFIX_macosx:=-lawt -lmlib_image -losxapp -ljvm $(LIBM) \
3222                                        -framework Accelerate \
3223                                        -framework ApplicationServices \
3224                                        -framework AudioToolbox \
3225                                        -framework Carbon \
3226                                        -framework Cocoa \
3227                                        -framework Security \
3228                                        -framework ExceptionHandling \
3229                                        -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
3230                                        -framework JavaNativeFoundation \
3231                                        -framework JavaRuntimeSupport \
3232                                        -framework OpenGL \
3233                                        -framework QuartzCore -ljava,\
3234                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libawt_lwawt,\
3235                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
3236 
3237 BUILD_LIBRARIES += $(BUILD_LIBAWT_LWAWT)
3238 
3239 $(BUILD_LIBAWT_LWAWT) : $(BUILD_LIBAWT) 
3240 
3241 $(BUILD_LIBAWT_LWAWT) : $(BUILD_LIBMLIB_IMAGE)
3242 
3243 $(BUILD_LIBAWT_LWAWT) : $(BUILD_LIBOSXAPP)
3244 
3245 $(BUILD_LIBAWT_LWAWT) : $(BUILD_LIBJAVA)
3246 
3247 endif
3248 
3249 ##########################################################################################
3250 
3251 ifeq ($(OPENJDK_TARGET_OS), macosx)
3252 
3253 $(eval $(call SetupNativeCompilation,BUILD_LIBOSXUI,\
3254                 LIBRARY:=osxui,\
3255                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
3256                 SRC:=$(JDK_TOPDIR)/src/macosx/native/com/apple/laf,\
3257                 LANG:=C,\
3258                 OPTIMIZATION:=LOW, \
3259                 CFLAGS:=$(CFLAGS_JDKLIB) \
3260                         -I$(JDK_TOPDIR)/src/macosx/native/com/apple/laf \
3261                         -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp \
3262                         -I$(JDK_TOPDIR)/src/macosx/native/sun/awt \
3263                         -F/System/Library/Frameworks/JavaVM.framework/Frameworks, \
3264                 LDFLAGS:=$(LDFLAGS_JDKLIB)\
3265                          $(call SET_SHARED_LIBRARY_ORIGIN) \
3266                          -Xlinker -rpath -Xlinker @loader_path,\
3267                 LDFLAGS_SUFFIX_macosx:=-lawt -losxapp -lawt_lwawt \
3268                                        -framework Cocoa \
3269                                        -framework Carbon \
3270                                        -framework ApplicationServices \
3271                                        -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
3272                                        -framework JavaNativeFoundation \
3273                                        -framework JavaRuntimeSupport \
3274                                        -ljava -ljvm,\
3275                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libosxui,\
3276                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
3277 
3278 BUILD_LIBRARIES += $(BUILD_LIBOSXUI)
3279 
3280 $(BUILD_LIBOSXUI) : $(BUILD_LIBAWT) 
3281 
3282 $(BUILD_LIBOSXUI) : $(BUILD_LIBOSXAPP)
3283 
3284 $(BUILD_LIBOSXUI) : $(BUILD_LIBAWT_LWAWT)
3285 
3286 #$(BUILD_LIBOSXUI) : $(BUILD_LIBJAVA)
3287 
3288 endif
3289 
3290 ##########################################################################################
3291 
3292 ifeq ($(OPENJDK_TARGET_OS), macosx)
3293 
3294 # Ugly hack to mimic behaviour in old build where this is built as an xcode project.
3295 SET_SHARED_LIBRARY_NAME=-Xlinker -install_name -Xlinker /usr/local/lib/libJObjC.dylib
3296 
3297 $(eval $(call SetupNativeCompilation,BUILD_LIBJOBJC32,\
3298                 LIBRARY:=JObjC,\
3299                 OUTPUT_DIR:=$(JDK_OUTPUTDIR)/objs/libjobjc32,\
3300                 SRC:=$(JDK_TOPDIR)/src/macosx/native/jobjc/src/core/native \
3301                      $(JDK_TOPDIR)/src/macosx/native/jobjc/src/runtime-additions/native ,\
3302                 LANG:=C,\
3303                 OPTIMIZATION:=LOW, \
3304                 CFLAGS:=-fpascal-strings \
3305                         -fobjc-gc \
3306                         -gdwarf-2 \
3307                         $(CFLAGS_JDKLIB) -I$(JDK_OUTPUTDIR)/gensrc_headers_jobjc \
3308                         -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
3309                         -m32,\
3310                 LDFLAGS:=$(LDFLAGS_JDKLIB)\
3311                         -m32, \
3312                 LDFLAGS_SUFFIX:=-framework Foundation -framework JavaVM \
3313                                   -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
3314                                   -framework JavaNativeFoundation \
3315                                   -lffi, \
3316                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjobjc32,\
3317                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
3318 
3319 $(eval $(call SetupNativeCompilation,BUILD_LIBJOBJC64,\
3320                 LIBRARY:=JObjC,\
3321                 OUTPUT_DIR:=$(JDK_OUTPUTDIR)/objs/libjobjc64,\
3322                 SRC:=$(JDK_TOPDIR)/src/macosx/native/jobjc/src/core/native \
3323                      $(JDK_TOPDIR)/src/macosx/native/jobjc/src/runtime-additions/native ,\
3324                 LANG:=C,\
3325                 OPTIMIZATION:=LOW, \
3326                 CFLAGS:=-fpascal-strings \
3327                         -fobjc-gc \
3328                         -gdwarf-2 \
3329                         $(CFLAGS_JDKLIB) -I$(JDK_OUTPUTDIR)/gensrc_headers_jobjc \
3330                         -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
3331                         , \
3332                 LDFLAGS:=-fpascal-strings \
3333                          -fobjc-gc \
3334                          -gdwarf-2 \
3335                          $(LDFLAGS_JDKLIB)\
3336                          $(call SET_SHARED_LIBRARY_ORIGIN), \
3337                 LDFLAGS_SUFFIX:=-framework Foundation -framework JavaVM \
3338                                   -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
3339                                   -framework JavaNativeFoundation \
3340                                   -lffi, \
3341                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjobjc64,\
3342                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
3343 
3344 $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)JObjC$(SHARED_LIBRARY_SUFFIX): $(BUILD_LIBJOBJC32) $(BUILD_LIBJOBJC64)
3345         $(LIPO) -create -output $@ $(BUILD_LIBJOBJC32) $(BUILD_LIBJOBJC64)
3346 
3347 BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)JObjC$(SHARED_LIBRARY_SUFFIX)
3348 
3349 endif
3350 
3351 ##########################################################################################
3352 
3353 ifndef OPENJDK
3354 ifeq ($(OPENJDK_TARGET_OS), windows)
3355 
3356   ACCESSBRIDGE_SRCDIR:=$(JDK_TOPDIR)/src/closed/windows/native/sun/bridge
3357 
3358   define SetupAccessBridge
3359     # Parameter 1 Suffix
3360     # Parameter 2 Machine
3361     # Parameter 3 ACCESSBRIDGE_ARCH_ suffix
3362 
3363     $(call SetupNativeCompilation,BUILD_JAWTACCESSBRIDGE$1,\
3364                 LIBRARY=JAWTAccessBridge$1,\
3365                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
3366                 SRC:=$(ACCESSBRIDGE_SRCDIR),\
3367                 INCLUDE_FILES:=JAWTAccessBridge.cpp,\
3368                 LANG:=C++,\
3369                 OPTIMIZATION:=LOW,\
3370                 CFLAGS:=$(CFLAGS_JDKLIB) \
3371                         -DACCESSBRIDGE_ARCH_$3,\
3372                 LDFLAGS:=$(LDFLAGS_JDKLIB) kernel32.lib user32.lib gdi32.lib \
3373                          winspool.lib jawt.lib comdlg32.lib advapi32.lib shell32.lib \
3374                          ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib \
3375                          -subsystem:windows -machine:$2 \
3376                          -def:$(ACCESSBRIDGE_SRCDIR)/JAWTAccessBridge.DEF,\
3377                 VERSIONINFO_RESOURCE:=$(ACCESSBRIDGE_SRCDIR)/AccessBridgeStatusWindow.rc,\
3378                 RC_FLAGS:=$(RC_FLAGS),\
3379                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjawtaccessbridge$1,\
3380                 DEBUG_SYMBOLS:=true)
3381 
3382     $$(BUILD_JAWTACCESSBRIDGE$1): $(JDK_OUTPUTDIR)/lib/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX)
3383 
3384     $(call SetupNativeCompilation,BUILD_JAVAACCESSBRIDGE$1,\
3385                 LIBRARY=JavaAccessBridge$1,\
3386                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
3387                 SRC:=$(ACCESSBRIDGE_SRCDIR),\
3388                 INCLUDE_FILES:=AccessBridgeATInstance.cpp AccessBridgeDebug.cpp \
3389                                AccessBridgeJavaEntryPoints.cpp \
3390                                AccessBridgeMessages.cpp JavaAccessBridge.cpp,\
3391                 LANG:=C++,\
3392                 OPTIMIZATION:=LOW,\
3393                 CFLAGS:=$(CFLAGS_JDKLIB) \
3394                         -DACCESSBRIDGE_ARCH_$3,\
3395                 LDFLAGS:=$(LDFLAGS_JDKLIB) kernel32.lib user32.lib gdi32.lib \
3396                          winspool.lib comdlg32.lib advapi32.lib shell32.lib \
3397                          ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib \
3398                          -subsystem:windows -machine:$2 \
3399                          -def:$(ACCESSBRIDGE_SRCDIR)/JavaAccessBridge.DEF,\
3400                 VERSIONINFO_RESOURCE:=$(ACCESSBRIDGE_SRCDIR)/AccessBridgeStatusWindow.rc,\
3401                 RC_FLAGS:=$(RC_FLAGS),\
3402                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjavaaccessbridge$1,\
3403                 DEBUG_SYMBOLS:=true)
3404 
3405     $(call SetupNativeCompilation,BUILD_WINDOWSACCESSBRIDGE$1,\
3406                 LIBRARY=WindowsAccessBridge$1,\
3407                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
3408                 SRC:=$(ACCESSBRIDGE_SRCDIR),\
3409                 INCLUDE_FILES:=AccessBridgeJavaVMInstance.cpp AccessBridgeMessageQueue.cpp \
3410                                AccessBridgeMessages.cpp AccessBridgeWindowsEntryPoints.cpp \
3411                                WinAccessBridge.cpp AccessBridgeDebug.cpp \
3412                                AccessBridgeEventHandler.cpp,\
3413                 LANG:=C++,\
3414                 OPTIMIZATION:=LOW,\
3415                 CFLAGS:=$(filter-out -MD,$(CFLAGS_JDKLIB)) -MT \
3416                         -DACCESSBRIDGE_ARCH_$3,\
3417                 LDFLAGS:=$(LDFLAGS_JDKLIB) kernel32.lib user32.lib gdi32.lib \
3418                          winspool.lib comdlg32.lib advapi32.lib shell32.lib \
3419                          ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib \
3420                          -subsystem:windows -machine:$2 \
3421                          -def:$(ACCESSBRIDGE_SRCDIR)/WinAccessBridge.DEF,\
3422                 VERSIONINFO_RESOURCE:=$(ACCESSBRIDGE_SRCDIR)/AccessBridgeStatusWindow.rc,\
3423                 RC_FLAGS:=$(RC_FLAGS),\
3424                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libwindowsaccessbridge$1,\
3425                 DEBUG_SYMBOLS:=true)
3426 
3427     BUILD_LIBRARIES += $$(BUILD_JAWTACCESSBRIDGE$1) $$(BUILD_JAVAACCESSBRIDGE$1) \
3428                        $$(BUILD_WINDOWSACCESSBRIDGE$1)
3429 
3430   endef
3431 
3432   ifeq ($(OPENJDK_TARGET_CPU_BITS),32)
3433     $(eval $(call SetupAccessBridge,-32,I386,32))
3434     $(eval $(call SetupAccessBridge,,I386,LEGACY))
3435   else
3436     $(eval $(call SetupAccessBridge,-64,X64,64))
3437   endif
3438 endif
3439 endif
3440 
3441 
3442 ##########################################################################################
3443 
3444 all: $(COPY_FILES) $(BUILD_LIBRARIES)
3445 
3446 .PHONY: all