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