1 #
   2 # Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
   3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4 #
   5 # This code is free software; you can redistribute it and/or modify it
   6 # under the terms of the GNU General Public License version 2 only, as
   7 # published by the Free Software Foundation.  Oracle designates this
   8 # particular file as subject to the "Classpath" exception as provided
   9 # by Oracle in the LICENSE file that accompanied this code.
  10 #
  11 # This code is distributed in the hope that it will be useful, but WITHOUT
  12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14 # version 2 for more details (a copy is included in the LICENSE file that
  15 # accompanied this code).
  16 #
  17 # You should have received a copy of the GNU General Public License version
  18 # 2 along with this work; if not, write to the Free Software Foundation,
  19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20 #
  21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22 # or visit www.oracle.com if you need additional information or have any
  23 # questions.
  24 #
  25 
  26 # Openwin is defined on Solaris.
  27 OPENWIN_LIB := $(OPENWIN_HOME)/lib
  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)/makefiles/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 LIBAWT_CFLAGS += -D__MEDIALIB_OLD_NAMES -D__USE_J2D_NAMES \
 235     $(X_CFLAGS) \
 236     $(foreach dir, $(LIBAWT_DIRS), -I$(dir))
 237 
 238 LIBAWT_FILES := \
 239     gifdecoder.c \
 240     imageInitIDs.c \
 241     img_globals.c \
 242     SurfaceData.c \
 243     Region.c \
 244     BufImgSurfaceData.c \
 245     Disposer.c \
 246     Trace.c \
 247     GraphicsPrimitiveMgr.c \
 248     Blit.c \
 249     BlitBg.c \
 250     ScaledBlit.c \
 251     FillRect.c \
 252     FillSpans.c \
 253     FillParallelogram.c \
 254     DrawParallelogram.c \
 255     DrawLine.c \
 256     DrawRect.c \
 257     DrawPolygons.c \
 258     DrawPath.c \
 259     FillPath.c \
 260     ProcessPath.c \
 261     MaskBlit.c \
 262     MaskFill.c \
 263     TransformHelper.c \
 264     AlphaMath.c \
 265     AlphaMacros.c \
 266     AnyByte.c \
 267     ByteBinary1Bit.c \
 268     ByteBinary2Bit.c \
 269     ByteBinary4Bit.c \
 270     ByteIndexed.c \
 271     ByteGray.c \
 272     Index8Gray.c \
 273     Index12Gray.c \
 274     AnyShort.c \
 275     Ushort555Rgb.c \
 276     Ushort565Rgb.c \
 277     Ushort4444Argb.c \
 278     Ushort555Rgbx.c \
 279     UshortGray.c \
 280     UshortIndexed.c \
 281     Any3Byte.c \
 282     ThreeByteBgr.c \
 283     AnyInt.c \
 284     IntArgb.c \
 285     IntArgbPre.c \
 286     IntArgbBm.c \
 287     IntRgb.c \
 288     IntBgr.c \
 289     IntRgbx.c \
 290     Any4Byte.c \
 291     FourByteAbgr.c \
 292     FourByteAbgrPre.c \
 293     BufferedMaskBlit.c \
 294     BufferedRenderPipe.c \
 295     ShapeSpanIterator.c \
 296     SpanClipRenderer.c \
 297     awt_ImageRep.c \
 298     awt_ImagingLib.c \
 299     awt_Mlib.c \
 300     awt_parseImage.c \
 301     DataBufferNative.c \
 302     dither.c \
 303     debug_assert.c \
 304     debug_mem.c \
 305     debug_trace.c \
 306     debug_util.c
 307 
 308 ifneq (, $(filter $(OPENJDK_TARGET_OS), solaris linux aix))
 309   LIBAWT_FILES += awt_LoadLibrary.c initIDs.c img_colors.c
 310 endif
 311 
 312 ifeq ($(OPENJDK_TARGET_OS), macosx)
 313   LIBAWT_FILES += awt_LoadLibrary.c img_colors.c
 314   LIBAWT_CFLAGS += -F/System/Library/Frameworks/JavaVM.framework/Frameworks
 315 endif
 316 
 317 ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH), solaris-sparc)
 318   LIBAWT_CFLAGS += -DMLIB_ADD_SUFF
 319   LIBAWT_CFLAGS += -xarch=sparcvis
 320   LIBAWT_CFLAGS += $(JDK_TOPDIR)/src/solaris/native/sun/awt/medialib/vis_$(OPENJDK_TARGET_CPU_BITS).il
 321   LIBAWT_CFLAGS += \
 322       -I$(JDK_TOPDIR)/src/solaris/native/sun/awt/medialib \
 323       -I$(JDK_TOPDIR)/src/solaris/native/sun/java2d/medialib \
 324       -I$(JDK_TOPDIR)/src/solaris/native/sun/java2d/loops
 325 
 326   LIBAWT_DIRS += $(JDK_TOPDIR)/src/solaris/native/sun/awt/medialib \
 327       $(JDK_TOPDIR)/src/solaris/native/sun/java2d/loops
 328 
 329   LIBAWT_FILES += \
 330       vis_FuncArray.c \
 331       java2d_Mlib.c \
 332       mlib_ImageCreate.c \
 333       mlib_ImageZoom_NN.c \
 334       mlib_ImageCopy_Bit.c \
 335       mlib_sys.c \
 336       mlib_v_ImageClear.c \
 337       mlib_v_ImageClear_f.c \
 338       mlib_v_ImageConstXor.c \
 339       mlib_v_ImageCopy.c \
 340       mlib_v_ImageCopy_f.c \
 341       mlib_v_ImageXor.c \
 342       mlib_v_ImageZoom_NN_f.c \
 343       vis_Interp.c \
 344       vis_AlphaMacros.c \
 345       vis_AlphaMaskBlit.c \
 346       vis_AlphaMaskFill.c \
 347       vis_ByteGray.c \
 348       vis_ByteGray_FromRgb.c \
 349       vis_ByteGray_Mask.c \
 350       vis_ByteIndexed.c \
 351       vis_DrawLine.c \
 352       vis_FourByteAbgr.c \
 353       vis_IntArgb.c \
 354       vis_IntArgbPre.c \
 355       vis_IntArgbPre_Mask.c \
 356       vis_IntBgr.c \
 357       vis_IntRgb.c \
 358       vis_IntRgbx.c \
 359       vis_SrcMaskFill.c \
 360       vis_SrcOverMaskBlit.c \
 361       vis_SrcOverMaskFill.c \
 362       vis_FourByteAbgrPre.c \
 363       vis_GlyphList.c \
 364       vis_GlyphListXor.c \
 365       vis_IntArgbBm.c \
 366       vis_ThreeByteBgr.c \
 367       vis_UshortGray.c \
 368       vis_UshortGray_FromRgb.c \
 369       vis_XorBlit.c \
 370       mlib_v_ImageCopy_blk.s
 371 
 372   ifeq ($(OPENJDK_TARGET_CPU), sparcv9)
 373     LIBAWT_ASFLAGS = -P -xarch=v9a
 374   else
 375     LIBAWT_ASFLAGS = -P -xarch=v8plusa
 376   endif
 377 else
 378   LIBAWT_FILES += MapAccelFunc.c
 379 endif
 380 
 381 ifneq ($(OPENJDK_TARGET_OS), solaris)
 382   LIBAWT_CFLAGS += -DMLIB_NO_LIBSUNMATH
 383 endif
 384 
 385 LIBAWT_LANG := C
 386 
 387 ifeq ($(OPENJDK_TARGET_OS), windows)
 388   LIBAWT_FILES += AccelGlyphCache.c \
 389       ShaderList.c \
 390       CmdIDList.cpp \
 391       Hashtable.cpp \
 392       GDIHashtable.cpp \
 393       Devices.cpp \
 394       ObjectList.cpp \
 395       GDIBlitLoops.cpp \
 396       GDIRenderer.cpp \
 397       GDIWindowSurfaceData.cpp \
 398       WindowsFlags.cpp \
 399       WPrinterJob.cpp \
 400       awt_%.cpp \
 401       D3DBlitLoops.cpp \
 402       D3DBufImgOps.cpp \
 403       D3DContext.cpp \
 404       D3DGlyphCache.cpp \
 405       D3DGraphicsDevice.cpp \
 406       D3DMaskBlit.cpp \
 407       D3DMaskCache.cpp \
 408       D3DMaskFill.cpp \
 409       D3DPipelineManager.cpp \
 410       D3DPaints.cpp \
 411       D3DRenderer.cpp \
 412       D3DRenderQueue.cpp \
 413       D3DResourceManager.cpp \
 414       D3DSurfaceData.cpp \
 415       D3DTextRenderer.cpp \
 416       D3DVertexCacher.cpp \
 417       ShellFolder2.cpp \
 418       ThemeReader.cpp \
 419       ComCtl32Util.cpp \
 420       DllUtil.cpp \
 421       initIDs.cpp \
 422       MouseInfo.cpp \
 423       rect.c \
 424       OGLBlitLoops.c \
 425       OGLBufImgOps.c \
 426       OGLContext.c \
 427       OGLFuncs.c \
 428       OGLMaskBlit.c \
 429       OGLMaskFill.c \
 430       OGLPaints.c \
 431       OGLRenderQueue.c \
 432       OGLRenderer.c \
 433       OGLSurfaceData.c \
 434       OGLTextRenderer.c \
 435       OGLVertexCache.c \
 436       WGLGraphicsConfig.c \
 437       WGLSurfaceData.c
 438 
 439   LIBAWT_LANG := C++
 440   LIBAWT_CFLAGS += -EHsc -DUNICODE -D_UNICODE
 441   ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
 442     LIBAWT_CFLAGS += -DMLIB_OS64BIT
 443   endif
 444 
 445   ifdef OPENJDK
 446     LIBAWT_RC_FLAGS := -i "$(JDK_TOPDIR)/src/windows/resource/icons"
 447   else
 448     LIBAWT_RC_FLAGS := -i "$(JDK_TOPDIR)/src/closed/windows/native/sun/windows"
 449   endif
 450   LIBAWT_VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/native/sun/windows/awt.rc
 451 endif
 452 
 453 ifeq ($(MILESTONE), internal)
 454   LIBAWT_CFLAGS += -DINTERNAL_BUILD
 455 endif
 456 
 457 LIBAWT_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libawt/mapfile-vers
 458 ifeq ($(OPENJDK_TARGET_OS), linux)
 459   LIBAWT_MAPFILE :=
 460 endif
 461 
 462 $(eval $(call SetupNativeCompilation,BUILD_LIBAWT, \
 463     LIBRARY := awt, \
 464     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
 465     SRC := $(LIBAWT_DIRS), \
 466     INCLUDE_FILES := $(LIBAWT_FILES), \
 467     LANG := $(LIBAWT_LANG), \
 468     OPTIMIZATION := LOW, \
 469     CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_CFLAGS), \
 470     ASFLAGS := $(LIBAWT_ASFLAGS), \
 471     MAPFILE := $(LIBAWT_MAPFILE), \
 472     LDFLAGS := $(LDFLAGS_JDKLIB) $(call SET_SHARED_LIBRARY_ORIGIN), \
 473     LDFLAGS_solaris := -R/usr/dt/lib$(OPENJDK_TARGET_CPU_ISADIR) -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR), \
 474     LDFLAGS_SUFFIX_linux := -ljvm $(LIBM) $(LIBDL) -ljava, \
 475     LDFLAGS_SUFFIX_solaris := -ljvm $(LIBM) $(LIBDL) -ljava -lc, \
 476     LDFLAGS_SUFFIX_aix :=-ljvm $(LIBM) $(LIBDL) -ljava -lm,\
 477     LDFLAGS_SUFFIX_macosx := -lmlib_image -ljvm $(LIBM) \
 478         -framework Cocoa \
 479         -framework OpenGL \
 480         -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
 481         -framework JavaNativeFoundation \
 482         -framework JavaRuntimeSupport \
 483         -framework ApplicationServices \
 484         -framework AudioToolbox \
 485         -ljava, \
 486     LDFLAGS_SUFFIX_windows := kernel32.lib user32.lib gdi32.lib winspool.lib \
 487         imm32.lib ole32.lib uuid.lib shell32.lib \
 488         comdlg32.lib winmm.lib comctl32.lib shlwapi.lib \
 489         delayimp.lib jvm.lib $(WIN_JAVA_LIB) advapi32.lib \
 490         -DELAYLOAD:user32.dll -DELAYLOAD:gdi32.dll \
 491         -DELAYLOAD:shell32.dll -DELAYLOAD:winmm.dll \
 492         -DELAYLOAD:winspool.drv -DELAYLOAD:imm32.dll \
 493         -DELAYLOAD:ole32.dll -DELAYLOAD:comdlg32.dll \
 494         -DELAYLOAD:comctl32.dll -DELAYLOAD:shlwapi.dll, \
 495     VERSIONINFO_RESOURCE := $(LIBAWT_VERSIONINFO_RESOURCE), \
 496     RC_FLAGS := $(RC_FLAGS) $(LIBAWT_RC_FLAGS) \
 497         -D "JDK_FNAME=awt.dll" \
 498         -D "JDK_INTERNAL_NAME=awt" \
 499         -D "JDK_FTYPE=0x2L", \
 500     OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libawt, \
 501     DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
 502 
 503 $(BUILD_LIBAWT): $(BUILD_LIBJAVA)
 504 
 505 ifeq ($(OPENJDK_TARGET_OS), macosx)
 506   $(BUILD_LIBAWT): $(BUILD_LIBMLIB_IMAGE)
 507 endif
 508 
 509 BUILD_LIBRARIES += $(BUILD_LIBAWT)
 510 
 511 ##########################################################################################
 512 
 513 ifeq ($(findstring $(OPENJDK_TARGET_OS),windows macosx),)
 514   ifndef BUILD_HEADLESS_ONLY
 515 
 516     LIBAWT_XAWT_DIRS := \
 517         $(JDK_TOPDIR)/src/share/native/sun/awt/debug \
 518         $(JDK_TOPDIR)/src/share/native/sun/awt/utility \
 519         $(JDK_TOPDIR)/src/share/native/sun/font \
 520         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/font \
 521         $(JDK_TOPDIR)/src/share/native/sun/java2d/opengl \
 522         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt \
 523         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/opengl \
 524         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/x11 \
 525         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/xawt \
 526 
 527     LIBAWT_XAWT_CFLAGS := -DXAWT -DXAWT_HACK \
 528         -DPACKAGE_PATH=\"$(PACKAGE_PATH)\" \
 529         $(CUPS_CFLAGS) \
 530         $(foreach dir, $(LIBAWT_XAWT_DIRS), -I$(dir)) \
 531         -I$(JDK_TOPDIR)/src/share/native/sun/java2d \
 532         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d \
 533         -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \
 534         -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \
 535         -I$(JDK_TOPDIR)/src/share/native/sun/awt/image \
 536         -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \
 537         -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \
 538         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/jdga
 539 
 540     ifeq ($(OPENJDK_TARGET_OS), solaris)
 541       LIBAWT_XAWT_CFLAGS += -DFUNCPROTO=15
 542     endif
 543 
 544     ifeq ($(OPENJDK_TARGET_OS), linux)
 545       ifndef OPENJDK
 546         include $(JDK_TOPDIR)/make/closed/xawt.gmk
 547       endif
 548 
 549       ifeq ($(DISABLE_XRENDER), true)
 550         LIBAWT_XAWT_CFLAGS += -DDISABLE_XRENDER_BY_DEFAULT=true
 551       endif
 552     endif
 553 
 554     ifeq ($(MILESTONE), internal)
 555       LIBAWT_XAWT_CFLAGS += -DINTERNAL_BUILD
 556     endif
 557 
 558     LIBAWT_XAWT_FILES := \
 559         XlibWrapper.c \
 560         XWindow.c \
 561         XToolkit.c \
 562         X11Color.c \
 563         X11SurfaceData.c \
 564         awt_GraphicsEnv.c \
 565         awt_InputMethod.c \
 566         robot_common.c \
 567         awt_Robot.c \
 568         list.c \
 569         multiVis.c \
 570         initIDs.c \
 571         awt_util.c \
 572         awt_Desktop.c \
 573         awt_UNIXToolkit.c \
 574         X11FontScaler_md.c \
 575         X11TextRenderer_md.c \
 576         fontpath.c \
 577         awt_Insets.c \
 578         awt_Event.c \
 579         X11Renderer.c \
 580         X11PMBlitLoops.c \
 581         OGLBlitLoops.c \
 582         OGLBufImgOps.c \
 583         OGLContext.c \
 584         OGLFuncs.c \
 585         OGLMaskBlit.c \
 586         OGLMaskFill.c \
 587         OGLPaints.c \
 588         OGLRenderQueue.c \
 589         OGLRenderer.c \
 590         OGLSurfaceData.c \
 591         OGLTextRenderer.c \
 592         OGLVertexCache.c \
 593         GLXGraphicsConfig.c \
 594         GLXSurfaceData.c \
 595         AccelGlyphCache.c \
 596         awt_Font.c \
 597         multi_font.c \
 598         awt_AWTEvent.c \
 599         awt_DrawingSurface.c \
 600         jawt.c \
 601         CUPSfuncs.c \
 602         debug_assert.c \
 603         debug_mem.c \
 604         debug_trace.c \
 605         debug_util.c \
 606         awt_Plugin.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)/makefiles/mapfiles/libawt_xawt/mapfile-vers, \
 633         LDFLAGS := $(LDFLAGS_JDKLIB) \
 634             $(X_LIBS) $(LIBAWT_XAWT_LDFLAGS), \
 635         LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN) \
 636             $(call SET_SHARED_LIBRARY_ORIGIN,/..), \
 637         LDFLAGS_solaris := -L$(OPENWIN_HOME)/sfw/lib$(OPENJDK_TARGET_CPU_ISADIR) \
 638             -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) \
 639             -R$(OPENWIN_HOME)/sfw/lib$(OPENJDK_TARGET_CPU_ISADIR) \
 640             -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) \
 641             -R/usr/dt/lib$(OPENJDK_TARGET_CPU_ISADIR) \
 642             $(call SET_SHARED_LIBRARY_ORIGIN) \
 643             $(call SET_SHARED_LIBRARY_ORIGIN,/..), \
 644         LDFLAGS_SUFFIX := $(LIBAWT_XAWT_LDFLAGS_SUFFIX), \
 645         VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
 646         RC_FLAGS := $(RC_FLAGS) \
 647             -D "JDK_FNAME=xawt.dll" \
 648             -D "JDK_INTERNAL_NAME=xawt" \
 649             -D "JDK_FTYPE=0x2L", \
 650         OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libawt_xawt, \
 651         DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
 652 
 653     $(BUILD_LIBAWT_XAWT): $(BUILD_LIBJAVA)
 654 
 655     $(BUILD_LIBAWT_XAWT): $(BUILD_LIBAWT)
 656 
 657     BUILD_LIBRARIES += $(BUILD_LIBAWT_XAWT)
 658 
 659   endif
 660 endif
 661 
 662 ##########################################################################################
 663 
 664 # TODO: Update awt lib path when awt is converted
 665 $(eval $(call SetupNativeCompilation,BUILD_LIBLCMS, \
 666     LIBRARY := lcms, \
 667     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
 668     SRC := $(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms, \
 669     LANG := C, \
 670     OPTIMIZATION := HIGHEST, \
 671     CFLAGS := $(filter-out -xc99=%none, $(CFLAGS_JDKLIB)) \
 672         $(SHARED_LIBRARY_FLAGS) \
 673         -I$(JDK_TOPDIR)/src/share/native/sun/java2d \
 674         -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug, \
 675     CFLAGS_solaris := -xc99=no_lib, \
 676     CFLAGS_windows := -DCMS_IS_WINDOWS_, \
 677     MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/liblcms/mapfile-vers, \
 678     LDFLAGS := $(LDFLAGS_JDKLIB) \
 679         $(call SET_SHARED_LIBRARY_ORIGIN), \
 680     LDFLAGS_solaris := /usr/lib$(OPENJDK_TARGET_CPU_ISADIR)/libm.so.2, \
 681     LDFLAGS_windows := $(WIN_AWT_LIB) $(WIN_JAVA_LIB), \
 682     LDFLAGS_SUFFIX_solaris := -lawt -ljava -ljvm -lc, \
 683     LDFLAGS_SUFFIX_macosx := $(LIBM) -lawt -ljava -ljvm, \
 684     LDFLAGS_SUFFIX_linux := -lm -lawt -ljava -ljvm, \
 685     LDFLAGS_SUFFIX_aix := -lm -lawt -ljava -ljvm,\
 686     VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
 687     RC_FLAGS := $(RC_FLAGS) \
 688         -D "JDK_FNAME=lcms.dll" \
 689         -D "JDK_INTERNAL_NAME=lcms" \
 690         -D "JDK_FTYPE=0x2L", \
 691     OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/liblcms, \
 692     DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
 693 
 694 BUILD_LIBRARIES += $(BUILD_LIBLCMS)
 695 
 696 $(BUILD_LIBLCMS): $(BUILD_LIBAWT)
 697 
 698 ##########################################################################################
 699 
 700 ifdef OPENJDK
 701   BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers
 702 else
 703   BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers-closed
 704   BUILD_LIBJPEG_CLOSED_SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
 705   BUILD_LIBJPEG_CLOSED_INCLUDES := -I$(BUILD_LIBJPEG_CLOSED_SRC)
 706 endif
 707 
 708 BUILD_LIBJPEG_REORDER :=
 709 ifeq ($(OPENJDK_TARGET_OS), solaris)
 710   ifneq ($(OPENJDK_TARGET_CPU), x86_64)
 711     BUILD_LIBJPEG_REORDER := $(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
 712   endif
 713 endif
 714 
 715 # Suppress gcc warnings like "variable might be clobbered by 'longjmp'
 716 # or 'vfork'": this warning indicates that some variable is placed to
 717 # a register by optimized compiler and it's value might be lost on longjmp().
 718 # Recommended way to avoid such warning is to declare the variable as
 719 # volatile to prevent the optimization. However, this approach does not
 720 # work because we have to declare all variables as volatile in result.
 721 #ifndef CROSS_COMPILE_ARCH
 722 #  CC_43_OR_NEWER := \
 723 #      $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \
 724 #          \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) )
 725 #  ifeq ($(CC_43_OR_NEWER), 1)
 726 #    BUILD_LIBJPEG_CFLAGS_linux += -Wno-clobbered
 727 #  endif
 728 #endif
 729 
 730 $(eval $(call SetupNativeCompilation,BUILD_LIBJPEG, \
 731     LIBRARY := jpeg, \
 732     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
 733     SRC := $(BUILD_LIBJPEG_CLOSED_SRC) \
 734         $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg, \
 735     LANG := C, \
 736     OPTIMIZATION := HIGHEST, \
 737     CFLAGS := $(CFLAGS_JDKLIB) \
 738         $(BUILD_LIBJPEG_CLOSED_INCLUDES) \
 739         -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg, \
 740     MAPFILE := $(BUILD_LIBJPEG_MAPFILE), \
 741     LDFLAGS := $(LDFLAGS_JDKLIB) \
 742         $(call SET_SHARED_LIBRARY_ORIGIN), \
 743     LDFLAGS_windows := $(WIN_JAVA_LIB) jvm.lib, \
 744     LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \
 745     VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
 746     RC_FLAGS := $(RC_FLAGS) \
 747         -D "JDK_FNAME=jpeg.dll" \
 748         -D "JDK_INTERNAL_NAME=jpeg" \
 749         -D "JDK_FTYPE=0x2L", \
 750     REORDER := $(BUILD_LIBJPEG_REORDER), \
 751     OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjpeg, \
 752     DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
 753 
 754 $(BUILD_LIBJPEG): $(BUILD_LIBJAVA)
 755 
 756 BUILD_LIBRARIES += $(BUILD_LIBJPEG)
 757 
 758 ##########################################################################################
 759 
 760 ifndef OPENJDK
 761   FONT_HEADERS := -I$(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k
 762   BUILD_LIBFONTMANAGER_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libfontmanager/mapfile-vers
 763   LIBFONTMANAGER_EXCLUDE_FILES += freetypeScaler.c
 764 else
 765   FONT_HEADERS := $(FREETYPE_CFLAGS)
 766   BUILD_LIBFONTMANAGER_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libfontmanager/mapfile-vers.openjdk
 767   BUILD_LIBFONTMANAGER_FONTLIB := $(FREETYPE_LIBS)
 768 endif
 769 
 770 LIBFONTMANAGER_OPTIMIZATION := HIGH
 771 
 772 ifeq ($(OPENJDK_TARGET_OS), windows)
 773   LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
 774       X11TextRenderer.c
 775   LIBFONTMANAGER_OPTIMIZATION := HIGHEST
 776 else ifeq ($(OPENJDK_TARGET_OS), macosx)
 777   LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
 778       X11TextRenderer.c \
 779       fontpath.c \
 780       lcdglyph.c
 781 else
 782   LIBFONTMANAGER_EXCLUDE_FILES += fontpath.c \
 783       lcdglyph.c
 784 endif
 785 
 786 BUILD_LIBFONTMANAGER_CFLAGS_COMMON := \
 787     $(X_CFLAGS) \
 788     -DLE_STANDALONE -DHEADLESS \
 789     $(FONT_HEADERS) \
 790     -I$(JDK_TOPDIR)/src/share/native/sun/font \
 791     -I$(JDK_TOPDIR)/src/share/native/sun/font/layout \
 792     -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \
 793     -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt \
 794     -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \
 795     -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \
 796     -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \
 797     -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d \
 798     -I$(JDK_TOPDIR)/src/share/native/sun/java2d
 799 
 800 # Turn off aliasing with GCC for ExtensionSubtables.cpp
 801 ifeq ($(OPENJDK_TARGET_OS), linux)
 802   BUILD_LIBFONTMANAGER_ExtensionSubtables.cpp_CXXFLAGS := -fno-strict-aliasing
 803 endif
 804 
 805 $(eval $(call SetupNativeCompilation,BUILD_LIBFONTMANAGER, \
 806     LIBRARY := fontmanager, \
 807     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
 808     SRC := $(JDK_TOPDIR)/src/share/native/sun/font \
 809         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/font, \
 810     EXCLUDE_FILES := $(LIBFONTMANAGER_EXCLUDE_FILES) \
 811         AccelGlyphCache.c, \
 812     LANG := C++, \
 813     CFLAGS := $(CFLAGS_JDKLIB) $(BUILD_LIBFONTMANAGER_CFLAGS_COMMON), \
 814     CXXFLAGS := $(CXXFLAGS_JDKLIB) $(BUILD_LIBFONTMANAGER_CFLAGS_COMMON), \
 815     OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \
 816     CFLAGS_windows = -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/windows \
 817         -DCC_NOEX, \
 818     MAPFILE := $(BUILD_LIBFONTMANAGER_MAPFILE), \
 819     LDFLAGS := $(subst -Xlinker -z -Xlinker defs,,$(LDFLAGS_JDKLIB)) $(LDFLAGS_CXX_JDK) \
 820         $(call SET_SHARED_LIBRARY_ORIGIN), \
 821     LDFLAGS_SUFFIX := $(BUILD_LIBFONTMANAGER_FONTLIB), \
 822     LDFLAGS_SUFFIX_linux := -lawt $(LIBM) $(LIBCXX) -ljava -ljvm -lc, \
 823     LDFLAGS_SUFFIX_solaris := -lawt -lawt_xawt -lc $(LIBM) $(LIBCXX) -ljava -ljvm, \
 824     LDFLAGS_SUFFIX_aix := -lawt -lawt_xawt $(LIBM) $(LIBCXX) -ljava -ljvm,\
 825     LDFLAGS_SUFFIX_macosx := -lawt $(LIBM) $(LIBCXX) -undefined dynamic_lookup \
 826         -ljava -ljvm, \
 827     LDFLAGS_SUFFIX_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
 828         $(WIN_AWT_LIB), \
 829     VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
 830     RC_FLAGS := $(RC_FLAGS) \
 831         -D "JDK_FNAME=fontmanager.dll" \
 832         -D "JDK_INTERNAL_NAME=fontmanager" \
 833         -D "JDK_FTYPE=0x2L", \
 834     OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libfontmanager, \
 835     DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
 836 
 837 $(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT)
 838 
 839 ifneq (, $(findstring $(OPENJDK_TARGET_OS), solaris aix))
 840   $(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT_XAWT)
 841 endif
 842 
 843 BUILD_LIBRARIES += $(BUILD_LIBFONTMANAGER)
 844 
 845 ##########################################################################################
 846 
 847 ifndef OPENJDK
 848 
 849   #ifeq ($(OPENJDK_TARGET_OS), linux)
 850   #  ifeq ("$(CC_VER_MAJOR)", "3")
 851   #    OTHER_LDLIBS += -Wl,-Bstatic -lgcc_eh -Wl,-Bdynamic
 852   #  endif
 853   #endif
 854   #
 855   # The resulting size of the t2k lib file is (at least on linux) dependant on the order of
 856   # the input .o files. Because of this the new build will differ in size to the old build.
 857   BUILD_LIBT2K_CFLAGS_COMMON := -I$(JDK_TOPDIR)/src/share/native/sun/font \
 858       -I$(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k \
 859       -I$(JDK_TOPDIR)/src/closed/share/native/sun/font \
 860       -I$(JDK_TOPDIR)/src/share/share/native/sun/font \
 861       -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/font \
 862       -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \
 863       -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \
 864       -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d \
 865       -I$(JDK_TOPDIR)/src/share/native/sun/java2d
 866 
 867   $(eval $(call SetupNativeCompilation,BUILD_LIBT2K, \
 868       LIBRARY := t2k, \
 869       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
 870       SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/font \
 871           $(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k \
 872           $(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k/ttHints, \
 873       EXCLUDE_FILES := orion.c, \
 874       LANG := C++, \
 875       OPTIMIZATION := HIGH, \
 876       CFLAGS := $(CFLAGS_JDKLIB) $(BUILD_LIBT2K_CFLAGS_COMMON), \
 877       CXXFLAGS := $(CXXFLAGS_JDKLIB) $(BUILD_LIBT2K_CFLAGS_COMMON), \
 878       CFLAGS_windows = -DCC_NOEX, \
 879       CXXFLAGS_windows = -DCC_NOEX, \
 880       MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libt2k/mapfile-vers, \
 881       LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \
 882           $(call SET_SHARED_LIBRARY_ORIGIN), \
 883       LDFLAGS_windows := user32.lib $(JDK_OUTPUTDIR)/objs/libfontmanager/fontmanager.lib, \
 884       LDFLAGS_SUFFIX_posix := $(LIBM) $(LIBCXX) -lfontmanager -ljava -ljvm -lc, \
 885       LDFLAGS_SUFFIX_solaris := -lawt -lawt_xawt, \
 886       VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
 887       RC_FLAGS := $(RC_FLAGS) \
 888           -D "JDK_FNAME=t2k.dll" \
 889           -D "JDK_INTERNAL_NAME=t2k" \
 890           -D "JDK_FTYPE=0x2L", \
 891       OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libt2k, \
 892       DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
 893 
 894   # t2k is linked against fontmanager
 895   $(BUILD_LIBT2K): $(BUILD_LIBFONTMANAGER)
 896 
 897   BUILD_LIBRARIES += $(BUILD_LIBT2K)
 898 endif
 899 
 900 ##########################################################################################
 901 
 902 ifeq ($(OPENJDK_TARGET_OS), windows)
 903   ifeq ($(OPENJDK_TARGET_CPU), x86)
 904     KERNEL32_LIB := kernel32.lib
 905   endif
 906   $(eval $(call SetupNativeCompilation,BUILD_LIBJAWT, \
 907       LIBRARY := jawt, \
 908       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
 909       SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/windows, \
 910       INCLUDE_FILES := jawt.cpp, \
 911       LANG := C++, \
 912       OPTIMIZATION := LOW, \
 913       CFLAGS := $(CXXFLAGS_JDKLIB) \
 914           -EHsc -DUNICODE -D_UNICODE \
 915           -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/windows \
 916           -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \
 917           -I$(JDK_TOPDIR)/src/share/native/sun/java2d \
 918           -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \
 919           -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/windows, \
 920       LDFLAGS := $(LDFLAGS_JDKLIB) $(KERNEL32_LIB) $(LDFLAGS_CXX_JDK) \
 921           advapi32.lib $(WIN_AWT_LIB), \
 922       LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \
 923       VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
 924       RC_FLAGS := $(RC_FLAGS) \
 925           -D "JDK_FNAME=jawt.dll" \
 926           -D "JDK_INTERNAL_NAME=jawt" \
 927           -D "JDK_FTYPE=0x2L", \
 928       OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjawt, \
 929       DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
 930 
 931   $(BUILD_LIBJAWT): $(BUILD_LIBAWT)
 932 
 933   $(JDK_OUTPUTDIR)/lib/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX): $(BUILD_LIBJAWT)
 934         $(ECHO) Copying $(@F)
 935         $(CP) $(JDK_OUTPUTDIR)/objs/libjawt/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX) $@
 936 
 937   BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/lib/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX)
 938 
 939 else # OPENJDK_TARGET_OS not windows
 940 
 941   ifeq ($(OPENJDK_TARGET_OS), macosx)
 942     JAWT_FILES := jawt.m
 943     JAWT_LIBS := -lawt_lwawt
 944   else
 945     JAWT_FILES := jawt.c
 946     JAWT_LIBS :=
 947     ifneq ($(OPENJDK_TARGET_OS), solaris)
 948       JAWT_LIBS += -lawt
 949     endif
 950     ifndef BUILD_HEADLESS_ONLY
 951       JAWT_LIBS += -lawt_xawt
 952     else
 953       JAWT_LIBS += -lawt_headless
 954       HEADLESS_CFLAG += -DHEADLESS
 955     endif
 956   endif
 957 
 958   $(eval $(call SetupNativeCompilation,BUILD_LIBJAWT, \
 959       LIBRARY := jawt, \
 960       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
 961       SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt \
 962           $(JDK_TOPDIR)/src/macosx/native/sun/awt, \
 963       INCLUDE_FILES := $(JAWT_FILES), \
 964       LANG := C, \
 965       OPTIMIZATION := LOW, \
 966       CFLAGS := $(CFLAGS_JDKLIB), \
 967       CFLAGS_linux := $(HEADLESS_CFLAG), \
 968       CFLAGS_macosx := -I$(JDK_TOPDIR)/src/solaris/native/sun/awt, \
 969       MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjawt/mapfile-vers, \
 970       LDFLAGS := $(LDFLAGS_JDKLIB) \
 971           $(call SET_SHARED_LIBRARY_ORIGIN), \
 972       LDFLAGS_solaris := -L$(OPENWIN_HOME)/sfw/lib$(OPENJDK_TARGET_CPU_ISADIR) -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR), \
 973       LDFLAGS_SUFFIX_linux := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX), \
 974       LDFLAGS_SUFFIX_aix := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX),\
 975       LDFLAGS_SUFFIX_solaris := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX) -lXrender, \
 976       LDFLAGS_SUFFIX_macosx := -Xlinker -rpath -Xlinker @loader_path $(JAWT_LIBS) \
 977           -framework Cocoa $(LDFLAGS_JDKLIB_SUFFIX), \
 978       OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjawt, \
 979       DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
 980 
 981   ifndef BUILD_HEADLESS_ONLY
 982     $(BUILD_LIBJAWT): $(BUILD_LIBAWT_XAWT)
 983   else
 984     $(BUILD_LIBJAWT): $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)awt_headless$(SHARED_LIBRARY_SUFFIX)
 985   endif
 986 
 987   ifeq ($(OPENJDK_TARGET_OS), macosx)
 988     $(BUILD_LIBJAWT): $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)awt_lwawt$(SHARED_LIBRARY_SUFFIX)
 989   endif
 990 
 991 endif # OPENJDK_TARGET_OS
 992 
 993 BUILD_LIBRARIES += $(BUILD_LIBJAWT)
 994 
 995 ##########################################################################################
 996 
 997 ifndef OPENJDK
 998 
 999   BUILD_LIBKCMS_EXCLUDE_FILES :=
1000   ifeq ($(OPENJDK_TARGET_OS), windows)
1001     BUILD_LIBKCMS_EXCLUDE_FILES += ukcpmgr.c unixmem.c
1002   else
1003     BUILD_LIBKCMS_EXCLUDE_FILES += cmmdll.c registry.c spxffile.c sysinfo.c winmem.c wkcpmgr.c
1004   endif
1005 
1006   BUILD_LIBKCMS_FLAGS := $(CFLAGS_JDKLIB)
1007 
1008   ifeq ($(OPENJDK_TARGET_OS), solaris)
1009     # This particular library uses a feature called PIC_CODE_SMALL (on solaris)
1010     # implement it like this...since it's only used here
1011     BUILD_LIBKCMS_FLAGS := $(patsubst -KPIC, -Kpic, $(BUILD_LIBKCMS_FLAGS))
1012   else ifeq ($(OPENJDK_TARGET_CPU_ARCH), ppc)
1013     BUILD_LIBKCMS_FLAGS := $(patsubst -fPIC, -fpic, $(BUILD_LIBKCMS_FLAGS))
1014   endif
1015 
1016   $(eval $(call SetupNativeCompilation,BUILD_LIBKCMS, \
1017       LIBRARY := kcms, \
1018       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
1019       SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/java2d/cmm/kcms, \
1020       LANG := C, \
1021       EXCLUDE_FILES := $(BUILD_LIBKCMS_EXCLUDE_FILES), \
1022       OPTIMIZATION := LOW, \
1023       CFLAGS := $(BUILD_LIBKCMS_FLAGS) \
1024           -DJAVACMM -DFUT_CALC_EX -DNO_FUT_GCONST, \
1025       CFLAGS_linux := -Wno-missing-field-initializers, \
1026       MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libkcms/mapfile-vers, \
1027       LDFLAGS := $(LDFLAGS_JDKLIB) \
1028           $(call SET_SHARED_LIBRARY_ORIGIN), \
1029       LDFLAGS_SUFFIX_linux := -lc -lpthread, \
1030       LDFLAGS_SUFFIX_solaris := -lc, \
1031       LDFLAGS_SUFFIX_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib version.lib, \
1032       LDFLAGS_SUFFIX_posix := -lm -ljava -ljvm, \
1033       VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/closed/share/native/sun/java2d/cmm/kcms/cmm.rc, \
1034       VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/closed/share/native/sun/java2d/cmm/kcms/cmm.rc, \
1035       RC_FLAGS := $(RC_FLAGS) \
1036           -D "JDK_FNAME=kcms.dll" \
1037           -D "JDK_INTERNAL_NAME=kcms" \
1038           -D "JDK_FTYPE=0x2L", \
1039       OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libkcms, \
1040       DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
1041 
1042   $(BUILD_LIBKCMS): $(BUILD_LIBJAVA)
1043 
1044   BUILD_LIBRARIES += $(BUILD_LIBKCMS)
1045 
1046 endif
1047 
1048 ##########################################################################################
1049 
1050 ifndef OPENJDK
1051   ifeq ($(OPENJDK_TARGET_OS), solaris)
1052     ifneq ($(OPENJDK_TARGET_CPU), x86_64)
1053 
1054       ifeq ($(shell if test "$(OS_VERSION_MAJOR)" -eq 5 -a "$(OS_VERSION_MINOR)" -le 10; then $(ECHO) ok; fi), ok)
1055 
1056         SUNWJDGA_MAPFILE :=
1057         ifeq ($(OPENJDK_TARGET_CPU_ARCH), sparc)
1058           SUNWJDGA_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjdga/mapfile-vers
1059         endif
1060 
1061         $(eval $(call SetupNativeCompilation,BUILD_LIBSUNWJDGA, \
1062             LIBRARY := sunwjdga, \
1063             OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
1064             SRC := $(JDK_TOPDIR)/src/solaris/native/sun/jdga, \
1065             LANG := C, \
1066             OPTIMIZATION := LOW, \
1067             CFLAGS := $(CFLAGS_JDKLIB) \
1068                 -I$(JDK_TOPDIR)/src/share/javavm/export \
1069                 -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/javavm/export \
1070                 -I$(OPENWIN_HOME)/include, \
1071             MAPFILE := $(SUNWJDGA_MAPFILE), \
1072             LDFLAGS := $(LDFLAGS_JDKLIB) \
1073                 $(call SET_SHARED_LIBRARY_ORIGIN), \
1074             LDFLAGS_SUFFIX := -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -ldga -lX11 $(LIBDL) -lc, \
1075             OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsunwjdga, \
1076             DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
1077 
1078         BUILD_LIBRARIES += $(BUILD_LIBSUNWJDGA)
1079 
1080       endif
1081     endif
1082   endif
1083 endif
1084 
1085 ##########################################################################################
1086 
1087 ifeq ($(BUILD_HEADLESS), true)
1088   # Mac and Windows only use the native AWT lib, do not build libawt_headless
1089   ifeq ($(findstring $(OPENJDK_TARGET_OS), windows macosx),)
1090 
1091     LIBAWT_HEADLESS_DIRS := $(JDK_TOPDIR)/src/share/native/sun/font \
1092         $(JDK_TOPDIR)/src/share/native/sun/java2d/opengl \
1093         $(JDK_TOPDIR)/src/solaris/native/sun/font \
1094         $(JDK_TOPDIR)/src/solaris/native/sun/awt \
1095         $(JDK_TOPDIR)/src/solaris/native/sun/java2d/opengl \
1096         $(JDK_TOPDIR)/src/solaris/native/sun/java2d/x11
1097 
1098     ifeq ($(OPENJDK_TARGET_OS), macosx)
1099       LIBAWT_HEADLESS_DIRS += $(JDK_TOPDIR)/src/macosx/native/sun/font
1100     endif
1101 
1102     LIBAWT_HEADLESS_CFLAGS := -DHEADLESS=true \
1103         -DPACKAGE_PATH=\"$(PACKAGE_PATH)\" \
1104         $(CUPS_CFLAGS) \
1105         $(X_CFLAGS) \
1106         -I$(JDK_TOPDIR)/src/share/native/sun/java2d \
1107         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d \
1108         -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \
1109         -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \
1110         -I$(JDK_TOPDIR)/src/share/native/sun/awt/image \
1111         -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \
1112         -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \
1113         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/jdga \
1114         $(foreach dir, $(LIBAWT_HEADLESS_DIRS), -I$(dir))
1115 
1116     ifeq ($(OPENJDK_TARGET_OS), macosx)
1117       LIBAWT_HEADLESS_CFLAGS += \
1118           -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
1119           -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks
1120     endif
1121 
1122     LIBAWT_HEADLESS_FILES := \
1123         awt_Font.c \
1124         HeadlessToolkit.c \
1125         fontpath.c \
1126         VDrawingArea.c \
1127         X11Color.c \
1128         X11Renderer.c \
1129         X11PMBlitLoops.c \
1130         X11SurfaceData.c \
1131         X11FontScaler_md.c \
1132         X11TextRenderer_md.c \
1133         OGLBlitLoops.c \
1134         OGLBufImgOps.c \
1135         OGLContext.c \
1136         OGLFuncs.c \
1137         OGLMaskBlit.c \
1138         OGLMaskFill.c \
1139         OGLPaints.c \
1140         OGLRenderQueue.c \
1141         OGLRenderer.c \
1142         OGLSurfaceData.c \
1143         OGLTextRenderer.c \
1144         OGLVertexCache.c \
1145         GLXGraphicsConfig.c \
1146         GLXSurfaceData.c \
1147         AccelGlyphCache.c \
1148         CUPSfuncs.c
1149 
1150     LIBAWT_HEADLESS_REORDER :=
1151     ifeq ($(OPENJDK_TARGET_OS), solaris)
1152       ifneq ($(OPENJDK_TARGET_CPU), x86_64)
1153         LIBAWT_HEADLESS_REORDER := $(JDK_TOPDIR)/makefiles/mapfiles/libawt_headless/reorder-$(OPENJDK_TARGET_CPU)
1154       endif
1155     endif
1156 
1157     $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_HEADLESS, \
1158         LIBRARY := awt_headless, \
1159         OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
1160         SRC := $(LIBAWT_HEADLESS_DIRS), \
1161         INCLUDE_FILES := $(LIBAWT_HEADLESS_FILES), \
1162         LANG := C, \
1163         OPTIMIZATION := LOW, \
1164         CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_HEADLESS_CFLAGS), \
1165         MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libawt_headless/mapfile-vers, \
1166         LDFLAGS := $(LDFLAGS_JDKLIB) \
1167             $(call SET_SHARED_LIBRARY_ORIGIN), \
1168         LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \
1169         LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/..) \
1170             -R/usr/dt/lib$(OPENJDK_TARGET_CPU_ISADIR) \
1171             -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR), \
1172         LDFLAGS_macosx := $(call SET_SHARED_LIBRARY_ORIGIN)., \
1173         REORDER := $(LIBAWT_HEADLESS_REORDER), \
1174         LDFLAGS_SUFFIX_linux := -ljvm -lawt -lm $(LIBDL) -ljava, \
1175         LDFLAGS_SUFFIX_aix := -ljvm -lawt -ljava,\
1176         LDFLAGS_SUFFIX_solaris := $(LIBDL) -ljvm -lawt -lm -ljava $(LIBCXX) -lc, \
1177         OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libawt_headless, \
1178         DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
1179 
1180     $(BUILD_LIBAWT_HEADLESS): $(BUILD_LIBAWT)
1181 
1182     BUILD_LIBRARIES += $(BUILD_LIBAWT_HEADLESS)
1183 
1184   endif
1185 endif
1186 
1187 ##########################################################################################
1188 
1189 ifndef BUILD_HEADLESS_ONLY
1190   LIBSPLASHSCREEN_DIRS := \
1191     $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg \
1192     $(JDK_TOPDIR)/src/share/native/sun/awt/libpng \
1193     $(JDK_TOPDIR)/src/share/native/sun/awt/splashscreen
1194 
1195   ifeq ($(USE_EXTERNAL_LIBGIF), true)
1196     GIFLIB_LDFLAGS := -lgif
1197   else
1198     LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/sun/awt/giflib
1199     GIFLIB_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/giflib
1200   endif
1201 
1202   ifneq ($(OPENJDK_TARGET_OS), macosx)
1203     LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt/splashscreen
1204   else
1205     LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/macosx/native/sun/awt/splashscreen
1206   endif
1207 
1208   LIBSPLASHSCREEN_CFLAGS := -DSPLASHSCREEN -DPNG_NO_MMX_CODE \
1209       $(foreach dir, $(LIBSPLASHSCREEN_DIRS), -I$(dir))
1210 
1211   ifeq ($(OPENJDK_TARGET_OS), macosx)
1212     LIBSPLASHSCREEN_CFLAGS := -I$(JDK_TOPDIR)/src/macosx/native/sun/awt/splashscreen \
1213         $(LIBSPLASHSCREEN_CFLAGS) \
1214         -F/System/Library/Frameworks/JavaVM.framework/Frameworks
1215     LIBSPLASHSCREEN_CFLAGS += -DWITH_MACOSX
1216     LIBSPLASHSCREEN_CFLAGS += -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp
1217 
1218     LIBSPLASHSCREEN_java_awt_SplashScreen.c_CFLAGS := -x objective-c -O0
1219     LIBSPLASHSCREEN_splashscreen_gfx_impl.c_CFLAGS := -x objective-c -O0
1220     LIBSPLASHSCREEN_splashscreen_gif.c_CFLAGS := -x objective-c -O0
1221     LIBSPLASHSCREEN_splashscreen_impl.c_CFLAGS := -x objective-c -O0
1222     LIBSPLASHSCREEN_splashscreen_jpeg.c_CFLAGS := -x objective-c -O0
1223     LIBSPLASHSCREEN_splashscreen_png.c_CFLAGS := -x objective-c -O0
1224     LIBSPLASHSCREEN_splashscreen_sys.m_CFLAGS := -O0
1225 
1226   else ifeq ($(OPENJDK_TARGET_OS), windows)
1227     LIBSPLASHSCREEN_CFLAGS += -DWITH_WIN32
1228   else ifeq ($(OPENJDK_TARGET_OS), solaris)
1229     LIBSPLASHSCREEN_CFLAGS += -DWITH_X11 -I$(OPENWIN_HOME)/include -I$(OPENWIN_HOME)/include/X11/extensions
1230   else
1231     LIBSPLASHSCREEN_CFLAGS += -DWITH_X11 $(X_CFLAGS)
1232   endif
1233 
1234   LIBSPLASHSCREEN_LDFLAGS_SUFFIX :=
1235 
1236   ifneq ($(USE_EXTERNAL_LIBZ), true)
1237     LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/java/util/zip/zlib-1.2.5
1238     LIBSPLASHSCREEN_CFLAGS += $(ZLIB_CPPFLAGS)
1239   endif
1240 
1241   ifeq ($(OPENJDK_TARGET_OS), macosx)
1242     LIBSPLASHSCREEN_LDFLAGS_SUFFIX += $(LIBM) -lpthread -liconv -losxapp \
1243         -framework ApplicationServices \
1244         -framework Foundation \
1245         -framework Cocoa \
1246         -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
1247         -framework JavaNativeFoundation
1248   else ifeq ($(OPENJDK_TARGET_OS), windows)
1249     LIBSPLASHSCREEN_LDFLAGS_SUFFIX += kernel32.lib user32.lib gdi32.lib delayimp.lib -DELAYLOAD:user32.dll
1250   else ifeq ($(OPENJDK_TARGET_OS), solaris)
1251     # Solaris still uses OPENWIN_LIB ..
1252     LIBSPLASHSCREEN_LDFLAGS_SUFFIX += -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -lX11 -lXext $(LIBM) -lpthread
1253   else  # .. all other Unixes can use X_LIBS
1254     LIBSPLASHSCREEN_LDFLAGS_SUFFIX += $(X_LIBS) -lX11 -lXext $(LIBM) -lpthread
1255   endif
1256 
1257   $(eval $(call SetupNativeCompilation,LIBSPLASHSCREEN, \
1258       LIBRARY := splashscreen, \
1259       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
1260       SRC := $(LIBSPLASHSCREEN_DIRS), \
1261       EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \
1262       LANG := C, \
1263       OPTIMIZATION := LOW, \
1264       CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) $(GIFLIB_CFLAGS), \
1265       MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libsplashscreen/mapfile-vers, \
1266       LDFLAGS := $(LDFLAGS_JDKLIB) \
1267           $(call SET_SHARED_LIBRARY_ORIGIN), \
1268       LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS), \
1269       LDFLAGS_SUFFIX_solaris := -lc, \
1270       VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
1271       RC_FLAGS := $(RC_FLAGS) \
1272           -D "JDK_FNAME=splashscreen.dll" \
1273           -D "JDK_INTERNAL_NAME=splashscreen" \
1274           -D "JDK_FTYPE=0x2L", \
1275       OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsplashscreen, \
1276       DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
1277 
1278   BUILD_LIBRARIES += $(LIBSPLASHSCREEN)
1279 
1280   ifeq ($(OPENJDK_TARGET_OS), macosx)
1281     $(LIBSPLASHSCREEN): $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)osxapp$(SHARED_LIBRARY_SUFFIX)
1282   endif
1283 
1284 endif
1285 
1286 ##########################################################################################
1287 
1288 ifndef OPENJDK
1289 
1290   LIBDCPR_SRC_DIRS := \
1291       $(JDK_TOPDIR)/src/closed/share/native/sun/dc/doe \
1292       $(JDK_TOPDIR)/src/closed/share/native/sun/dc/path \
1293       $(JDK_TOPDIR)/src/closed/share/native/sun/dc/pr \
1294       $(JDK_TOPDIR)/src/closed/share/native/sun/dc/util
1295 
1296   LIBDCPR_CFLAGS := $(foreach dir, $(LIBDCPR_SRC_DIRS), -I$(dir)) \
1297       -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe
1298 
1299   $(eval $(call SetupNativeCompilation,BUILD_LIBDCPR, \
1300       LIBRARY := dcpr, \
1301       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
1302       SRC := $(LIBDCPR_SRC_DIRS), \
1303       LANG := C, \
1304       OPTIMIZATION := LOW, \
1305       CFLAGS := $(CFLAGS_JDKLIB) \
1306           $(LIBDCPR_CFLAGS), \
1307       MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libdcpr/mapfile-vers, \
1308       LDFLAGS := $(LDFLAGS_JDKLIB) \
1309           $(call SET_SHARED_LIBRARY_ORIGIN), \
1310       LDFLAGS_SUFFIX := $(LIBM) $(LDFLAGS_JDKLIB_SUFFIX), \
1311       LDFLAGS_SUFFIX_posix := -lm, \
1312       VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
1313       RC_FLAGS := $(RC_FLAGS) \
1314           -D "JDK_FNAME=dcpr.dll" \
1315           -D "JDK_INTERNAL_NAME=dcpr" \
1316           -D "JDK_FTYPE=0x2L", \
1317       OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libdcpr, \
1318       DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
1319 
1320   $(BUILD_LIBDCPR): $(BUILD_LIBJAVA)
1321 
1322   BUILD_LIBRARIES += $(BUILD_LIBDCPR)
1323 
1324 endif
1325 
1326 ##########################################################################################
1327 
1328 ifeq ($(OPENJDK_TARGET_OS), macosx)
1329 
1330   LIBAWT_LWAWT_FILES := \
1331       awt.m \
1332       ApplicationDelegate.m \
1333       CFRetainedResource.m \
1334       CGLGraphicsConfig.m \
1335       CGLSurfaceData.m \
1336       CGLLayer.m \
1337       CGraphicsConfig.m \
1338       CGraphicsDevice.m \
1339       CGraphicsEnv.m \
1340       CCharToGlyphMapper.m \
1341       CSystemColors.m \
1342       AWTFont.m \
1343       CGGlyphOutlines.m \
1344       CGGlyphImages.m \
1345       CoreTextSupport.m \
1346       AWTStrike.m \
1347       InitIDs.m \
1348       AWTEvent.m \
1349       AWTView.m \
1350       AWTWindow.m \
1351       AWTSurfaceLayers.m \
1352       CCursorManager.m \
1353       CClipboard.m \
1354       CDataTransferer.m \
1355       CDragSource.m \
1356       CDragSourceContextPeer.m \
1357       CDropTarget.m \
1358       CDropTargetContextPeer.m \
1359       CInputMethod.m \
1360       CDesktopPeer.m \
1361       OSVersion.m \
1362       DnDUtilities.m \
1363       CFileDialog.m \
1364       CImage.m \
1365       CMenu.m \
1366       CMenuBar.m \
1367       CMenuComponent.m \
1368       CMenuItem.m \
1369       CPopupMenu.m \
1370       CRobot.m \
1371       CTrayIcon.m \
1372       CWrapper.m \
1373       JavaAccessibilityAction.m \
1374       JavaAccessibilityUtilities.m \
1375       JavaComponentAccessibility.m \
1376       JavaTextAccessibility.m \
1377       LWCToolkit.m \
1378       GeomUtilities.m \
1379       CPrinterJob.m \
1380       PrintModel.m \
1381       PrinterSurfaceData.m \
1382       PrinterView.m \
1383       QuartzSurfaceData.m \
1384       QuartzRenderer.m \
1385       CTextPipe.m \
1386       ImageSurfaceData.m \
1387       awt_DrawingSurface.m \
1388       \
1389       OGLBlitLoops.c \
1390       OGLBufImgOps.c \
1391       OGLContext.c \
1392       OGLFuncs.c \
1393       OGLMaskBlit.c \
1394       OGLMaskFill.c \
1395       OGLPaints.c \
1396       OGLRenderQueue.c \
1397       OGLRenderer.c \
1398       OGLSurfaceData.c \
1399       OGLTextRenderer.c \
1400       OGLVertexCache.c \
1401       AccelGlyphCache.c \
1402       CUPSfuncs.c
1403 
1404 
1405   LIBAWT_LWAWT_DIRS := \
1406       $(JDK_TOPDIR)/src/macosx/native/sun/awt \
1407       $(JDK_TOPDIR)/src/macosx/native/sun/font \
1408       $(JDK_TOPDIR)/src/macosx/native/sun/java2d/opengl \
1409       $(JDK_TOPDIR)/src/solaris/native/sun/awt \
1410       $(JDK_TOPDIR)/src/share/native/sun/font \
1411       $(JDK_TOPDIR)/src/share/native/sun/java2d/opengl \
1412 
1413   $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_LWAWT, \
1414       LIBRARY := awt_lwawt, \
1415       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
1416       SRC := $(LIBAWT_LWAWT_DIRS), \
1417       LANG := C, \
1418       INCLUDE_FILES := $(LIBAWT_LWAWT_FILES), \
1419       OPTIMIZATION := LOW, \
1420       CFLAGS := $(CFLAGS_JDKLIB) \
1421           $(X_CFLAGS) \
1422           $(X_LIBS) \
1423           $(foreach dir, $(LIBAWT_LWAWT_DIRS), -I$(dir)) \
1424           -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp \
1425           -I$(JDK_TOPDIR)/src/share/native/sun/java2d \
1426           -I$(JDK_TOPDIR)/src/solaris/native/sun/java2d \
1427           -I$(JDK_TOPDIR)/src/share/native/sun/awt/image \
1428           -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \
1429           -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \
1430           -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \
1431           -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \
1432           -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
1433           -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks, \
1434       LDFLAGS := $(LDFLAGS_JDKLIB) \
1435           $(call SET_SHARED_LIBRARY_ORIGIN), \
1436       LDFLAGS_SUFFIX_macosx := -lawt -lmlib_image -losxapp -ljvm $(LIBM) \
1437           -framework Accelerate \
1438           -framework ApplicationServices \
1439           -framework AudioToolbox \
1440           -framework Carbon \
1441           -framework Cocoa \
1442           -framework Security \
1443           -framework ExceptionHandling \
1444           -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
1445           -framework JavaNativeFoundation \
1446           -framework JavaRuntimeSupport \
1447           -framework OpenGL \
1448           -framework QuartzCore -ljava, \
1449       OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libawt_lwawt, \
1450       DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
1451 
1452   BUILD_LIBRARIES += $(BUILD_LIBAWT_LWAWT)
1453 
1454   $(BUILD_LIBAWT_LWAWT): $(BUILD_LIBAWT)
1455 
1456   $(BUILD_LIBAWT_LWAWT): $(BUILD_LIBMLIB_IMAGE)
1457 
1458   $(BUILD_LIBAWT_LWAWT): $(BUILD_LIBOSXAPP)
1459 
1460   $(BUILD_LIBAWT_LWAWT): $(BUILD_LIBJAVA)
1461 
1462 endif
1463 
1464 ##########################################################################################
1465 
1466 ifeq ($(OPENJDK_TARGET_OS), macosx)
1467 
1468   $(eval $(call SetupNativeCompilation,BUILD_LIBOSXUI, \
1469       LIBRARY := osxui, \
1470       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
1471       SRC := $(JDK_TOPDIR)/src/macosx/native/com/apple/laf, \
1472       LANG := C, \
1473       OPTIMIZATION := LOW, \
1474       CFLAGS := $(CFLAGS_JDKLIB) \
1475           -I$(JDK_TOPDIR)/src/macosx/native/com/apple/laf \
1476           -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp \
1477           -I$(JDK_TOPDIR)/src/macosx/native/sun/awt \
1478           -F/System/Library/Frameworks/JavaVM.framework/Frameworks, \
1479       LDFLAGS := $(LDFLAGS_JDKLIB) \
1480           $(call SET_SHARED_LIBRARY_ORIGIN) \
1481           -Xlinker -rpath -Xlinker @loader_path, \
1482       LDFLAGS_SUFFIX_macosx := -lawt -losxapp -lawt_lwawt \
1483           -framework Cocoa \
1484           -framework Carbon \
1485           -framework ApplicationServices \
1486           -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
1487           -framework JavaNativeFoundation \
1488           -framework JavaRuntimeSupport \
1489           -ljava -ljvm, \
1490       OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libosxui, \
1491       DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
1492 
1493   BUILD_LIBRARIES += $(BUILD_LIBOSXUI)
1494 
1495   $(BUILD_LIBOSXUI): $(BUILD_LIBAWT)
1496 
1497   $(BUILD_LIBOSXUI): $(BUILD_LIBOSXAPP)
1498 
1499   $(BUILD_LIBOSXUI): $(BUILD_LIBAWT_LWAWT)
1500 
1501   #$(BUILD_LIBOSXUI): $(BUILD_LIBJAVA)
1502 
1503 endif