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