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