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