50 CFLAGS := $(CFLAGS_JDKLIB) \
51 $(BUILD_LIBMLIB_CFLAGS), \
52 DISABLED_WARNINGS_gcc := unused-function, \
53 LDFLAGS := $(LDFLAGS_JDKLIB) \
54 $(call SET_SHARED_LIBRARY_ORIGIN), \
55 LIBS := $(JDKLIB_LIBS), \
56 LIBS_unix := $(LIBM) $(LIBDL), \
57 ))
58
59 $(BUILD_LIBMLIB_IMAGE): $(call FindLib, java.base, java)
60
61 TARGETS += $(BUILD_LIBMLIB_IMAGE)
62
63 ################################################################################
64
65 LIBAWT_EXTRA_SRC := \
66 common/awt/debug \
67 $(TOPDIR)/src/$(MODULE)/$(OPENJDK_TARGET_OS_TYPE)/native/common/awt \
68 #
69
70 ifeq ($(call And, $(call isTargetOs, solaris) $(call isTargetCpuArch, sparc)), true)
71 LIBAWT_EXTRA_SRC += $(TOPDIR)/src/$(MODULE)/share/native/common/awt/medialib
72 endif
73
74 ifeq ($(call isTargetOs, windows), true)
75 LIBAWT_EXTRA_SRC += \
76 $(TOPDIR)/src/$(MODULE)/share/native/common/awt/utility \
77 $(TOPDIR)/src/$(MODULE)/share/native/common/font \
78 $(TOPDIR)/src/$(MODULE)/share/native/common/java2d/opengl \
79 $(TOPDIR)/src/$(MODULE)/$(OPENJDK_TARGET_OS_TYPE)/native/common/awt/systemscale \
80 #
81 endif
82
83 ifeq ($(call isTargetOs, solaris linux macosx aix), true)
84 LIBAWT_EXFILES += awt_Font.c CUPSfuncs.c fontpath.c X11Color.c
85 endif
86
87 ifeq ($(call isTargetOs, macosx), true)
88 LIBAWT_EXFILES += initIDs.c awt/image/cvutils/img_colors.c
89 endif
90
91 ifeq ($(call isTargetOs, windows), true)
92 LIBAWT_EXFILES += \
93 java2d/d3d/D3DShaderGen.c \
94 awt/image/cvutils/img_colors.c \
95 #
96 endif
97
98 LIBAWT_EXTRA_HEADER_DIRS := \
99 $(LIBAWT_DEFAULT_HEADER_DIRS) \
100 $(call GetJavaHeaderDir, java.base) \
101 libawt/awt/medialib \
102 libawt/java2d/d3d \
103 libawt/java2d/opengl \
104 libawt/java2d/windows \
105 libawt/windows \
106 common/awt/medialib \
107 libmlib_image \
108 include \
109 java.base:libjava \
110 java.base:include \
111 #
112
113 LIBAWT_CFLAGS += -D__MEDIALIB_OLD_NAMES -D__USE_J2D_NAMES $(X_CFLAGS)
114
115 ifeq ($(call And, $(call isTargetOs, solaris) $(call isTargetCpu, sparcv9)), true)
116 LIBAWT_ASFLAGS = -P -xarch=v9a
117 endif
118
119 ifeq ($(call isTargetOs, solaris), false)
120 LIBAWT_CFLAGS += -DMLIB_NO_LIBSUNMATH
121 endif
122
123 ifeq ($(call isTargetOs, windows), true)
124 LIBAWT_CFLAGS += -EHsc -DUNICODE -D_UNICODE
125 ifeq ($(call isTargetCpuBits, 64), true)
126 LIBAWT_CFLAGS += -DMLIB_OS64BIT
127 endif
128
129 LIBAWT_RC_FLAGS ?= -I $(TOPDIR)/src/java.base/windows/native/launcher/icons
130 LIBAWT_VERSIONINFO_RESOURCE := $(TOPDIR)/src/$(MODULE)/windows/native/libawt/windows/awt.rc
131 endif
132
133 ifeq ($(call isTargetOs, linux), true)
134 # FIXME: This is probably not what we want to do, but keep it now for compatibility.
135 LIBAWT_CFLAGS += $(EXPORT_ALL_SYMBOLS)
136 endif
137
138 # Turn off all warnings for debug_mem.c This is needed because the specific warning
139 # about initializing a declared 'extern' cannot be turned off individually. Only
140 # applies to debug builds.
141 ifeq ($(TOOLCHAIN_TYPE), gcc)
142 BUILD_LIBAWT_debug_mem.c_CFLAGS := -w
143 # This option improves performance of MaskFill in Java2D by 20% for some gcc
144 LIBAWT_CFLAGS += -fgcse-after-reload
145 endif
146
147 $(eval $(call SetupJdkLibrary, BUILD_LIBAWT, \
148 NAME := awt, \
149 EXTRA_SRC := $(LIBAWT_EXTRA_SRC), \
150 EXCLUDES := $(LIBAWT_EXCLUDES), \
151 EXCLUDE_FILES := $(LIBAWT_EXFILES), \
152 OPTIMIZATION := LOW, \
153 CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_CFLAGS), \
154 EXTRA_HEADER_DIRS := $(LIBAWT_EXTRA_HEADER_DIRS), \
155 DISABLED_WARNINGS_gcc := sign-compare unused-result maybe-uninitialized \
156 format-nonliteral parentheses unused-value unused-function, \
157 DISABLED_WARNINGS_clang := logical-op-parentheses extern-initializer \
158 sign-compare format-nonliteral, \
159 DISABLED_WARNINGS_microsoft := 4244 4267 4996, \
160 ASFLAGS := $(LIBAWT_ASFLAGS), \
161 LDFLAGS := $(LDFLAGS_JDKLIB) $(call SET_SHARED_LIBRARY_ORIGIN), \
162 LDFLAGS_macosx := -L$(INSTALL_LIBRARIES_HERE), \
163 LDFLAGS_windows := -delayload:user32.dll -delayload:gdi32.dll \
164 -delayload:shell32.dll -delayload:winmm.dll \
165 -delayload:winspool.drv -delayload:imm32.dll \
166 -delayload:ole32.dll -delayload:comdlg32.dll \
167 -delayload:comctl32.dll -delayload:shlwapi.dll, \
168 LIBS_unix := -ljvm -ljava $(LIBM), \
169 LIBS_linux := $(LIBDL), \
170 LIBS_solaris := $(LIBDL), \
171 LIBS_aix := $(LIBDL),\
172 LIBS_macosx := -lmlib_image \
173 -framework Cocoa \
174 -framework OpenGL \
175 -framework JavaNativeFoundation \
176 -framework JavaRuntimeSupport \
177 -framework ApplicationServices \
178 -framework AudioToolbox, \
179 LIBS_windows := kernel32.lib user32.lib gdi32.lib winspool.lib \
180 imm32.lib ole32.lib uuid.lib shell32.lib \
181 comdlg32.lib winmm.lib comctl32.lib shlwapi.lib \
182 delayimp.lib jvm.lib $(WIN_JAVA_LIB) advapi32.lib, \
183 VERSIONINFO_RESOURCE := $(LIBAWT_VERSIONINFO_RESOURCE), \
184 RC_FLAGS := $(RC_FLAGS) $(LIBAWT_RC_FLAGS) \
185 -D "JDK_FNAME=awt.dll" \
186 -D "JDK_INTERNAL_NAME=awt" \
187 -D "JDK_FTYPE=0x2L", \
188 ))
189
190 $(BUILD_LIBAWT): $(call FindLib, java.base, java)
206 common/font \
207 #
208
209 LIBAWT_XAWT_EXCLUDES := medialib debug
210
211 LIBAWT_XAWT_EXTRA_HEADER_DIRS := \
212 $(LIBAWT_DEFAULT_HEADER_DIRS) \
213 libawt_xawt/awt \
214 include \
215 common/awt/debug \
216 common/awt/systemscale \
217 common/font \
218 common/java2d/opengl \
219 common/java2d/x11 \
220 #
221
222 LIBAWT_XAWT_CFLAGS += -DXAWT -DXAWT_HACK \
223 $(FONTCONFIG_CFLAGS) \
224 $(CUPS_CFLAGS)
225
226 ifeq ($(call isTargetOs, solaris), true)
227 LIBAWT_XAWT_CFLAGS += -DFUNCPROTO=15
228 endif
229
230 ifeq ($(call isTargetOs, linux), true)
231 ifeq ($(DISABLE_XRENDER), true)
232 LIBAWT_XAWT_CFLAGS += -DDISABLE_XRENDER_BY_DEFAULT=true
233 endif
234 endif
235
236 LIBAWT_XAWT_LIBS := $(LIBM) -lawt -lXext -lX11 -lXrender $(LIBDL) -lXtst -lXi -ljava -ljvm
237
238 ifeq ($(call isTargetOs, linux), true)
239 LIBAWT_XAWT_LIBS += -lpthread
240 endif
241
242 ifeq ($(TOOLCHAIN_TYPE), gcc)
243 # Turn off all warnings for the following files since they contain warnings
244 # that cannot be turned of individually.
245 # redefining a macro
246 BUILD_LIBAWT_XAWT_gtk2_interface.c_CFLAGS := -w
247 # comparison between pointer and integer
248 BUILD_LIBAWT_XAWT_awt_Font.c_CFLAGS := -w
249 # initializing a declared 'extern'
250 BUILD_LIBAWT_XAWT_debug_mem.c_CFLAGS := -w
251 endif
252
253 $(eval $(call SetupJdkLibrary, BUILD_LIBAWT_XAWT, \
254 NAME := awt_xawt, \
255 EXTRA_SRC := $(LIBAWT_XAWT_EXTRA_SRC), \
256 EXTRA_HEADER_DIRS := $(LIBAWT_XAWT_EXTRA_HEADER_DIRS), \
257 EXCLUDES := $(LIBAWT_XAWT_EXCLUDES), \
258 OPTIMIZATION := LOW, \
259 CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_XAWT_CFLAGS) \
260 $(X_CFLAGS), \
261 WARNINGS_AS_ERRORS_xlc := false, \
262 DISABLED_WARNINGS_gcc := type-limits pointer-to-int-cast \
263 unused-result maybe-uninitialized format \
264 format-security int-to-pointer-cast parentheses \
265 implicit-fallthrough undef unused-function, \
266 DISABLED_WARNINGS_clang := parentheses format undef \
267 logical-op-parentheses format-nonliteral int-conversion, \
268 DISABLED_WARNINGS_solstudio := E_ASSIGNMENT_TYPE_MISMATCH \
269 E_NON_CONST_INIT, \
270 LDFLAGS := $(LDFLAGS_JDKLIB) \
271 $(call SET_SHARED_LIBRARY_ORIGIN) \
272 -L$(INSTALL_LIBRARIES_HERE), \
273 LIBS := $(X_LIBS) $(LIBAWT_XAWT_LIBS), \
274 ))
275
276 $(BUILD_LIBAWT_XAWT): $(call FindLib, java.base, java)
277
278 $(BUILD_LIBAWT_XAWT): $(BUILD_LIBAWT)
279
280 TARGETS += $(BUILD_LIBAWT_XAWT)
281
282 endif
283 endif
284
285 ################################################################################
286
287 # The fast floor code loses precision.
288 LCMS_CFLAGS=-DCMS_DONT_USE_FAST_FLOOR
289
295 # as includes, instead the system headers should be used.
296 LIBLCMS_HEADERS_FROM_SRC := false
297 else
298 BUILD_LIBLCMS_INCLUDE_FILES :=
299 endif
300
301 $(eval $(call SetupJdkLibrary, BUILD_LIBLCMS, \
302 NAME := lcms, \
303 INCLUDE_FILES := $(BUILD_LIBLCMS_INCLUDE_FILES), \
304 OPTIMIZATION := HIGHEST, \
305 CFLAGS := $(CFLAGS_JDKLIB) \
306 $(LCMS_CFLAGS), \
307 CFLAGS_windows := -DCMS_IS_WINDOWS_, \
308 EXTRA_HEADER_DIRS := \
309 common/awt/debug \
310 libawt/java2d, \
311 HEADERS_FROM_SRC := $(LIBLCMS_HEADERS_FROM_SRC), \
312 DISABLED_WARNINGS_gcc := format-nonliteral type-limits \
313 misleading-indentation undef unused-function stringop-truncation, \
314 DISABLED_WARNINGS_clang := tautological-compare format-nonliteral undef, \
315 DISABLED_WARNINGS_solstudio := E_STATEMENT_NOT_REACHED, \
316 DISABLED_WARNINGS_microsoft := 4819, \
317 LDFLAGS := $(LDFLAGS_JDKLIB) \
318 $(call SET_SHARED_LIBRARY_ORIGIN), \
319 LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
320 LIBS_unix := -lawt -ljvm -ljava $(LCMS_LIBS) $(LIBM), \
321 LIBS_windows := $(WIN_AWT_LIB) $(WIN_JAVA_LIB), \
322 ))
323
324 TARGETS += $(BUILD_LIBLCMS)
325
326 $(BUILD_LIBLCMS): $(BUILD_LIBAWT)
327
328 ################################################################################
329
330 # "DISABLED_WARNINGS_gcc := clobbered" rationale:
331 # Suppress gcc warnings like "variable might be clobbered by 'longjmp'
332 # or 'vfork'": this warning indicates that some variable is placed to
333 # a register by optimized compiler and it's value might be lost on longjmp().
334 # Recommended way to avoid such warning is to declare the variable as
335 # volatile to prevent the optimization. However, this approach does not
380
381 LIBAWT_HEADLESS_EXTRA_HEADER_DIRS := \
382 $(LIBAWT_DEFAULT_HEADER_DIRS) \
383 common/awt/debug \
384 common/font \
385 common/java2d/opengl \
386 #
387
388 LIBAWT_HEADLESS_CFLAGS := $(CUPS_CFLAGS) $(FONTCONFIG_CFLAGS) $(X_CFLAGS) \
389 -DHEADLESS=true
390
391 $(eval $(call SetupJdkLibrary, BUILD_LIBAWT_HEADLESS, \
392 NAME := awt_headless, \
393 EXTRA_SRC := $(LIBAWT_HEADLESS_EXTRA_SRC), \
394 EXCLUDES := $(LIBAWT_HEADLESS_EXCLUDES), \
395 OPTIMIZATION := LOW, \
396 CFLAGS := $(CFLAGS_JDKLIB) \
397 $(LIBAWT_HEADLESS_CFLAGS), \
398 EXTRA_HEADER_DIRS := $(LIBAWT_HEADLESS_EXTRA_HEADER_DIRS), \
399 DISABLED_WARNINGS_gcc := unused-function, \
400 DISABLED_WARNINGS_solstudio := E_EMPTY_TRANSLATION_UNIT, \
401 LDFLAGS := $(LDFLAGS_JDKLIB) \
402 $(call SET_SHARED_LIBRARY_ORIGIN), \
403 LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
404 LIBS_unix := -lawt -ljvm -ljava, \
405 LIBS_linux := $(LIBM) $(LIBDL), \
406 LIBS_solaris := $(LIBM) $(LIBDL) $(LIBCXX), \
407 ))
408
409 $(BUILD_LIBAWT_HEADLESS): $(BUILD_LIBAWT)
410
411 TARGETS += $(BUILD_LIBAWT_HEADLESS)
412
413 endif
414
415 ################################################################################
416
417 ifeq ($(FREETYPE_TO_USE), system)
418 # For use by libfontmanager:
419 LIBFREETYPE_CFLAGS := $(FREETYPE_CFLAGS)
420 LIBFREETYPE_LIBS := $(FREETYPE_LIBS)
421 else
422 BUILD_LIBFREETYPE_HEADER_DIRS := $(TOPDIR)/src/$(MODULE)/share/native/libfreetype/include
423 BUILD_LIBFREETYPE_CFLAGS := -DFT2_BUILD_LIBRARY $(EXPORT_ALL_SYMBOLS)
424
425 # For use by libfontmanager:
426 LIBFREETYPE_CFLAGS := -I$(BUILD_LIBFREETYPE_HEADER_DIRS)
427 ifeq ($(call isTargetOs, windows), true)
428 LIBFREETYPE_LIBS := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfreetype/freetype.lib
429 # freetype now requires you to manually define this (see ftconfig.h)
430 BUILD_LIBFREETYPE_CFLAGS += -DDLL_EXPORT
431 else
432 LIBFREETYPE_LIBS := -lfreetype
433 endif
434
435 $(eval $(call SetupJdkLibrary, BUILD_LIBFREETYPE, \
436 NAME := freetype, \
437 OPTIMIZATION := HIGHEST, \
438 CFLAGS := $(CFLAGS_JDKLIB) \
439 $(BUILD_LIBFREETYPE_CFLAGS), \
440 EXTRA_HEADER_DIRS := $(BUILD_LIBFREETYPE_HEADER_DIRS), \
441 DISABLED_WARNINGS_solstudio := \
442 E_STATEMENT_NOT_REACHED \
443 E_END_OF_LOOP_CODE_NOT_REACHED, \
444 DISABLED_WARNINGS_microsoft := 4018 4267 4244 4312 4819, \
445 DISABLED_WARNINGS_gcc := implicit-fallthrough cast-function-type bad-function-cast, \
446 LDFLAGS := $(LDFLAGS_JDKLIB) \
447 $(call SET_SHARED_LIBRARY_ORIGIN), \
448 ))
449
450 TARGETS += $(BUILD_LIBFREETYPE)
451 endif
452
453 ###########################################################################
454
455 #### Begin harfbuzz configuration
456
457 HARFBUZZ_CFLAGS := -DHAVE_OT -DHAVE_FALLBACK -DHAVE_UCDN -DHAVE_ROUND
458
459 ifeq ($(call isTargetOs, windows), false)
460 HARFBUZZ_CFLAGS += -DGETPAGESIZE -DHAVE_MPROTECT -DHAVE_PTHREAD \
461 -DHAVE_SYSCONF -DHAVE_SYS_MMAN_H -DHAVE_UNISTD_H \
462 -DHB_NO_PRAGMA_GCC_DIAGNOSTIC
463 endif
464 ifeq ($(call isTargetOs, linux macosx), true)
465 HARFBUZZ_CFLAGS += -DHAVE_INTEL_ATOMIC_PRIMITIVES
466 endif
467 ifeq ($(call isTargetOs, solaris), true)
468 HARFBUZZ_CFLAGS += -DHAVE_SOLARIS_ATOMIC_OPS
469 endif
470 ifeq ($(call isTargetOs, macosx), true)
471 HARFBUZZ_CFLAGS += -DHAVE_CORETEXT
472 endif
473 ifeq ($(call isTargetOs, macosx), false)
474 LIBFONTMANAGER_EXCLUDE_FILES += harfbuzz/hb-coretext.cc
475 endif
476 # hb-ft.cc is not presently needed, and requires freetype 2.4.2 or later.
477 LIBFONTMANAGER_EXCLUDE_FILES += harfbuzz/hb-ft.cc
478
479 LIBFONTMANAGER_CFLAGS += $(HARFBUZZ_CFLAGS)
480
481 #### End harfbuzz configuration
482
483 LIBFONTMANAGER_EXTRA_HEADER_DIRS := \
484 libfontmanager/harfbuzz \
485 libfontmanager/harfbuzz/hb-ucdn \
486 common/awt \
487 common/font \
488 libawt/java2d \
489 libawt/java2d/pipe \
523 # libawt_xawt). See JDK-8196516 for details.
524 $(eval $(call SetupJdkLibrary, BUILD_LIBFONTMANAGER, \
525 NAME := fontmanager, \
526 EXCLUDE_FILES := $(LIBFONTMANAGER_EXCLUDE_FILES) \
527 AccelGlyphCache.c, \
528 TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
529 CFLAGS := $(CFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \
530 CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \
531 OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \
532 CFLAGS_windows = -DCC_NOEX, \
533 EXTRA_HEADER_DIRS := $(LIBFONTMANAGER_EXTRA_HEADER_DIRS), \
534 WARNINGS_AS_ERRORS_xlc := false, \
535 DISABLED_WARNINGS_gcc := sign-compare int-to-pointer-cast \
536 type-limits missing-field-initializers implicit-fallthrough \
537 strict-aliasing undef unused-function, \
538 DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
539 maybe-uninitialized class-memaccess, \
540 DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
541 tautological-constant-out-of-range-compare int-to-pointer-cast \
542 sign-compare undef missing-field-initializers, \
543 DISABLED_WARNINGS_C_solstudio = \
544 E_INTEGER_OVERFLOW_DETECTED \
545 E_ARG_INCOMPATIBLE_WITH_ARG_L \
546 E_ENUM_VAL_OVERFLOWS_INT_MAX, \
547 DISABLED_WARNINGS_CXX_solstudio := \
548 truncwarn wvarhidenmem wvarhidemem wbadlkginit identexpected \
549 hidevf w_novirtualdescr arrowrtn2 refmemnoconstr_aggr unknownpragma \
550 doubunder wunreachable, \
551 DISABLED_WARNINGS_microsoft := 4267 4244 4018 4090 4996 4146 4334 4819 4101 4068 4805 4138, \
552 LDFLAGS := $(subst -Xlinker -z -Xlinker defs,, \
553 $(subst -Wl$(COMMA)-z$(COMMA)defs,,$(LDFLAGS_JDKLIB))) $(LDFLAGS_CXX_JDK) \
554 $(call SET_SHARED_LIBRARY_ORIGIN), \
555 LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
556 LDFLAGS_aix := -Wl$(COMMA)-berok, \
557 LIBS := $(BUILD_LIBFONTMANAGER_FONTLIB), \
558 LIBS_unix := -lawt -ljava -ljvm $(LIBM) $(LIBCXX), \
559 LIBS_macosx := -lawt_lwawt -framework CoreText -framework CoreFoundation \
560 -framework CoreGraphics, \
561 LIBS_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
562 $(WIN_AWT_LIB), \
563 ))
564
565 $(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT)
566
567 ifeq ($(call isTargetOs, macosx), true)
568 $(BUILD_LIBFONTMANAGER): $(call FindLib, $(MODULE), awt_lwawt)
569 endif
570
609
610 $(eval $(call SetupCopyFiles, COPY_JAWT_LIB, \
611 FILES := $(BUILD_LIBJAWT_IMPORT_LIBRARY), \
612 DEST := $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE), \
613 ))
614
615 $(COPY_JAWT_LIB): $(BUILD_LIBJAWT)
616
617 TARGETS += $(COPY_JAWT_LIB)
618
619 else # not windows
620
621 ifeq ($(call isTargetOs, macosx), true)
622 # libjawt on macosx do not use the unix code
623 LIBJAWT_EXCLUDE_SRC_PATTERNS := /unix/
624 endif
625
626 ifeq ($(call isTargetOs, macosx), true)
627 JAWT_LIBS := -lawt_lwawt
628 else
629 JAWT_LIBS :=
630 ifeq ($(call isTargetOs, solaris), false)
631 JAWT_LIBS += -lawt
632 endif
633 ifeq ($(ENABLE_HEADLESS_ONLY), false)
634 JAWT_LIBS += -lawt_xawt
635 else
636 JAWT_LIBS += -lawt_headless
637 ifeq ($(call isTargetOs, linux), true)
638 JAWT_CFLAGS += -DHEADLESS
639 endif
640 endif
641 endif
642
643 $(eval $(call SetupJdkLibrary, BUILD_LIBJAWT, \
644 NAME := jawt, \
645 EXCLUDE_SRC_PATTERNS := $(LIBJAWT_EXCLUDE_SRC_PATTERNS), \
646 INCLUDE_FILES := $(JAWT_FILES), \
647 OPTIMIZATION := LOW, \
648 CFLAGS := $(CFLAGS_JDKLIB) \
649 $(JAWT_CFLAGS), \
650 DISABLED_WARNINGS_clang := sign-compare, \
651 EXTRA_HEADER_DIRS := \
652 include \
653 common/awt, \
654 LDFLAGS := $(LDFLAGS_JDKLIB) \
655 $(call SET_SHARED_LIBRARY_ORIGIN), \
656 LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
657 LDFLAGS_macosx := -Wl$(COMMA)-rpath$(COMMA)@loader_path, \
658 LIBS_unix := $(JAWT_LIBS) $(JDKLIB_LIBS), \
659 LIBS_solaris := $(X_LIBS) -lXrender, \
660 LIBS_macosx := -framework Cocoa, \
661 ))
662
663 ifeq ($(ENABLE_HEADLESS_ONLY), false)
664 $(BUILD_LIBJAWT): $(BUILD_LIBAWT_XAWT)
665 else
666 $(BUILD_LIBJAWT): $(call FindLib, $(MODULE), awt_headless)
667 endif
668
669 ifeq ($(call isTargetOs, macosx), true)
670 $(BUILD_LIBJAWT): $(call FindLib, $(MODULE), awt_lwawt)
671 endif
672
673 endif
674
675 TARGETS += $(BUILD_LIBJAWT)
676
677 ################################################################################
678
679 ifeq ($(ENABLE_HEADLESS_ONLY), false)
758 LIBSPLASHSCREEN_HEADER_DIRS += \
759 libosxapp \
760 java.base:include \
761 java.base:libjava \
762 #
763
764 $(eval $(call SetupJdkLibrary, BUILD_LIBSPLASHSCREEN, \
765 NAME := splashscreen, \
766 EXTRA_SRC := $(LIBSPLASHSCREEN_EXTRA_SRC), \
767 EXCLUDE_SRC_PATTERNS := $(LIBSPLASHSCREEN_EXCLUDE_SRC_PATTERNS), \
768 EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \
769 EXCLUDES := $(LIBSPLASHSCREEN_EXCLUDES), \
770 OPTIMIZATION := LOW, \
771 CFLAGS := $(CFLAGS_JDKLIB) $(LIBSPLASHSCREEN_CFLAGS) \
772 $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS) $(PNG_CFLAGS) $(LIBZ_CFLAGS), \
773 EXTRA_HEADER_DIRS := $(LIBSPLASHSCREEN_HEADER_DIRS), \
774 DISABLED_WARNINGS_gcc := sign-compare type-limits unused-result \
775 maybe-uninitialized shift-negative-value implicit-fallthrough \
776 unused-function, \
777 DISABLED_WARNINGS_clang := incompatible-pointer-types sign-compare, \
778 DISABLED_WARNINGS_solstudio := E_STATEMENT_NOT_REACHED, \
779 DISABLED_WARNINGS_microsoft := 4018 4244 4267, \
780 LDFLAGS := $(LDFLAGS_JDKLIB) \
781 $(call SET_SHARED_LIBRARY_ORIGIN), \
782 LDFLAGS_macosx := -L$(INSTALL_LIBRARIES_HERE), \
783 LDFLAGS_windows := -delayload:user32.dll, \
784 LIBS := $(JDKLIB_LIBS) $(LIBSPLASHSCREEN_LIBS) $(LIBZ_LIBS) \
785 $(GIFLIB_LIBS) $(LIBJPEG_LIBS) $(PNG_LIBS), \
786 LIBS_aix := -liconv, \
787 ))
788
789 TARGETS += $(BUILD_LIBSPLASHSCREEN)
790
791 ifeq ($(call isTargetOs, macosx), true)
792 $(BUILD_LIBSPLASHSCREEN): $(call FindLib, $(MODULE), osxapp)
793 endif
794
795 endif
796
797 ################################################################################
798
|
50 CFLAGS := $(CFLAGS_JDKLIB) \
51 $(BUILD_LIBMLIB_CFLAGS), \
52 DISABLED_WARNINGS_gcc := unused-function, \
53 LDFLAGS := $(LDFLAGS_JDKLIB) \
54 $(call SET_SHARED_LIBRARY_ORIGIN), \
55 LIBS := $(JDKLIB_LIBS), \
56 LIBS_unix := $(LIBM) $(LIBDL), \
57 ))
58
59 $(BUILD_LIBMLIB_IMAGE): $(call FindLib, java.base, java)
60
61 TARGETS += $(BUILD_LIBMLIB_IMAGE)
62
63 ################################################################################
64
65 LIBAWT_EXTRA_SRC := \
66 common/awt/debug \
67 $(TOPDIR)/src/$(MODULE)/$(OPENJDK_TARGET_OS_TYPE)/native/common/awt \
68 #
69
70 ifeq ($(call isTargetOs, windows), true)
71 LIBAWT_EXTRA_SRC += \
72 $(TOPDIR)/src/$(MODULE)/share/native/common/awt/utility \
73 $(TOPDIR)/src/$(MODULE)/share/native/common/font \
74 $(TOPDIR)/src/$(MODULE)/share/native/common/java2d/opengl \
75 $(TOPDIR)/src/$(MODULE)/$(OPENJDK_TARGET_OS_TYPE)/native/common/awt/systemscale \
76 #
77 endif
78
79 ifeq ($(call isTargetOs, linux macosx aix), true)
80 LIBAWT_EXFILES += awt_Font.c CUPSfuncs.c fontpath.c X11Color.c
81 endif
82
83 ifeq ($(call isTargetOs, macosx), true)
84 LIBAWT_EXFILES += initIDs.c awt/image/cvutils/img_colors.c
85 endif
86
87 ifeq ($(call isTargetOs, windows), true)
88 LIBAWT_EXFILES += \
89 java2d/d3d/D3DShaderGen.c \
90 awt/image/cvutils/img_colors.c \
91 #
92 endif
93
94 LIBAWT_EXTRA_HEADER_DIRS := \
95 $(LIBAWT_DEFAULT_HEADER_DIRS) \
96 $(call GetJavaHeaderDir, java.base) \
97 libawt/awt/medialib \
98 libawt/java2d/d3d \
99 libawt/java2d/opengl \
100 libawt/java2d/windows \
101 libawt/windows \
102 common/awt/medialib \
103 libmlib_image \
104 include \
105 java.base:libjava \
106 java.base:include \
107 #
108
109 LIBAWT_CFLAGS += -D__MEDIALIB_OLD_NAMES -D__USE_J2D_NAMES $(X_CFLAGS)
110
111 LIBAWT_CFLAGS += -DMLIB_NO_LIBSUNMATH
112
113 ifeq ($(call isTargetOs, windows), true)
114 LIBAWT_CFLAGS += -EHsc -DUNICODE -D_UNICODE
115 ifeq ($(call isTargetCpuBits, 64), true)
116 LIBAWT_CFLAGS += -DMLIB_OS64BIT
117 endif
118
119 LIBAWT_RC_FLAGS ?= -I $(TOPDIR)/src/java.base/windows/native/launcher/icons
120 LIBAWT_VERSIONINFO_RESOURCE := $(TOPDIR)/src/$(MODULE)/windows/native/libawt/windows/awt.rc
121 endif
122
123 ifeq ($(call isTargetOs, linux), true)
124 # FIXME: This is probably not what we want to do, but keep it now for compatibility.
125 LIBAWT_CFLAGS += $(EXPORT_ALL_SYMBOLS)
126 endif
127
128 # Turn off all warnings for debug_mem.c This is needed because the specific warning
129 # about initializing a declared 'extern' cannot be turned off individually. Only
130 # applies to debug builds.
131 ifeq ($(TOOLCHAIN_TYPE), gcc)
132 BUILD_LIBAWT_debug_mem.c_CFLAGS := -w
133 # This option improves performance of MaskFill in Java2D by 20% for some gcc
134 LIBAWT_CFLAGS += -fgcse-after-reload
135 endif
136
137 $(eval $(call SetupJdkLibrary, BUILD_LIBAWT, \
138 NAME := awt, \
139 EXTRA_SRC := $(LIBAWT_EXTRA_SRC), \
140 EXCLUDES := $(LIBAWT_EXCLUDES), \
141 EXCLUDE_FILES := $(LIBAWT_EXFILES), \
142 OPTIMIZATION := LOW, \
143 CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_CFLAGS), \
144 EXTRA_HEADER_DIRS := $(LIBAWT_EXTRA_HEADER_DIRS), \
145 DISABLED_WARNINGS_gcc := sign-compare unused-result maybe-uninitialized \
146 format-nonliteral parentheses unused-value unused-function, \
147 DISABLED_WARNINGS_clang := logical-op-parentheses extern-initializer \
148 sign-compare format-nonliteral, \
149 DISABLED_WARNINGS_microsoft := 4244 4267 4996, \
150 LDFLAGS := $(LDFLAGS_JDKLIB) $(call SET_SHARED_LIBRARY_ORIGIN), \
151 LDFLAGS_macosx := -L$(INSTALL_LIBRARIES_HERE), \
152 LDFLAGS_windows := -delayload:user32.dll -delayload:gdi32.dll \
153 -delayload:shell32.dll -delayload:winmm.dll \
154 -delayload:winspool.drv -delayload:imm32.dll \
155 -delayload:ole32.dll -delayload:comdlg32.dll \
156 -delayload:comctl32.dll -delayload:shlwapi.dll, \
157 LIBS_unix := -ljvm -ljava $(LIBM), \
158 LIBS_linux := $(LIBDL), \
159 LIBS_aix := $(LIBDL),\
160 LIBS_macosx := -lmlib_image \
161 -framework Cocoa \
162 -framework OpenGL \
163 -framework JavaNativeFoundation \
164 -framework JavaRuntimeSupport \
165 -framework ApplicationServices \
166 -framework AudioToolbox, \
167 LIBS_windows := kernel32.lib user32.lib gdi32.lib winspool.lib \
168 imm32.lib ole32.lib uuid.lib shell32.lib \
169 comdlg32.lib winmm.lib comctl32.lib shlwapi.lib \
170 delayimp.lib jvm.lib $(WIN_JAVA_LIB) advapi32.lib, \
171 VERSIONINFO_RESOURCE := $(LIBAWT_VERSIONINFO_RESOURCE), \
172 RC_FLAGS := $(RC_FLAGS) $(LIBAWT_RC_FLAGS) \
173 -D "JDK_FNAME=awt.dll" \
174 -D "JDK_INTERNAL_NAME=awt" \
175 -D "JDK_FTYPE=0x2L", \
176 ))
177
178 $(BUILD_LIBAWT): $(call FindLib, java.base, java)
194 common/font \
195 #
196
197 LIBAWT_XAWT_EXCLUDES := medialib debug
198
199 LIBAWT_XAWT_EXTRA_HEADER_DIRS := \
200 $(LIBAWT_DEFAULT_HEADER_DIRS) \
201 libawt_xawt/awt \
202 include \
203 common/awt/debug \
204 common/awt/systemscale \
205 common/font \
206 common/java2d/opengl \
207 common/java2d/x11 \
208 #
209
210 LIBAWT_XAWT_CFLAGS += -DXAWT -DXAWT_HACK \
211 $(FONTCONFIG_CFLAGS) \
212 $(CUPS_CFLAGS)
213
214 ifeq ($(call isTargetOs, linux), true)
215 ifeq ($(DISABLE_XRENDER), true)
216 LIBAWT_XAWT_CFLAGS += -DDISABLE_XRENDER_BY_DEFAULT=true
217 endif
218 endif
219
220 LIBAWT_XAWT_LIBS := $(LIBM) -lawt -lXext -lX11 -lXrender $(LIBDL) -lXtst -lXi -ljava -ljvm
221
222 ifeq ($(call isTargetOs, linux), true)
223 LIBAWT_XAWT_LIBS += -lpthread
224 endif
225
226 ifeq ($(TOOLCHAIN_TYPE), gcc)
227 # Turn off all warnings for the following files since they contain warnings
228 # that cannot be turned of individually.
229 # redefining a macro
230 BUILD_LIBAWT_XAWT_gtk2_interface.c_CFLAGS := -w
231 # comparison between pointer and integer
232 BUILD_LIBAWT_XAWT_awt_Font.c_CFLAGS := -w
233 # initializing a declared 'extern'
234 BUILD_LIBAWT_XAWT_debug_mem.c_CFLAGS := -w
235 endif
236
237 $(eval $(call SetupJdkLibrary, BUILD_LIBAWT_XAWT, \
238 NAME := awt_xawt, \
239 EXTRA_SRC := $(LIBAWT_XAWT_EXTRA_SRC), \
240 EXTRA_HEADER_DIRS := $(LIBAWT_XAWT_EXTRA_HEADER_DIRS), \
241 EXCLUDES := $(LIBAWT_XAWT_EXCLUDES), \
242 OPTIMIZATION := LOW, \
243 CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_XAWT_CFLAGS) \
244 $(X_CFLAGS), \
245 WARNINGS_AS_ERRORS_xlc := false, \
246 DISABLED_WARNINGS_gcc := type-limits pointer-to-int-cast \
247 unused-result maybe-uninitialized format \
248 format-security int-to-pointer-cast parentheses \
249 implicit-fallthrough undef unused-function, \
250 DISABLED_WARNINGS_clang := parentheses format undef \
251 logical-op-parentheses format-nonliteral int-conversion, \
252 LDFLAGS := $(LDFLAGS_JDKLIB) \
253 $(call SET_SHARED_LIBRARY_ORIGIN) \
254 -L$(INSTALL_LIBRARIES_HERE), \
255 LIBS := $(X_LIBS) $(LIBAWT_XAWT_LIBS), \
256 ))
257
258 $(BUILD_LIBAWT_XAWT): $(call FindLib, java.base, java)
259
260 $(BUILD_LIBAWT_XAWT): $(BUILD_LIBAWT)
261
262 TARGETS += $(BUILD_LIBAWT_XAWT)
263
264 endif
265 endif
266
267 ################################################################################
268
269 # The fast floor code loses precision.
270 LCMS_CFLAGS=-DCMS_DONT_USE_FAST_FLOOR
271
277 # as includes, instead the system headers should be used.
278 LIBLCMS_HEADERS_FROM_SRC := false
279 else
280 BUILD_LIBLCMS_INCLUDE_FILES :=
281 endif
282
283 $(eval $(call SetupJdkLibrary, BUILD_LIBLCMS, \
284 NAME := lcms, \
285 INCLUDE_FILES := $(BUILD_LIBLCMS_INCLUDE_FILES), \
286 OPTIMIZATION := HIGHEST, \
287 CFLAGS := $(CFLAGS_JDKLIB) \
288 $(LCMS_CFLAGS), \
289 CFLAGS_windows := -DCMS_IS_WINDOWS_, \
290 EXTRA_HEADER_DIRS := \
291 common/awt/debug \
292 libawt/java2d, \
293 HEADERS_FROM_SRC := $(LIBLCMS_HEADERS_FROM_SRC), \
294 DISABLED_WARNINGS_gcc := format-nonliteral type-limits \
295 misleading-indentation undef unused-function stringop-truncation, \
296 DISABLED_WARNINGS_clang := tautological-compare format-nonliteral undef, \
297 DISABLED_WARNINGS_microsoft := 4819, \
298 LDFLAGS := $(LDFLAGS_JDKLIB) \
299 $(call SET_SHARED_LIBRARY_ORIGIN), \
300 LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
301 LIBS_unix := -lawt -ljvm -ljava $(LCMS_LIBS) $(LIBM), \
302 LIBS_windows := $(WIN_AWT_LIB) $(WIN_JAVA_LIB), \
303 ))
304
305 TARGETS += $(BUILD_LIBLCMS)
306
307 $(BUILD_LIBLCMS): $(BUILD_LIBAWT)
308
309 ################################################################################
310
311 # "DISABLED_WARNINGS_gcc := clobbered" rationale:
312 # Suppress gcc warnings like "variable might be clobbered by 'longjmp'
313 # or 'vfork'": this warning indicates that some variable is placed to
314 # a register by optimized compiler and it's value might be lost on longjmp().
315 # Recommended way to avoid such warning is to declare the variable as
316 # volatile to prevent the optimization. However, this approach does not
361
362 LIBAWT_HEADLESS_EXTRA_HEADER_DIRS := \
363 $(LIBAWT_DEFAULT_HEADER_DIRS) \
364 common/awt/debug \
365 common/font \
366 common/java2d/opengl \
367 #
368
369 LIBAWT_HEADLESS_CFLAGS := $(CUPS_CFLAGS) $(FONTCONFIG_CFLAGS) $(X_CFLAGS) \
370 -DHEADLESS=true
371
372 $(eval $(call SetupJdkLibrary, BUILD_LIBAWT_HEADLESS, \
373 NAME := awt_headless, \
374 EXTRA_SRC := $(LIBAWT_HEADLESS_EXTRA_SRC), \
375 EXCLUDES := $(LIBAWT_HEADLESS_EXCLUDES), \
376 OPTIMIZATION := LOW, \
377 CFLAGS := $(CFLAGS_JDKLIB) \
378 $(LIBAWT_HEADLESS_CFLAGS), \
379 EXTRA_HEADER_DIRS := $(LIBAWT_HEADLESS_EXTRA_HEADER_DIRS), \
380 DISABLED_WARNINGS_gcc := unused-function, \
381 LDFLAGS := $(LDFLAGS_JDKLIB) \
382 $(call SET_SHARED_LIBRARY_ORIGIN), \
383 LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
384 LIBS_unix := -lawt -ljvm -ljava, \
385 LIBS_linux := $(LIBM) $(LIBDL), \
386 ))
387
388 $(BUILD_LIBAWT_HEADLESS): $(BUILD_LIBAWT)
389
390 TARGETS += $(BUILD_LIBAWT_HEADLESS)
391
392 endif
393
394 ################################################################################
395
396 ifeq ($(FREETYPE_TO_USE), system)
397 # For use by libfontmanager:
398 LIBFREETYPE_CFLAGS := $(FREETYPE_CFLAGS)
399 LIBFREETYPE_LIBS := $(FREETYPE_LIBS)
400 else
401 BUILD_LIBFREETYPE_HEADER_DIRS := $(TOPDIR)/src/$(MODULE)/share/native/libfreetype/include
402 BUILD_LIBFREETYPE_CFLAGS := -DFT2_BUILD_LIBRARY $(EXPORT_ALL_SYMBOLS)
403
404 # For use by libfontmanager:
405 LIBFREETYPE_CFLAGS := -I$(BUILD_LIBFREETYPE_HEADER_DIRS)
406 ifeq ($(call isTargetOs, windows), true)
407 LIBFREETYPE_LIBS := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfreetype/freetype.lib
408 # freetype now requires you to manually define this (see ftconfig.h)
409 BUILD_LIBFREETYPE_CFLAGS += -DDLL_EXPORT
410 else
411 LIBFREETYPE_LIBS := -lfreetype
412 endif
413
414 $(eval $(call SetupJdkLibrary, BUILD_LIBFREETYPE, \
415 NAME := freetype, \
416 OPTIMIZATION := HIGHEST, \
417 CFLAGS := $(CFLAGS_JDKLIB) \
418 $(BUILD_LIBFREETYPE_CFLAGS), \
419 EXTRA_HEADER_DIRS := $(BUILD_LIBFREETYPE_HEADER_DIRS), \
420 DISABLED_WARNINGS_microsoft := 4018 4267 4244 4312 4819, \
421 DISABLED_WARNINGS_gcc := implicit-fallthrough cast-function-type bad-function-cast, \
422 LDFLAGS := $(LDFLAGS_JDKLIB) \
423 $(call SET_SHARED_LIBRARY_ORIGIN), \
424 ))
425
426 TARGETS += $(BUILD_LIBFREETYPE)
427 endif
428
429 ###########################################################################
430
431 #### Begin harfbuzz configuration
432
433 HARFBUZZ_CFLAGS := -DHAVE_OT -DHAVE_FALLBACK -DHAVE_UCDN -DHAVE_ROUND
434
435 ifeq ($(call isTargetOs, windows), false)
436 HARFBUZZ_CFLAGS += -DGETPAGESIZE -DHAVE_MPROTECT -DHAVE_PTHREAD \
437 -DHAVE_SYSCONF -DHAVE_SYS_MMAN_H -DHAVE_UNISTD_H \
438 -DHB_NO_PRAGMA_GCC_DIAGNOSTIC
439 endif
440 ifeq ($(call isTargetOs, linux macosx), true)
441 HARFBUZZ_CFLAGS += -DHAVE_INTEL_ATOMIC_PRIMITIVES
442 endif
443 ifeq ($(call isTargetOs, macosx), true)
444 HARFBUZZ_CFLAGS += -DHAVE_CORETEXT
445 endif
446 ifeq ($(call isTargetOs, macosx), false)
447 LIBFONTMANAGER_EXCLUDE_FILES += harfbuzz/hb-coretext.cc
448 endif
449 # hb-ft.cc is not presently needed, and requires freetype 2.4.2 or later.
450 LIBFONTMANAGER_EXCLUDE_FILES += harfbuzz/hb-ft.cc
451
452 LIBFONTMANAGER_CFLAGS += $(HARFBUZZ_CFLAGS)
453
454 #### End harfbuzz configuration
455
456 LIBFONTMANAGER_EXTRA_HEADER_DIRS := \
457 libfontmanager/harfbuzz \
458 libfontmanager/harfbuzz/hb-ucdn \
459 common/awt \
460 common/font \
461 libawt/java2d \
462 libawt/java2d/pipe \
496 # libawt_xawt). See JDK-8196516 for details.
497 $(eval $(call SetupJdkLibrary, BUILD_LIBFONTMANAGER, \
498 NAME := fontmanager, \
499 EXCLUDE_FILES := $(LIBFONTMANAGER_EXCLUDE_FILES) \
500 AccelGlyphCache.c, \
501 TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
502 CFLAGS := $(CFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \
503 CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \
504 OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \
505 CFLAGS_windows = -DCC_NOEX, \
506 EXTRA_HEADER_DIRS := $(LIBFONTMANAGER_EXTRA_HEADER_DIRS), \
507 WARNINGS_AS_ERRORS_xlc := false, \
508 DISABLED_WARNINGS_gcc := sign-compare int-to-pointer-cast \
509 type-limits missing-field-initializers implicit-fallthrough \
510 strict-aliasing undef unused-function, \
511 DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
512 maybe-uninitialized class-memaccess, \
513 DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
514 tautological-constant-out-of-range-compare int-to-pointer-cast \
515 sign-compare undef missing-field-initializers, \
516 DISABLED_WARNINGS_microsoft := 4267 4244 4018 4090 4996 4146 4334 4819 4101 4068 4805 4138, \
517 LDFLAGS := $(subst -Xlinker -z -Xlinker defs,, \
518 $(subst -Wl$(COMMA)-z$(COMMA)defs,,$(LDFLAGS_JDKLIB))) $(LDFLAGS_CXX_JDK) \
519 $(call SET_SHARED_LIBRARY_ORIGIN), \
520 LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
521 LDFLAGS_aix := -Wl$(COMMA)-berok, \
522 LIBS := $(BUILD_LIBFONTMANAGER_FONTLIB), \
523 LIBS_unix := -lawt -ljava -ljvm $(LIBM) $(LIBCXX), \
524 LIBS_macosx := -lawt_lwawt -framework CoreText -framework CoreFoundation \
525 -framework CoreGraphics, \
526 LIBS_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
527 $(WIN_AWT_LIB), \
528 ))
529
530 $(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT)
531
532 ifeq ($(call isTargetOs, macosx), true)
533 $(BUILD_LIBFONTMANAGER): $(call FindLib, $(MODULE), awt_lwawt)
534 endif
535
574
575 $(eval $(call SetupCopyFiles, COPY_JAWT_LIB, \
576 FILES := $(BUILD_LIBJAWT_IMPORT_LIBRARY), \
577 DEST := $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE), \
578 ))
579
580 $(COPY_JAWT_LIB): $(BUILD_LIBJAWT)
581
582 TARGETS += $(COPY_JAWT_LIB)
583
584 else # not windows
585
586 ifeq ($(call isTargetOs, macosx), true)
587 # libjawt on macosx do not use the unix code
588 LIBJAWT_EXCLUDE_SRC_PATTERNS := /unix/
589 endif
590
591 ifeq ($(call isTargetOs, macosx), true)
592 JAWT_LIBS := -lawt_lwawt
593 else
594 JAWT_LIBS := -lawt
595 ifeq ($(ENABLE_HEADLESS_ONLY), false)
596 JAWT_LIBS += -lawt_xawt
597 else
598 JAWT_LIBS += -lawt_headless
599 ifeq ($(call isTargetOs, linux), true)
600 JAWT_CFLAGS += -DHEADLESS
601 endif
602 endif
603 endif
604
605 $(eval $(call SetupJdkLibrary, BUILD_LIBJAWT, \
606 NAME := jawt, \
607 EXCLUDE_SRC_PATTERNS := $(LIBJAWT_EXCLUDE_SRC_PATTERNS), \
608 INCLUDE_FILES := $(JAWT_FILES), \
609 OPTIMIZATION := LOW, \
610 CFLAGS := $(CFLAGS_JDKLIB) \
611 $(JAWT_CFLAGS), \
612 DISABLED_WARNINGS_clang := sign-compare, \
613 EXTRA_HEADER_DIRS := \
614 include \
615 common/awt, \
616 LDFLAGS := $(LDFLAGS_JDKLIB) \
617 $(call SET_SHARED_LIBRARY_ORIGIN), \
618 LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
619 LDFLAGS_macosx := -Wl$(COMMA)-rpath$(COMMA)@loader_path, \
620 LIBS_unix := $(JAWT_LIBS) $(JDKLIB_LIBS), \
621 LIBS_macosx := -framework Cocoa, \
622 ))
623
624 ifeq ($(ENABLE_HEADLESS_ONLY), false)
625 $(BUILD_LIBJAWT): $(BUILD_LIBAWT_XAWT)
626 else
627 $(BUILD_LIBJAWT): $(call FindLib, $(MODULE), awt_headless)
628 endif
629
630 ifeq ($(call isTargetOs, macosx), true)
631 $(BUILD_LIBJAWT): $(call FindLib, $(MODULE), awt_lwawt)
632 endif
633
634 endif
635
636 TARGETS += $(BUILD_LIBJAWT)
637
638 ################################################################################
639
640 ifeq ($(ENABLE_HEADLESS_ONLY), false)
719 LIBSPLASHSCREEN_HEADER_DIRS += \
720 libosxapp \
721 java.base:include \
722 java.base:libjava \
723 #
724
725 $(eval $(call SetupJdkLibrary, BUILD_LIBSPLASHSCREEN, \
726 NAME := splashscreen, \
727 EXTRA_SRC := $(LIBSPLASHSCREEN_EXTRA_SRC), \
728 EXCLUDE_SRC_PATTERNS := $(LIBSPLASHSCREEN_EXCLUDE_SRC_PATTERNS), \
729 EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \
730 EXCLUDES := $(LIBSPLASHSCREEN_EXCLUDES), \
731 OPTIMIZATION := LOW, \
732 CFLAGS := $(CFLAGS_JDKLIB) $(LIBSPLASHSCREEN_CFLAGS) \
733 $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS) $(PNG_CFLAGS) $(LIBZ_CFLAGS), \
734 EXTRA_HEADER_DIRS := $(LIBSPLASHSCREEN_HEADER_DIRS), \
735 DISABLED_WARNINGS_gcc := sign-compare type-limits unused-result \
736 maybe-uninitialized shift-negative-value implicit-fallthrough \
737 unused-function, \
738 DISABLED_WARNINGS_clang := incompatible-pointer-types sign-compare, \
739 DISABLED_WARNINGS_microsoft := 4018 4244 4267, \
740 LDFLAGS := $(LDFLAGS_JDKLIB) \
741 $(call SET_SHARED_LIBRARY_ORIGIN), \
742 LDFLAGS_macosx := -L$(INSTALL_LIBRARIES_HERE), \
743 LDFLAGS_windows := -delayload:user32.dll, \
744 LIBS := $(JDKLIB_LIBS) $(LIBSPLASHSCREEN_LIBS) $(LIBZ_LIBS) \
745 $(GIFLIB_LIBS) $(LIBJPEG_LIBS) $(PNG_LIBS), \
746 LIBS_aix := -liconv, \
747 ))
748
749 TARGETS += $(BUILD_LIBSPLASHSCREEN)
750
751 ifeq ($(call isTargetOs, macosx), true)
752 $(BUILD_LIBSPLASHSCREEN): $(call FindLib, $(MODULE), osxapp)
753 endif
754
755 endif
756
757 ################################################################################
758
|