< prev index next >

make/modules/java.desktop/lib/Awt2dLibraries.gmk

Print this page




 412       NAME := freetype, \
 413       OPTIMIZATION := HIGHEST, \
 414       CFLAGS := $(CFLAGS_JDKLIB) \
 415           $(BUILD_LIBFREETYPE_CFLAGS), \
 416       EXTRA_HEADER_DIRS := $(BUILD_LIBFREETYPE_HEADER_DIRS), \
 417       DISABLED_WARNINGS_microsoft := 4018 4267 4244 4312 4819, \
 418       DISABLED_WARNINGS_gcc := implicit-fallthrough cast-function-type bad-function-cast, \
 419       LDFLAGS := $(LDFLAGS_JDKLIB) \
 420           $(call SET_SHARED_LIBRARY_ORIGIN), \
 421   ))
 422 
 423   TARGETS += $(BUILD_LIBFREETYPE)
 424 endif
 425 
 426 ###########################################################################
 427 
 428 #### Begin harfbuzz configuration
 429 
 430 HARFBUZZ_CFLAGS := -DHAVE_OT -DHAVE_FALLBACK -DHAVE_UCDN -DHAVE_ROUND
 431 








 432 ifeq ($(call isTargetOs, windows), false)
 433   HARFBUZZ_CFLAGS += -DGETPAGESIZE -DHAVE_MPROTECT -DHAVE_PTHREAD \
 434                       -DHAVE_SYSCONF -DHAVE_SYS_MMAN_H -DHAVE_UNISTD_H \
 435                       -DHB_NO_PRAGMA_GCC_DIAGNOSTIC
 436 endif
 437 ifeq ($(call isTargetOs, linux macosx), true)
 438   HARFBUZZ_CFLAGS += -DHAVE_INTEL_ATOMIC_PRIMITIVES
 439 endif
 440 ifeq ($(call isTargetOs, macosx), true)
 441   HARFBUZZ_CFLAGS += -DHAVE_CORETEXT
 442 endif
 443 ifeq ($(call isTargetOs, macosx), false)
 444   LIBFONTMANAGER_EXCLUDE_FILES += harfbuzz/hb-coretext.cc
 445 endif
 446 # hb-ft.cc is not presently needed, and requires freetype 2.4.2 or later.
 447 LIBFONTMANAGER_EXCLUDE_FILES += harfbuzz/hb-ft.cc


 448 
 449 LIBFONTMANAGER_CFLAGS += $(HARFBUZZ_CFLAGS)





 450 
 451 #### End harfbuzz configuration
 452 











































 453 LIBFONTMANAGER_EXTRA_HEADER_DIRS := \
 454     libfontmanager/harfbuzz \
 455     libfontmanager/harfbuzz/hb-ucdn \
 456     common/awt \
 457     common/font \
 458     libawt/java2d \
 459     libawt/java2d/pipe \
 460     libawt/java2d/loops \
 461     #
 462 
 463 LIBFONTMANAGER_CFLAGS += $(LIBFREETYPE_CFLAGS)
 464 BUILD_LIBFONTMANAGER_FONTLIB += $(LIBFREETYPE_LIBS)
 465 
 466 LIBFONTMANAGER_OPTIMIZATION := HIGH
 467 
 468 ifeq ($(call isTargetOs, windows), true)
 469   LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
 470       X11TextRenderer.c
 471   LIBFONTMANAGER_OPTIMIZATION := HIGHEST
 472 else ifeq ($(call isTargetOs, macosx), true)
 473   LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
 474       X11TextRenderer.c \
 475       fontpath.c \
 476       lcdglyph.c
 477 else
 478   LIBFONTMANAGER_EXCLUDE_FILES += fontpath.c \
 479       lcdglyph.c
 480 endif
 481 
 482 LIBFONTMANAGER_CFLAGS += $(X_CFLAGS) -DLE_STANDALONE -DHEADLESS
 483 
 484 ifeq ($(TOOLCHAIN_TYPE), gcc)
 485   # Turn off all warnings for sunFont.c. This is needed because the specific warning
 486   # about discarding 'const' qualifier cannot be turned off individually.
 487   BUILD_LIBFONTMANAGER_sunFont.c_CFLAGS := -w
 488 endif
 489 
 490 # LDFLAGS clarification:
 491 #   Filter relevant linker flags disallowing unresolved symbols as we cannot
 492 #   build-time decide to which library to link against (libawt_headless or
 493 #   libawt_xawt). See JDK-8196516 for details.
 494 $(eval $(call SetupJdkLibrary, BUILD_LIBFONTMANAGER, \
 495     NAME := fontmanager, \
 496     EXCLUDE_FILES := $(LIBFONTMANAGER_EXCLUDE_FILES) \
 497         AccelGlyphCache.c, \
 498     TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
 499     CFLAGS := $(CFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \
 500     CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \
 501     OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \
 502     CFLAGS_windows = -DCC_NOEX, \
 503     EXTRA_HEADER_DIRS := $(LIBFONTMANAGER_EXTRA_HEADER_DIRS), \
 504     WARNINGS_AS_ERRORS_xlc := false, \
 505     DISABLED_WARNINGS_gcc := sign-compare int-to-pointer-cast \
 506         type-limits missing-field-initializers implicit-fallthrough \
 507         strict-aliasing undef unused-function, \
 508     DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
 509         maybe-uninitialized class-memaccess, \
 510     DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
 511         tautological-constant-out-of-range-compare int-to-pointer-cast \
 512         sign-compare undef missing-field-initializers, \
 513     DISABLED_WARNINGS_microsoft := 4267 4244 4018 4090 4996 4146 4334 4819 4101 4068 4805 4138, \
 514     LDFLAGS := $(subst -Xlinker -z -Xlinker defs,, \
 515         $(subst -Wl$(COMMA)-z$(COMMA)defs,,$(LDFLAGS_JDKLIB))) $(LDFLAGS_CXX_JDK) \
 516         $(call SET_SHARED_LIBRARY_ORIGIN), \
 517     LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
 518     LDFLAGS_aix := -Wl$(COMMA)-berok, \
 519     LIBS := $(BUILD_LIBFONTMANAGER_FONTLIB), \
 520     LIBS_unix := -lawt -ljava -ljvm $(LIBM) $(LIBCXX), \
 521     LIBS_macosx := -lawt_lwawt -framework CoreText -framework CoreFoundation \
 522         -framework CoreGraphics, \
 523     LIBS_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
 524         $(WIN_AWT_LIB), \
 525 ))
 526 
 527 $(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT)
 528 
 529 ifeq ($(call isTargetOs, macosx), true)
 530   $(BUILD_LIBFONTMANAGER): $(call FindLib, $(MODULE), awt_lwawt)
 531 endif
 532 
 533 ifeq ($(FREETYPE_TO_USE), bundled)
 534   $(BUILD_LIBFONTMANAGER): $(BUILD_LIBFREETYPE)
 535 endif
 536 
 537 TARGETS += $(BUILD_LIBFONTMANAGER)
 538 
 539 ################################################################################
 540 
 541 ifeq ($(call isTargetOs, windows), true)
 542 
 543   LIBJAWT_CFLAGS := -EHsc -DUNICODE -D_UNICODE
 544 
 545   LIBJAWT_EXTRA_HEADER_DIRS := \
 546       include \
 547       common/awt/debug \




 412       NAME := freetype, \
 413       OPTIMIZATION := HIGHEST, \
 414       CFLAGS := $(CFLAGS_JDKLIB) \
 415           $(BUILD_LIBFREETYPE_CFLAGS), \
 416       EXTRA_HEADER_DIRS := $(BUILD_LIBFREETYPE_HEADER_DIRS), \
 417       DISABLED_WARNINGS_microsoft := 4018 4267 4244 4312 4819, \
 418       DISABLED_WARNINGS_gcc := implicit-fallthrough cast-function-type bad-function-cast, \
 419       LDFLAGS := $(LDFLAGS_JDKLIB) \
 420           $(call SET_SHARED_LIBRARY_ORIGIN), \
 421   ))
 422 
 423   TARGETS += $(BUILD_LIBFREETYPE)
 424 endif
 425 
 426 ###########################################################################
 427 
 428 #### Begin harfbuzz configuration
 429 
 430 HARFBUZZ_CFLAGS := -DHAVE_OT -DHAVE_FALLBACK -DHAVE_UCDN -DHAVE_ROUND
 431 
 432 # This is better than adding EXPORT_ALL_SYMBOLS
 433 ifneq ($(filter $(TOOLCHAIN_TYPE), gcc clang), )
 434 HARFBUZZ_CFLAGS += -DHB_EXTERN=__attribute__\(\(visibility\(\"default\"\)\)\)
 435 else ifeq ($(TOOLCHAIN_TYPE), microsoft)
 436     HARFBUZZ_CFLAGS += -DHB_EXTERN=__declspec\(dllexport\)
 437 endif
 438 
 439 
 440 ifeq ($(call isTargetOs, windows), false)
 441   HARFBUZZ_CFLAGS += -DGETPAGESIZE -DHAVE_MPROTECT -DHAVE_PTHREAD \
 442                       -DHAVE_SYSCONF -DHAVE_SYS_MMAN_H -DHAVE_UNISTD_H \
 443                       -DHB_NO_PRAGMA_GCC_DIAGNOSTIC
 444 endif
 445 ifeq ($(call isTargetOs, linux macosx), true)
 446   HARFBUZZ_CFLAGS += -DHAVE_INTEL_ATOMIC_PRIMITIVES
 447 endif
 448 ifeq ($(call isTargetOs, macosx), true)
 449   HARFBUZZ_CFLAGS += -DHAVE_CORETEXT
 450 endif
 451 ifeq ($(call isTargetOs, macosx), false)
 452   LIBHARFBUZZ_EXCLUDE_FILES += harfbuzz/hb-coretext.cc
 453 endif
 454 # hb-ft.cc is not presently needed, and requires freetype 2.4.2 or later.
 455 LIBHARFBUZZ_EXCLUDE_FILES += harfbuzz/hb-ft.cc
 456 
 457 LIBHARFBUZZ_CFLAGS += $(HARFBUZZ_CFLAGS)
 458 
 459   # For use by libfontmanager:
 460   ifeq ($(call isTargetOs, windows), true)
 461     LIBHARFBUZZ_LIBS := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libharfbuzz/harfbuzz.lib
 462   else
 463     LIBHARFBUZZ_LIBS := -lharfbuzz
 464   endif
 465 
 466 #### End harfbuzz configuration
 467 
 468 LIBHARFBUZZ_EXTRA_HEADER_DIRS := \
 469     libharfbuzz/hb-ucdn \
 470     #
 471 
 472 LIBHARFBUZZ_OPTIMIZATION := HIGH
 473 
 474 LIBHARFBUZZ_CFLAGS += $(X_CFLAGS) -DLE_STANDALONE -DHEADLESS
 475 
 476 $(eval $(call SetupJdkLibrary, BUILD_LIBHARFBUZZ, \
 477     NAME := harfbuzz, \
 478     EXCLUDE_FILES := $(LIBHARFBUZZ_EXCLUDE_FILES), \
 479     TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
 480     CFLAGS := $(CFLAGS_JDKLIB) $(LIBHARFBUZZ_CFLAGS), \
 481     CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBHARFBUZZ_CFLAGS), \
 482     OPTIMIZATION := $(LIBHARFBUZZ_OPTIMIZATION), \
 483     CFLAGS_windows = -DCC_NOEX, \
 484     EXTRA_HEADER_DIRS := $(LIBHARFBUZZ_EXTRA_HEADER_DIRS), \
 485     WARNINGS_AS_ERRORS_xlc := false, \
 486     DISABLED_WARNINGS_gcc := type-limits missing-field-initializers strict-aliasing, \
 487     DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
 488         maybe-uninitialized class-memaccess, \
 489     DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
 490         tautological-constant-out-of-range-compare int-to-pointer-cast \
 491         undef missing-field-initializers, \
 492     DISABLED_WARNINGS_microsoft := 4267 4244 4090 4146 4334 4819 4101 4068 4805 4138, \
 493       LDFLAGS := $(LDFLAGS_JDKLIB) \
 494           $(call SET_SHARED_LIBRARY_ORIGIN), \
 495     LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
 496     LDFLAGS_aix := -Wl$(COMMA)-berok, \
 497     LIBS := $(BUILD_LIBHARFBUZZ), \
 498     LIBS_unix := $(LIBM) $(LIBCXX), \
 499     LIBS_macosx := -framework CoreText -framework CoreFoundation -framework CoreGraphics, \
 500     LIBS_windows := user32.lib, \
 501 ))
 502 
 503 ifeq ($(FREETYPE_TO_USE), bundled)
 504   $(BUILD_LIBHARFBUZZ): $(BUILD_LIBFREETYPE)
 505 endif
 506 
 507 TARGETS += $(BUILD_LIBHARFBUZZ)
 508 
 509 ###########################################################################
 510 
 511 LIBFONTMANAGER_EXTRA_HEADER_DIRS := \
 512     libharfbuzz \

 513     common/awt \
 514     common/font \
 515     libawt/java2d \
 516     libawt/java2d/pipe \
 517     libawt/java2d/loops \
 518     #
 519 
 520 LIBFONTMANAGER_CFLAGS += $(LIBFREETYPE_CFLAGS) $(HARFBUZZ_FLAGS)
 521 BUILD_LIBFONTMANAGER_FONTLIB += $(LIBHARFBUZZ_LIBS) $(LIBFREETYPE_LIBS)
 522 
 523 LIBFONTMANAGER_OPTIMIZATION := HIGH
 524 
 525 ifeq ($(call isTargetOs, windows), true)
 526   LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
 527       X11TextRenderer.c
 528   LIBFONTMANAGER_OPTIMIZATION := HIGHEST
 529 else ifeq ($(call isTargetOs, macosx), true)
 530   LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
 531       X11TextRenderer.c \
 532       fontpath.c \
 533       lcdglyph.c
 534 else
 535   LIBFONTMANAGER_EXCLUDE_FILES += fontpath.c \
 536       lcdglyph.c
 537 endif
 538 
 539 LIBFONTMANAGER_CFLAGS += $(X_CFLAGS) -DLE_STANDALONE -DHEADLESS
 540 
 541 ifeq ($(TOOLCHAIN_TYPE), gcc)
 542   # Turn off all warnings for sunFont.c. This is needed because the specific warning
 543   # about discarding 'const' qualifier cannot be turned off individually.
 544   BUILD_LIBFONTMANAGER_sunFont.c_CFLAGS := -w
 545 endif
 546 
 547 # LDFLAGS clarification:
 548 #   Filter relevant linker flags disallowing unresolved symbols as we cannot
 549 #   build-time decide to which library to link against (libawt_headless or
 550 #   libawt_xawt). See JDK-8196516 for details.
 551 $(eval $(call SetupJdkLibrary, BUILD_LIBFONTMANAGER, \
 552     NAME := fontmanager, \
 553     EXCLUDE_FILES := $(LIBFONTMANAGER_EXCLUDE_FILES) \
 554         AccelGlyphCache.c, \
 555     TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
 556     CFLAGS := $(CFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \
 557     CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \
 558     OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \
 559     CFLAGS_windows = -DCC_NOEX, \
 560     EXTRA_HEADER_DIRS := $(LIBFONTMANAGER_EXTRA_HEADER_DIRS), \
 561     WARNINGS_AS_ERRORS_xlc := false, \
 562     DISABLED_WARNINGS_gcc := sign-compare unused-function, \
 563     DISABLED_WARNINGS_clang := sign-compare, \
 564     DISABLED_WARNINGS_microsoft := 4018 4146 4244 4996, \






 565     LDFLAGS := $(subst -Xlinker -z -Xlinker defs,, \
 566         $(subst -Wl$(COMMA)-z$(COMMA)defs,,$(LDFLAGS_JDKLIB))) $(LDFLAGS_CXX_JDK) \
 567         $(call SET_SHARED_LIBRARY_ORIGIN), \
 568     LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
 569     LDFLAGS_aix := -Wl$(COMMA)-berok, \
 570     LIBS := $(BUILD_LIBFONTMANAGER_FONTLIB), \
 571     LIBS_unix := -lawt -ljava -ljvm $(LIBM) $(LIBCXX), \
 572     LIBS_macosx := -lawt_lwawt, \

 573     LIBS_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
 574         $(WIN_AWT_LIB), \
 575 ))
 576 
 577 $(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT) $(BUILD_LIBHARFBUZZ)
 578 
 579 ifeq ($(call isTargetOs, macosx), true)
 580   $(BUILD_LIBFONTMANAGER): $(call FindLib, $(MODULE), awt_lwawt)
 581 endif
 582 
 583 ifeq ($(FREETYPE_TO_USE), bundled)
 584   $(BUILD_LIBFONTMANAGER): $(BUILD_LIBFREETYPE)
 585 endif
 586 
 587 TARGETS += $(BUILD_LIBFONTMANAGER)
 588 
 589 ################################################################################
 590 
 591 ifeq ($(call isTargetOs, windows), true)
 592 
 593   LIBJAWT_CFLAGS := -EHsc -DUNICODE -D_UNICODE
 594 
 595   LIBJAWT_EXTRA_HEADER_DIRS := \
 596       include \
 597       common/awt/debug \


< prev index next >