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