1 #
   2 # Copyright (c) 2011, 2014, 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 # Hook to include the corresponding custom file, if present.
  27 $(eval $(call IncludeCustomExtension, jdk, lib/Awt2dLibraries.gmk))
  28 
  29 # Openwin is defined on Solaris.
  30 OPENWIN_LIB := $(OPENWIN_HOME)/lib
  31 
  32 WIN_AWT_LIB := $(JDK_OUTPUTDIR)/objs/libawt/awt.lib
  33 
  34 ##########################################################################################
  35 
  36 BUILD_LIBMLIB_SRC := $(JDK_TOPDIR)/src/share/native/sun/awt/medialib
  37 BUILD_LIBMLIB_CFLAGS := -D__USE_J2D_NAMES -D__MEDIALIB_OLD_NAMES \
  38     -I$(BUILD_LIBMLIB_SRC) \
  39     -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt/medialib
  40 
  41 BUILD_LIBMLIB_LDLIBS :=
  42 BUILD_LIBMLIB_IMAGE_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libmlib_image/mapfile-vers
  43 
  44 BUILD_LIBMLIB_CFLAGS += -DMLIB_NO_LIBSUNMATH
  45 
  46 ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
  47   BUILD_LIBMLIB_CFLAGS += -DMLIB_OS64BIT
  48 endif
  49 
  50 ifneq ($(OPENJDK_TARGET_OS), windows)
  51   BUILD_LIBMLIB_LDLIBS += $(LIBM) $(LIBDL)
  52 endif
  53 
  54 $(eval $(call SetupNativeCompilation,BUILD_LIBMLIB_IMAGE, \
  55     LIBRARY := mlib_image, \
  56     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
  57     SRC := $(BUILD_LIBMLIB_SRC), \
  58     EXCLUDE_FILES := awt_ImagingLib.c mlib_c_ImageBlendTable.c, \
  59     LANG := C, \
  60     OPTIMIZATION := HIGHEST, \
  61     CFLAGS := $(CFLAGS_JDKLIB) \
  62         $(BUILD_LIBMLIB_CFLAGS), \
  63     MAPFILE := $(BUILD_LIBMLIB_IMAGE_MAPFILE), \
  64     LDFLAGS := $(LDFLAGS_JDKLIB) \
  65         $(call SET_SHARED_LIBRARY_ORIGIN), \
  66     LDFLAGS_SUFFIX := $(BUILD_LIBMLIB_LDLIBS) \
  67         $(LDFLAGS_JDKLIB_SUFFIX), \
  68     LDFLAGS_SUFFIX_solaris := -lc, \
  69     VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
  70     RC_FLAGS := $(RC_FLAGS) \
  71         -D "JDK_FNAME=mlib_image.dll" \
  72         -D "JDK_INTERNAL_NAME=mlib_image" \
  73         -D "JDK_FTYPE=0x2L", \
  74     OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libmlib_image, \
  75     DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
  76 
  77 $(BUILD_LIBMLIB_IMAGE): $(BUILD_LIBJAVA)
  78 
  79 BUILD_LIBRARIES += $(BUILD_LIBMLIB_IMAGE)
  80 
  81 ##########################################################################################
  82 
  83 ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH), solaris-sparc)
  84 
  85   BUILD_LIBMLIB_IMAGE_V_FILES := \
  86       mlib_v_ImageLookUp.c \
  87       mlib_ImageCreate.c \
  88       mlib_ImageAffine.c \
  89       mlib_ImageConvMxN.c \
  90       mlib_ImageConvKernelConvert.c \
  91       mlib_sys.c \
  92       mlib_ImageLookUp_64.c \
  93       mlib_ImageLookUp_Bit.c \
  94       mlib_ImageColorTrue2Index.c \
  95       mlib_c_ImageThresh1_U8.c \
  96       mlib_v_ImageLookUpS16S16Func.c \
  97       mlib_v_ImageLookUpS16S32Func.c \
  98       mlib_v_ImageLookUpS16U16Func.c \
  99       mlib_v_ImageLookUpS16U8Func.c \
 100       mlib_v_ImageLookUpS32S16Func.c \
 101       mlib_v_ImageLookUpS32S32Func.c \
 102       mlib_v_ImageLookUpS32U16Func.c \
 103       mlib_v_ImageLookUpS32U8Func.c \
 104       mlib_v_ImageLookUpSIS16S16Func.c \
 105       mlib_v_ImageLookUpSIS16S32Func.c \
 106       mlib_v_ImageLookUpSIS16U16Func.c \
 107       mlib_v_ImageLookUpSIS16U8Func.c \
 108       mlib_v_ImageLookUpSIS32S16Func.c \
 109       mlib_v_ImageLookUpSIS32S32Func.c \
 110       mlib_v_ImageLookUpSIS32U16Func.c \
 111       mlib_v_ImageLookUpSIS32U8Func.c \
 112       mlib_v_ImageLookUpSIU16S16Func.c \
 113       mlib_v_ImageLookUpSIU16S32Func.c \
 114       mlib_v_ImageLookUpSIU16U16Func.c \
 115       mlib_v_ImageLookUpSIU16U8Func.c \
 116       mlib_v_ImageLookUpSIU8S16Func.c \
 117       mlib_v_ImageLookUpSIU8S32Func.c \
 118       mlib_v_ImageLookUpSIU8U16Func.c \
 119       mlib_v_ImageLookUpSIU8U8Func.c \
 120       mlib_v_ImageLookUpU16S16Func.c \
 121       mlib_v_ImageLookUpU16S32Func.c \
 122       mlib_v_ImageLookUpU16U16Func.c \
 123       mlib_v_ImageLookUpU16U8Func.c \
 124       mlib_v_ImageLookUpU8S16Func.c \
 125       mlib_v_ImageLookUpU8S32Func.c \
 126       mlib_v_ImageLookUpU8U16Func.c \
 127       mlib_v_ImageLookUpU8U8Func.c \
 128       mlib_v_ImageAffineIndex_BC.c \
 129       mlib_v_ImageAffine_BC.c \
 130       mlib_v_ImageAffine_BC_S16.c \
 131       mlib_v_ImageAffine_BC_U16.c \
 132       mlib_v_ImageAffine_BL.c \
 133       mlib_v_ImageAffine_BL_S16.c \
 134       mlib_v_ImageAffine_BL_U16.c \
 135       mlib_v_ImageAffine_NN.c \
 136       mlib_v_ImageFilters.c \
 137       mlib_ImageAffineEdge.c \
 138       mlib_ImageAffine_BC_D64.c \
 139       mlib_ImageAffine_BC_F32.c \
 140       mlib_ImageAffine_BC_S32.c \
 141       mlib_ImageAffine_BL_D64.c \
 142       mlib_ImageAffine_BL_F32.c \
 143       mlib_ImageAffine_BL_S32.c \
 144       mlib_ImageAffine_NN.c \
 145       mlib_ImageAffine_NN_Bit.c \
 146       mlib_ImageFilters.c \
 147       mlib_ImageScanPoly.c \
 148       mlib_ImageConv_8nw.c \
 149       mlib_ImageConv_8ext.c \
 150       mlib_ImageConv_16nw.c \
 151       mlib_ImageConv_16ext.c \
 152       mlib_ImageConv_u16nw.c \
 153       mlib_ImageConv_u16ext.c \
 154       mlib_ImageConv_32nw.c \
 155       mlib_ImageConv_F32nw.c \
 156       mlib_ImageConvMxN_Fp.c \
 157       mlib_ImageConvMxN_ext.c \
 158       mlib_ImageConv_D64nw.c \
 159       mlib_ImageClipping.c \
 160       mlib_ImageConvCopyEdge_Bit.c \
 161       mlib_ImageConvClearEdge_Bit.c \
 162       mlib_ImageConv2x2_f.c \
 163       mlib_ImageConvClearEdge_Fp.c \
 164       mlib_v_ImageConvMxN_8.c \
 165       mlib_v_ImageConvClearEdge.c \
 166       mlib_v_ImageConvCopyEdge.c \
 167       mlib_v_ImageConvMxN_8ext.c \
 168       mlib_v_ImageConvVersion.c \
 169       mlib_v_ImageConv_8nw.c \
 170       mlib_ImageConvCopyEdge_Fp.c \
 171       mlib_v_ImageChannelInsert_1.c \
 172       mlib_v_ImageChannelExtract_43.c \
 173       mlib_v_ImageChannelExtract_1.c \
 174       mlib_ImageCopy_Bit.c \
 175       mlib_v_ImageCopy_f.c \
 176       mlib_ImageUtils.c \
 177       mlib_ImageDivTables.c
 178 
 179   BUILD_LIBMLIB_V_CFLAGS := $(filter-out -DMLIB_NO_LIBSUNMATH, $(BUILD_LIBMLIB_CFLAGS))
 180 
 181   $(eval $(call SetupNativeCompilation,BUILD_LIBMLIB_IMAGE_V, \
 182       LIBRARY := mlib_image_v, \
 183       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
 184       SRC := $(JDK_TOPDIR)/src/share/native/sun/awt/medialib \
 185           $(JDK_TOPDIR)/src/solaris/native/sun/awt/medialib, \
 186       LANG := C, \
 187       INCLUDE_FILES := $(BUILD_LIBMLIB_IMAGE_V_FILES), \
 188       OPTIMIZATION := HIGHEST, \
 189       CFLAGS := -xarch=sparcvis \
 190           $(JDK_TOPDIR)/src/solaris/native/sun/awt/medialib/vis_$(OPENJDK_TARGET_CPU_BITS).il \
 191           $(BUILD_LIBMLIB_V_CFLAGS) \
 192           $(CFLAGS_JDKLIB), \
 193       MAPFILE := $(BUILD_LIBMLIB_IMAGE_MAPFILE), \
 194       LDFLAGS := $(LDFLAGS_JDKLIB) \
 195           $(BUILD_LIBMLIB_LDLIBS) -ljava -ljvm \
 196           $(call SET_SHARED_LIBRARY_ORIGIN), \
 197       LDFLAGS_SUFFIX_solaris := -lc, \
 198       OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libmlib_image_v, \
 199       DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
 200 
 201   $(BUILD_LIBMLIB_IMAGE_V): $(BUILD_LIBJAVA)
 202 
 203   BUILD_LIBRARIES += $(BUILD_LIBMLIB_IMAGE_V)
 204 
 205 endif
 206 
 207 ##########################################################################################
 208 
 209 LIBAWT_DIRS := \
 210     $(JDK_TOPDIR)/src/share/native/sun/awt \
 211     $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt \
 212     $(JDK_TOPDIR)/src/share/native/sun/awt/image \
 213     $(JDK_TOPDIR)/src/share/native/sun/awt/image/gif \
 214     $(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \
 215     $(JDK_TOPDIR)/src/share/native/sun/awt/medialib \
 216     $(JDK_TOPDIR)/src/share/native/sun/awt/debug \
 217     $(JDK_TOPDIR)/src/share/native/sun/awt/utility \
 218     $(JDK_TOPDIR)/src/share/native/sun/java2d \
 219     $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d \
 220     $(JDK_TOPDIR)/src/share/native/sun/java2d/loops \
 221     $(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \
 222     $(JDK_TOPDIR)/src/share/native/sun/awt/image \
 223     $(JDK_TOPDIR)/src/share/native/sun/java2d/opengl \
 224     $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/opengl \
 225     $(JDK_TOPDIR)/src/share/native/sun/font
 226 
 227 ifeq ($(OPENJDK_TARGET_OS), windows)
 228   LIBAWT_DIRS += \
 229       $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/windows \
 230       $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/windows \
 231       $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/d3d
 232 else ifneq ($(OPENJDK_TARGET_OS), macosx)
 233   LIBAWT_DIRS += \
 234       $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/x11
 235 endif
 236 
 237 ifeq ($(OPENJDK_TARGET_OS), aix)
 238   LIBAWT_DIRS += $(JDK_TOPDIR)/src/aix/porting
 239 endif
 240 
 241 LIBAWT_CFLAGS += -D__MEDIALIB_OLD_NAMES -D__USE_J2D_NAMES \
 242     $(X_CFLAGS) \
 243     $(foreach dir, $(LIBAWT_DIRS), -I$(dir))
 244 
 245 LIBAWT_FILES := \
 246     gifdecoder.c \
 247     imageInitIDs.c \
 248     img_globals.c \
 249     SurfaceData.c \
 250     Region.c \
 251     BufImgSurfaceData.c \
 252     Disposer.c \
 253     Trace.c \
 254     GraphicsPrimitiveMgr.c \
 255     Blit.c \
 256     BlitBg.c \
 257     ScaledBlit.c \
 258     FillRect.c \
 259     FillSpans.c \
 260     FillParallelogram.c \
 261     DrawParallelogram.c \
 262     DrawLine.c \
 263     DrawRect.c \
 264     DrawPolygons.c \
 265     DrawPath.c \
 266     FillPath.c \
 267     ProcessPath.c \
 268     MaskBlit.c \
 269     MaskFill.c \
 270     TransformHelper.c \
 271     AlphaMath.c \
 272     AlphaMacros.c \
 273     AnyByte.c \
 274     ByteBinary1Bit.c \
 275     ByteBinary2Bit.c \
 276     ByteBinary4Bit.c \
 277     ByteIndexed.c \
 278     ByteGray.c \
 279     Index8Gray.c \
 280     Index12Gray.c \
 281     AnyShort.c \
 282     Ushort555Rgb.c \
 283     Ushort565Rgb.c \
 284     Ushort4444Argb.c \
 285     Ushort555Rgbx.c \
 286     UshortGray.c \
 287     UshortIndexed.c \
 288     Any3Byte.c \
 289     ThreeByteBgr.c \
 290     AnyInt.c \
 291     IntArgb.c \
 292     IntArgbPre.c \
 293     IntArgbBm.c \
 294     IntRgb.c \
 295     IntBgr.c \
 296     IntRgbx.c \
 297     Any4Byte.c \
 298     FourByteAbgr.c \
 299     FourByteAbgrPre.c \
 300     BufferedMaskBlit.c \
 301     BufferedRenderPipe.c \
 302     ShapeSpanIterator.c \
 303     SpanClipRenderer.c \
 304     awt_ImageRep.c \
 305     awt_ImagingLib.c \
 306     awt_Mlib.c \
 307     awt_parseImage.c \
 308     DataBufferNative.c \
 309     dither.c \
 310     debug_assert.c \
 311     debug_mem.c \
 312     debug_trace.c \
 313     debug_util.c
 314 
 315 ifneq (, $(filter $(OPENJDK_TARGET_OS), solaris linux aix))
 316   LIBAWT_FILES += awt_LoadLibrary.c initIDs.c img_colors.c
 317 endif
 318 
 319 ifeq ($(OPENJDK_TARGET_OS), aix)
 320   LIBAWT_FILES += porting_aix.c
 321 endif
 322 
 323 ifeq ($(OPENJDK_TARGET_OS), macosx)
 324   LIBAWT_FILES += awt_LoadLibrary.c img_colors.c
 325   LIBAWT_CFLAGS += -F/System/Library/Frameworks/JavaVM.framework/Frameworks
 326 endif
 327 
 328 ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH), solaris-sparc)
 329   LIBAWT_CFLAGS += -DMLIB_ADD_SUFF
 330   LIBAWT_CFLAGS += -xarch=sparcvis
 331   LIBAWT_CFLAGS += $(JDK_TOPDIR)/src/solaris/native/sun/awt/medialib/vis_$(OPENJDK_TARGET_CPU_BITS).il
 332   LIBAWT_CFLAGS += \
 333       -I$(JDK_TOPDIR)/src/solaris/native/sun/awt/medialib \
 334       -I$(JDK_TOPDIR)/src/solaris/native/sun/java2d/medialib \
 335       -I$(JDK_TOPDIR)/src/solaris/native/sun/java2d/loops
 336 
 337   LIBAWT_DIRS += $(JDK_TOPDIR)/src/solaris/native/sun/awt/medialib \
 338       $(JDK_TOPDIR)/src/solaris/native/sun/java2d/loops
 339 
 340   LIBAWT_FILES += \
 341       vis_FuncArray.c \
 342       java2d_Mlib.c \
 343       mlib_ImageCreate.c \
 344       mlib_ImageZoom_NN.c \
 345       mlib_ImageCopy_Bit.c \
 346       mlib_sys.c \
 347       mlib_v_ImageClear.c \
 348       mlib_v_ImageClear_f.c \
 349       mlib_v_ImageConstXor.c \
 350       mlib_v_ImageCopy.c \
 351       mlib_v_ImageCopy_f.c \
 352       mlib_v_ImageXor.c \
 353       mlib_v_ImageZoom_NN_f.c \
 354       vis_Interp.c \
 355       vis_AlphaMacros.c \
 356       vis_AlphaMaskBlit.c \
 357       vis_AlphaMaskFill.c \
 358       vis_ByteGray.c \
 359       vis_ByteGray_FromRgb.c \
 360       vis_ByteGray_Mask.c \
 361       vis_ByteIndexed.c \
 362       vis_DrawLine.c \
 363       vis_FourByteAbgr.c \
 364       vis_IntArgb.c \
 365       vis_IntArgbPre.c \
 366       vis_IntArgbPre_Mask.c \
 367       vis_IntBgr.c \
 368       vis_IntRgb.c \
 369       vis_IntRgbx.c \
 370       vis_SrcMaskFill.c \
 371       vis_SrcOverMaskBlit.c \
 372       vis_SrcOverMaskFill.c \
 373       vis_FourByteAbgrPre.c \
 374       vis_GlyphList.c \
 375       vis_GlyphListXor.c \
 376       vis_IntArgbBm.c \
 377       vis_ThreeByteBgr.c \
 378       vis_UshortGray.c \
 379       vis_UshortGray_FromRgb.c \
 380       vis_XorBlit.c \
 381       mlib_v_ImageCopy_blk.s
 382 
 383   ifeq ($(OPENJDK_TARGET_CPU), sparcv9)
 384     LIBAWT_ASFLAGS = -P -xarch=v9a
 385   else
 386     LIBAWT_ASFLAGS = -P -xarch=v8plusa
 387   endif
 388 else
 389   LIBAWT_FILES += MapAccelFunc.c
 390 endif
 391 
 392 ifneq ($(OPENJDK_TARGET_OS), solaris)
 393   LIBAWT_CFLAGS += -DMLIB_NO_LIBSUNMATH
 394 endif
 395 
 396 LIBAWT_LANG := C
 397 
 398 ifeq ($(OPENJDK_TARGET_OS), windows)
 399   LIBAWT_FILES += AccelGlyphCache.c \
 400       ShaderList.c \
 401       CmdIDList.cpp \
 402       Hashtable.cpp \
 403       GDIHashtable.cpp \
 404       Devices.cpp \
 405       ObjectList.cpp \
 406       GDIBlitLoops.cpp \
 407       GDIRenderer.cpp \
 408       GDIWindowSurfaceData.cpp \
 409       WindowsFlags.cpp \
 410       WPrinterJob.cpp \
 411       awt_%.cpp \
 412       D3DBlitLoops.cpp \
 413       D3DBufImgOps.cpp \
 414       D3DContext.cpp \
 415       D3DGlyphCache.cpp \
 416       D3DGraphicsDevice.cpp \
 417       D3DMaskBlit.cpp \
 418       D3DMaskCache.cpp \
 419       D3DMaskFill.cpp \
 420       D3DPipelineManager.cpp \
 421       D3DPaints.cpp \
 422       D3DRenderer.cpp \
 423       D3DRenderQueue.cpp \
 424       D3DResourceManager.cpp \
 425       D3DSurfaceData.cpp \
 426       D3DTextRenderer.cpp \
 427       D3DVertexCacher.cpp \
 428       ShellFolder2.cpp \
 429       ThemeReader.cpp \
 430       ComCtl32Util.cpp \
 431       DllUtil.cpp \
 432       initIDs.cpp \
 433       MouseInfo.cpp \
 434       rect.c \
 435       OGLBlitLoops.c \
 436       OGLBufImgOps.c \
 437       OGLContext.c \
 438       OGLFuncs.c \
 439       OGLMaskBlit.c \
 440       OGLMaskFill.c \
 441       OGLPaints.c \
 442       OGLRenderQueue.c \
 443       OGLRenderer.c \
 444       OGLSurfaceData.c \
 445       OGLTextRenderer.c \
 446       OGLVertexCache.c \
 447       WGLGraphicsConfig.c \
 448       WGLSurfaceData.c
 449 
 450   LIBAWT_LANG := C++
 451   LIBAWT_CFLAGS += -EHsc -DUNICODE -D_UNICODE
 452   ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
 453     LIBAWT_CFLAGS += -DMLIB_OS64BIT
 454   endif
 455 
 456   ifdef OPENJDK
 457     LIBAWT_RC_FLAGS := -i "$(JDK_TOPDIR)/src/windows/resource/icons"
 458   else
 459     LIBAWT_RC_FLAGS := -i "$(JDK_TOPDIR)/src/closed/windows/native/sun/windows"
 460   endif
 461   LIBAWT_VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/native/sun/windows/awt.rc
 462 endif
 463 
 464 ifeq ($(MILESTONE), internal)
 465   LIBAWT_CFLAGS += -DINTERNAL_BUILD
 466 endif
 467 
 468 LIBAWT_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libawt/mapfile-vers
 469 ifeq ($(OPENJDK_TARGET_OS), linux)
 470   LIBAWT_MAPFILE :=
 471 endif
 472 
 473 $(eval $(call SetupNativeCompilation,BUILD_LIBAWT, \
 474     LIBRARY := awt, \
 475     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
 476     SRC := $(LIBAWT_DIRS), \
 477     INCLUDE_FILES := $(LIBAWT_FILES), \
 478     LANG := $(LIBAWT_LANG), \
 479     OPTIMIZATION := LOW, \
 480     CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_CFLAGS), \
 481     ASFLAGS := $(LIBAWT_ASFLAGS), \
 482     MAPFILE := $(LIBAWT_MAPFILE), \
 483     LDFLAGS := $(LDFLAGS_JDKLIB) $(call SET_SHARED_LIBRARY_ORIGIN), \
 484     LDFLAGS_solaris := -R/usr/dt/lib$(OPENJDK_TARGET_CPU_ISADIR) -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR), \
 485     LDFLAGS_SUFFIX_linux := -ljvm $(LIBM) $(LIBDL) -ljava, \
 486     LDFLAGS_SUFFIX_solaris := -ljvm $(LIBM) $(LIBDL) -ljava -lc, \
 487     LDFLAGS_SUFFIX_aix :=-ljvm $(LIBM) $(LIBDL) -ljava -lm,\
 488     LDFLAGS_SUFFIX_macosx := -lmlib_image -ljvm $(LIBM) \
 489         -framework Cocoa \
 490         -framework OpenGL \
 491         -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
 492         -framework JavaNativeFoundation \
 493         -framework JavaRuntimeSupport \
 494         -framework ApplicationServices \
 495         -framework AudioToolbox \
 496         -ljava, \
 497     LDFLAGS_SUFFIX_windows := kernel32.lib user32.lib gdi32.lib winspool.lib \
 498         imm32.lib ole32.lib uuid.lib shell32.lib \
 499         comdlg32.lib winmm.lib comctl32.lib shlwapi.lib \
 500         delayimp.lib jvm.lib $(WIN_JAVA_LIB) advapi32.lib \
 501         -DELAYLOAD:user32.dll -DELAYLOAD:gdi32.dll \
 502         -DELAYLOAD:shell32.dll -DELAYLOAD:winmm.dll \
 503         -DELAYLOAD:winspool.drv -DELAYLOAD:imm32.dll \
 504         -DELAYLOAD:ole32.dll -DELAYLOAD:comdlg32.dll \
 505         -DELAYLOAD:comctl32.dll -DELAYLOAD:shlwapi.dll, \
 506     VERSIONINFO_RESOURCE := $(LIBAWT_VERSIONINFO_RESOURCE), \
 507     RC_FLAGS := $(RC_FLAGS) $(LIBAWT_RC_FLAGS) \
 508         -D "JDK_FNAME=awt.dll" \
 509         -D "JDK_INTERNAL_NAME=awt" \
 510         -D "JDK_FTYPE=0x2L", \
 511     OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libawt, \
 512     DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
 513 
 514 $(BUILD_LIBAWT): $(BUILD_LIBJAVA)
 515 
 516 ifeq ($(OPENJDK_TARGET_OS), macosx)
 517   $(BUILD_LIBAWT): $(BUILD_LIBMLIB_IMAGE)
 518 endif
 519 
 520 BUILD_LIBRARIES += $(BUILD_LIBAWT)
 521 
 522 ##########################################################################################
 523 
 524 ifeq ($(findstring $(OPENJDK_TARGET_OS),windows macosx),)
 525   ifndef BUILD_HEADLESS_ONLY
 526 
 527     LIBAWT_XAWT_DIRS := \
 528         $(JDK_TOPDIR)/src/share/native/sun/awt/debug \
 529         $(JDK_TOPDIR)/src/share/native/sun/awt/utility \
 530         $(JDK_TOPDIR)/src/share/native/sun/font \
 531         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/font \
 532         $(JDK_TOPDIR)/src/share/native/sun/java2d/opengl \
 533         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt \
 534         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/opengl \
 535         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/x11 \
 536         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/xawt \
 537 
 538     LIBAWT_XAWT_CFLAGS := -DXAWT -DXAWT_HACK \
 539         -DPACKAGE_PATH=\"$(PACKAGE_PATH)\" \
 540         $(CUPS_CFLAGS) \
 541         $(foreach dir, $(LIBAWT_XAWT_DIRS), -I$(dir)) \
 542         -I$(JDK_TOPDIR)/src/share/native/sun/java2d \
 543         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d \
 544         -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \
 545         -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \
 546         -I$(JDK_TOPDIR)/src/share/native/sun/awt/image \
 547         -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \
 548         -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \
 549         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/jdga
 550 
 551     ifeq ($(OPENJDK_TARGET_OS), solaris)
 552       LIBAWT_XAWT_CFLAGS += -DFUNCPROTO=15
 553     endif
 554 
 555     ifeq ($(OPENJDK_TARGET_OS), linux)
 556       ifeq ($(DISABLE_XRENDER), true)
 557         LIBAWT_XAWT_CFLAGS += -DDISABLE_XRENDER_BY_DEFAULT=true
 558       endif
 559     endif
 560 
 561     ifeq ($(MILESTONE), internal)
 562       LIBAWT_XAWT_CFLAGS += -DINTERNAL_BUILD
 563     endif
 564 
 565     LIBAWT_XAWT_FILES := \
 566         XlibWrapper.c \
 567         XWindow.c \
 568         XToolkit.c \
 569         X11Color.c \
 570         X11SurfaceData.c \
 571         awt_GraphicsEnv.c \
 572         awt_InputMethod.c \
 573         robot_common.c \
 574         awt_Robot.c \
 575         list.c \
 576         multiVis.c \
 577         initIDs.c \
 578         awt_util.c \
 579         awt_Desktop.c \
 580         awt_UNIXToolkit.c \
 581         X11FontScaler_md.c \
 582         X11TextRenderer_md.c \
 583         fontpath.c \
 584         awt_Insets.c \
 585         awt_Event.c \
 586         X11Renderer.c \
 587         X11PMBlitLoops.c \
 588         OGLBlitLoops.c \
 589         OGLBufImgOps.c \
 590         OGLContext.c \
 591         OGLFuncs.c \
 592         OGLMaskBlit.c \
 593         OGLMaskFill.c \
 594         OGLPaints.c \
 595         OGLRenderQueue.c \
 596         OGLRenderer.c \
 597         OGLSurfaceData.c \
 598         OGLTextRenderer.c \
 599         OGLVertexCache.c \
 600         GLXGraphicsConfig.c \
 601         GLXSurfaceData.c \
 602         AccelGlyphCache.c \
 603         awt_Font.c \
 604         multi_font.c \
 605         awt_AWTEvent.c \
 606         awt_DrawingSurface.c \
 607         jawt.c \
 608         CUPSfuncs.c \
 609         debug_assert.c \
 610         debug_mem.c \
 611         debug_trace.c \
 612         debug_util.c \
 613         awt_Plugin.c \
 614         gnome_interface.c \
 615         gtk2_interface.c \
 616         swing_GTKEngine.c \
 617         swing_GTKStyle.c \
 618         rect.c \
 619         sun_awt_X11_GtkFileDialogPeer.c \
 620         XRSurfaceData.c \
 621         XRBackendNative.c
 622 
 623     LIBAWT_XAWT_LDFLAGS_SUFFIX := $(LIBM) -lawt -lXext -lX11 -lXrender $(LIBDL) -lXtst -lXi -ljava -ljvm -lc
 624 
 625     ifeq ($(OPENJDK_TARGET_OS), linux)
 626       # To match old build, add this to LDFLAGS instead of suffix.
 627       LIBAWT_XAWT_LDFLAGS += -lpthread
 628     endif
 629 
 630     $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_XAWT, \
 631         LIBRARY := awt_xawt, \
 632         OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
 633         SRC := $(LIBAWT_XAWT_DIRS), \
 634         INCLUDE_FILES := $(LIBAWT_XAWT_FILES), \
 635         LANG := C, \
 636         OPTIMIZATION := LOW, \
 637         CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_XAWT_CFLAGS) \
 638             $(X_CFLAGS), \
 639         MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libawt_xawt/mapfile-vers, \
 640         LDFLAGS := $(LDFLAGS_JDKLIB) \
 641             $(X_LIBS) $(LIBAWT_XAWT_LDFLAGS), \
 642         LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN) \
 643             $(call SET_SHARED_LIBRARY_ORIGIN,/..), \
 644         LDFLAGS_solaris := -L$(OPENWIN_HOME)/sfw/lib$(OPENJDK_TARGET_CPU_ISADIR) \
 645             -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) \
 646             -R$(OPENWIN_HOME)/sfw/lib$(OPENJDK_TARGET_CPU_ISADIR) \
 647             -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) \
 648             -R/usr/dt/lib$(OPENJDK_TARGET_CPU_ISADIR) \
 649             $(call SET_SHARED_LIBRARY_ORIGIN) \
 650             $(call SET_SHARED_LIBRARY_ORIGIN,/..), \
 651         LDFLAGS_SUFFIX := $(LIBAWT_XAWT_LDFLAGS_SUFFIX), \
 652         VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
 653         RC_FLAGS := $(RC_FLAGS) \
 654             -D "JDK_FNAME=xawt.dll" \
 655             -D "JDK_INTERNAL_NAME=xawt" \
 656             -D "JDK_FTYPE=0x2L", \
 657         OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libawt_xawt, \
 658         DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
 659 
 660     $(BUILD_LIBAWT_XAWT): $(BUILD_LIBJAVA)
 661 
 662     $(BUILD_LIBAWT_XAWT): $(BUILD_LIBAWT)
 663 
 664     BUILD_LIBRARIES += $(BUILD_LIBAWT_XAWT)
 665 
 666   endif
 667 endif
 668 
 669 ##########################################################################################
 670 
 671 LIBLCMS_DIR := $(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms
 672 
 673 ifeq ($(USE_EXTERNAL_LCMS), true)
 674 
 675     # TODO: Update awt lib path when awt is converted
 676     $(eval $(call SetupNativeCompilation,BUILD_LIBLCMS, \
 677         LIBRARY := lcms, \
 678         OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
 679         SRC := $(LIBLCMS_DIR), \
 680         INCLUDE_FILES := LCMS.c, \
 681         LANG := C, \
 682         OPTIMIZATION := HIGHEST, \
 683         CFLAGS := $(filter-out -xc99=%none, $(CFLAGS_JDKLIB)) \
 684             $(SHARED_LIBRARY_FLAGS) \
 685             -I$(JDK_TOPDIR)/src/share/native/sun/java2d \
 686             -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \
 687             $(LCMS_CFLAGS), \
 688         CFLAGS_solaris := -xc99=no_lib, \
 689         CFLAGS_windows := -DCMS_IS_WINDOWS_, \
 690         MAPFILE := $(JDK_TOPDIR)/make/mapfiles/liblcms/mapfile-vers, \
 691         LDFLAGS := $(LDFLAGS_JDKLIB) \
 692             $(call SET_SHARED_LIBRARY_ORIGIN), \
 693         LDFLAGS_solaris := /usr/lib$(OPENJDK_TARGET_CPU_ISADIR)/libm.so.2, \
 694         LDFLAGS_windows := $(WIN_AWT_LIB) $(WIN_JAVA_LIB), \
 695         LDFLAGS_SUFFIX_solaris := -lawt -ljava -ljvm -lc $(LCMS_LIBS), \
 696         LDFLAGS_SUFFIX_macosx := $(LIBM) -lawt -ljava -ljvm $(LCMS_LIBS), \
 697         LDFLAGS_SUFFIX_linux := -lm -lawt -ljava -ljvm $(LCMS_LIBS), \
 698         LDFLAGS_SUFFIX_aix := -lm -lawt -ljava -ljvm $(LCMS_LIBS),\
 699         VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
 700         RC_FLAGS := $(RC_FLAGS) \
 701             -D "JDK_FNAME=lcms.dll" \
 702             -D "JDK_INTERNAL_NAME=lcms" \
 703             -D "JDK_FTYPE=0x2L", \
 704         OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/liblcms, \
 705         DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
 706 
 707 else
 708 
 709     # TODO: Update awt lib path when awt is converted
 710     $(eval $(call SetupNativeCompilation,BUILD_LIBLCMS, \
 711         LIBRARY := lcms, \
 712         OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
 713         SRC := $(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms, \
 714         LANG := C, \
 715         OPTIMIZATION := HIGHEST, \
 716         CFLAGS := $(filter-out -xc99=%none, $(CFLAGS_JDKLIB)) \
 717             $(SHARED_LIBRARY_FLAGS) \
 718             -I$(JDK_TOPDIR)/src/share/native/sun/java2d \
 719             -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \
 720             -I$(LIBLCMS_DIR), \
 721         CFLAGS_solaris := -xc99=no_lib, \
 722         CFLAGS_windows := -DCMS_IS_WINDOWS_, \
 723         MAPFILE := $(JDK_TOPDIR)/make/mapfiles/liblcms/mapfile-vers, \
 724         LDFLAGS := $(LDFLAGS_JDKLIB) \
 725             $(call SET_SHARED_LIBRARY_ORIGIN), \
 726         LDFLAGS_solaris := /usr/lib$(OPENJDK_TARGET_CPU_ISADIR)/libm.so.2, \
 727         LDFLAGS_windows := $(WIN_AWT_LIB) $(WIN_JAVA_LIB), \
 728         LDFLAGS_SUFFIX_solaris := -lawt -ljava -ljvm -lc, \
 729         LDFLAGS_SUFFIX_macosx := $(LIBM) -lawt -ljava -ljvm, \
 730         LDFLAGS_SUFFIX_linux := -lm -lawt -ljava -ljvm, \
 731         LDFLAGS_SUFFIX_aix := -lm -lawt -ljava -ljvm,\
 732         VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
 733         RC_FLAGS := $(RC_FLAGS) \
 734             -D "JDK_FNAME=lcms.dll" \
 735             -D "JDK_INTERNAL_NAME=lcms" \
 736             -D "JDK_FTYPE=0x2L", \
 737         OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/liblcms, \
 738         DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
 739 
 740 endif
 741 
 742 BUILD_LIBRARIES += $(BUILD_LIBLCMS)
 743 
 744 $(BUILD_LIBLCMS): $(BUILD_LIBAWT)
 745 
 746 ##########################################################################################
 747 
 748 ifdef OPENJDK
 749   BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers
 750 else
 751   BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers-closed
 752   BUILD_LIBJPEG_CLOSED_SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
 753   BUILD_LIBJPEG_CLOSED_INCLUDES := -I$(BUILD_LIBJPEG_CLOSED_SRC)
 754 endif
 755 
 756 BUILD_LIBJPEG_REORDER :=
 757 ifeq ($(OPENJDK_TARGET_OS), solaris)
 758   ifneq ($(OPENJDK_TARGET_CPU), x86_64)
 759     BUILD_LIBJPEG_REORDER := $(JDK_TOPDIR)/make/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
 760   endif
 761 endif
 762 
 763 # Suppress gcc warnings like "variable might be clobbered by 'longjmp'
 764 # or 'vfork'": this warning indicates that some variable is placed to
 765 # a register by optimized compiler and it's value might be lost on longjmp().
 766 # Recommended way to avoid such warning is to declare the variable as
 767 # volatile to prevent the optimization. However, this approach does not
 768 # work because we have to declare all variables as volatile in result.
 769 #ifndef CROSS_COMPILE_ARCH
 770 #  CC_43_OR_NEWER := \
 771 #      $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \
 772 #          \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) )
 773 #  ifeq ($(CC_43_OR_NEWER), 1)
 774 #    BUILD_LIBJPEG_CFLAGS_linux += -Wno-clobbered
 775 #  endif
 776 #endif
 777 
 778 $(eval $(call SetupNativeCompilation,BUILD_LIBJPEG, \
 779     LIBRARY := jpeg, \
 780     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
 781     SRC := $(BUILD_LIBJPEG_CLOSED_SRC) \
 782         $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg, \
 783     LANG := C, \
 784     OPTIMIZATION := HIGHEST, \
 785     CFLAGS := $(CFLAGS_JDKLIB) \
 786         $(BUILD_LIBJPEG_CLOSED_INCLUDES) \
 787         -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg, \
 788     MAPFILE := $(BUILD_LIBJPEG_MAPFILE), \
 789     LDFLAGS := $(LDFLAGS_JDKLIB) \
 790         $(call SET_SHARED_LIBRARY_ORIGIN), \
 791     LDFLAGS_windows := $(WIN_JAVA_LIB) jvm.lib, \
 792     LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \
 793     VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
 794     RC_FLAGS := $(RC_FLAGS) \
 795         -D "JDK_FNAME=jpeg.dll" \
 796         -D "JDK_INTERNAL_NAME=jpeg" \
 797         -D "JDK_FTYPE=0x2L", \
 798     REORDER := $(BUILD_LIBJPEG_REORDER), \
 799     OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjpeg, \
 800     DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
 801 
 802 $(BUILD_LIBJPEG): $(BUILD_LIBJAVA)
 803 
 804 BUILD_LIBRARIES += $(BUILD_LIBJPEG)
 805 
 806 ##########################################################################################
 807 
 808 ifndef OPENJDK
 809   FONT_HEADERS := -I$(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k
 810   BUILD_LIBFONTMANAGER_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libfontmanager/mapfile-vers
 811   LIBFONTMANAGER_EXCLUDE_FILES += freetypeScaler.c
 812 else
 813   FONT_HEADERS := $(FREETYPE_CFLAGS)
 814   BUILD_LIBFONTMANAGER_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libfontmanager/mapfile-vers.openjdk
 815   BUILD_LIBFONTMANAGER_FONTLIB := $(FREETYPE_LIBS)
 816 endif
 817 
 818 LIBFONTMANAGER_OPTIMIZATION := HIGH
 819 
 820 ifeq ($(OPENJDK_TARGET_OS), windows)
 821   LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
 822       X11TextRenderer.c
 823   LIBFONTMANAGER_OPTIMIZATION := HIGHEST
 824 else ifeq ($(OPENJDK_TARGET_OS), macosx)
 825   LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
 826       X11TextRenderer.c \
 827       fontpath.c \
 828       lcdglyph.c
 829 else
 830   LIBFONTMANAGER_EXCLUDE_FILES += fontpath.c \
 831       lcdglyph.c
 832 endif
 833 
 834 BUILD_LIBFONTMANAGER_CFLAGS_COMMON := \
 835     $(FONT_HEADERS) \
 836     $(X_CFLAGS) \
 837     -DLE_STANDALONE -DHEADLESS \
 838     -I$(JDK_TOPDIR)/src/share/native/sun/font \
 839     -I$(JDK_TOPDIR)/src/share/native/sun/font/layout \
 840     -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \
 841     -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt \
 842     -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \
 843     -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \
 844     -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \
 845     -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d \
 846     -I$(JDK_TOPDIR)/src/share/native/sun/java2d
 847 
 848 # Turn off aliasing with GCC for ExtensionSubtables.cpp
 849 ifeq ($(OPENJDK_TARGET_OS), linux)
 850   BUILD_LIBFONTMANAGER_ExtensionSubtables.cpp_CXXFLAGS := -fno-strict-aliasing
 851 endif
 852 
 853 $(eval $(call SetupNativeCompilation,BUILD_LIBFONTMANAGER, \
 854     LIBRARY := fontmanager, \
 855     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
 856     SRC := $(JDK_TOPDIR)/src/share/native/sun/font \
 857         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/font, \
 858     EXCLUDE_FILES := $(LIBFONTMANAGER_EXCLUDE_FILES) \
 859         AccelGlyphCache.c, \
 860     LANG := C++, \
 861     CFLAGS := $(CFLAGS_JDKLIB) $(BUILD_LIBFONTMANAGER_CFLAGS_COMMON), \
 862     CXXFLAGS := $(CXXFLAGS_JDKLIB) $(BUILD_LIBFONTMANAGER_CFLAGS_COMMON), \
 863     OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \
 864     CFLAGS_windows = -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/windows \
 865         -DCC_NOEX, \
 866     MAPFILE := $(BUILD_LIBFONTMANAGER_MAPFILE), \
 867     LDFLAGS := $(subst -Xlinker -z -Xlinker defs,,$(LDFLAGS_JDKLIB)) $(LDFLAGS_CXX_JDK) \
 868         $(call SET_SHARED_LIBRARY_ORIGIN), \
 869     LDFLAGS_SUFFIX := $(BUILD_LIBFONTMANAGER_FONTLIB), \
 870     LDFLAGS_SUFFIX_linux := -lawt $(LIBM) $(LIBCXX) -ljava -ljvm -lc, \
 871     LDFLAGS_SUFFIX_solaris := -lawt -lawt_xawt -lc $(LIBM) $(LIBCXX) -ljava -ljvm, \
 872     LDFLAGS_SUFFIX_aix := -lawt -lawt_xawt $(LIBM) $(LIBCXX) -ljava -ljvm,\
 873     LDFLAGS_SUFFIX_macosx := -lawt $(LIBM) $(LIBCXX) -undefined dynamic_lookup \
 874         -ljava -ljvm, \
 875     LDFLAGS_SUFFIX_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
 876         $(WIN_AWT_LIB), \
 877     VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
 878     RC_FLAGS := $(RC_FLAGS) \
 879         -D "JDK_FNAME=fontmanager.dll" \
 880         -D "JDK_INTERNAL_NAME=fontmanager" \
 881         -D "JDK_FTYPE=0x2L", \
 882     OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libfontmanager, \
 883     DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
 884 
 885 $(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT)
 886 
 887 ifneq (, $(findstring $(OPENJDK_TARGET_OS), solaris aix))
 888   $(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT_XAWT)
 889 endif
 890 
 891 BUILD_LIBRARIES += $(BUILD_LIBFONTMANAGER)
 892 
 893 ##########################################################################################
 894 
 895 ifndef OPENJDK
 896 
 897   #ifeq ($(OPENJDK_TARGET_OS), linux)
 898   #  ifeq ("$(CC_VER_MAJOR)", "3")
 899   #    OTHER_LDLIBS += -Wl,-Bstatic -lgcc_eh -Wl,-Bdynamic
 900   #  endif
 901   #endif
 902   #
 903   # The resulting size of the t2k lib file is (at least on linux) dependant on the order of
 904   # the input .o files. Because of this the new build will differ in size to the old build.
 905   BUILD_LIBT2K_CFLAGS_COMMON := -I$(JDK_TOPDIR)/src/share/native/sun/font \
 906       -I$(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k \
 907       -I$(JDK_TOPDIR)/src/closed/share/native/sun/font \
 908       -I$(JDK_TOPDIR)/src/share/share/native/sun/font \
 909       -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/font \
 910       -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \
 911       -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \
 912       -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d \
 913       -I$(JDK_TOPDIR)/src/share/native/sun/java2d
 914 
 915   $(eval $(call SetupNativeCompilation,BUILD_LIBT2K, \
 916       LIBRARY := t2k, \
 917       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
 918       SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/font \
 919           $(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k \
 920           $(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k/ttHints, \
 921       EXCLUDE_FILES := orion.c, \
 922       LANG := C++, \
 923       OPTIMIZATION := HIGH, \
 924       CFLAGS := $(CFLAGS_JDKLIB) $(BUILD_LIBT2K_CFLAGS_COMMON), \
 925       CXXFLAGS := $(CXXFLAGS_JDKLIB) $(BUILD_LIBT2K_CFLAGS_COMMON), \
 926       CFLAGS_windows = -DCC_NOEX, \
 927       CXXFLAGS_windows = -DCC_NOEX, \
 928       MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libt2k/mapfile-vers, \
 929       LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \
 930           $(call SET_SHARED_LIBRARY_ORIGIN), \
 931       LDFLAGS_windows := user32.lib $(JDK_OUTPUTDIR)/objs/libfontmanager/fontmanager.lib, \
 932       LDFLAGS_SUFFIX_posix := $(LIBM) $(LIBCXX) -lfontmanager -ljava -ljvm -lc, \
 933       LDFLAGS_SUFFIX_solaris := -lawt -lawt_xawt, \
 934       VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
 935       RC_FLAGS := $(RC_FLAGS) \
 936           -D "JDK_FNAME=t2k.dll" \
 937           -D "JDK_INTERNAL_NAME=t2k" \
 938           -D "JDK_FTYPE=0x2L", \
 939       OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libt2k, \
 940       DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
 941 
 942   # t2k is linked against fontmanager
 943   $(BUILD_LIBT2K): $(BUILD_LIBFONTMANAGER)
 944 
 945   BUILD_LIBRARIES += $(BUILD_LIBT2K)
 946 endif
 947 
 948 ##########################################################################################
 949 
 950 ifeq ($(OPENJDK_TARGET_OS), windows)
 951   ifeq ($(OPENJDK_TARGET_CPU), x86)
 952     KERNEL32_LIB := kernel32.lib
 953   endif
 954   $(eval $(call SetupNativeCompilation,BUILD_LIBJAWT, \
 955       LIBRARY := jawt, \
 956       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
 957       SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/windows, \
 958       INCLUDE_FILES := jawt.cpp, \
 959       LANG := C++, \
 960       OPTIMIZATION := LOW, \
 961       CFLAGS := $(CXXFLAGS_JDKLIB) \
 962           -EHsc -DUNICODE -D_UNICODE \
 963           -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/windows \
 964           -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \
 965           -I$(JDK_TOPDIR)/src/share/native/sun/java2d \
 966           -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \
 967           -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/windows, \
 968       LDFLAGS := $(LDFLAGS_JDKLIB) $(KERNEL32_LIB) $(LDFLAGS_CXX_JDK) \
 969           advapi32.lib $(WIN_AWT_LIB), \
 970       LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \
 971       VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
 972       RC_FLAGS := $(RC_FLAGS) \
 973           -D "JDK_FNAME=jawt.dll" \
 974           -D "JDK_INTERNAL_NAME=jawt" \
 975           -D "JDK_FTYPE=0x2L", \
 976       OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjawt, \
 977       DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
 978 
 979   $(BUILD_LIBJAWT): $(BUILD_LIBAWT)
 980 
 981   $(JDK_OUTPUTDIR)/lib/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX): $(BUILD_LIBJAWT)
 982         $(ECHO) Copying $(@F)
 983         $(CP) $(JDK_OUTPUTDIR)/objs/libjawt/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX) $@
 984 
 985   BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/lib/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX)
 986 
 987 else # OPENJDK_TARGET_OS not windows
 988 
 989   ifeq ($(OPENJDK_TARGET_OS), macosx)
 990     JAWT_FILES := jawt.m
 991     JAWT_LIBS := -lawt_lwawt
 992   else
 993     JAWT_FILES := jawt.c
 994     JAWT_LIBS :=
 995     ifneq ($(OPENJDK_TARGET_OS), solaris)
 996       JAWT_LIBS += -lawt
 997     endif
 998     ifndef BUILD_HEADLESS_ONLY
 999       JAWT_LIBS += -lawt_xawt
1000     else
1001       JAWT_LIBS += -lawt_headless
1002       HEADLESS_CFLAG += -DHEADLESS
1003     endif
1004   endif
1005 
1006   $(eval $(call SetupNativeCompilation,BUILD_LIBJAWT, \
1007       LIBRARY := jawt, \
1008       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
1009       SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt \
1010           $(JDK_TOPDIR)/src/macosx/native/sun/awt, \
1011       INCLUDE_FILES := $(JAWT_FILES), \
1012       LANG := C, \
1013       OPTIMIZATION := LOW, \
1014       CFLAGS := $(CFLAGS_JDKLIB), \
1015       CFLAGS_linux := $(HEADLESS_CFLAG), \
1016       CFLAGS_macosx := -I$(JDK_TOPDIR)/src/solaris/native/sun/awt, \
1017       MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjawt/mapfile-vers, \
1018       LDFLAGS := $(LDFLAGS_JDKLIB) \
1019           $(call SET_SHARED_LIBRARY_ORIGIN), \
1020       LDFLAGS_solaris := -L$(OPENWIN_HOME)/sfw/lib$(OPENJDK_TARGET_CPU_ISADIR) -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR), \
1021       LDFLAGS_SUFFIX_linux := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX), \
1022       LDFLAGS_SUFFIX_aix := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX),\
1023       LDFLAGS_SUFFIX_solaris := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX) -lXrender, \
1024       LDFLAGS_SUFFIX_macosx := -Xlinker -rpath -Xlinker @loader_path $(JAWT_LIBS) \
1025           -framework Cocoa $(LDFLAGS_JDKLIB_SUFFIX), \
1026       OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjawt, \
1027       DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
1028 
1029   ifndef BUILD_HEADLESS_ONLY
1030     $(BUILD_LIBJAWT): $(BUILD_LIBAWT_XAWT)
1031   else
1032     $(BUILD_LIBJAWT): $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)awt_headless$(SHARED_LIBRARY_SUFFIX)
1033   endif
1034 
1035   ifeq ($(OPENJDK_TARGET_OS), macosx)
1036     $(BUILD_LIBJAWT): $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)awt_lwawt$(SHARED_LIBRARY_SUFFIX)
1037   endif
1038 
1039 endif # OPENJDK_TARGET_OS
1040 
1041 BUILD_LIBRARIES += $(BUILD_LIBJAWT)
1042 
1043 ##########################################################################################
1044 
1045 ifndef OPENJDK
1046 
1047   BUILD_LIBKCMS_EXCLUDE_FILES :=
1048   ifeq ($(OPENJDK_TARGET_OS), windows)
1049     BUILD_LIBKCMS_EXCLUDE_FILES += ukcpmgr.c unixmem.c
1050   else
1051     BUILD_LIBKCMS_EXCLUDE_FILES += cmmdll.c registry.c spxffile.c sysinfo.c winmem.c wkcpmgr.c
1052   endif
1053 
1054   BUILD_LIBKCMS_FLAGS := $(CFLAGS_JDKLIB)
1055 
1056   ifeq ($(OPENJDK_TARGET_OS), solaris)
1057     # This particular library uses a feature called PIC_CODE_SMALL (on solaris)
1058     # implement it like this...since it's only used here
1059     BUILD_LIBKCMS_FLAGS := $(patsubst -KPIC, -Kpic, $(BUILD_LIBKCMS_FLAGS))
1060   else ifeq ($(OPENJDK_TARGET_CPU_ARCH), ppc)
1061     BUILD_LIBKCMS_FLAGS := $(patsubst -fPIC, -fpic, $(BUILD_LIBKCMS_FLAGS))
1062   endif
1063 
1064   $(eval $(call SetupNativeCompilation,BUILD_LIBKCMS, \
1065       LIBRARY := kcms, \
1066       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
1067       SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/java2d/cmm/kcms, \
1068       LANG := C, \
1069       EXCLUDE_FILES := $(BUILD_LIBKCMS_EXCLUDE_FILES), \
1070       OPTIMIZATION := LOW, \
1071       CFLAGS := $(BUILD_LIBKCMS_FLAGS) \
1072           -DJAVACMM -DFUT_CALC_EX -DNO_FUT_GCONST, \
1073       CFLAGS_linux := -Wno-missing-field-initializers, \
1074       MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libkcms/mapfile-vers, \
1075       LDFLAGS := $(LDFLAGS_JDKLIB) \
1076           $(call SET_SHARED_LIBRARY_ORIGIN), \
1077       LDFLAGS_SUFFIX_linux := -lc -lpthread, \
1078       LDFLAGS_SUFFIX_solaris := -lc, \
1079       LDFLAGS_SUFFIX_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib version.lib, \
1080       LDFLAGS_SUFFIX_posix := -lm -ljava -ljvm, \
1081       VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/closed/share/native/sun/java2d/cmm/kcms/cmm.rc, \
1082       VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/closed/share/native/sun/java2d/cmm/kcms/cmm.rc, \
1083       RC_FLAGS := $(RC_FLAGS) \
1084           -D "JDK_FNAME=kcms.dll" \
1085           -D "JDK_INTERNAL_NAME=kcms" \
1086           -D "JDK_FTYPE=0x2L", \
1087       OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libkcms, \
1088       DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
1089 
1090   $(BUILD_LIBKCMS): $(BUILD_LIBJAVA)
1091 
1092   BUILD_LIBRARIES += $(BUILD_LIBKCMS)
1093 
1094 endif
1095 
1096 ##########################################################################################
1097 
1098 ifndef OPENJDK
1099   ifeq ($(OPENJDK_TARGET_OS), solaris)
1100     ifneq ($(OPENJDK_TARGET_CPU), x86_64)
1101 
1102       ifeq ($(shell if test "$(OS_VERSION_MAJOR)" -eq 5 -a "$(OS_VERSION_MINOR)" -le 10; then $(ECHO) ok; fi), ok)
1103 
1104         SUNWJDGA_MAPFILE :=
1105         ifeq ($(OPENJDK_TARGET_CPU_ARCH), sparc)
1106           SUNWJDGA_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjdga/mapfile-vers
1107         endif
1108 
1109         $(eval $(call SetupNativeCompilation,BUILD_LIBSUNWJDGA, \
1110             LIBRARY := sunwjdga, \
1111             OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
1112             SRC := $(JDK_TOPDIR)/src/solaris/native/sun/jdga, \
1113             LANG := C, \
1114             OPTIMIZATION := LOW, \
1115             CFLAGS := $(CFLAGS_JDKLIB) \
1116                 -I$(JDK_TOPDIR)/src/share/javavm/export \
1117                 -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/javavm/export \
1118                 -I$(OPENWIN_HOME)/include, \
1119             MAPFILE := $(SUNWJDGA_MAPFILE), \
1120             LDFLAGS := $(LDFLAGS_JDKLIB) \
1121                 $(call SET_SHARED_LIBRARY_ORIGIN), \
1122             LDFLAGS_SUFFIX := -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -ldga -lX11 $(LIBDL) -lc, \
1123             OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsunwjdga, \
1124             DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
1125 
1126         BUILD_LIBRARIES += $(BUILD_LIBSUNWJDGA)
1127 
1128       endif
1129     endif
1130   endif
1131 endif
1132 
1133 ##########################################################################################
1134 
1135 ifeq ($(BUILD_HEADLESS), true)
1136   # Mac and Windows only use the native AWT lib, do not build libawt_headless
1137   ifeq ($(findstring $(OPENJDK_TARGET_OS), windows macosx),)
1138 
1139     LIBAWT_HEADLESS_DIRS := $(JDK_TOPDIR)/src/share/native/sun/font \
1140         $(JDK_TOPDIR)/src/share/native/sun/java2d/opengl \
1141         $(JDK_TOPDIR)/src/solaris/native/sun/font \
1142         $(JDK_TOPDIR)/src/solaris/native/sun/awt \
1143         $(JDK_TOPDIR)/src/solaris/native/sun/java2d/opengl \
1144         $(JDK_TOPDIR)/src/solaris/native/sun/java2d/x11
1145 
1146     ifeq ($(OPENJDK_TARGET_OS), macosx)
1147       LIBAWT_HEADLESS_DIRS += $(JDK_TOPDIR)/src/macosx/native/sun/font
1148     endif
1149 
1150     LIBAWT_HEADLESS_CFLAGS := -DHEADLESS=true \
1151         -DPACKAGE_PATH=\"$(PACKAGE_PATH)\" \
1152         $(CUPS_CFLAGS) \
1153         $(X_CFLAGS) \
1154         -I$(JDK_TOPDIR)/src/share/native/sun/java2d \
1155         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d \
1156         -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \
1157         -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \
1158         -I$(JDK_TOPDIR)/src/share/native/sun/awt/image \
1159         -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \
1160         -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \
1161         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/jdga \
1162         $(foreach dir, $(LIBAWT_HEADLESS_DIRS), -I$(dir))
1163 
1164     ifeq ($(OPENJDK_TARGET_OS), macosx)
1165       LIBAWT_HEADLESS_CFLAGS += \
1166           -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
1167           -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks
1168     endif
1169 
1170     LIBAWT_HEADLESS_FILES := \
1171         awt_Font.c \
1172         HeadlessToolkit.c \
1173         fontpath.c \
1174         VDrawingArea.c \
1175         X11Color.c \
1176         X11Renderer.c \
1177         X11PMBlitLoops.c \
1178         X11SurfaceData.c \
1179         X11FontScaler_md.c \
1180         X11TextRenderer_md.c \
1181         OGLBlitLoops.c \
1182         OGLBufImgOps.c \
1183         OGLContext.c \
1184         OGLFuncs.c \
1185         OGLMaskBlit.c \
1186         OGLMaskFill.c \
1187         OGLPaints.c \
1188         OGLRenderQueue.c \
1189         OGLRenderer.c \
1190         OGLSurfaceData.c \
1191         OGLTextRenderer.c \
1192         OGLVertexCache.c \
1193         GLXGraphicsConfig.c \
1194         GLXSurfaceData.c \
1195         AccelGlyphCache.c \
1196         CUPSfuncs.c
1197 
1198     LIBAWT_HEADLESS_REORDER :=
1199     ifeq ($(OPENJDK_TARGET_OS), solaris)
1200       ifneq ($(OPENJDK_TARGET_CPU), x86_64)
1201         LIBAWT_HEADLESS_REORDER := $(JDK_TOPDIR)/make/mapfiles/libawt_headless/reorder-$(OPENJDK_TARGET_CPU)
1202       endif
1203     endif
1204 
1205     $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_HEADLESS, \
1206         LIBRARY := awt_headless, \
1207         OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
1208         SRC := $(LIBAWT_HEADLESS_DIRS), \
1209         INCLUDE_FILES := $(LIBAWT_HEADLESS_FILES), \
1210         LANG := C, \
1211         OPTIMIZATION := LOW, \
1212         CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_HEADLESS_CFLAGS), \
1213         MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libawt_headless/mapfile-vers, \
1214         LDFLAGS := $(LDFLAGS_JDKLIB) \
1215             $(call SET_SHARED_LIBRARY_ORIGIN), \
1216         LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \
1217         LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/..) \
1218             -R/usr/dt/lib$(OPENJDK_TARGET_CPU_ISADIR) \
1219             -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR), \
1220         LDFLAGS_macosx := $(call SET_SHARED_LIBRARY_ORIGIN)., \
1221         REORDER := $(LIBAWT_HEADLESS_REORDER), \
1222         LDFLAGS_SUFFIX_linux := -ljvm -lawt -lm $(LIBDL) -ljava, \
1223         LDFLAGS_SUFFIX_aix := -ljvm -lawt -ljava,\
1224         LDFLAGS_SUFFIX_solaris := $(LIBDL) -ljvm -lawt -lm -ljava $(LIBCXX) -lc, \
1225         OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libawt_headless, \
1226         DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
1227 
1228     $(BUILD_LIBAWT_HEADLESS): $(BUILD_LIBAWT)
1229 
1230     BUILD_LIBRARIES += $(BUILD_LIBAWT_HEADLESS)
1231 
1232   endif
1233 endif
1234 
1235 ##########################################################################################
1236 
1237 ifndef BUILD_HEADLESS_ONLY
1238   LIBSPLASHSCREEN_DIRS := \
1239     $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg \
1240     $(JDK_TOPDIR)/src/share/native/sun/awt/splashscreen
1241 
1242   ifeq ($(USE_EXTERNAL_LIBGIF), true)
1243     GIFLIB_LDFLAGS := -lgif
1244   else
1245     LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/sun/awt/giflib
1246     GIFLIB_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/giflib
1247   endif
1248 
1249   ifeq ($(USE_EXTERNAL_LIBPNG), false)
1250     LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/sun/awt/libpng
1251     LIBPNG_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/libpng
1252   endif
1253 
1254   ifneq ($(OPENJDK_TARGET_OS), macosx)
1255     LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt/splashscreen
1256   else
1257     LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/macosx/native/sun/awt/splashscreen
1258   endif
1259 
1260   LIBSPLASHSCREEN_CFLAGS := -DSPLASHSCREEN -DPNG_NO_MMX_CODE \
1261       $(foreach dir, $(LIBSPLASHSCREEN_DIRS), -I$(dir))
1262 
1263   ifeq ($(OPENJDK_TARGET_OS), macosx)
1264     LIBSPLASHSCREEN_CFLAGS := -I$(JDK_TOPDIR)/src/macosx/native/sun/awt/splashscreen \
1265         $(LIBSPLASHSCREEN_CFLAGS) \
1266         -F/System/Library/Frameworks/JavaVM.framework/Frameworks
1267     LIBSPLASHSCREEN_CFLAGS += -DWITH_MACOSX
1268     LIBSPLASHSCREEN_CFLAGS += -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp
1269 
1270     LIBSPLASHSCREEN_java_awt_SplashScreen.c_CFLAGS := -x objective-c -O0
1271     LIBSPLASHSCREEN_splashscreen_gfx_impl.c_CFLAGS := -x objective-c -O0
1272     LIBSPLASHSCREEN_splashscreen_gif.c_CFLAGS := -x objective-c -O0
1273     LIBSPLASHSCREEN_splashscreen_impl.c_CFLAGS := -x objective-c -O0
1274     LIBSPLASHSCREEN_splashscreen_jpeg.c_CFLAGS := -x objective-c -O0
1275     LIBSPLASHSCREEN_splashscreen_png.c_CFLAGS := -x objective-c -O0
1276     LIBSPLASHSCREEN_splashscreen_sys.m_CFLAGS := -O0
1277 
1278   else ifeq ($(OPENJDK_TARGET_OS), windows)
1279     LIBSPLASHSCREEN_CFLAGS += -DWITH_WIN32
1280   else ifeq ($(OPENJDK_TARGET_OS), solaris)
1281     LIBSPLASHSCREEN_CFLAGS += -DWITH_X11 -I$(OPENWIN_HOME)/include -I$(OPENWIN_HOME)/include/X11/extensions
1282   else
1283     LIBSPLASHSCREEN_CFLAGS += -DWITH_X11 $(X_CFLAGS)
1284   endif
1285 
1286   LIBSPLASHSCREEN_LDFLAGS_SUFFIX :=
1287 
1288   ifneq ($(USE_EXTERNAL_LIBZ), true)
1289     LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/java/util/zip/zlib-1.2.5
1290     LIBSPLASHSCREEN_CFLAGS += $(ZLIB_CPPFLAGS)
1291   endif
1292 
1293   ifeq ($(OPENJDK_TARGET_OS), macosx)
1294     LIBSPLASHSCREEN_LDFLAGS_SUFFIX += $(LIBM) -lpthread -liconv -losxapp \
1295         -framework ApplicationServices \
1296         -framework Foundation \
1297         -framework Cocoa \
1298         -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
1299         -framework JavaNativeFoundation
1300   else ifeq ($(OPENJDK_TARGET_OS), windows)
1301     LIBSPLASHSCREEN_LDFLAGS_SUFFIX += kernel32.lib user32.lib gdi32.lib delayimp.lib -DELAYLOAD:user32.dll
1302   else ifeq ($(OPENJDK_TARGET_OS), solaris)
1303     # Solaris still uses OPENWIN_LIB ..
1304     LIBSPLASHSCREEN_LDFLAGS_SUFFIX += -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -lX11 -lXext $(LIBM) -lpthread
1305   else  # .. all other Unixes can use X_LIBS
1306     LIBSPLASHSCREEN_LDFLAGS_SUFFIX += $(X_LIBS) -lX11 -lXext $(LIBM) -lpthread
1307   endif
1308 
1309   $(eval $(call SetupNativeCompilation,LIBSPLASHSCREEN, \
1310       LIBRARY := splashscreen, \
1311       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
1312       SRC := $(LIBSPLASHSCREEN_DIRS), \
1313       EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \
1314       LANG := C, \
1315       OPTIMIZATION := LOW, \
1316       CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) \
1317                 $(GIFLIB_CFLAGS) $(PNG_CFLAGS), \
1318       MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsplashscreen/mapfile-vers, \
1319       LDFLAGS := $(LDFLAGS_JDKLIB) \
1320           $(call SET_SHARED_LIBRARY_ORIGIN), \
1321       LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) \
1322                         $(GIFLIB_LDFLAGS) $(PNG_LIBS), \
1323       LDFLAGS_SUFFIX_solaris := -lc, \
1324       VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
1325       RC_FLAGS := $(RC_FLAGS) \
1326           -D "JDK_FNAME=splashscreen.dll" \
1327           -D "JDK_INTERNAL_NAME=splashscreen" \
1328           -D "JDK_FTYPE=0x2L", \
1329       OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsplashscreen, \
1330       DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
1331 
1332   BUILD_LIBRARIES += $(LIBSPLASHSCREEN)
1333 
1334   ifeq ($(OPENJDK_TARGET_OS), macosx)
1335     $(LIBSPLASHSCREEN): $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)osxapp$(SHARED_LIBRARY_SUFFIX)
1336   endif
1337 
1338 endif
1339 
1340 ##########################################################################################
1341 
1342 ifndef OPENJDK
1343 
1344   LIBDCPR_SRC_DIRS := \
1345       $(JDK_TOPDIR)/src/closed/share/native/sun/dc/doe \
1346       $(JDK_TOPDIR)/src/closed/share/native/sun/dc/path \
1347       $(JDK_TOPDIR)/src/closed/share/native/sun/dc/pr \
1348       $(JDK_TOPDIR)/src/closed/share/native/sun/dc/util
1349 
1350   LIBDCPR_CFLAGS := $(foreach dir, $(LIBDCPR_SRC_DIRS), -I$(dir)) \
1351       -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe
1352 
1353   $(eval $(call SetupNativeCompilation,BUILD_LIBDCPR, \
1354       LIBRARY := dcpr, \
1355       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
1356       SRC := $(LIBDCPR_SRC_DIRS), \
1357       LANG := C, \
1358       OPTIMIZATION := LOW, \
1359       CFLAGS := $(CFLAGS_JDKLIB) \
1360           $(LIBDCPR_CFLAGS), \
1361       MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libdcpr/mapfile-vers, \
1362       LDFLAGS := $(LDFLAGS_JDKLIB) \
1363           $(call SET_SHARED_LIBRARY_ORIGIN), \
1364       LDFLAGS_SUFFIX := $(LIBM) $(LDFLAGS_JDKLIB_SUFFIX), \
1365       LDFLAGS_SUFFIX_windows := $(WIN_JAVA_LIB), \
1366       LDFLAGS_SUFFIX_posix := -lm, \
1367       VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
1368       RC_FLAGS := $(RC_FLAGS) \
1369           -D "JDK_FNAME=dcpr.dll" \
1370           -D "JDK_INTERNAL_NAME=dcpr" \
1371           -D "JDK_FTYPE=0x2L", \
1372       OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libdcpr, \
1373       DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
1374 
1375   $(BUILD_LIBDCPR): $(BUILD_LIBJAVA)
1376 
1377   BUILD_LIBRARIES += $(BUILD_LIBDCPR)
1378 
1379 endif
1380 
1381 ##########################################################################################
1382 
1383 ifeq ($(OPENJDK_TARGET_OS), macosx)
1384 
1385   LIBAWT_LWAWT_FILES := \
1386       awt.m \
1387       ApplicationDelegate.m \
1388       CFRetainedResource.m \
1389       CGLGraphicsConfig.m \
1390       CGLSurfaceData.m \
1391       CGLLayer.m \
1392       CGraphicsConfig.m \
1393       CGraphicsDevice.m \
1394       CGraphicsEnv.m \
1395       CCharToGlyphMapper.m \
1396       CSystemColors.m \
1397       AWTFont.m \
1398       CGGlyphOutlines.m \
1399       CGGlyphImages.m \
1400       CoreTextSupport.m \
1401       AWTStrike.m \
1402       InitIDs.m \
1403       AWTEvent.m \
1404       AWTView.m \
1405       AWTWindow.m \
1406       AWTSurfaceLayers.m \
1407       CCursorManager.m \
1408       CClipboard.m \
1409       CDataTransferer.m \
1410       CDragSource.m \
1411       CDragSourceContextPeer.m \
1412       CDropTarget.m \
1413       CDropTargetContextPeer.m \
1414       CInputMethod.m \
1415       CDesktopPeer.m \
1416       OSVersion.m \
1417       DnDUtilities.m \
1418       CFileDialog.m \
1419       CImage.m \
1420       CMenu.m \
1421       CMenuBar.m \
1422       CMenuComponent.m \
1423       CMenuItem.m \
1424       CPopupMenu.m \
1425       CRobot.m \
1426       CTrayIcon.m \
1427       CWrapper.m \
1428       JavaAccessibilityAction.m \
1429       JavaAccessibilityUtilities.m \
1430       JavaComponentAccessibility.m \
1431       JavaTextAccessibility.m \
1432       LWCToolkit.m \
1433       GeomUtilities.m \
1434       CPrinterJob.m \
1435       PrintModel.m \
1436       PrinterSurfaceData.m \
1437       PrinterView.m \
1438       QuartzSurfaceData.m \
1439       QuartzRenderer.m \
1440       CTextPipe.m \
1441       ImageSurfaceData.m \
1442       awt_DrawingSurface.m \
1443       \
1444       OGLBlitLoops.c \
1445       OGLBufImgOps.c \
1446       OGLContext.c \
1447       OGLFuncs.c \
1448       OGLMaskBlit.c \
1449       OGLMaskFill.c \
1450       OGLPaints.c \
1451       OGLRenderQueue.c \
1452       OGLRenderer.c \
1453       OGLSurfaceData.c \
1454       OGLTextRenderer.c \
1455       OGLVertexCache.c \
1456       AccelGlyphCache.c \
1457       CUPSfuncs.c
1458 
1459 
1460   LIBAWT_LWAWT_DIRS := \
1461       $(JDK_TOPDIR)/src/macosx/native/sun/awt \
1462       $(JDK_TOPDIR)/src/macosx/native/sun/font \
1463       $(JDK_TOPDIR)/src/macosx/native/sun/java2d/opengl \
1464       $(JDK_TOPDIR)/src/solaris/native/sun/awt \
1465       $(JDK_TOPDIR)/src/share/native/sun/font \
1466       $(JDK_TOPDIR)/src/share/native/sun/java2d/opengl \
1467 
1468   $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_LWAWT, \
1469       LIBRARY := awt_lwawt, \
1470       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
1471       SRC := $(LIBAWT_LWAWT_DIRS), \
1472       LANG := C, \
1473       INCLUDE_FILES := $(LIBAWT_LWAWT_FILES), \
1474       OPTIMIZATION := LOW, \
1475       CFLAGS := $(CFLAGS_JDKLIB) \
1476           $(X_CFLAGS) \
1477           $(X_LIBS) \
1478           $(foreach dir, $(LIBAWT_LWAWT_DIRS), -I$(dir)) \
1479           -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp \
1480           -I$(JDK_TOPDIR)/src/share/native/sun/java2d \
1481           -I$(JDK_TOPDIR)/src/solaris/native/sun/java2d \
1482           -I$(JDK_TOPDIR)/src/share/native/sun/awt/image \
1483           -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \
1484           -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \
1485           -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \
1486           -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \
1487           -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
1488           -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks, \
1489       LDFLAGS := $(LDFLAGS_JDKLIB) \
1490           $(call SET_SHARED_LIBRARY_ORIGIN), \
1491       LDFLAGS_SUFFIX_macosx := -lawt -lmlib_image -losxapp -ljvm $(LIBM) \
1492           -framework Accelerate \
1493           -framework ApplicationServices \
1494           -framework AudioToolbox \
1495           -framework Carbon \
1496           -framework Cocoa \
1497           -framework Security \
1498           -framework ExceptionHandling \
1499           -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
1500           -framework JavaNativeFoundation \
1501           -framework JavaRuntimeSupport \
1502           -framework OpenGL \
1503           -framework QuartzCore -ljava, \
1504       OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libawt_lwawt, \
1505       DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
1506 
1507   BUILD_LIBRARIES += $(BUILD_LIBAWT_LWAWT)
1508 
1509   $(BUILD_LIBAWT_LWAWT): $(BUILD_LIBAWT)
1510 
1511   $(BUILD_LIBAWT_LWAWT): $(BUILD_LIBMLIB_IMAGE)
1512 
1513   $(BUILD_LIBAWT_LWAWT): $(BUILD_LIBOSXAPP)
1514 
1515   $(BUILD_LIBAWT_LWAWT): $(BUILD_LIBJAVA)
1516 
1517 endif
1518 
1519 ##########################################################################################
1520 
1521 ifeq ($(OPENJDK_TARGET_OS), macosx)
1522 
1523   $(eval $(call SetupNativeCompilation,BUILD_LIBOSXUI, \
1524       LIBRARY := osxui, \
1525       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
1526       SRC := $(JDK_TOPDIR)/src/macosx/native/com/apple/laf, \
1527       LANG := C, \
1528       OPTIMIZATION := LOW, \
1529       CFLAGS := $(CFLAGS_JDKLIB) \
1530           -I$(JDK_TOPDIR)/src/macosx/native/com/apple/laf \
1531           -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp \
1532           -I$(JDK_TOPDIR)/src/macosx/native/sun/awt \
1533           -F/System/Library/Frameworks/JavaVM.framework/Frameworks, \
1534       LDFLAGS := $(LDFLAGS_JDKLIB) \
1535           $(call SET_SHARED_LIBRARY_ORIGIN) \
1536           -Xlinker -rpath -Xlinker @loader_path, \
1537       LDFLAGS_SUFFIX_macosx := -lawt -losxapp -lawt_lwawt \
1538           -framework Cocoa \
1539           -framework Carbon \
1540           -framework ApplicationServices \
1541           -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
1542           -framework JavaNativeFoundation \
1543           -framework JavaRuntimeSupport \
1544           -ljava -ljvm, \
1545       OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libosxui, \
1546       DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
1547 
1548   BUILD_LIBRARIES += $(BUILD_LIBOSXUI)
1549 
1550   $(BUILD_LIBOSXUI): $(BUILD_LIBAWT)
1551 
1552   $(BUILD_LIBOSXUI): $(BUILD_LIBOSXAPP)
1553 
1554   $(BUILD_LIBOSXUI): $(BUILD_LIBAWT_LWAWT)
1555 
1556   #$(BUILD_LIBOSXUI): $(BUILD_LIBJAVA)
1557 
1558 endif