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