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