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