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