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)
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)
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 ASFLAGS := $(LIBAWT_ASFLAGS), \
151 LDFLAGS := $(LDFLAGS_JDKLIB) $(call SET_SHARED_LIBRARY_ORIGIN), \
152 LDFLAGS_macosx := -L$(INSTALL_LIBRARIES_HERE), \
153 LDFLAGS_windows := -delayload:user32.dll -delayload:gdi32.dll \
154 -delayload:shell32.dll -delayload:winmm.dll \
155 -delayload:winspool.drv -delayload:imm32.dll \
156 -delayload:ole32.dll -delayload:comdlg32.dll \
157 -delayload:comctl32.dll -delayload:shlwapi.dll, \
158 LIBS_unix := -ljvm -ljava $(LIBM), \
159 LIBS_linux := $(LIBDL), \
160 LIBS_aix := $(LIBDL),\
161 LIBS_macosx := -lmlib_image \
162 -framework Cocoa \
163 -framework OpenGL \
164 -framework JavaNativeFoundation \
165 -framework JavaRuntimeSupport \
166 -framework ApplicationServices \
167 -framework AudioToolbox, \
168 LIBS_windows := kernel32.lib user32.lib gdi32.lib winspool.lib \
169 imm32.lib ole32.lib uuid.lib shell32.lib \
170 comdlg32.lib winmm.lib comctl32.lib shlwapi.lib \
171 delayimp.lib jvm.lib $(WIN_JAVA_LIB) advapi32.lib, \
172 VERSIONINFO_RESOURCE := $(LIBAWT_VERSIONINFO_RESOURCE), \
173 RC_FLAGS := $(RC_FLAGS) $(LIBAWT_RC_FLAGS) \
174 -D "JDK_FNAME=awt.dll" \
175 -D "JDK_INTERNAL_NAME=awt" \
176 -D "JDK_FTYPE=0x2L", \
177 ))
178
179 $(BUILD_LIBAWT): $(call FindLib, java.base, java)
195 common/font \
196 #
197
198 LIBAWT_XAWT_EXCLUDES := medialib debug
199
200 LIBAWT_XAWT_EXTRA_HEADER_DIRS := \
201 $(LIBAWT_DEFAULT_HEADER_DIRS) \
202 libawt_xawt/awt \
203 include \
204 common/awt/debug \
205 common/awt/systemscale \
206 common/font \
207 common/java2d/opengl \
208 common/java2d/x11 \
209 #
210
211 LIBAWT_XAWT_CFLAGS += -DXAWT -DXAWT_HACK \
212 $(FONTCONFIG_CFLAGS) \
213 $(CUPS_CFLAGS)
214
215 ifeq ($(call isTargetOs, linux), true)
216 ifeq ($(DISABLE_XRENDER), true)
217 LIBAWT_XAWT_CFLAGS += -DDISABLE_XRENDER_BY_DEFAULT=true
218 endif
219 endif
220
221 LIBAWT_XAWT_LIBS := $(LIBM) -lawt -lXext -lX11 -lXrender $(LIBDL) -lXtst -lXi -ljava -ljvm
222
223 ifeq ($(call isTargetOs, linux), true)
224 LIBAWT_XAWT_LIBS += -lpthread
225 endif
226
227 ifeq ($(TOOLCHAIN_TYPE), gcc)
228 # Turn off all warnings for the following files since they contain warnings
229 # that cannot be turned of individually.
230 # redefining a macro
231 BUILD_LIBAWT_XAWT_gtk2_interface.c_CFLAGS := -w
232 # comparison between pointer and integer
233 BUILD_LIBAWT_XAWT_awt_Font.c_CFLAGS := -w
234 # initializing a declared 'extern'
235 BUILD_LIBAWT_XAWT_debug_mem.c_CFLAGS := -w
236 endif
237
238 $(eval $(call SetupJdkLibrary, BUILD_LIBAWT_XAWT, \
239 NAME := awt_xawt, \
240 EXTRA_SRC := $(LIBAWT_XAWT_EXTRA_SRC), \
241 EXTRA_HEADER_DIRS := $(LIBAWT_XAWT_EXTRA_HEADER_DIRS), \
242 EXCLUDES := $(LIBAWT_XAWT_EXCLUDES), \
243 OPTIMIZATION := LOW, \
244 CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_XAWT_CFLAGS) \
245 $(X_CFLAGS), \
246 WARNINGS_AS_ERRORS_xlc := false, \
247 DISABLED_WARNINGS_gcc := type-limits pointer-to-int-cast \
248 unused-result maybe-uninitialized format \
249 format-security int-to-pointer-cast parentheses \
250 implicit-fallthrough undef unused-function, \
251 DISABLED_WARNINGS_clang := parentheses format undef \
252 logical-op-parentheses format-nonliteral int-conversion, \
253 LDFLAGS := $(LDFLAGS_JDKLIB) \
254 $(call SET_SHARED_LIBRARY_ORIGIN) \
255 -L$(INSTALL_LIBRARIES_HERE), \
256 LIBS := $(X_LIBS) $(LIBAWT_XAWT_LIBS), \
257 ))
258
259 $(BUILD_LIBAWT_XAWT): $(call FindLib, java.base, java)
260
261 $(BUILD_LIBAWT_XAWT): $(BUILD_LIBAWT)
262
263 TARGETS += $(BUILD_LIBAWT_XAWT)
264
265 endif
266 endif
267
268 ################################################################################
269
270 # The fast floor code loses precision.
271 LCMS_CFLAGS=-DCMS_DONT_USE_FAST_FLOOR
272
278 # as includes, instead the system headers should be used.
279 LIBLCMS_HEADERS_FROM_SRC := false
280 else
281 BUILD_LIBLCMS_INCLUDE_FILES :=
282 endif
283
284 $(eval $(call SetupJdkLibrary, BUILD_LIBLCMS, \
285 NAME := lcms, \
286 INCLUDE_FILES := $(BUILD_LIBLCMS_INCLUDE_FILES), \
287 OPTIMIZATION := HIGHEST, \
288 CFLAGS := $(CFLAGS_JDKLIB) \
289 $(LCMS_CFLAGS), \
290 CFLAGS_windows := -DCMS_IS_WINDOWS_, \
291 EXTRA_HEADER_DIRS := \
292 common/awt/debug \
293 libawt/java2d, \
294 HEADERS_FROM_SRC := $(LIBLCMS_HEADERS_FROM_SRC), \
295 DISABLED_WARNINGS_gcc := format-nonliteral type-limits \
296 misleading-indentation undef unused-function stringop-truncation, \
297 DISABLED_WARNINGS_clang := tautological-compare format-nonliteral undef, \
298 DISABLED_WARNINGS_microsoft := 4819, \
299 LDFLAGS := $(LDFLAGS_JDKLIB) \
300 $(call SET_SHARED_LIBRARY_ORIGIN), \
301 LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
302 LIBS_unix := -lawt -ljvm -ljava $(LCMS_LIBS) $(LIBM), \
303 LIBS_windows := $(WIN_AWT_LIB) $(WIN_JAVA_LIB), \
304 ))
305
306 TARGETS += $(BUILD_LIBLCMS)
307
308 $(BUILD_LIBLCMS): $(BUILD_LIBAWT)
309
310 ################################################################################
311
312 # "DISABLED_WARNINGS_gcc := clobbered" rationale:
313 # Suppress gcc warnings like "variable might be clobbered by 'longjmp'
314 # or 'vfork'": this warning indicates that some variable is placed to
315 # a register by optimized compiler and it's value might be lost on longjmp().
316 # Recommended way to avoid such warning is to declare the variable as
317 # volatile to prevent the optimization. However, this approach does not
362
363 LIBAWT_HEADLESS_EXTRA_HEADER_DIRS := \
364 $(LIBAWT_DEFAULT_HEADER_DIRS) \
365 common/awt/debug \
366 common/font \
367 common/java2d/opengl \
368 #
369
370 LIBAWT_HEADLESS_CFLAGS := $(CUPS_CFLAGS) $(FONTCONFIG_CFLAGS) $(X_CFLAGS) \
371 -DHEADLESS=true
372
373 $(eval $(call SetupJdkLibrary, BUILD_LIBAWT_HEADLESS, \
374 NAME := awt_headless, \
375 EXTRA_SRC := $(LIBAWT_HEADLESS_EXTRA_SRC), \
376 EXCLUDES := $(LIBAWT_HEADLESS_EXCLUDES), \
377 OPTIMIZATION := LOW, \
378 CFLAGS := $(CFLAGS_JDKLIB) \
379 $(LIBAWT_HEADLESS_CFLAGS), \
380 EXTRA_HEADER_DIRS := $(LIBAWT_HEADLESS_EXTRA_HEADER_DIRS), \
381 DISABLED_WARNINGS_gcc := unused-function, \
382 LDFLAGS := $(LDFLAGS_JDKLIB) \
383 $(call SET_SHARED_LIBRARY_ORIGIN), \
384 LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
385 LIBS_unix := -lawt -ljvm -ljava, \
386 LIBS_linux := $(LIBM) $(LIBDL), \
387 ))
388
389 $(BUILD_LIBAWT_HEADLESS): $(BUILD_LIBAWT)
390
391 TARGETS += $(BUILD_LIBAWT_HEADLESS)
392
393 endif
394
395 ################################################################################
396
397 ifeq ($(FREETYPE_TO_USE), system)
398 # For use by libfontmanager:
399 LIBFREETYPE_CFLAGS := $(FREETYPE_CFLAGS)
400 LIBFREETYPE_LIBS := $(FREETYPE_LIBS)
401 else
402 BUILD_LIBFREETYPE_HEADER_DIRS := $(TOPDIR)/src/$(MODULE)/share/native/libfreetype/include
403 BUILD_LIBFREETYPE_CFLAGS := -DFT2_BUILD_LIBRARY $(EXPORT_ALL_SYMBOLS)
404
405 # For use by libfontmanager:
406 LIBFREETYPE_CFLAGS := -I$(BUILD_LIBFREETYPE_HEADER_DIRS)
407 ifeq ($(call isTargetOs, windows), true)
408 LIBFREETYPE_LIBS := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfreetype/freetype.lib
409 # freetype now requires you to manually define this (see ftconfig.h)
410 BUILD_LIBFREETYPE_CFLAGS += -DDLL_EXPORT
411 else
412 LIBFREETYPE_LIBS := -lfreetype
413 endif
414
415 $(eval $(call SetupJdkLibrary, BUILD_LIBFREETYPE, \
416 NAME := freetype, \
417 OPTIMIZATION := HIGHEST, \
418 CFLAGS := $(CFLAGS_JDKLIB) \
419 $(BUILD_LIBFREETYPE_CFLAGS), \
420 EXTRA_HEADER_DIRS := $(BUILD_LIBFREETYPE_HEADER_DIRS), \
421 DISABLED_WARNINGS_microsoft := 4018 4267 4244 4312 4819, \
422 DISABLED_WARNINGS_gcc := implicit-fallthrough cast-function-type bad-function-cast, \
423 LDFLAGS := $(LDFLAGS_JDKLIB) \
424 $(call SET_SHARED_LIBRARY_ORIGIN), \
425 ))
426
427 TARGETS += $(BUILD_LIBFREETYPE)
428 endif
429
430 ###########################################################################
431
432 #### Begin harfbuzz configuration
433
434 HARFBUZZ_CFLAGS := -DHAVE_OT -DHAVE_FALLBACK -DHAVE_UCDN -DHAVE_ROUND
435
436 ifeq ($(call isTargetOs, windows), false)
437 HARFBUZZ_CFLAGS += -DGETPAGESIZE -DHAVE_MPROTECT -DHAVE_PTHREAD \
438 -DHAVE_SYSCONF -DHAVE_SYS_MMAN_H -DHAVE_UNISTD_H \
439 -DHB_NO_PRAGMA_GCC_DIAGNOSTIC
440 endif
441 ifeq ($(call isTargetOs, linux macosx), true)
442 HARFBUZZ_CFLAGS += -DHAVE_INTEL_ATOMIC_PRIMITIVES
443 endif
444 ifeq ($(call isTargetOs, macosx), true)
445 HARFBUZZ_CFLAGS += -DHAVE_CORETEXT
446 endif
447 ifeq ($(call isTargetOs, macosx), false)
448 LIBFONTMANAGER_EXCLUDE_FILES += harfbuzz/hb-coretext.cc
449 endif
450 # hb-ft.cc is not presently needed, and requires freetype 2.4.2 or later.
451 LIBFONTMANAGER_EXCLUDE_FILES += harfbuzz/hb-ft.cc
452
453 LIBFONTMANAGER_CFLAGS += $(HARFBUZZ_CFLAGS)
454
455 #### End harfbuzz configuration
456
457 LIBFONTMANAGER_EXTRA_HEADER_DIRS := \
458 libfontmanager/harfbuzz \
459 libfontmanager/harfbuzz/hb-ucdn \
460 common/awt \
461 common/font \
462 libawt/java2d \
463 libawt/java2d/pipe \
497 # libawt_xawt). See JDK-8196516 for details.
498 $(eval $(call SetupJdkLibrary, BUILD_LIBFONTMANAGER, \
499 NAME := fontmanager, \
500 EXCLUDE_FILES := $(LIBFONTMANAGER_EXCLUDE_FILES) \
501 AccelGlyphCache.c, \
502 TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
503 CFLAGS := $(CFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \
504 CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \
505 OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \
506 CFLAGS_windows = -DCC_NOEX, \
507 EXTRA_HEADER_DIRS := $(LIBFONTMANAGER_EXTRA_HEADER_DIRS), \
508 WARNINGS_AS_ERRORS_xlc := false, \
509 DISABLED_WARNINGS_gcc := sign-compare int-to-pointer-cast \
510 type-limits missing-field-initializers implicit-fallthrough \
511 strict-aliasing undef unused-function, \
512 DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
513 maybe-uninitialized class-memaccess, \
514 DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
515 tautological-constant-out-of-range-compare int-to-pointer-cast \
516 sign-compare undef missing-field-initializers, \
517 DISABLED_WARNINGS_microsoft := 4267 4244 4018 4090 4996 4146 4334 4819 4101 4068 4805 4138, \
518 LDFLAGS := $(subst -Xlinker -z -Xlinker defs,, \
519 $(subst -Wl$(COMMA)-z$(COMMA)defs,,$(LDFLAGS_JDKLIB))) $(LDFLAGS_CXX_JDK) \
520 $(call SET_SHARED_LIBRARY_ORIGIN), \
521 LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
522 LDFLAGS_aix := -Wl$(COMMA)-berok, \
523 LIBS := $(BUILD_LIBFONTMANAGER_FONTLIB), \
524 LIBS_unix := -lawt -ljava -ljvm $(LIBM) $(LIBCXX), \
525 LIBS_macosx := -lawt_lwawt -framework CoreText -framework CoreFoundation \
526 -framework CoreGraphics, \
527 LIBS_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
528 $(WIN_AWT_LIB), \
529 ))
530
531 $(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT)
532
533 ifeq ($(call isTargetOs, macosx), true)
534 $(BUILD_LIBFONTMANAGER): $(call FindLib, $(MODULE), awt_lwawt)
535 endif
536
575
576 $(eval $(call SetupCopyFiles, COPY_JAWT_LIB, \
577 FILES := $(BUILD_LIBJAWT_IMPORT_LIBRARY), \
578 DEST := $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE), \
579 ))
580
581 $(COPY_JAWT_LIB): $(BUILD_LIBJAWT)
582
583 TARGETS += $(COPY_JAWT_LIB)
584
585 else # not windows
586
587 ifeq ($(call isTargetOs, macosx), true)
588 # libjawt on macosx do not use the unix code
589 LIBJAWT_EXCLUDE_SRC_PATTERNS := /unix/
590 endif
591
592 ifeq ($(call isTargetOs, macosx), true)
593 JAWT_LIBS := -lawt_lwawt
594 else
595 JAWT_LIBS := -lawt
596 ifeq ($(ENABLE_HEADLESS_ONLY), false)
597 JAWT_LIBS += -lawt_xawt
598 else
599 JAWT_LIBS += -lawt_headless
600 ifeq ($(call isTargetOs, linux), true)
601 JAWT_CFLAGS += -DHEADLESS
602 endif
603 endif
604 endif
605
606 $(eval $(call SetupJdkLibrary, BUILD_LIBJAWT, \
607 NAME := jawt, \
608 EXCLUDE_SRC_PATTERNS := $(LIBJAWT_EXCLUDE_SRC_PATTERNS), \
609 INCLUDE_FILES := $(JAWT_FILES), \
610 OPTIMIZATION := LOW, \
611 CFLAGS := $(CFLAGS_JDKLIB) \
612 $(JAWT_CFLAGS), \
613 DISABLED_WARNINGS_clang := sign-compare, \
614 EXTRA_HEADER_DIRS := \
615 include \
616 common/awt, \
617 LDFLAGS := $(LDFLAGS_JDKLIB) \
618 $(call SET_SHARED_LIBRARY_ORIGIN), \
619 LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
620 LDFLAGS_macosx := -Wl$(COMMA)-rpath$(COMMA)@loader_path, \
621 LIBS_unix := $(JAWT_LIBS) $(JDKLIB_LIBS), \
622 LIBS_macosx := -framework Cocoa, \
623 ))
624
625 ifeq ($(ENABLE_HEADLESS_ONLY), false)
626 $(BUILD_LIBJAWT): $(BUILD_LIBAWT_XAWT)
627 else
628 $(BUILD_LIBJAWT): $(call FindLib, $(MODULE), awt_headless)
629 endif
630
631 ifeq ($(call isTargetOs, macosx), true)
632 $(BUILD_LIBJAWT): $(call FindLib, $(MODULE), awt_lwawt)
633 endif
634
635 endif
636
637 TARGETS += $(BUILD_LIBJAWT)
638
639 ################################################################################
640
641 ifeq ($(ENABLE_HEADLESS_ONLY), false)
720 LIBSPLASHSCREEN_HEADER_DIRS += \
721 libosxapp \
722 java.base:include \
723 java.base:libjava \
724 #
725
726 $(eval $(call SetupJdkLibrary, BUILD_LIBSPLASHSCREEN, \
727 NAME := splashscreen, \
728 EXTRA_SRC := $(LIBSPLASHSCREEN_EXTRA_SRC), \
729 EXCLUDE_SRC_PATTERNS := $(LIBSPLASHSCREEN_EXCLUDE_SRC_PATTERNS), \
730 EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \
731 EXCLUDES := $(LIBSPLASHSCREEN_EXCLUDES), \
732 OPTIMIZATION := LOW, \
733 CFLAGS := $(CFLAGS_JDKLIB) $(LIBSPLASHSCREEN_CFLAGS) \
734 $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS) $(PNG_CFLAGS) $(LIBZ_CFLAGS), \
735 EXTRA_HEADER_DIRS := $(LIBSPLASHSCREEN_HEADER_DIRS), \
736 DISABLED_WARNINGS_gcc := sign-compare type-limits unused-result \
737 maybe-uninitialized shift-negative-value implicit-fallthrough \
738 unused-function, \
739 DISABLED_WARNINGS_clang := incompatible-pointer-types sign-compare, \
740 DISABLED_WARNINGS_microsoft := 4018 4244 4267, \
741 LDFLAGS := $(LDFLAGS_JDKLIB) \
742 $(call SET_SHARED_LIBRARY_ORIGIN), \
743 LDFLAGS_macosx := -L$(INSTALL_LIBRARIES_HERE), \
744 LDFLAGS_windows := -delayload:user32.dll, \
745 LIBS := $(JDKLIB_LIBS) $(LIBSPLASHSCREEN_LIBS) $(LIBZ_LIBS) \
746 $(GIFLIB_LIBS) $(LIBJPEG_LIBS) $(PNG_LIBS), \
747 LIBS_aix := -liconv, \
748 ))
749
750 TARGETS += $(BUILD_LIBSPLASHSCREEN)
751
752 ifeq ($(call isTargetOs, macosx), true)
753 $(BUILD_LIBSPLASHSCREEN): $(call FindLib, $(MODULE), osxapp)
754 endif
755
756 endif
757
758 ################################################################################
759
|