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/awt/image/cvutils \
1347                         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt \
1348                         -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \
1349                         -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \
1350                         -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \
1351                         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d \
1352                         -I$(JDK_TOPDIR)/src/share/native/sun/java2d
1353 
1354 ifeq ($(USE_EXTERNAL_ICU_LE),false)
1355     BUILD_LIBFONTMANAGER_CFLAGS_COMMON+=\
1356                         -I$(JDK_TOPDIR)/src/share/native/sun/font/layout
1357 endif
1358 
1359 # Turn off aliasing with GCC for ExtensionSubtables.cpp
1360 ifeq ($(OPENJDK_TARGET_OS), linux)
1361     BUILD_LIBFONTMANAGER_ExtensionSubtables.cpp_CXXFLAGS:=-fno-strict-aliasing
1362 endif
1363 
1364 $(eval $(call SetupNativeCompilation,BUILD_LIBFONTMANAGER,\
1365                 LIBRARY:=fontmanager, \
1366                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1367                 SRC:=$(JDK_TOPDIR)/src/share/native/sun/font\
1368                      $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/font,\
1369                 EXCLUDE_FILES:=$(LIBFONTMANAGER_EXCLUDE_FILES) \
1370                                AccelGlyphCache.c,\
1371                 LANG:=C++,\
1372                 CFLAGS:=$(CFLAGS_JDKLIB) $(BUILD_LIBFONTMANAGER_CFLAGS_COMMON) $(ICU_LE_CFLAGS),\
1373                 CXXFLAGS:=$(CXXFLAGS_JDKLIB) $(BUILD_LIBFONTMANAGER_CFLAGS_COMMON) $(ICU_LE_CFLAGS),\
1374                 OPTIMIZATION:=$(LIBFONTMANAGER_OPTIMIZATION), \
1375                 CFLAGS_windows= -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/windows \
1376                                 -DCC_NOEX, \
1377                 MAPFILE:=$(BUILD_LIBFONTMANAGER_MAPFILE), \
1378                 LDFLAGS:=$(subst -Xlinker -z -Xlinker defs,,$(LDFLAGS_JDKLIB)) $(LDFLAGS_CXX_JDK) \
1379                          $(call SET_SHARED_LIBRARY_ORIGIN),\
1380                 LDFLAGS_SUFFIX:=$(BUILD_LIBFONTMANAGER_FONTLIB) $(ICU_LE_LIBS),\
1381                 LDFLAGS_SUFFIX_linux:=-lawt $(LIBM) $(LIBCXX) -ljava -ljvm -lc,\
1382                 LDFLAGS_SUFFIX_solaris:=-lawt -lawt_xawt -lc $(LIBM) $(LIBCXX) -ljava -ljvm,\
1383                 LDFLAGS_SUFFIX_macosx:=-lawt $(LIBM) $(LIBCXX) -undefined dynamic_lookup \
1384                                        -ljava -ljvm,\
1385                 LDFLAGS_SUFFIX_windows:=$(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
1386                                         $(WIN_AWT_LIB),\
1387                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
1388                 RC_FLAGS:=$(RC_FLAGS)\
1389                           -D "JDK_FNAME=fontmanager.dll" \
1390                           -D "JDK_INTERNAL_NAME=fontmanager" \
1391                           -D "JDK_FTYPE=0x2L",\
1392                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libfontmanager,\
1393                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
1394 
1395 $(BUILD_LIBFONTMANAGER) : $(BUILD_LIBAWT)
1396 
1397 ifneq (,$(findstring $(OPENJDK_TARGET_OS),solaris macosx))
1398 $(BUILD_LIBFONTMANAGER) : $(BUILD_LIBAWT_XAWT)
1399 endif
1400 
1401 BUILD_LIBRARIES += $(BUILD_LIBFONTMANAGER)
1402 
1403 ##########################################################################################
1404 
1405 ifndef OPENJDK
1406 
1407 #    ifeq ($(OPENJDK_TARGET_OS), linux)
1408 #        ifeq ("$(CC_VER_MAJOR)", "3")
1409 #            OTHER_LDLIBS  += -Wl,-Bstatic -lgcc_eh -Wl,-Bdynamic
1410 #        endif                           
1411 #    endif
1412 #
1413 # The resulting size of the t2k lib file is (at least on linux) dependant on the order of 
1414 # the input .o files. Because of this the new build will differ in size to the old build.
1415     BUILD_LIBT2K_CFLAGS_COMMON:=-I$(JDK_TOPDIR)/src/share/native/sun/font \
1416                             -I$(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k \
1417                             -I$(JDK_TOPDIR)/src/closed/share/native/sun/font \
1418                             -I$(JDK_TOPDIR)/src/share/share/native/sun/font \
1419                             -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/font \
1420                             -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \
1421                             -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \
1422                             -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d \
1423                             -I$(JDK_TOPDIR)/src/share/native/sun/java2d
1424 
1425     $(eval $(call SetupNativeCompilation,BUILD_LIBT2K,\
1426                 LIBRARY:=t2k, \
1427                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1428                 SRC:=$(JDK_TOPDIR)/src/closed/share/native/sun/font \
1429                      $(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k \
1430                      $(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k/ttHints,\
1431                 EXCLUDE_FILES:=orion.c,\
1432                 LANG:=C++,\
1433                 OPTIMIZATION:=HIGH, \
1434                 CFLAGS:=$(CFLAGS_JDKLIB) $(BUILD_LIBT2K_CFLAGS_COMMON),\
1435                 CXXFLAGS:=$(CXXFLAGS_JDKLIB) $(BUILD_LIBT2K_CFLAGS_COMMON),\
1436                 CFLAGS_windows=-DCC_NOEX, \
1437                 CXXFLAGS_windows=-DCC_NOEX, \
1438                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libt2k/mapfile-vers, \
1439                 LDFLAGS:=$(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \
1440                          $(call SET_SHARED_LIBRARY_ORIGIN),\
1441                 LDFLAGS_windows:=user32.lib $(JDK_OUTPUTDIR)/objs/libfontmanager/fontmanager.lib,\
1442                 LDFLAGS_SUFFIX_posix:=$(LIBM) $(LIBCXX) -lfontmanager -ljava -ljvm -lc,\
1443                 LDFLAGS_SUFFIX_solaris:=-lawt -lawt_xawt,\
1444                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
1445                 RC_FLAGS:=$(RC_FLAGS)\
1446                           -D "JDK_FNAME=t2k.dll" \
1447                           -D "JDK_INTERNAL_NAME=t2k" \
1448                           -D "JDK_FTYPE=0x2L",\
1449                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libt2k,\
1450                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
1451 
1452     # t2k is linked against fontmanager
1453     $(BUILD_LIBT2K) : $(BUILD_LIBFONTMANAGER)
1454 
1455     BUILD_LIBRARIES += $(BUILD_LIBT2K)
1456 endif
1457 
1458 ##########################################################################################
1459 
1460 ifeq ($(OPENJDK_TARGET_OS), windows)
1461     ifeq ($(OPENJDK_TARGET_CPU), x86)
1462         KERNEL32_LIB:=kernel32.lib
1463     endif
1464     $(eval $(call SetupNativeCompilation,BUILD_LIBJAWT,\
1465                 LIBRARY:=jawt, \
1466                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1467                 SRC:=$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/windows,\
1468                 INCLUDE_FILES:=jawt.cpp,\
1469                 LANG:=C++,\
1470                 OPTIMIZATION:=LOW, \
1471                 CFLAGS:=$(CXXFLAGS_JDKLIB) \
1472                         -EHsc -DUNICODE -D_UNICODE \
1473                         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/windows \
1474                         -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \
1475                         -I$(JDK_TOPDIR)/src/share/native/sun/java2d \
1476                         -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \
1477                         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/windows \
1478                         -I$(DXSDK_INCLUDE_PATH), \
1479                 LDFLAGS:=$(LDFLAGS_JDKLIB) $(KERNEL32_LIB) $(LDFLAGS_CXX_JDK) \
1480                          advapi32.lib $(WIN_AWT_LIB),\
1481                 LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
1482                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
1483                 RC_FLAGS:=$(RC_FLAGS)\
1484                           -D "JDK_FNAME=jawt.dll" \
1485                           -D "JDK_INTERNAL_NAME=jawt" \
1486                           -D "JDK_FTYPE=0x2L",\
1487                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjawt,\
1488                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
1489 
1490 $(BUILD_LIBJAWT) : $(BUILD_LIBAWT)
1491 
1492 $(JDK_OUTPUTDIR)/lib/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX): $(BUILD_LIBJAWT)
1493         $(ECHO) Copying $(@F)
1494         $(CP) $(JDK_OUTPUTDIR)/objs/libjawt/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX) $@
1495 
1496 BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/lib/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX)
1497 
1498 else # OPENJDK_TARGET_OS not windows
1499 
1500     JAWT_LIBS:=
1501     ifneq ($(OPENJDK_TARGET_OS), solaris)
1502         JAWT_LIBS += -lawt
1503     endif
1504 
1505     ifndef BUILD_HEADLESS_ONLY
1506         JAWT_LIBS += -lawt_xawt
1507     else
1508         JAWT_LIBS += -lawt_headless
1509         HEADLESS_CFLAG += -DHEADLESS
1510     endif
1511 
1512     JAWT_FILES:=jawt.c
1513     ifeq ($(OPENJDK_TARGET_OS), macosx)
1514         JAWT_FILES:=jawt.m
1515         JAWT_LIBS:=-lawt_lwawt
1516     endif
1517 
1518     $(eval $(call SetupNativeCompilation,BUILD_LIBJAWT,\
1519                 LIBRARY:=jawt, \
1520                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1521                 SRC:=$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt \
1522                      $(JDK_TOPDIR)/src/macosx/native/sun/awt,\
1523                 INCLUDE_FILES:=$(JAWT_FILES),\
1524                 LANG:=C,\
1525                 OPTIMIZATION:=LOW, \
1526                 CFLAGS:=$(CFLAGS_JDKLIB), \
1527                 CFLAGS_linux:=$(HEADLESS_CFLAG),\
1528                 CFLAGS_macosx:=-I$(JDK_TOPDIR)/src/solaris/native/sun/awt ,\
1529                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjawt/mapfile-vers, \
1530                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
1531                          $(call SET_SHARED_LIBRARY_ORIGIN),\
1532                 LDFLAGS_solaris:=-L$(OPENWIN_HOME)/sfw/lib$(OPENJDK_TARGET_CPU_ISADIR) -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR),\
1533                 LDFLAGS_SUFFIX_linux:=$(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX),\
1534                 LDFLAGS_SUFFIX_solaris:=$(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX) -lXrender,\
1535                 LDFLAGS_SUFFIX_macosx:=-Xlinker -rpath -Xlinker @loader_path $(JAWT_LIBS) \
1536                                        -framework Cocoa $(LDFLAGS_JDKLIB_SUFFIX),\
1537                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjawt,\
1538                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
1539 
1540 ifndef BUILD_HEADLESS_ONLY
1541 $(BUILD_LIBJAWT) : $(BUILD_LIBAWT_XAWT)
1542 else
1543 $(BUILD_LIBJAWT) : $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)awt_headless$(SHARED_LIBRARY_SUFFIX)
1544 endif
1545 
1546 ifeq ($(OPENJDK_TARGET_OS),macosx)
1547 $(BUILD_LIBJAWT) : $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)awt_lwawt$(SHARED_LIBRARY_SUFFIX)
1548 endif
1549 
1550 endif # OPENJDK_TARGET_OS
1551 
1552 BUILD_LIBRARIES += $(BUILD_LIBJAWT)
1553 
1554 ##########################################################################################
1555 
1556 LIBINSTRUMENT_SRC   :=$(JDK_TOPDIR)/src/share/instrument \
1557                       $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/io \
1558                       $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/instrument
1559 
1560 LIBINSTRUMENT_FILES :=\
1561         EncodingSupport.c \
1562         EncodingSupport_md.c \
1563         FileSystemSupport_md.c \
1564         InstrumentationImplNativeMethods.c \
1565         InvocationAdapter.c \
1566         JarFacade.c \
1567         JPLISAgent.c \
1568         JPLISAssert.c \
1569         JavaExceptions.c \
1570         PathCharsValidator.c \
1571         Reentrancy.c \
1572         Utilities.c \
1573         canonicalize_md.c
1574 
1575 LIBINSTRUMENT_DIR   :=$(JDK_OUTPUTDIR)/objs/libinstrument
1576 LIBINSTRUMENT_CFLAGS:=$(CFLAGS_JDKLIB) \
1577                       -I$(JDK_TOPDIR)/src/share/instrument \
1578                       -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/instrument \
1579                       -I$(JDK_TOPDIR)/src/share/bin
1580 
1581 LIBINSTRUMENT_LDFLAGS:=
1582 LIBINSTRUMENT_LDFLAGS_SUFFIX:=
1583 
1584 ifeq ($(OPENJDK_TARGET_OS), windows)
1585     LIBINSTRUMENT_LDFLAGS += $(JDK_OUTPUTDIR)/objs/jli_static.lib $(WIN_JAVA_LIB) \
1586                                  -export:Agent_OnAttach advapi32.lib
1587     # Statically link the C runtime so that there are not dependencies on modules 
1588     # not on the search patch when invoked from the Windows system directory 
1589     # (or elsewhere).
1590     LIBINSTRUMENT_CFLAGS := $(filter-out -MD,$(LIBINSTRUMENT_CFLAGS))
1591     # equivalent of strcasecmp is stricmp on Windows
1592     LIBINSTRUMENT_CFLAGS += -Dstrcasecmp=stricmp
1593 endif
1594 
1595 $(eval $(call SetupNativeCompilation,BUILD_LIBINSTRUMENT,\
1596                 LIBRARY:=instrument, \
1597                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1598                 SRC:=$(LIBINSTRUMENT_SRC),\
1599                 INCLUDE_FILES:=$(LIBINSTRUMENT_FILES),\
1600                 LANG:=C,\
1601                 OPTIMIZATION:=LOW, \
1602                 CFLAGS:=$(LIBINSTRUMENT_CFLAGS),\
1603                 CFLAGS_debug:=-DJPLIS_LOGGING,\
1604                 CFLAGS_release:=-DNO_JPLIS_LOGGING,\
1605                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libinstrument/mapfile-vers, \
1606                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
1607                          $(call SET_SHARED_LIBRARY_ORIGIN) \
1608                          $(LIBINSTRUMENT_LDFLAGS),\
1609                 LDFLAGS_linux:=$(call SET_SHARED_LIBRARY_ORIGIN,/jli),\
1610                 LDFLAGS_solaris:= $(call SET_SHARED_LIBRARY_ORIGIN,/jli),\
1611                 LDFLAGS_macosx:=-Xlinker -all_load $(JDK_OUTPUTDIR)/objs/libjli_static.a \
1612                                 -framework Cocoa -framework Security -framework ApplicationServices,\
1613                 LDFLAGS_SUFFIX:=$(LIBINSTRUMENT_LDFLAGS_SUFFIX),\
1614                 LDFLAGS_SUFFIX_macosx:=-liconv $(LIBZ),\
1615                 LDFLAGS_SUFFIX_solaris:=$(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL) -lc,\
1616                 LDFLAGS_SUFFIX_linux:=$(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL),\
1617                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
1618                 RC_FLAGS:=$(RC_FLAGS)\
1619                           -D "JDK_FNAME=instrument.dll" \
1620                           -D "JDK_INTERNAL_NAME=instrument" \
1621                           -D "JDK_FTYPE=0x2L",\
1622                 OBJECT_DIR:=$(LIBINSTRUMENT_DIR),\
1623                 DEBUG_SYMBOLS:=true))
1624 
1625 ifneq (,$(findstring $(OPENJDK_TARGET_OS), macosx windows))
1626 $(BUILD_LIBINSTRUMENT) : $(JDK_OUTPUTDIR)/objs/$(LIBRARY_PREFIX)jli_static$(STATIC_LIBRARY_SUFFIX)
1627 else
1628 $(BUILD_LIBINSTRUMENT) : $(INSTALL_LIBRARIES_HERE)/jli/$(LIBRARY_PREFIX)jli$(SHARED_LIBRARY_SUFFIX)
1629 endif
1630 $(BUILD_LIBINSTRUMENT) : $(BUILD_LIBJAVA)
1631 
1632 BUILD_LIBRARIES += $(BUILD_LIBINSTRUMENT)
1633 
1634 ##########################################################################################
1635 
1636 BUILD_LIBMANAGEMENT_SRC:=$(JDK_TOPDIR)/src/share/native/sun/management \
1637                            $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/management \
1638                            $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/com/sun/management
1639 
1640 BUILD_LIBMANAGEMENT_EXCLUDES:=
1641 
1642 BUILD_LIBMANAGEMENT_CFLAGS:=-I$(JDK_TOPDIR)/src/share/native/sun/management
1643 
1644 ifneq ($(OPENJDK_TARGET_OS), windows)
1645         BUILD_LIBMANAGEMENT_EXCLUDES += OperatingSystem_md.c
1646 else
1647         BUILD_LIBMANAGEMENT_EXCLUDES += UnixOperatingSystem_md.c
1648 endif
1649 
1650 ifneq ($(OPENJDK_TARGET_OS),solaris)
1651         BUILD_LIBMANAGEMENT_EXCLUDES += SolarisOperatingSystem.c
1652 endif
1653 
1654 ifneq ($(OPENJDK_TARGET_OS),linux)
1655         BUILD_LIBMANAGEMENT_EXCLUDES += LinuxOperatingSystem.c
1656 endif
1657 
1658 ifneq ($(OPENJDK_TARGET_OS),macosx)
1659         BUILD_LIBMANAGEMENT_EXCLUDES += MacosxOperatingSystem.c
1660 endif
1661 
1662 LIBMANAGEMENT_OPTIMIZATION:=HIGH
1663 ifneq ($(findstring $(OPENJDK_TARGET_OS),solaris linux),)
1664     ifeq ($(ENABLE_DEBUG_SYMBOLS), true)
1665         LIBMANAGEMENT_OPTIMIZATION:=LOW
1666     endif
1667 endif
1668 
1669 $(eval $(call SetupNativeCompilation,BUILD_LIBMANAGEMENT,\
1670                 LIBRARY:=management,\
1671                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1672                 SRC:=$(BUILD_LIBMANAGEMENT_SRC),\
1673                 EXCLUDE_FILES:=$(BUILD_LIBMANAGEMENT_EXCLUDES),\
1674                 LANG:=C,\
1675                 OPTIMIZATION:=$(LIBMANAGEMENT_OPTIMIZATION), \
1676                 CFLAGS:=$(CFLAGS_JDKLIB) $(BUILD_LIBMANAGEMENT_CFLAGS),\
1677                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libmanagement/mapfile-vers, \
1678                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
1679                          $(call SET_SHARED_LIBRARY_ORIGIN),\
1680                 LDFLAGS_solaris:=-lkstat,\
1681                 LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
1682                 LDFLAGS_SUFFIX_windows:=jvm.lib psapi.lib $(WIN_JAVA_LIB) advapi32.lib,\
1683                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
1684                 RC_FLAGS:=$(RC_FLAGS)\
1685                           -D "JDK_FNAME=management.dll" \
1686                           -D "JDK_INTERNAL_NAME=management" \
1687                           -D "JDK_FTYPE=0x2L",\
1688                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libmanagement,\
1689                 DEBUG_SYMBOLS:=true))
1690 
1691 $(BUILD_LIBMANAGEMENT) : $(BUILD_LIBJAVA)
1692 
1693 BUILD_LIBRARIES += $(BUILD_LIBMANAGEMENT)
1694 
1695 ##########################################################################################
1696 
1697 BUILD_LIBHPROF_SRC:=$(JDK_TOPDIR)/src/share/demo/jvmti/hprof $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/demo/jvmti/hprof
1698 BUILD_LIBHPROF_CFLAGS:=-I$(JDK_TOPDIR)/src/share/demo/jvmti/hprof \
1699                          -I$(JDK_TOPDIR)/src/share/npt \
1700                          -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt \
1701                          -I$(JDK_TOPDIR)/src/share/demo/jvmti/java_crw_demo
1702 
1703 BUILD_LIBHPROF_LDFLAGS:=
1704 
1705 LIBHPROF_OPTIMIZATION:=HIGHEST
1706 ifneq ($(findstring $(OPENJDK_TARGET_OS),solaris linux),)
1707     ifeq ($(ENABLE_DEBUG_SYMBOLS), true)
1708         LIBHPROF_OPTIMIZATION:=LOW
1709     endif
1710 endif
1711 
1712 $(eval $(call SetupNativeCompilation,BUILD_LIBHPROF,\
1713                 LIBRARY:=hprof, \
1714                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1715                 SRC:=$(BUILD_LIBHPROF_SRC),\
1716                 LANG:=C,\
1717                 OPTIMIZATION:=$(LIBHPROF_OPTIMIZATION), \
1718                 CFLAGS:=$(CFLAGS_JDKLIB) \
1719                          $(BUILD_LIBHPROF_CFLAGS),\
1720                 CFLAGS_debug:=-DHPROF_LOGGING,\
1721                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libhprof/mapfile-vers, \
1722                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
1723                          $(call SET_SHARED_LIBRARY_ORIGIN),\
1724                 LDFLAGS_windows:=wsock32.lib winmm.lib advapi32.lib,\
1725                 LDFLAGS_SUFFIX_linux:=$(LIBDL),\
1726                 LDFLAGS_SUFFIX_macosx:=$(LIBDL),\
1727                 LDFLAGS_SUFFIX_solaris:=-lsocket -lnsl $(LIBDL) -lc,\
1728                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
1729                 RC_FLAGS:=$(RC_FLAGS)\
1730                           -D "JDK_FNAME=hprof.dll" \
1731                           -D "JDK_INTERNAL_NAME=hprof" \
1732                           -D "JDK_FTYPE=0x2L",\
1733                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libhprof_jvmti,\
1734                 DEBUG_SYMBOLS:=true))
1735 
1736 BUILD_LIBRARIES += $(BUILD_LIBHPROF)
1737 
1738 ##########################################################################################
1739 
1740 $(eval $(call SetupNativeCompilation,BUILD_LIBJAVA_CRW_DEMO,\
1741                 LIBRARY:=java_crw_demo, \
1742                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1743                 SRC:=$(JDK_TOPDIR)/src/share/demo/jvmti/java_crw_demo,\
1744                 LANG:=C,\
1745                 OPTIMIZATION:=LOW, \
1746                 CFLAGS:=$(CFLAGS_JDKLIB) \
1747                         -I$(JDK_TOPDIR)/src/share/demo/jvmti/java_crw_demo,\
1748                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjava_crw_demo/mapfile-vers, \
1749                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
1750                          $(call SET_SHARED_LIBRARY_ORIGIN),\
1751                 LDFLAGS_SUFFIX_solaris:=-lc,\
1752                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
1753                 RC_FLAGS:=$(RC_FLAGS)\
1754                           -D "JDK_FNAME=java_crw_demo.dll" \
1755                           -D "JDK_INTERNAL_NAME=java_crw_demo" \
1756                           -D "JDK_FTYPE=0x2L",\
1757                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjava_crw_demo,\
1758                 DEBUG_SYMBOLS:=true))
1759 
1760 BUILD_LIBRARIES += $(BUILD_LIBJAVA_CRW_DEMO)
1761 
1762 ##########################################################################################
1763 
1764 $(eval $(call SetupNativeCompilation,BUILD_LIBNPT,\
1765                 LIBRARY:=npt, \
1766                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1767                 SRC:=$(JDK_TOPDIR)/src/share/npt $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt,\
1768                 LANG:=C,\
1769                 OPTIMIZATION:=LOW, \
1770                 CFLAGS:=$(CFLAGS_JDKLIB) \
1771                         -I$(JDK_TOPDIR)/src/share/npt \
1772                         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt,\
1773                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libnpt/mapfile-vers, \
1774                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
1775                          $(call SET_SHARED_LIBRARY_ORIGIN),\
1776                 LDFLAGS_macosx:=-liconv,\
1777                 LDFLAGS_SUFFIX_windows:=-export:nptInitialize -export:nptTerminate,\
1778                 LDFLAGS_SUFFIX_solaris:=-lc, \
1779                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
1780                 RC_FLAGS:=$(RC_FLAGS)\
1781                           -D "JDK_FNAME=npt.dll" \
1782                           -D "JDK_INTERNAL_NAME=npt" \
1783                           -D "JDK_FTYPE=0x2L",\
1784                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libnpt,\
1785                 DEBUG_SYMBOLS:=true))
1786 
1787 BUILD_LIBRARIES += $(BUILD_LIBNPT)
1788 
1789 ##########################################################################################
1790 
1791 LIBNET_SRC_DIRS:=$(JDK_TOPDIR)/src/share/native/java/net \
1792                    $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/net \
1793                    $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/net/dns \
1794                    $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/net/spi
1795 
1796 ifeq ($(OPENJDK_TARGET_OS),windows)
1797     LIBNET_SRC_DIRS+=$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/net/www/protocol/http/ntlm
1798 else
1799     LIBNET_SRC_DIRS+=$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/net/sdp
1800 endif
1801 
1802 LIBNET_CFLAGS:=$(foreach dir,$(LIBNET_SRC_DIRS),-I$(dir))
1803 
1804 LIBNET_EXCLUDE_FILES:=
1805 ifneq ($(OPENJDK_TARGET_OS),linux)
1806         LIBNET_EXCLUDE_FILES += linux_close.c
1807 endif
1808 
1809 ifneq ($(OPENJDK_TARGET_OS),macosx)
1810         LIBNET_EXCLUDE_FILES += bsd_close.c
1811 endif
1812 
1813 ifeq ($(OPENJDK_TARGET_OS),windows)
1814         LIBNET_EXCLUDE_FILES += PlainSocketImpl.c PlainDatagramSocketImpl.c SdpSupport.c
1815 else
1816         LIBNET_EXCLUDE_FILES += TwoStacksPlainSocketImpl.c DualStackPlainSocketImpl.c \
1817                                 TwoStacksPlainDatagramSocketImpl.c DualStackPlainDatagramSocketImpl.c \
1818                                 NTLMAuthSequence.c NetworkInterface_winXP.c
1819 endif
1820 
1821 $(eval $(call SetupNativeCompilation,BUILD_LIBNET,\
1822                 LIBRARY:=net,\
1823                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1824                 SRC:=$(LIBNET_SRC_DIRS),\
1825                 EXCLUDE_FILES:=$(LIBNET_EXCLUDE_FILES), \
1826                 LANG:=C,\
1827                 OPTIMIZATION:=LOW, \
1828                 CFLAGS:=$(CFLAGS_JDKLIB) \
1829                         $(LIBNET_CFLAGS),\
1830                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libnet/mapfile-vers, \
1831                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
1832                          $(call SET_SHARED_LIBRARY_ORIGIN),\
1833                 LDFLAGS_SUFFIX_macosx:=-ljvm -ljava,\
1834                 LDFLAGS_SUFFIX_solaris:=-ljvm -ljava -lnsl -lsocket $(LIBDL) -lc ,\
1835                 LDFLAGS_SUFFIX_linux:=$(LIBDL) -ljvm -lpthread -ljava,\
1836                 LDFLAGS_SUFFIX_windows:=ws2_32.lib jvm.lib secur32.lib iphlpapi.lib \
1837                                         delayimp.lib $(WIN_JAVA_LIB) advapi32.lib \
1838                                         -DELAYLOAD:secur32.dll -DELAYLOAD:iphlpapi.dll, \
1839                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
1840                 RC_FLAGS:=$(RC_FLAGS)\
1841                           -D "JDK_FNAME=net.dll" \
1842                           -D "JDK_INTERNAL_NAME=net" \
1843                           -D "JDK_FTYPE=0x2L",\
1844                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libnet,\
1845                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
1846 
1847 $(BUILD_LIBNET) : $(BUILD_LIBJAVA)
1848 
1849 BUILD_LIBRARIES += $(BUILD_LIBNET)
1850 
1851 $(JDK_OUTPUTDIR)/lib/net.properties: $(JDK_TOPDIR)/src/share/lib/net.properties
1852         $(ECHO) $(LOG_INFO) Copying $(@F)
1853         $(call install-file)
1854 
1855 COPY_FILES += $(JDK_OUTPUTDIR)/lib/net.properties
1856 
1857 ifeq ($(OPENJDK_TARGET_OS), solaris)
1858 $(JDK_OUTPUTDIR)/lib/sdp/sdp.conf.template : $(JDK_TOPDIR)/src/${OPENJDK_TARGET_OS_API_DIR}/lib/sdp/sdp.conf.template
1859         $(ECHO) $(LOG_INFO) Copying $(@F)
1860         $(call install-file)
1861 
1862 COPY_FILES += $(JDK_OUTPUTDIR)/lib/sdp/sdp.conf.template
1863 endif
1864 
1865 ##########################################################################################
1866 
1867 BUILD_LIBNIO_SRC:=\
1868         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/nio \
1869         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/nio/ch \
1870         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/nio/fs
1871 
1872 BUILD_LIBNIO_CFLAGS:=\
1873         -I$(JDK_TOPDIR)/src/share/native/sun/nio/ch \
1874         -I$(JDK_TOPDIR)/src/share/native/java/io \
1875         -I$(JDK_TOPDIR)/src/share/native/java/net \
1876         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/net
1877 
1878 BUILD_LIBNIO_FILES:=\
1879         DatagramChannelImpl.c \
1880         DatagramDispatcher.c \
1881         FileChannelImpl.c \
1882         FileDispatcherImpl.c \
1883         FileKey.c \
1884         IOUtil.c \
1885         MappedByteBuffer.c \
1886         Net.c \
1887         ServerSocketChannelImpl.c \
1888         SocketChannelImpl.c \
1889         SocketDispatcher.c
1890 
1891 ifeq ($(OPENJDK_TARGET_OS), windows)
1892         BUILD_LIBNIO_FILES += \
1893                 Iocp.c \
1894                 RegistryFileTypeDetector.c \
1895                 WindowsAsynchronousFileChannelImpl.c \
1896                 WindowsAsynchronousServerSocketChannelImpl.c \
1897                 WindowsAsynchronousSocketChannelImpl.c \
1898                 WindowsNativeDispatcher.c \
1899                 WindowsSelectorImpl.c
1900 endif
1901 
1902 ifeq ($(OPENJDK_TARGET_OS), linux)
1903         BUILD_LIBNIO_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS)
1904         BUILD_LIBNIO_FILES += \
1905                 EPoll.c \
1906                 EPollArrayWrapper.c \
1907                 EPollPort.c \
1908                 InheritedChannel.c \
1909                 NativeThread.c \
1910                 PollArrayWrapper.c \
1911                 UnixAsynchronousServerSocketChannelImpl.c \
1912                 UnixAsynchronousSocketChannelImpl.c \
1913                 GnomeFileTypeDetector.c \
1914                 MagicFileTypeDetector.c \
1915                 LinuxNativeDispatcher.c \
1916                 LinuxWatchService.c \
1917                 UnixCopyFile.c \
1918                 UnixNativeDispatcher.c
1919 endif
1920 
1921 ifeq ($(OPENJDK_TARGET_OS), macosx)
1922         BUILD_LIBNIO_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS)
1923         BUILD_LIBNIO_SRC += $(JDK_TOPDIR)/src/macosx/native/sun/nio/ch
1924         BUILD_LIBNIO_FILES += \
1925                 InheritedChannel.c \
1926                 NativeThread.c \
1927                 PollArrayWrapper.c \
1928                 UnixAsynchronousServerSocketChannelImpl.c \
1929                 UnixAsynchronousSocketChannelImpl.c \
1930                 BsdNativeDispatcher.c \
1931                 MacOSXNativeDispatcher.c \
1932                 UnixCopyFile.c \
1933                 UnixNativeDispatcher.c \
1934                 KQueue.c \
1935                 KQueuePort.c \
1936                 KQueueArrayWrapper.c
1937 endif
1938 
1939 ifeq ($(OPENJDK_TARGET_OS), solaris)
1940         BUILD_LIBNIO_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS)
1941         BUILD_LIBNIO_FILES += \
1942                 DevPollArrayWrapper.c \
1943                 InheritedChannel.c \
1944                 NativeThread.c \
1945                 PollArrayWrapper.c \
1946                 SolarisEventPort.c \
1947                 UnixAsynchronousServerSocketChannelImpl.c \
1948                 UnixAsynchronousSocketChannelImpl.c \
1949                 GnomeFileTypeDetector.c \
1950                 SolarisNativeDispatcher.c \
1951                 SolarisWatchService.c \
1952                 UnixCopyFile.c \
1953                 UnixNativeDispatcher.c
1954 endif
1955 
1956 $(eval $(call SetupNativeCompilation,BUILD_LIBNIO,\
1957                 LIBRARY:=nio,\
1958                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
1959                 SRC:=$(BUILD_LIBNIO_SRC),\
1960                 INCLUDE_FILES:=$(BUILD_LIBNIO_FILES), \
1961                 LANG:=C,\
1962                 OPTIMIZATION:=HIGH, \
1963                 CFLAGS:=$(CFLAGS_JDKLIB) \
1964                         $(BUILD_LIBNIO_CFLAGS),\
1965                 MAPFILE:=$(BUILD_LIBNIO_MAPFILE), \
1966                 LDFLAGS:=$(LDFLAGS_JDKLIB) $(BUILD_LIBNIO_LDFLAGS) \
1967                          $(call SET_SHARED_LIBRARY_ORIGIN),\
1968                 LDFLAGS_SUFFIX_linux:=-ljava -lnet -lpthread $(LIBDL),\
1969                 LDFLAGS_SUFFIX_solaris:=-ljvm -lsocket -lposix4 $(LIBDL) \
1970                                         -lsendfile -ljava -lnet -lc,\
1971                 LDFLAGS_SUFFIX_windows:=jvm.lib ws2_32.lib $(WIN_JAVA_LIB) \
1972                                         $(JDK_OUTPUTDIR)/objs/libnet/net.lib \
1973                                         advapi32.lib,\
1974                 LDFLAGS_SUFFIX_macosx:=-ljava -lnet -pthread -framework CoreFoundation,\
1975                 LDFLAGS_SUFFIX:=,\
1976                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
1977                 RC_FLAGS:=$(RC_FLAGS)\
1978                           -D "JDK_FNAME=nio.dll" \
1979                           -D "JDK_INTERNAL_NAME=nio" \
1980                           -D "JDK_FTYPE=0x2L",\
1981                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libnio,\
1982                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
1983 
1984 BUILD_LIBRARIES += $(BUILD_LIBNIO)
1985 
1986 $(BUILD_LIBNIO) : $(BUILD_LIBNET)
1987 
1988 ##########################################################################################
1989 
1990 ifeq ($(OPENJDK_TARGET_OS_API),posix)
1991 
1992   ifneq ($(OPENJDK_TARGET_OS),macosx)
1993 
1994     SCTP_WERROR := -Werror
1995     ifeq ($(OPENJDK_TARGET_CPU_ARCH), ppc)
1996       SCTP_WERROR :=
1997     endif
1998 
1999     $(eval $(call SetupNativeCompilation,BUILD_LIBSCTP,\
2000                 LIBRARY:=sctp,\
2001                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2002                 SRC:=$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/nio/ch/sctp,\
2003                 LANG:=C,\
2004                 OPTIMIZATION:=LOW, \
2005                 CFLAGS:=$(CFLAGS_JDKLIB)\
2006                         -I$(JDK_TOPDIR)/src/share/native/sun/nio/ch \
2007                         -I$(JDK_TOPDIR)/src/share/native/sun/nio/ch/sctp \
2008                         -I$(JDK_TOPDIR)/src/share/native/java/net \
2009                         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/nio/ch \
2010                         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/net,\
2011                 CFLAGS_linux:=$(SCTP_WERROR),\
2012                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libsctp/mapfile-vers, \
2013                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
2014                          $(call SET_SHARED_LIBRARY_ORIGIN),\
2015                 LDFLAGS_SUFFIX_linux:=-lpthread $(LIBDL) -ljava -ljvm,\
2016                 LDFLAGS_SUFFIX_posix:=-lnio -lnet,\
2017                 LDFLAGS_SUFFIX_solaris:=-lsocket -ljava -ljvm -lc,\
2018                 LDFLAGS_SUFFIX_macosx:=-ljava -ljvm,\
2019                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsctp,\
2020                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2021 
2022     BUILD_LIBRARIES += $(BUILD_LIBSCTP)
2023 
2024     $(BUILD_LIBSCTP) : $(BUILD_LIBNIO)
2025   endif
2026 endif
2027 
2028 ##########################################################################################
2029 
2030 BUILD_LIBJLI_SRC_DIRS:=$(JDK_TOPDIR)/src/share/bin $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin
2031 LIBJLI_CFLAGS:=$(CFLAGS_JDKLIB) $(foreach dir,$(BUILD_LIBJLI_SRC_DIRS),-I$(dir))
2032 
2033 BUILD_LIBJLI_FILES:=\
2034         java.c \
2035         splashscreen_stubs.c \
2036         parse_manifest.c \
2037         version_comp.c \
2038         wildcard.c \
2039         jli_util.c
2040 
2041 ifeq ($(JVM_VARIANT_ZERO), true)
2042         ERGO_FAMILY:=zero
2043 else
2044         ifeq ($(OPENJDK_TARGET_CPU_ARCH), x86)
2045                 ERGO_FAMILY:=i586
2046         else
2047                 ERGO_FAMILY:=$(OPENJDK_TARGET_CPU_ARCH)
2048         endif
2049 endif
2050 
2051 ifeq ($(OPENJDK_TARGET_OS), macosx)
2052         LIBJLI_CFLAGS += -I$(JDK_TOPDIR)/src/macosx/bin
2053         BUILD_LIBJLI_SRC_DIRS += $(JDK_TOPDIR)/src/macosx/bin
2054         BUILD_LIBJLI_FILES += java_md_common.c java_md_macosx.c
2055 
2056         BUILD_LIBJLI_java_md_macosx.c_CFLAGS:=-x objective-c
2057         BUILD_LIBJLI_STATIC_java_md_macosx.c_CFLAGS:=-x objective-c
2058 endif
2059 
2060 ifeq ($(OPENJDK_TARGET_OS), windows)
2061         BUILD_LIBJLI_FILES += java_md.c \
2062                               cmdtoargs.c
2063         # Staticically link with c runtime on windows.
2064         LIBJLI_CFLAGS:=$(filter-out -MD,$(LIBJLI_CFLAGS))
2065 else ifneq ($(OPENJDK_TARGET_OS), macosx)
2066 
2067         BUILD_LIBJLI_FILES += java_md_common.c
2068         BUILD_LIBJLI_FILES += java_md_solinux.c ergo.c 
2069 
2070         ERGO_ARCH_FILE = ergo_$(ERGO_FAMILY).c
2071 
2072         # if the architecture specific ergo file exists then
2073         # use it, else use the generic definitions from ergo.c
2074         ifneq ($(wildcard $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin/$(ERGO_ARCH_FILE)),)
2075                 BUILD_LIBJLI_FILES += $(ERGO_ARCH_FILE)
2076         else # !ERGO_ARCH_FILE
2077                 LIBJLI_CFLAGS += -DUSE_GENERIC_ERGO
2078         endif # ERGO_ARCH_FILE
2079 endif #WINDOWS
2080 
2081 # Append defines depending on target platform
2082 LIBJLI_CFLAGS += $(OPENJDK_TARGET_CPU_JLI_CFLAGS)
2083 
2084 ifeq ($(OPENJDK_TARGET_OS), macosx)
2085         LIBJLI_CFLAGS += -DPACKAGE_PATH=\"$(PACKAGE_PATH)\"
2086 endif
2087 
2088 ifneq ($(USE_EXTERNAL_LIBZ),true)
2089         BUILD_LIBJLI_SRC_DIRS += $(JDK_TOPDIR)/src/share/native/java/util/zip/zlib-1.2.5
2090         LIBJLI_CFLAGS += $(ZLIB_CPPFLAGS)
2091         BUILD_LIBJLI_FILES += \
2092                 inflate.c \
2093                 inftrees.c \
2094                 inffast.c \
2095                 zadler32.c \
2096                 zcrc32.c \
2097                 zutil.c
2098 endif
2099 
2100 ifeq ($(OPENJDK_TARGET_OS), windows)
2101     LIBJLI_OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE)
2102 else
2103     LIBJLI_OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE)/jli
2104 endif
2105 
2106 $(eval $(call SetupNativeCompilation,BUILD_LIBJLI,\
2107                 LIBRARY:=jli,\
2108                 OUTPUT_DIR:=$(LIBJLI_OUTPUT_DIR),\
2109                 SRC:=$(BUILD_LIBJLI_SRC_DIRS),\
2110                 INCLUDE_FILES:=$(BUILD_LIBJLI_FILES),\
2111                 LANG:=C,\
2112                 OPTIMIZATION:=HIGH, \
2113                 CFLAGS:=$(LIBJLI_CFLAGS),\
2114                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjli/mapfile-vers, \
2115                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
2116                          $(call SET_SHARED_LIBRARY_ORIGIN),\
2117                 LDFLAGS_linux:=$(call SET_SHARED_LIBRARY_ORIGIN,/..),\
2118                 LDFLAGS_solaris:=$(call SET_SHARED_LIBRARY_ORIGIN,/..),\
2119                 LDFLAGS_macosx:=-framework Cocoa -framework Security -framework ApplicationServices,\
2120                 LDFLAGS_SUFFIX_solaris:=$(LIBZ) $(LIBDL) -lc,\
2121                 LDFLAGS_SUFFIX_linux:=$(LIBZ) $(LIBDL) -lc -lpthread,\
2122                 LDFLAGS_SUFFIX_macosx:=$(LIBZ),\
2123                 LDFLAGS_SUFFIX_windows:=\
2124                         -export:JLI_Launch \
2125                         -export:JLI_ManifestIterate \
2126                         -export:JLI_SetTraceLauncher \
2127                         -export:JLI_ReportErrorMessage \
2128                         -export:JLI_ReportErrorMessageSys \
2129                         -export:JLI_ReportMessage \
2130                         -export:JLI_ReportExceptionDescription \
2131                         -export:JLI_MemAlloc \
2132                         -export:JLI_CmdToArgs \
2133                         -export:JLI_GetStdArgc \
2134                         -export:JLI_GetStdArgs \
2135                         advapi32.lib \
2136                         comctl32.lib \
2137                         user32.lib,\
2138                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
2139                 RC_FLAGS:=$(RC_FLAGS) \
2140                           -D "JDK_FNAME=jli.dll" \
2141                           -D "JDK_INTERNAL_NAME=jli" \
2142                           -D "JDK_FTYPE=0x2L",\
2143                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjli,\
2144                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2145 
2146 BUILD_LIBRARIES += $(BUILD_LIBJLI)
2147 
2148 # On windows, the static library has the same suffix as the import library created by
2149 # with the shared library, so the static library is given a different name. No harm
2150 # in doing it for all platform to reduce complexity.
2151 ifeq ($(OPENJDK_TARGET_OS), windows)
2152     $(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC,\
2153                 STATIC_LIBRARY:=jli_static,\
2154                 OUTPUT_DIR:=$(JDK_OUTPUTDIR)/objs,\
2155                 SRC:=$(BUILD_LIBJLI_SRC_DIRS),\
2156                 INCLUDE_FILES:=$(BUILD_LIBJLI_FILES),\
2157                 LANG:=C,\
2158                 OPTIMIZATION:=HIGH, \
2159                 CFLAGS:=$(STATIC_LIBRARY_FLAGS) $(LIBJLI_CFLAGS),\
2160                 ARFLAGS:=$(ARFLAGS),\
2161                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjli_static,\
2162                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2163 
2164 BUILD_LIBRARIES += $(BUILD_LIBJLI_STATIC)
2165 
2166 else ifeq ($(OPENJDK_TARGET_OS),macosx)
2167     #
2168     # On macosx they do partial (incremental) linking of libjli_static.a
2169     #   code it here...rather than add support to NativeCompilation
2170     #   as this is first time I see it
2171     $(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC,\
2172                 LIBRARY:=jli_static, \
2173                 OUTPUT_DIR:=$(JDK_OUTPUTDIR)/objs,\
2174                 SRC:=$(BUILD_LIBJLI_SRC_DIRS),\
2175                 INCLUDE_FILES:=$(BUILD_LIBJLI_FILES),\
2176                 LANG:=C,\
2177                 OPTIMIZATION:=HIGH, \
2178                 CFLAGS:=$(CFLAGS_JDKLIB) $(LIBJLI_CFLAGS),\
2179                 LDFLAGS:=-nostdlib -r,\
2180                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjli_static,\
2181                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2182 
2183 $(JDK_OUTPUTDIR)/objs/libjli_static.a : $(BUILD_LIBJLI_STATIC)
2184         $(call install-file)
2185 
2186 BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/objs/libjli_static.a
2187 endif
2188 
2189 ##########################################################################################
2190 
2191 ifndef OPENJDK
2192 ifeq ($(ENABLE_JFR), true)
2193 
2194 $(eval $(call SetupNativeCompilation,BUILD_LIBJFR,\
2195                 LIBRARY:=jfr,\
2196                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2197                 SRC:=$(JDK_TOPDIR)/src/closed/share/native/oracle/jfr,\
2198                 LANG:=C,\
2199                 OPTIMIZATION:=LOW, \
2200                 CFLAGS:=$(CFLAGS_JDKLIB) \
2201                         -I$(JDK_TOPDIR)/src/closed/share/javavm/export, \
2202                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjfr/mapfile-vers, \
2203                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
2204                          $(call SET_SHARED_LIBRARY_ORIGIN),\
2205                 LDFLAGS_SUFFIX_solaris:=-lc,\
2206                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
2207                 RC_FLAGS:=$(RC_FLAGS)\
2208                           -D "JDK_FNAME=jfr.dll" \
2209                           -D "JDK_INTERNAL_NAME=jfr" \
2210                           -D "JDK_FTYPE=0x2L",\
2211                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjfr,\
2212                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2213 
2214 BUILD_LIBRARIES += $(BUILD_LIBJFR)
2215 
2216 endif
2217 endif
2218 
2219 ##########################################################################################
2220 
2221 ifndef OPENJDK
2222 
2223 BUILD_LIBKCMS_EXCLUDE_FILES:=
2224 ifeq ($(OPENJDK_TARGET_OS),windows)
2225         BUILD_LIBKCMS_EXCLUDE_FILES += ukcpmgr.c unixmem.c
2226 else
2227         BUILD_LIBKCMS_EXCLUDE_FILES += cmmdll.c registry.c spxffile.c sysinfo.c winmem.c wkcpmgr.c
2228 endif
2229 
2230 BUILD_LIBKCMS_FLAGS:=$(CFLAGS_JDKLIB)
2231 
2232 ifeq ($(OPENJDK_TARGET_OS),solaris)
2233      # This particular library uses a feature called PIC_CODE_SMALL (on solaris)
2234      #   implement it like this...since it's only used here
2235      BUILD_LIBKCMS_FLAGS:=$(patsubst -KPIC,-Kpic,$(BUILD_LIBKCMS_FLAGS))
2236 else ifeq ($(OPENJDK_TARGET_CPU_ARCH), ppc)
2237      BUILD_LIBKCMS_FLAGS:=$(patsubst -fPIC,-fpic,$(BUILD_LIBKCMS_FLAGS))
2238 endif
2239 
2240 $(eval $(call SetupNativeCompilation,BUILD_LIBKCMS,\
2241                 LIBRARY:=kcms,\
2242                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2243                 SRC:=$(JDK_TOPDIR)/src/closed/share/native/sun/java2d/cmm/kcms,\
2244                 LANG:=C,\
2245                 EXCLUDE_FILES:=$(BUILD_LIBKCMS_EXCLUDE_FILES),\
2246                 OPTIMIZATION:=LOW, \
2247                 CFLAGS:=$(BUILD_LIBKCMS_FLAGS) \
2248                         -DJAVACMM -DFUT_CALC_EX -DNO_FUT_GCONST,\
2249                 CFLAGS_linux:=-Wno-missing-field-initializers,\
2250                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libkcms/mapfile-vers, \
2251                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
2252                          $(call SET_SHARED_LIBRARY_ORIGIN),\
2253                 LDFLAGS_SUFFIX_linux:=-lc -lpthread,\
2254                 LDFLAGS_SUFFIX_solaris:=-lc,\
2255                 LDFLAGS_SUFFIX_windows:=$(WIN_JAVA_LIB) advapi32.lib user32.lib version.lib, \
2256                 LDFLAGS_SUFFIX_posix:=-lm -ljava -ljvm,\
2257                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/closed/share/native/sun/java2d/cmm/kcms/cmm.rc,\
2258                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/closed/share/native/sun/java2d/cmm/kcms/cmm.rc,\
2259                 RC_FLAGS:=$(RC_FLAGS)\
2260                           -D "JDK_FNAME=kcms.dll" \
2261                           -D "JDK_INTERNAL_NAME=kcms" \
2262                           -D "JDK_FTYPE=0x2L",\
2263                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libkcms,\
2264                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2265 
2266 $(BUILD_LIBKCMS) : $(BUILD_LIBJAVA)
2267 
2268 BUILD_LIBRARIES += $(BUILD_LIBKCMS)
2269 
2270 endif
2271 
2272 ##########################################################################################
2273 
2274 ifndef OPENJDK
2275 ifeq ($(OPENJDK_TARGET_OS), solaris)
2276 ifneq ($(OPENJDK_TARGET_CPU), x86_64)
2277 
2278 ifeq ($(shell if test "$(OS_VERSION_MAJOR)" -eq 5 -a "$(OS_VERSION_MINOR)" -le 10; then $(ECHO) ok; fi), ok)
2279 
2280 SUNWJDGA_MAPFILE:=
2281 ifeq ($(OPENJDK_TARGET_CPU_ARCH), sparc)
2282         SUNWJDGA_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjdga/mapfile-vers
2283 endif
2284 
2285 $(eval $(call SetupNativeCompilation,BUILD_LIBSUNWJDGA, \
2286                 LIBRARY:=sunwjdga,\
2287                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2288                 SRC:=$(JDK_TOPDIR)/src/solaris/native/sun/jdga, \
2289                 LANG:=C, \
2290                 OPTIMIZATION:=LOW, \
2291                 CFLAGS:=$(CFLAGS_JDKLIB) \
2292                         -I$(JDK_TOPDIR)/src/share/javavm/export \
2293                         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/javavm/export \
2294                         -I$(OPENWIN_HOME)/include, \
2295                 MAPFILE:=$(SUNWJDGA_MAPFILE), \
2296                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
2297                          $(call SET_SHARED_LIBRARY_ORIGIN), \
2298                 LDFLAGS_SUFFIX:=-L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -ldga -lX11 $(LIBDL) -lc, \
2299                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsunwjdga,\
2300                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2301 
2302 BUILD_LIBRARIES += $(BUILD_LIBSUNWJDGA)
2303 
2304 endif
2305 endif
2306 endif
2307 endif
2308 
2309 ##########################################################################################
2310 
2311 ifeq ($(BUILD_HEADLESS), true)
2312 ifneq ($(OPENJDK_TARGET_OS), windows)
2313 
2314 LIBAWT_HEADLESS_DIRS:=$(JDK_TOPDIR)/src/share/native/sun/font \
2315                         $(JDK_TOPDIR)/src/share/native/sun/java2d/opengl \
2316                         $(JDK_TOPDIR)/src/solaris/native/sun/font \
2317                         $(JDK_TOPDIR)/src/solaris/native/sun/awt \
2318                         $(JDK_TOPDIR)/src/solaris/native/sun/java2d/opengl \
2319                         $(JDK_TOPDIR)/src/solaris/native/sun/java2d/x11
2320 
2321 ifeq ($(OPENJDK_TARGET_OS),macosx)
2322         LIBAWT_HEADLESS_DIRS+=$(JDK_TOPDIR)/src/macosx/native/sun/font
2323 endif
2324 
2325 LIBAWT_HEADLESS_CFLAGS:=-DHEADLESS=true \
2326                           -DX11_PATH=\"$(X11_PATH)\" -DPACKAGE_PATH=\"$(PACKAGE_PATH)\" \
2327                           $(CUPS_CFLAGS) \
2328                           $(X_CFLAGS) \
2329                           -I$(JDK_TOPDIR)/src/share/native/sun/java2d \
2330                           -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d \
2331                           -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \
2332                           -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \
2333                           -I$(JDK_TOPDIR)/src/share/native/sun/awt/image \
2334                           -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \
2335                           -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \
2336                           -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/jdga \
2337                           $(foreach dir,$(LIBAWT_HEADLESS_DIRS),-I$(dir))
2338 
2339 ifeq ($(OPENJDK_TARGET_OS),macosx)
2340         LIBAWT_HEADLESS_CFLAGS+=\
2341                 -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
2342                 -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks
2343 endif
2344 
2345 LIBAWT_HEADLESS_FILES:=\
2346         awt_Font.c \
2347         HeadlessToolkit.c \
2348         fontpath.c \
2349         VDrawingArea.c \
2350         X11Color.c \
2351         X11Renderer.c \
2352         X11PMBlitLoops.c \
2353         X11SurfaceData.c \
2354         X11FontScaler_md.c \
2355         X11TextRenderer_md.c \
2356         OGLBlitLoops.c \
2357         OGLBufImgOps.c \
2358         OGLContext.c \
2359         OGLFuncs.c \
2360         OGLMaskBlit.c \
2361         OGLMaskFill.c \
2362         OGLPaints.c \
2363         OGLRenderQueue.c \
2364         OGLRenderer.c \
2365         OGLSurfaceData.c \
2366         OGLTextRenderer.c \
2367         OGLVertexCache.c \
2368         GLXGraphicsConfig.c \
2369         GLXSurfaceData.c \
2370         AccelGlyphCache.c \
2371         CUPSfuncs.c
2372 
2373 ifeq ($(OPENJDK_TARGET_OS),macosx)
2374         LIBAWT_HEADLESS_FILES+=\
2375                 AWTFont.m \
2376                 AWTStrike.m \
2377                 CCharToGlyphMapper.m \
2378                 CGGlyphImages.m \
2379                 CGGlyphOutlines.m \
2380                 CoreTextSupport.m
2381 endif
2382 
2383 LIBAWT_HEADLESS_REORDER:=
2384 ifeq ($(OPENJDK_TARGET_OS), solaris)
2385         ifneq ($(OPENJDK_TARGET_CPU), x86_64)
2386                 LIBAWT_HEADLESS_REORDER:=$(JDK_TOPDIR)/makefiles/mapfiles/libawt_headless/reorder-$(OPENJDK_TARGET_CPU)
2387         endif
2388 endif
2389 
2390 $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_HEADLESS,\
2391                 LIBRARY:=awt_headless,\
2392                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2393                 SRC:=$(LIBAWT_HEADLESS_DIRS),\
2394                 INCLUDE_FILES:=$(LIBAWT_HEADLESS_FILES),\
2395                 LANG:=C,\
2396                 OPTIMIZATION:=LOW, \
2397                 CFLAGS:=$(CFLAGS_JDKLIB) $(LIBAWT_HEADLESS_CFLAGS),\
2398                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libawt_headless/mapfile-vers,\
2399                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
2400                          $(call SET_SHARED_LIBRARY_ORIGIN),\
2401                 LDFLAGS_linux:=$(call SET_SHARED_LIBRARY_ORIGIN,/..),\
2402                 LDFLAGS_solaris:=$(call SET_SHARED_LIBRARY_ORIGIN,/..) \
2403                                  -R/usr/dt/lib$(OPENJDK_TARGET_CPU_ISADIR) \
2404                                  -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR),\
2405                 LDFLAGS_macosx:=$(call SET_SHARED_LIBRARY_ORIGIN).,\
2406                 REORDER:=$(LIBAWT_HEADLESS_REORDER), \
2407                 LDFLAGS_SUFFIX_linux:=-ljvm -lawt -lm $(LIBDL) -ljava,\
2408                 LDFLAGS_SUFFIX_solaris:=$(LIBDL) -ljvm -lawt -lm -ljava $(LIBCXX) -lc,\
2409                 LDFLAGS_SUFFIX_macosx:=-ljvm $(LIBCXX) -lawt $(LIBDL) -ljava \
2410                                  -framework Accelerate \
2411                                  -framework ApplicationServices \
2412                                  -framework Cocoa \
2413                                  -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
2414                                  -framework JavaNativeFoundation \
2415                                  -framework JavaRuntimeSupport,\
2416                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libawt_headless,\
2417                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2418 
2419 $(BUILD_LIBAWT_HEADLESS) : $(BUILD_LIBAWT)
2420 
2421 BUILD_LIBRARIES += $(BUILD_LIBAWT_HEADLESS)
2422 
2423 endif
2424 endif
2425 
2426 ##########################################################################################
2427 
2428 ifndef BUILD_HEADLESS_ONLY
2429 LIBSPLASHSCREEN_DIRS:=\
2430         $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg \
2431         $(JDK_TOPDIR)/src/share/native/sun/awt/libpng \
2432         $(JDK_TOPDIR)/src/share/native/sun/awt/splashscreen
2433 
2434 ifeq ($(USE_EXTERNAL_LIBGIF),true)
2435     GIFLIB_LDFLAGS := -lgif
2436 else
2437     LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/sun/awt/giflib
2438     GIFLIB_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/giflib
2439 endif
2440 
2441 ifneq ($(OPENJDK_TARGET_OS), macosx)
2442     LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt/splashscreen
2443 else
2444     LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/macosx/native/sun/awt/splashscreen
2445 endif
2446 
2447 LIBSPLASHSCREEN_CFLAGS:=-DSPLASHSCREEN -DPNG_NO_MMX_CODE \
2448         $(foreach dir,$(LIBSPLASHSCREEN_DIRS),-I$(dir))
2449 
2450 ifeq ($(OPENJDK_TARGET_OS), macosx)
2451         LIBSPLASHSCREEN_CFLAGS:=-I$(JDK_TOPDIR)/src/macosx/native/sun/awt/splashscreen \
2452                                   $(LIBSPLASHSCREEN_CFLAGS) \
2453                                   -F/System/Library/Frameworks/JavaVM.framework/Frameworks
2454         LIBSPLASHSCREEN_CFLAGS += -DWITH_MACOSX
2455         LIBSPLASHSCREEN_CFLAGS += -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp
2456 
2457         LIBSPLASHSCREEN_java_awt_SplashScreen.c_CFLAGS:=-x objective-c -O0
2458         LIBSPLASHSCREEN_splashscreen_gfx_impl.c_CFLAGS:=-x objective-c -O0
2459         LIBSPLASHSCREEN_splashscreen_gif.c_CFLAGS:=-x objective-c -O0
2460         LIBSPLASHSCREEN_splashscreen_impl.c_CFLAGS:=-x objective-c -O0
2461         LIBSPLASHSCREEN_splashscreen_jpeg.c_CFLAGS:=-x objective-c -O0
2462         LIBSPLASHSCREEN_splashscreen_png.c_CFLAGS:=-x objective-c -O0
2463         LIBSPLASHSCREEN_splashscreen_sys.m_CFLAGS:=-O0
2464 
2465 else ifneq ($(OPENJDK_TARGET_OS), windows)
2466         LIBSPLASHSCREEN_CFLAGS += -DWITH_X11 -I$(OPENWIN_HOME)/include -I$(OPENWIN_HOME)/include/X11/extensions
2467 else
2468         LIBSPLASHSCREEN_CFLAGS += -DWITH_WIN32
2469 endif
2470 
2471 LIBSPLASHSCREEN_LDFLAGS_SUFFIX:=
2472 
2473 ifneq ($(USE_EXTERNAL_LIBZ),true)
2474         LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/java/util/zip/zlib-1.2.5
2475         LIBSPLASHSCREEN_CFLAGS += $(ZLIB_CPPFLAGS)
2476 endif
2477 
2478 ifeq ($(OPENJDK_TARGET_OS), macosx)
2479         LIBSPLASHSCREEN_LDFLAGS_SUFFIX += $(LIBM) -lpthread -liconv -losxapp \
2480                                   -framework ApplicationServices \
2481                                   -framework Foundation \
2482                                   -framework Cocoa \
2483                                   -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
2484                                   -framework JavaNativeFoundation
2485 else ifneq ($(OPENJDK_TARGET_OS), windows)
2486         LIBSPLASHSCREEN_LDFLAGS_SUFFIX += -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -lX11 -lXext $(LIBM) -lpthread
2487 else # OPENJDK_TARGET_OS
2488         LIBSPLASHSCREEN_LDFLAGS_SUFFIX += kernel32.lib user32.lib gdi32.lib delayimp.lib -DELAYLOAD:user32.dll
2489 endif # OPENJDK_TARGET_OS
2490 
2491 $(eval $(call SetupNativeCompilation,LIBSPLASHSCREEN,\
2492                 LIBRARY:=splashscreen,\
2493                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2494                 SRC:=$(LIBSPLASHSCREEN_DIRS),\
2495                 EXCLUDE_FILES:=imageioJPEG.c jpegdecoder.c pngtest.c,\
2496                 LANG:=C,\
2497                 OPTIMIZATION:=LOW, \
2498                 CFLAGS:=$(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) $(GIFLIB_CFLAGS),\
2499                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libsplashscreen/mapfile-vers, \
2500                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
2501                          $(call SET_SHARED_LIBRARY_ORIGIN),\
2502                 LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS),\
2503                 LDFLAGS_SUFFIX_solaris:=-lc,\
2504                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
2505                 RC_FLAGS:=$(RC_FLAGS)\
2506                           -D "JDK_FNAME=splashscreen.dll" \
2507                           -D "JDK_INTERNAL_NAME=splashscreen" \
2508                           -D "JDK_FTYPE=0x2L",\
2509                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsplashscreen,\
2510                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2511 
2512 BUILD_LIBRARIES += $(LIBSPLASHSCREEN)
2513 
2514 ifeq ($(OPENJDK_TARGET_OS),macosx)
2515 $(LIBSPLASHSCREEN) :  $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)osxapp$(SHARED_LIBRARY_SUFFIX) 
2516 endif
2517 
2518 endif
2519 
2520 ##########################################################################################
2521 
2522 ifndef OPENJDK
2523 
2524 LIBDCPR_SRC_DIRS:=\
2525         $(JDK_TOPDIR)/src/closed/share/native/sun/dc/doe \
2526         $(JDK_TOPDIR)/src/closed/share/native/sun/dc/path \
2527         $(JDK_TOPDIR)/src/closed/share/native/sun/dc/pr \
2528         $(JDK_TOPDIR)/src/closed/share/native/sun/dc/util
2529 
2530 LIBDCPR_CFLAGS:=$(foreach dir,$(LIBDCPR_SRC_DIRS),-I$(dir)) \
2531                   -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe
2532 
2533 $(eval $(call SetupNativeCompilation,BUILD_LIBDCPR,\
2534                 LIBRARY:=dcpr,\
2535                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2536                 SRC:=$(LIBDCPR_SRC_DIRS),\
2537                 LANG:=C,\
2538                 OPTIMIZATION:=LOW, \
2539                 CFLAGS:=$(CFLAGS_JDKLIB) \
2540                         $(LIBDCPR_CFLAGS), \
2541                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libdcpr/mapfile-vers, \
2542                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
2543                          $(call SET_SHARED_LIBRARY_ORIGIN),\
2544                 LDFLAGS_SUFFIX:=$(LIBM) $(LDFLAGS_JDKLIB_SUFFIX),\
2545                 LDFLAGS_SUFFIX_posix:=-lm,\
2546                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
2547                 RC_FLAGS:=$(RC_FLAGS)\
2548                           -D "JDK_FNAME=dcpr.dll" \
2549                           -D "JDK_INTERNAL_NAME=dcpr" \
2550                           -D "JDK_FTYPE=0x2L",\
2551                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libdcpr,\
2552                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2553 
2554 $(BUILD_LIBDCPR) : $(BUILD_LIBJAVA)
2555 
2556 BUILD_LIBRARIES += $(BUILD_LIBDCPR)
2557 
2558 endif
2559 
2560 ##########################################################################################
2561 
2562 $(eval $(call SetupNativeCompilation,BUILD_LIBJ2PCSC,\
2563                 LIBRARY:=j2pcsc,\
2564                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2565                 SRC:=$(JDK_TOPDIR)/src/share/native/sun/security/smartcardio \
2566                      $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/smartcardio,\
2567                 LANG:=C,\
2568                 CFLAGS_posix:=-D__sun_jdk,\
2569                 OPTIMIZATION:=LOW, \
2570                 CFLAGS:=$(CFLAGS_JDKLIB) \
2571                      -I$(JDK_TOPDIR)/src/share/native/sun/security/smartcardio \
2572                      -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/smartcardio\
2573                      -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/smartcardio/MUSCLE,\
2574                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libj2pcsc/mapfile-vers, \
2575                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
2576                          $(call SET_SHARED_LIBRARY_ORIGIN),\
2577                 LDFLAGS_SUFFIX_posix:=$(LIBDL), \
2578                 LDFLAGS_SUFFIX_windows:=winscard.lib,\
2579                 LDFLAGS_SUFFIX_solaris:=-lc,\
2580                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
2581                 RC_FLAGS:=$(RC_FLAGS)\
2582                           -D "JDK_FNAME=j2pcsc.dll" \
2583                           -D "JDK_INTERNAL_NAME=j2pcsc" \
2584                           -D "JDK_FTYPE=0x2L",\
2585                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2pcsc,\
2586                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2587 
2588 BUILD_LIBRARIES += $(BUILD_LIBJ2PCSC)
2589 
2590 ##########################################################################################
2591 
2592 ifneq ($(OPENJDK_TARGET_OS), windows)
2593 $(eval $(call SetupNativeCompilation,BUILD_LIBJ2GSS,\
2594                 LIBRARY:=j2gss,\
2595                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2596                 SRC:=$(JDK_TOPDIR)/src/share/native/sun/security/jgss/wrapper \
2597                      $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/jgss/wrapper,\
2598                 LANG:=C,\
2599                 OPTIMIZATION:=LOW, \
2600                 CFLAGS:=$(CFLAGS_JDKLIB) \
2601                      -I$(JDK_TOPDIR)/src/share/native/sun/security/jgss/wrapper \
2602                      -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/jgss/wrapper,\
2603                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libj2gss/mapfile-vers, \
2604                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
2605                          $(call SET_SHARED_LIBRARY_ORIGIN),\
2606                 LDFLAGS_SUFFIX:=$(LIBDL),\
2607                 LDFLAGS_SUFFIX_solaris:=-lc,\
2608                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2gss,\
2609                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2610 
2611 BUILD_LIBRARIES += $(BUILD_LIBJ2GSS)
2612 endif
2613 
2614 ##########################################################################################
2615 
2616 BUILD_LIBKRB5_NAME:=
2617 ifeq ($(OPENJDK_TARGET_OS), windows)
2618      BUILD_LIBKRB5_NAME:=w2k_lsa_auth
2619      BUILD_LIBKRB5_SRC:=$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/krb5
2620      BUILD_LIBKRB5_LIBS:=advapi32.lib Secur32.lib netapi32.lib kernel32.lib user32.lib \
2621                          gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib \
2622                          ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib
2623 else ifeq ($(OPENJDK_TARGET_OS), macosx)
2624      BUILD_LIBKRB5_NAME:=osxkrb5
2625      BUILD_LIBKRB5_SRC:=$(JDK_TOPDIR)/src/share/native/sun/security/krb5
2626      BUILD_LIBKRB5_LIBS:=-framework Kerberos
2627 endif
2628 
2629 ifneq ($(BUILD_LIBKRB5_NAME),)
2630 $(eval $(call SetupNativeCompilation,BUILD_LIBKRB5,\
2631                 LIBRARY:=$(BUILD_LIBKRB5_NAME),\
2632                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2633                 SRC:=$(BUILD_LIBKRB5_SRC),\
2634                 LANG:=C,\
2635                 OPTIMIZATION:=LOW, \
2636                 CFLAGS:=$(CFLAGS_JDKLIB) \
2637                         -I$(JDK_TOPDIR)/src/share/native/sun/security/krb5 \
2638                         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/krb5 ,\
2639                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
2640                          $(call SET_SHARED_LIBRARY_ORIGIN),\
2641                 LDFLAGS_SUFFIX:=$(BUILD_LIBKRB5_LIBS) ,\
2642                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
2643                 RC_FLAGS:=$(RC_FLAGS)\
2644                           -D "JDK_FNAME=$(BUILD_LIBKRB5_NAME).dll" \
2645                           -D "JDK_INTERNAL_NAME=$(BUILD_LIBKRB5_NAME)" \
2646                           -D "JDK_FTYPE=0x2L",\
2647                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libkrb5,\
2648                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2649 
2650 BUILD_LIBRARIES += $(BUILD_LIBKRB5)
2651 endif
2652 
2653 ##########################################################################################
2654 
2655 ifeq ($(OPENJDK_TARGET_OS), windows)
2656 
2657 $(eval $(call SetupNativeCompilation,BUILD_LIBSUNMSCAPI,\
2658                 LIBRARY:=sunmscapi,\
2659                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2660                 SRC:=$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/mscapi,\
2661                 LANG:=C++,\
2662                 OPTIMIZATION:=LOW, \
2663                 CFLAGS:=$(CFLAGS_JDKLIB) \
2664                         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/mscapi ,\
2665                 LDFLAGS:=$(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \
2666                          $(call SET_SHARED_LIBRARY_ORIGIN),\
2667                 LDFLAGS_SUFFIX:=Crypt32.Lib advapi32.lib,\
2668                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
2669                 RC_FLAGS:=$(RC_FLAGS)\
2670                           -D "JDK_FNAME=sunmscapi.dll" \
2671                           -D "JDK_INTERNAL_NAME=sunmscapi" \
2672                           -D "JDK_FTYPE=0x2L",\
2673                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsunmscapi,\
2674                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2675 
2676 BUILD_LIBRARIES += $(BUILD_LIBSUNMSCAPI)
2677 endif
2678 
2679 ##########################################################################################
2680 
2681 $(eval $(call SetupNativeCompilation,BUILD_LIBJ2PKCS11,\
2682                 LIBRARY:=j2pkcs11,\
2683                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2684                 SRC:=$(JDK_TOPDIR)/src/share/native/sun/security/pkcs11 \
2685                      $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/pkcs11 \
2686                      $(JDK_TOPDIR)/src/share/native/sun/security/pkcs11/wrapper \
2687                      $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/pkcs11/wrapper,\
2688                 LANG:=C,\
2689                 OPTIMIZATION:=LOW, \
2690                 CFLAGS:=$(CFLAGS_JDKLIB) \
2691                         -I$(JDK_TOPDIR)/src/share/native/sun/security/pkcs11 \
2692                         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/pkcs11 \
2693                         -I$(JDK_TOPDIR)/src/share/native/sun/security/pkcs11/wrapper \
2694                         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/pkcs11/wrapper,\
2695                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libj2pkcs11/mapfile-vers, \
2696                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
2697                          $(call SET_SHARED_LIBRARY_ORIGIN),\
2698                 LDFLAGS_SUFFIX_posix:=$(LIBDL),\
2699                 LDFLAGS_SUFFIX_solaris:=-lc,\
2700                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
2701                 RC_FLAGS:=$(RC_FLAGS)\
2702                           -D "JDK_FNAME=j2pkcs11.dll" \
2703                           -D "JDK_INTERNAL_NAME=j2pkcs11" \
2704                           -D "JDK_FTYPE=0x2L",\
2705                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2pkcs11,\
2706                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2707 
2708 BUILD_LIBRARIES += $(BUILD_LIBJ2PKCS11)
2709 
2710 ##########################################################################################
2711 
2712 ifeq ($(ENABLE_INTREE_EC),yes)
2713 
2714 BUILD_LIBSUNEC_FLAGS:= -I$(JDK_TOPDIR)/src/share/native/sun/security/ec \
2715                        -I$(JDK_TOPDIR)/src/share/native/sun/security/ec/impl
2716 
2717 #
2718 # On sol-sparc...all libraries are compiled with -xregs=no%appl
2719 #   (set in CFLAGS_REQUIRED_sparc)
2720 #
2721 # except!!! libsunec.so
2722 #
2723 ECC_JNI_SOLSPARC_FILTER:=
2724 ifeq ($(OPENJDK_TARGET_CPU_ARCH), sparc)
2725      ECC_JNI_SOLSPARC_FILTER:=-xregs=no%appl
2726 endif
2727 
2728 $(eval $(call SetupNativeCompilation,BUILD_LIBSUNEC,\
2729                 LIBRARY:=sunec,\
2730                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2731                 SRC:=$(JDK_TOPDIR)/src/share/native/sun/security/ec \
2732                      $(JDK_TOPDIR)/src/share/native/sun/security/ec/impl, \
2733                 LANG:=C++, \
2734                 OPTIMIZATION:=LOW, \
2735                 CFLAGS:=$(filter-out $(ECC_JNI_SOLSPARC_FILTER), $(CFLAGS_JDKLIB))\
2736                         $(BUILD_LIBSUNEC_FLAGS) \
2737                         -DMP_API_COMPATIBLE -DNSS_ECC_MORE_THAN_SUITE_B,\
2738                 CXXFLAGS:=$(filter-out $(ECC_JNI_SOLSPARC_FILTER), $(CXXFLAGS_JDKLIB)) \
2739                           $(BUILD_LIBSUNEC_FLAGS),\
2740                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libsunec/mapfile-vers, \
2741                 LDFLAGS:=$(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK),\
2742                 LDFLAGS_macosx:=$(call SET_SHARED_LIBRARY_ORIGIN),\
2743                 LDFLAGS_SUFFIX:=$(LIBCXX),\
2744                 LDFLAGS_SUFFIX_linux:=-lc ,\
2745                 LDFLAGS_SUFFIX_solaris:=-lc ,\
2746                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
2747                 RC_FLAGS:=$(RC_FLAGS)\
2748                           -D "JDK_FNAME=sunec.dll" \
2749                           -D "JDK_INTERNAL_NAME=sunec" \
2750                           -D "JDK_FTYPE=0x2L",\
2751                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsunec,\
2752                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2753 
2754 BUILD_LIBRARIES += $(BUILD_LIBSUNEC)
2755 endif
2756 
2757 ##########################################################################################
2758 
2759 LIBJSOUND_SRC_DIRS:=\
2760         $(JDK_TOPDIR)/src/share/native/com/sun/media/sound \
2761         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/com/sun/media/sound
2762 
2763 LIBJSOUND_SRC_FILES:=Utilities.c Platform.c
2764 
2765 LIBJSOUND_LANG:=C
2766 LIBJSOUND_CFLAGS:=$(foreach dir,$(LIBJSOUND_SRC_DIRS),-I$(dir))
2767 
2768 EXTRA_SOUND_JNI_LIBS:=
2769 
2770 LIBJSOUND_MIDIFILES:=\
2771         MidiInDevice.c \
2772         MidiInDeviceProvider.c \
2773         MidiOutDevice.c \
2774         MidiOutDeviceProvider.c \
2775         PlatformMidi.c
2776 
2777 # files needed for ports
2778 LIBJSOUND_PORTFILES:=\
2779         PortMixerProvider.c \
2780         PortMixer.c
2781 
2782 # files needed for direct audio
2783 LIBJSOUND_DAUDIOFILES:=\
2784         DirectAudioDeviceProvider.c \
2785         DirectAudioDevice.c
2786 
2787 ifeq ($(OPENJDK_TARGET_OS), windows)
2788         EXTRA_SOUND_JNI_LIBS += jsoundds
2789         LIBJSOUND_CFLAGS += -DX_PLATFORM=X_WINDOWS \
2790                             -DUSE_PLATFORM_MIDI_OUT=TRUE \
2791                             -DUSE_PLATFORM_MIDI_IN=TRUE \
2792                             -DUSE_PORTS=TRUE
2793         LIBJSOUND_SRC_FILES += \
2794                 PLATFORM_API_WinOS_MidiIn.cpp \
2795                 PLATFORM_API_WinOS_MidiOut.c \
2796                 PLATFORM_API_WinOS_Util.c \
2797                 PLATFORM_API_WinOS_Ports.c
2798         LIBJSOUND_SRC_FILES += $(LIBJSOUND_MIDIFILES)
2799         LIBJSOUND_SRC_FILES += $(LIBJSOUND_PORTFILES)
2800 endif # OPENJDK_TARGET_OS windows
2801 
2802 ifeq ($(OPENJDK_TARGET_OS), linux)
2803         EXTRA_SOUND_JNI_LIBS += jsoundalsa
2804         LIBJSOUND_CFLAGS += -DX_PLATFORM=X_LINUX
2805 endif # OPENJDK_TARGET_OS linux
2806 
2807 ifeq ($(OPENJDK_TARGET_OS), macosx)
2808         LIBJSOUND_LANG:=C++
2809         LIBJSOUND_CFLAGS += -DX_PLATFORM=X_MACOSX \
2810                             -DUSE_PORTS=TRUE \
2811                             -DUSE_DAUDIO=TRUE \
2812                             -DUSE_PLATFORM_MIDI_OUT=TRUE \
2813                             -DUSE_PLATFORM_MIDI_IN=TRUE
2814         LIBJSOUND_SRC_DIRS += $(JDK_TOPDIR)/src/macosx/native/com/sun/media/sound
2815         LIBJSOUND_SRC_FILES += \
2816                 PLATFORM_API_MacOSX_Utils.cpp \
2817                 PLATFORM_API_MacOSX_PCM.cpp \
2818                 PLATFORM_API_MacOSX_Ports.cpp \
2819                 PLATFORM_API_MacOSX_MidiIn.c \
2820                 PLATFORM_API_MacOSX_MidiOut.c \
2821                 PLATFORM_API_MacOSX_MidiUtils.c
2822         LIBJSOUND_SRC_FILES += $(LIBJSOUND_MIDIFILES)
2823         LIBJSOUND_SRC_FILES += $(LIBJSOUND_PORTFILES)
2824         LIBJSOUND_SRC_FILES += $(LIBJSOUND_DAUDIOFILES)
2825 endif # OPENJDK_TARGET_OS macosx
2826 
2827 ifeq ($(OPENJDK_TARGET_OS), solaris)
2828         LIBJSOUND_CFLAGS += -DX_PLATFORM=X_SOLARIS \
2829                             -DUSE_PORTS=TRUE \
2830                             -DUSE_DAUDIO=TRUE
2831         LIBJSOUND_SRC_FILES += \
2832                 PLATFORM_API_SolarisOS_Utils.c \
2833                 PLATFORM_API_SolarisOS_Ports.c \
2834                 PLATFORM_API_SolarisOS_PCM.c
2835         LIBJSOUND_SRC_FILES += $(LIBJSOUND_MIDIFILES)
2836         LIBJSOUND_SRC_FILES += $(LIBJSOUND_PORTFILES)
2837         LIBJSOUND_SRC_FILES += $(LIBJSOUND_DAUDIOFILES)
2838 endif # OPENJDK_TARGET_OS solaris
2839 
2840 
2841 ifeq ($(JVM_VARIANT_ZERO), true)
2842         LIBJSOUND_CFLAGS += -DX_ARCH=X_ZERO
2843 else
2844   ifeq ($(OPENJDK_TARGET_CPU), x86)
2845         LIBJSOUND_CFLAGS += -DX_ARCH=X_I586
2846   endif
2847 
2848   ifeq ($(OPENJDK_TARGET_CPU), sparc)
2849         LIBJSOUND_CFLAGS += -DX_ARCH=X_SPARC
2850   endif
2851 
2852   ifeq ($(OPENJDK_TARGET_CPU), sparcv9)
2853         LIBJSOUND_CFLAGS += -DX_ARCH=X_SPARCV9
2854   endif
2855 
2856   ifeq ($(OPENJDK_TARGET_CPU), x86_64)
2857         LIBJSOUND_CFLAGS += -DX_ARCH=X_AMD64
2858   endif
2859 
2860   ifeq ($(OPENJDK_TARGET_CPU), arm)
2861         LIBJSOUND_CFLAGS += -DX_ARCH=X_ARM
2862   endif
2863 
2864   ifeq ($(OPENJDK_TARGET_CPU), ppc)
2865         LIBJSOUND_CFLAGS += -DX_ARCH=X_PPC
2866   endif
2867 endif
2868 
2869 LIBJSOUND_CFLAGS += -DEXTRA_SOUND_JNI_LIBS='"$(EXTRA_SOUND_JNI_LIBS)"'
2870 
2871 $(eval $(call SetupNativeCompilation,BUILD_LIBJSOUND,\
2872                 LIBRARY:=jsound,\
2873                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2874                 SRC:=$(LIBJSOUND_SRC_DIRS),\
2875                 INCLUDE_FILES:=$(LIBJSOUND_SRC_FILES),\
2876                 LANG:=$(LIBJSOUND_LANG),\
2877                 OPTIMIZATION:=LOW, \
2878                 CFLAGS:=$(CFLAGS_JDKLIB) \
2879                         $(LIBJSOUND_CFLAGS), \
2880                 CXXFLAGS:=$(CXXFLAGS_JDKLIB) $(LIBJSOUND_CFLAGS), \
2881                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjsound/mapfile-vers, \
2882                 LDFLAGS:=$(LDFLAGS_JDKLIB)\
2883                          $(call SET_SHARED_LIBRARY_ORIGIN),\
2884                 LDFLAGS_macosx:=-framework CoreAudio -framework CoreFoundation \
2885                                 -framework CoreServices -framework AudioUnit $(LIBCXX) \
2886                                 -framework CoreMIDI -framework AudioToolbox,\
2887                 LDFLAGS_windows:=$(WIN_JAVA_LIB) advapi32.lib winmm.lib,\
2888                 LDFLAGS_SUFFIX_posix:=-ljava -ljvm,\
2889                 LDFLAGS_SUFFIX_solaris:=-lc ,\
2890                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
2891                 RC_FLAGS:=$(RC_FLAGS)\
2892                           -D "JDK_FNAME=jsound.dll" \
2893                           -D "JDK_INTERNAL_NAME=jsound" \
2894                           -D "JDK_FTYPE=0x2L",\
2895                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjsound,\
2896                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2897 
2898 $(BUILD_LIBJSOUND) : $(BUILD_LIBJAVA)
2899 
2900 BUILD_LIBRARIES += $(BUILD_LIBJSOUND)
2901 
2902 ##########################################################################################
2903 
2904 ifneq ($(filter jsoundalsa, $(EXTRA_SOUND_JNI_LIBS)),)
2905 
2906 $(eval $(call SetupNativeCompilation,BUILD_LIBJSOUNDALSA,\
2907                 LIBRARY:=jsoundalsa,\
2908                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2909                 SRC:=$(LIBJSOUND_SRC_DIRS),\
2910                 INCLUDE_FILES:=Utilities.c $(LIBJSOUND_MIDIFILES) $(LIBJSOUND_PORTFILES) \
2911                                 $(LIBJSOUND_DAUDIOFILES) \
2912                                 PLATFORM_API_LinuxOS_ALSA_CommonUtils.c   \
2913                                 PLATFORM_API_LinuxOS_ALSA_PCM.c     \
2914                                 PLATFORM_API_LinuxOS_ALSA_PCMUtils.c   \
2915                                 PLATFORM_API_LinuxOS_ALSA_MidiIn.c  \
2916                                 PLATFORM_API_LinuxOS_ALSA_MidiOut.c \
2917                                 PLATFORM_API_LinuxOS_ALSA_MidiUtils.c \
2918                                 PLATFORM_API_LinuxOS_ALSA_Ports.c,\
2919                 LANG:=C,\
2920                 OPTIMIZATION:=LOW, \
2921                 CFLAGS:=$(CFLAGS_JDKLIB) \
2922                         $(LIBJSOUND_CFLAGS) \
2923                         -DUSE_DAUDIO=TRUE \
2924                         -DUSE_PORTS=TRUE  \
2925                         -DUSE_PLATFORM_MIDI_OUT=TRUE \
2926                         -DUSE_PLATFORM_MIDI_IN=TRUE, \
2927                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjsoundalsa/mapfile-vers, \
2928                 LDFLAGS:=$(LDFLAGS_JDKLIB)\
2929                          $(call SET_SHARED_LIBRARY_ORIGIN),\
2930                 LDFLAGS_SUFFIX:=-lasound -ljava -ljvm,\
2931                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjsoundalsa,\
2932                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2933 
2934 $(BUILD_LIBJSOUNDALSA) : $(BUILD_LIBJAVA)
2935 
2936 BUILD_LIBRARIES += $(BUILD_LIBJSOUNDALSA)
2937 
2938 endif
2939 
2940 ##########################################################################################
2941 
2942 ifneq ($(filter jsoundds, $(EXTRA_SOUND_JNI_LIBS)),)
2943 
2944 $(eval $(call SetupNativeCompilation,BUILD_LIBJSOUNDDS,\
2945                 LIBRARY:=jsoundds,\
2946                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2947                 SRC:=$(LIBJSOUND_SRC_DIRS),\
2948                 INCLUDE_FILES:=Utilities.c $(LIBJSOUND_DAUDIOFILES) \
2949                                 PLATFORM_API_WinOS_DirectSound.cpp, \
2950                 LANG:=C++,\
2951                 OPTIMIZATION:=LOW, \
2952                 CFLAGS:=$(CFLAGS_JDKLIB) \
2953                         $(LIBJSOUND_CFLAGS) \
2954                         -DUSE_DAUDIO=TRUE \
2955                         -I$(DXSDK_INCLUDE_PATH), \
2956                 LDFLAGS:=$(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \
2957                          $(call SET_SHARED_LIBRARY_ORIGIN),\
2958                 LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX) dsound.lib winmm.lib user32.lib ole32.lib,\
2959                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
2960                 RC_FLAGS:=$(RC_FLAGS)\
2961                           -D "JDK_FNAME=jsoundds.dll" \
2962                           -D "JDK_INTERNAL_NAME=jsoundds" \
2963                           -D "JDK_FTYPE=0x2L",\
2964                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjsoundds,\
2965                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2966 
2967 $(BUILD_LIBJSOUNDDS) : $(BUILD_LIBJAVA)
2968 
2969 BUILD_LIBRARIES += $(BUILD_LIBJSOUNDDS)
2970 
2971 endif
2972 
2973 ##########################################################################################
2974 
2975 ifeq ($(OPENJDK_TARGET_OS), solaris)
2976 ifndef OPENJDK
2977 
2978 $(eval $(call SetupNativeCompilation,BUILD_LIBJ2UCRYPTO,\
2979                 LIBRARY:=j2ucrypto,\
2980                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
2981                 SRC:=$(JDK_TOPDIR)/src/closed/solaris/native/com/oracle/security/ucrypto,\
2982                 LANG:=C,\
2983                 OPTIMIZATION:=LOW, \
2984                 CFLAGS:=$(CFLAGS_JDKLIB) \
2985                         -I$(JDK_TOPDIR)/src/closed/solaris/native/com/oracle/security/ucrypto ,\
2986                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libj2ucrypto/mapfile-vers, \
2987                 LDFLAGS:=$(LDFLAGS_JDKLIB),\
2988                 LDFLAGS_SUFFIX:=$(LIBDL),\
2989                 LDFLAGS_SUFFIX_solaris:=-lc,\
2990                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2ucrypto,\
2991                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
2992 
2993 $(BUILD_LIBJ2UCRYPTO) : $(BUILD_LIBJAVA)
2994 
2995 BUILD_LIBRARIES += $(BUILD_LIBJ2UCRYPTO)
2996 
2997 endif
2998 endif
2999 
3000 ##########################################################################################
3001 
3002 ifeq ($(OPENJDK_TARGET_OS), macosx)
3003 
3004 $(eval $(call SetupNativeCompilation,BUILD_LIBAPPLESCRIPTENGINE,\
3005                 LIBRARY:=AppleScriptEngine,\
3006                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
3007                 SRC:=$(JDK_TOPDIR)/src/macosx/native/apple/applescript,\
3008                 LANG:=C,\
3009                 OPTIMIZATION:=LOW, \
3010                 CFLAGS:=$(CFLAGS_JDKLIB) \
3011                         -I$(JDK_TOPDIR)/src/macosx/native/apple/applescript \
3012                         -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
3013                         -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks, \
3014                 LDFLAGS:=$(LDFLAGS_JDKLIB)\
3015                          $(call SET_SHARED_LIBRARY_ORIGIN), \
3016                 LDFLAGS_SUFFIX:=-framework Cocoa \
3017                                 -framework Carbon \
3018                                 -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
3019                                 -framework JavaNativeFoundation \
3020                                 $(LDFLAGS_JDKLIB_SUFFIX),\
3021                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libAppleScriptEngine,\
3022                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
3023 
3024 $(BUILD_LIBAPPLESCRIPTENGINE) : $(BUILD_LIBJAVA)
3025 
3026 BUILD_LIBRARIES += $(BUILD_LIBAPPLESCRIPTENGINE)
3027 
3028 endif
3029 
3030 ##########################################################################################
3031 
3032 ifeq ($(OPENJDK_TARGET_OS), macosx)
3033 
3034 $(eval $(call SetupNativeCompilation,BUILD_LIBOSXAPP,\
3035                 LIBRARY:=osxapp,\
3036                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
3037                 SRC:=$(JDK_TOPDIR)/src/macosx/native/sun/osxapp,\
3038                 LANG:=C,\
3039                 OPTIMIZATION:=LOW, \
3040                 CFLAGS:=$(CFLAGS_JDKLIB) \
3041                         -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp \
3042                         -I$(JDK_OUTPUTDIR)/gensrc/sun/osxapp \
3043                         -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
3044                         -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks,\
3045                 LDFLAGS:=$(LDFLAGS_JDKLIB)\
3046                          $(call SET_SHARED_LIBRARY_ORIGIN), \
3047                 LDFLAGS_SUFFIX_macosx:=\
3048         -framework Accelerate \
3049         -framework ApplicationServices \
3050         -framework AudioToolbox \
3051         -framework Carbon \
3052         -framework Cocoa \
3053         -framework Security \
3054         -framework ExceptionHandling \
3055         -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
3056         -framework JavaNativeFoundation \
3057         -framework JavaRuntimeSupport \
3058         -framework OpenGL \
3059         -framework IOSurface \
3060         -framework QuartzCore, \
3061                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libosxapp,\
3062                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
3063 
3064 BUILD_LIBRARIES += $(BUILD_LIBOSXAPP)
3065 
3066 endif
3067 
3068 ##########################################################################################
3069 
3070 ifeq ($(OPENJDK_TARGET_OS), macosx)
3071 
3072 LIBOSX_DIRS:=\
3073   $(JDK_TOPDIR)/src/macosx/native/com/apple/concurrent \
3074   $(JDK_TOPDIR)/src/macosx/native/java/util \
3075   $(JDK_TOPDIR)/src/macosx/native/com/apple/eio \
3076   $(JDK_TOPDIR)/src/macosx/native/apple/security \
3077   $(JDK_TOPDIR)/src/macosx/native/apple/launcher
3078 
3079 $(eval $(call SetupNativeCompilation,BUILD_LIBOSX,\
3080                 LIBRARY:=osx,\
3081                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
3082                 SRC:=$(LIBOSX_DIRS),\
3083                 LANG:=C,\
3084                 OPTIMIZATION:=LOW, \
3085                 CFLAGS:=$(CFLAGS_JDKLIB) \
3086                         $(foreach dir,$(LIBOSX_DIRS),-I$(dir)) \
3087                         -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp \
3088                         -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
3089                         -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks,\
3090                 LDFLAGS:=$(LDFLAGS_JDKLIB)\
3091                          $(call SET_SHARED_LIBRARY_ORIGIN), \
3092                 LDFLAGS_SUFFIX_macosx:=\
3093     -losxapp \
3094     -framework Cocoa \
3095     -framework ApplicationServices \
3096     -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
3097     -framework JavaNativeFoundation \
3098     -framework JavaRuntimeSupport \
3099     -framework Security \
3100     -framework SystemConfiguration \
3101     $(LDFLAGS_JDKLIB_SUFFIX), \
3102                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libosx,\
3103                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
3104 
3105 BUILD_LIBRARIES += $(BUILD_LIBOSX)
3106 
3107 $(BUILD_LIBOSX) : $(BUILD_LIBOSXAPP)
3108 
3109 $(BUILD_LIBOSX) : $(BUILD_LIBJAVA)
3110 
3111 endif
3112 
3113 ##########################################################################################
3114 
3115 ifeq ($(OPENJDK_TARGET_OS), macosx)
3116 
3117 LIBAWT_LWAWT_FILES:=\
3118         awt.m \
3119         ApplicationDelegate.m \
3120         CFRetainedResource.m \
3121         CGLGraphicsConfig.m \
3122         CGLSurfaceData.m \
3123         CGLLayer.m \
3124         CGraphicsConfig.m \
3125         CGraphicsDevice.m \
3126         CGraphicsEnv.m \
3127         CCharToGlyphMapper.m \
3128         CSystemColors.m \
3129         AWTFont.m \
3130         CGGlyphOutlines.m \
3131         CGGlyphImages.m \
3132         CoreTextSupport.m \
3133         AWTStrike.m \
3134         InitIDs.m \
3135         AWTEvent.m \
3136         AWTView.m \
3137         AWTWindow.m \
3138         AWTSurfaceLayers.m \
3139         CCursorManager.m \
3140         CClipboard.m \
3141         CDataTransferer.m \
3142         CDragSource.m \
3143         CDragSourceContextPeer.m \
3144         CDropTarget.m \
3145         CDropTargetContextPeer.m \
3146         CInputMethod.m \
3147         CDesktopPeer.m \
3148         OSVersion.m \
3149         DnDUtilities.m \
3150         CFileDialog.m \
3151         CImage.m \
3152         CMenu.m \
3153         CMenuBar.m \
3154         CMenuComponent.m \
3155         CMenuItem.m \
3156         CPopupMenu.m \
3157         CRobot.m \
3158         CTrayIcon.m \
3159         CWrapper.m \
3160         JavaAccessibilityAction.m \
3161         JavaAccessibilityUtilities.m \
3162         JavaComponentAccessibility.m \
3163         JavaTextAccessibility.m \
3164         LWCToolkit.m \
3165         GeomUtilities.m \
3166         CPrinterJob.m \
3167         PrintModel.m \
3168         PrinterSurfaceData.m \
3169         PrinterView.m \
3170         QuartzSurfaceData.m \
3171         QuartzRenderer.m \
3172         CTextPipe.m \
3173         ImageSurfaceData.m \
3174         awt_DrawingSurface.m \
3175         \
3176         OGLBlitLoops.c \
3177         OGLBufImgOps.c \
3178         OGLContext.c \
3179         OGLFuncs.c \
3180         OGLMaskBlit.c \
3181         OGLMaskFill.c \
3182         OGLPaints.c \
3183         OGLRenderQueue.c \
3184         OGLRenderer.c \
3185         OGLSurfaceData.c \
3186         OGLTextRenderer.c \
3187         OGLVertexCache.c \
3188         AccelGlyphCache.c \
3189         CUPSfuncs.c
3190 
3191 
3192 LIBAWT_LWAWT_DIRS:=\
3193   $(JDK_TOPDIR)/src/macosx/native/sun/awt \
3194   $(JDK_TOPDIR)/src/macosx/native/sun/font \
3195   $(JDK_TOPDIR)/src/macosx/native/sun/java2d/opengl \
3196   $(JDK_TOPDIR)/src/solaris/native/sun/awt \
3197   $(JDK_TOPDIR)/src/share/native/sun/font \
3198   $(JDK_TOPDIR)/src/share/native/sun/java2d/opengl \
3199 
3200 $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_LWAWT,\
3201                 LIBRARY:=awt_lwawt,\
3202                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
3203                 SRC:=$(LIBAWT_LWAWT_DIRS),\
3204                 LANG:=C,\
3205                 INCLUDE_FILES:=$(LIBAWT_LWAWT_FILES),\
3206                 OPTIMIZATION:=LOW, \
3207                 CFLAGS:=$(CFLAGS_JDKLIB) \
3208                         $(X_CFLAGS) \
3209                         $(X_LIBS) \
3210                         $(foreach dir,$(LIBAWT_LWAWT_DIRS),-I$(dir)) \
3211                         -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp \
3212                         -I$(JDK_TOPDIR)/src/share/native/sun/java2d \
3213                         -I$(JDK_TOPDIR)/src/solaris/native/sun/java2d \
3214                         -I$(JDK_TOPDIR)/src/share/native/sun/awt/image \
3215                         -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \
3216                         -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \
3217                         -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \
3218                         -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \
3219                         -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
3220                         -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks,\
3221                 LDFLAGS:=$(LDFLAGS_JDKLIB)\
3222                          $(call SET_SHARED_LIBRARY_ORIGIN), \
3223                 LDFLAGS_SUFFIX_macosx:=-lawt -lmlib_image -losxapp -ljvm $(LIBM) \
3224                                        -framework Accelerate \
3225                                        -framework ApplicationServices \
3226                                        -framework AudioToolbox \
3227                                        -framework Carbon \
3228                                        -framework Cocoa \
3229                                        -framework Security \
3230                                        -framework ExceptionHandling \
3231                                        -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
3232                                        -framework JavaNativeFoundation \
3233                                        -framework JavaRuntimeSupport \
3234                                        -framework OpenGL \
3235                                        -framework QuartzCore -ljava,\
3236                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libawt_lwawt,\
3237                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
3238 
3239 BUILD_LIBRARIES += $(BUILD_LIBAWT_LWAWT)
3240 
3241 $(BUILD_LIBAWT_LWAWT) : $(BUILD_LIBAWT) 
3242 
3243 $(BUILD_LIBAWT_LWAWT) : $(BUILD_LIBMLIB_IMAGE)
3244 
3245 $(BUILD_LIBAWT_LWAWT) : $(BUILD_LIBOSXAPP)
3246 
3247 $(BUILD_LIBAWT_LWAWT) : $(BUILD_LIBJAVA)
3248 
3249 endif
3250 
3251 ##########################################################################################
3252 
3253 ifeq ($(OPENJDK_TARGET_OS), macosx)
3254 
3255 $(eval $(call SetupNativeCompilation,BUILD_LIBOSXUI,\
3256                 LIBRARY:=osxui,\
3257                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
3258                 SRC:=$(JDK_TOPDIR)/src/macosx/native/com/apple/laf,\
3259                 LANG:=C,\
3260                 OPTIMIZATION:=LOW, \
3261                 CFLAGS:=$(CFLAGS_JDKLIB) \
3262                         -I$(JDK_TOPDIR)/src/macosx/native/com/apple/laf \
3263                         -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp \
3264                         -I$(JDK_TOPDIR)/src/macosx/native/sun/awt \
3265                         -F/System/Library/Frameworks/JavaVM.framework/Frameworks, \
3266                 LDFLAGS:=$(LDFLAGS_JDKLIB)\
3267                          $(call SET_SHARED_LIBRARY_ORIGIN) \
3268                          -Xlinker -rpath -Xlinker @loader_path,\
3269                 LDFLAGS_SUFFIX_macosx:=-lawt -losxapp -lawt_lwawt \
3270                                        -framework Cocoa \
3271                                        -framework Carbon \
3272                                        -framework ApplicationServices \
3273                                        -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
3274                                        -framework JavaNativeFoundation \
3275                                        -framework JavaRuntimeSupport \
3276                                        -ljava -ljvm,\
3277                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libosxui,\
3278                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
3279 
3280 BUILD_LIBRARIES += $(BUILD_LIBOSXUI)
3281 
3282 $(BUILD_LIBOSXUI) : $(BUILD_LIBAWT) 
3283 
3284 $(BUILD_LIBOSXUI) : $(BUILD_LIBOSXAPP)
3285 
3286 $(BUILD_LIBOSXUI) : $(BUILD_LIBAWT_LWAWT)
3287 
3288 #$(BUILD_LIBOSXUI) : $(BUILD_LIBJAVA)
3289 
3290 endif
3291 
3292 ##########################################################################################
3293 
3294 ifeq ($(OPENJDK_TARGET_OS), macosx)
3295 
3296 # Ugly hack to mimic behaviour in old build where this is built as an xcode project.
3297 SET_SHARED_LIBRARY_NAME=-Xlinker -install_name -Xlinker /usr/local/lib/libJObjC.dylib
3298 
3299 $(eval $(call SetupNativeCompilation,BUILD_LIBJOBJC32,\
3300                 LIBRARY:=JObjC,\
3301                 OUTPUT_DIR:=$(JDK_OUTPUTDIR)/objs/libjobjc32,\
3302                 SRC:=$(JDK_TOPDIR)/src/macosx/native/jobjc/src/core/native \
3303                      $(JDK_TOPDIR)/src/macosx/native/jobjc/src/runtime-additions/native ,\
3304                 LANG:=C,\
3305                 OPTIMIZATION:=LOW, \
3306                 CFLAGS:=-fpascal-strings \
3307                         -fobjc-gc \
3308                         -gdwarf-2 \
3309                         $(CFLAGS_JDKLIB) -I$(JDK_OUTPUTDIR)/gensrc_headers_jobjc \
3310                         -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
3311                         -m32,\
3312                 LDFLAGS:=$(LDFLAGS_JDKLIB)\
3313                         -m32, \
3314                 LDFLAGS_SUFFIX:=-framework Foundation -framework JavaVM \
3315                                   -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
3316                                   -framework JavaNativeFoundation \
3317                                   -lffi, \
3318                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjobjc32,\
3319                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
3320 
3321 $(eval $(call SetupNativeCompilation,BUILD_LIBJOBJC64,\
3322                 LIBRARY:=JObjC,\
3323                 OUTPUT_DIR:=$(JDK_OUTPUTDIR)/objs/libjobjc64,\
3324                 SRC:=$(JDK_TOPDIR)/src/macosx/native/jobjc/src/core/native \
3325                      $(JDK_TOPDIR)/src/macosx/native/jobjc/src/runtime-additions/native ,\
3326                 LANG:=C,\
3327                 OPTIMIZATION:=LOW, \
3328                 CFLAGS:=-fpascal-strings \
3329                         -fobjc-gc \
3330                         -gdwarf-2 \
3331                         $(CFLAGS_JDKLIB) -I$(JDK_OUTPUTDIR)/gensrc_headers_jobjc \
3332                         -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
3333                         , \
3334                 LDFLAGS:=-fpascal-strings \
3335                          -fobjc-gc \
3336                          -gdwarf-2 \
3337                          $(LDFLAGS_JDKLIB)\
3338                          $(call SET_SHARED_LIBRARY_ORIGIN), \
3339                 LDFLAGS_SUFFIX:=-framework Foundation -framework JavaVM \
3340                                   -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
3341                                   -framework JavaNativeFoundation \
3342                                   -lffi, \
3343                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjobjc64,\
3344                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
3345 
3346 $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)JObjC$(SHARED_LIBRARY_SUFFIX): $(BUILD_LIBJOBJC32) $(BUILD_LIBJOBJC64)
3347         $(LIPO) -create -output $@ $(BUILD_LIBJOBJC32) $(BUILD_LIBJOBJC64)
3348 
3349 BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)JObjC$(SHARED_LIBRARY_SUFFIX)
3350 
3351 endif
3352 
3353 ##########################################################################################
3354 
3355 ifndef OPENJDK
3356 ifeq ($(OPENJDK_TARGET_OS), windows)
3357 
3358   ACCESSBRIDGE_SRCDIR:=$(JDK_TOPDIR)/src/closed/windows/native/sun/bridge
3359 
3360   define SetupAccessBridge
3361     # Parameter 1 Suffix
3362     # Parameter 2 Machine
3363     # Parameter 3 ACCESSBRIDGE_ARCH_ suffix
3364 
3365     $(call SetupNativeCompilation,BUILD_JAWTACCESSBRIDGE$1,\
3366                 LIBRARY=JAWTAccessBridge$1,\
3367                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
3368                 SRC:=$(ACCESSBRIDGE_SRCDIR),\
3369                 INCLUDE_FILES:=JAWTAccessBridge.cpp,\
3370                 LANG:=C++,\
3371                 OPTIMIZATION:=LOW,\
3372                 CFLAGS:=$(CFLAGS_JDKLIB) \
3373                         -DACCESSBRIDGE_ARCH_$3,\
3374                 LDFLAGS:=$(LDFLAGS_JDKLIB) kernel32.lib user32.lib gdi32.lib \
3375                          winspool.lib jawt.lib comdlg32.lib advapi32.lib shell32.lib \
3376                          ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib \
3377                          -subsystem:windows -machine:$2 \
3378                          -def:$(ACCESSBRIDGE_SRCDIR)/JAWTAccessBridge.DEF,\
3379                 VERSIONINFO_RESOURCE:=$(ACCESSBRIDGE_SRCDIR)/AccessBridgeStatusWindow.rc,\
3380                 RC_FLAGS:=$(RC_FLAGS),\
3381                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjawtaccessbridge$1,\
3382                 DEBUG_SYMBOLS:=true)
3383 
3384     $$(BUILD_JAWTACCESSBRIDGE$1): $(JDK_OUTPUTDIR)/lib/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX)
3385 
3386     $(call SetupNativeCompilation,BUILD_JAVAACCESSBRIDGE$1,\
3387                 LIBRARY=JavaAccessBridge$1,\
3388                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
3389                 SRC:=$(ACCESSBRIDGE_SRCDIR),\
3390                 INCLUDE_FILES:=AccessBridgeATInstance.cpp AccessBridgeDebug.cpp \
3391                                AccessBridgeJavaEntryPoints.cpp \
3392                                AccessBridgeMessages.cpp JavaAccessBridge.cpp,\
3393                 LANG:=C++,\
3394                 OPTIMIZATION:=LOW,\
3395                 CFLAGS:=$(CFLAGS_JDKLIB) \
3396                         -DACCESSBRIDGE_ARCH_$3,\
3397                 LDFLAGS:=$(LDFLAGS_JDKLIB) kernel32.lib user32.lib gdi32.lib \
3398                          winspool.lib comdlg32.lib advapi32.lib shell32.lib \
3399                          ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib \
3400                          -subsystem:windows -machine:$2 \
3401                          -def:$(ACCESSBRIDGE_SRCDIR)/JavaAccessBridge.DEF,\
3402                 VERSIONINFO_RESOURCE:=$(ACCESSBRIDGE_SRCDIR)/AccessBridgeStatusWindow.rc,\
3403                 RC_FLAGS:=$(RC_FLAGS),\
3404                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjavaaccessbridge$1,\
3405                 DEBUG_SYMBOLS:=true)
3406 
3407     $(call SetupNativeCompilation,BUILD_WINDOWSACCESSBRIDGE$1,\
3408                 LIBRARY=WindowsAccessBridge$1,\
3409                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
3410                 SRC:=$(ACCESSBRIDGE_SRCDIR),\
3411                 INCLUDE_FILES:=AccessBridgeJavaVMInstance.cpp AccessBridgeMessageQueue.cpp \
3412                                AccessBridgeMessages.cpp AccessBridgeWindowsEntryPoints.cpp \
3413                                WinAccessBridge.cpp AccessBridgeDebug.cpp \
3414                                AccessBridgeEventHandler.cpp,\
3415                 LANG:=C++,\
3416                 OPTIMIZATION:=LOW,\
3417                 CFLAGS:=$(filter-out -MD,$(CFLAGS_JDKLIB)) -MT \
3418                         -DACCESSBRIDGE_ARCH_$3,\
3419                 LDFLAGS:=$(LDFLAGS_JDKLIB) kernel32.lib user32.lib gdi32.lib \
3420                          winspool.lib comdlg32.lib advapi32.lib shell32.lib \
3421                          ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib \
3422                          -subsystem:windows -machine:$2 \
3423                          -def:$(ACCESSBRIDGE_SRCDIR)/WinAccessBridge.DEF,\
3424                 VERSIONINFO_RESOURCE:=$(ACCESSBRIDGE_SRCDIR)/AccessBridgeStatusWindow.rc,\
3425                 RC_FLAGS:=$(RC_FLAGS),\
3426                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libwindowsaccessbridge$1,\
3427                 DEBUG_SYMBOLS:=true)
3428 
3429     BUILD_LIBRARIES += $$(BUILD_JAWTACCESSBRIDGE$1) $$(BUILD_JAVAACCESSBRIDGE$1) \
3430                        $$(BUILD_WINDOWSACCESSBRIDGE$1)
3431 
3432   endef
3433 
3434   ifeq ($(OPENJDK_TARGET_CPU_BITS),32)
3435     $(eval $(call SetupAccessBridge,-32,I386,32))
3436     $(eval $(call SetupAccessBridge,,I386,LEGACY))
3437   else
3438     $(eval $(call SetupAccessBridge,-64,X64,64))
3439   endif
3440 endif
3441 endif
3442 
3443 
3444 ##########################################################################################
3445 
3446 all: $(COPY_FILES) $(BUILD_LIBRARIES)
3447 
3448 .PHONY: all