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