--- old/make/autoconf/help.m4 2020-07-31 10:28:45.876861379 -0700 +++ new/make/autoconf/help.m4 2020-07-31 10:28:45.636861383 -0700 @@ -101,6 +101,8 @@ PKGHANDLER_COMMAND="sudo apt-get install libfontconfig1-dev" ;; freetype) PKGHANDLER_COMMAND="sudo apt-get install libfreetype6-dev" ;; + harfbuzz) + PKGHANDLER_COMMAND="sudo apt-get install libharfbuzz-dev" ;; ffi) PKGHANDLER_COMMAND="sudo apt-get install libffi-dev" ;; x11) @@ -124,6 +126,8 @@ PKGHANDLER_COMMAND="sudo zypper install fontconfig-devel" ;; freetype) PKGHANDLER_COMMAND="sudo zypper install freetype-devel" ;; + harfbuzz) + PKGHANDLER_COMMAND="sudo zypper install harfbuzz-devel" ;; x11) PKGHANDLER_COMMAND="sudo zypper install libX11-devel libXext-devel libXrender-devel libXrandr-devel libXtst-devel libXt-devel libXi-devel" ;; ccache) @@ -143,6 +147,8 @@ PKGHANDLER_COMMAND="sudo yum install fontconfig-devel" ;; freetype) PKGHANDLER_COMMAND="sudo yum install freetype-devel" ;; + harfbuzz) + PKGHANDLER_COMMAND="sudo yum install harfbuzz-devel" ;; x11) PKGHANDLER_COMMAND="sudo yum install libXtst-devel libXt-devel libXrender-devel libXrandr-devel libXi-devel" ;; ccache) --- old/make/autoconf/lib-bundled.m4 2020-07-31 10:28:46.344861372 -0700 +++ new/make/autoconf/lib-bundled.m4 2020-07-31 10:28:46.120861375 -0700 @@ -40,6 +40,7 @@ LIB_SETUP_LIBPNG LIB_SETUP_ZLIB LIB_SETUP_LCMS + LIB_SETUP_HARFBUZZ ]) ################################################################################ @@ -263,3 +264,43 @@ AC_SUBST(LCMS_CFLAGS) AC_SUBST(LCMS_LIBS) ]) + +################################################################################ +# Setup harfbuzz +################################################################################ +AC_DEFUN_ONCE([LIB_SETUP_HARFBUZZ], +[ + AC_ARG_WITH(harfbuzz, [AS_HELP_STRING([--with-harfbuzz], + [use harfbuzz from build system or OpenJDK source (system, bundled) @<:@bundled@:>@])]) + + AC_MSG_CHECKING([for which harfbuzz to use]) + + DEFAULT_HARFBUZZ=bundled + # If user didn't specify, use DEFAULT_HARFBUZZ + if test "x${with_harfbuzz}" = "x"; then + with_harfbuzz=${DEFAULT_HARFBUZZ} + fi + + if test "x${with_harfbuzz}" = "xbundled"; then + USE_EXTERNAL_HARFBUZZ=false + HARFBUZZ_CFLAGS="" + HARFBUZZ_LIBS="" + AC_MSG_RESULT([bundled]) + elif test "x${with_harfbuzz}" = "xsystem"; then + AC_MSG_RESULT([system]) + PKG_CHECK_MODULES([HARFBUZZ], [harfbuzz], [HARFBUZZ_FOUND=yes], [HARFBUZZ_FOUND=no]) + if test "x${HARFBUZZ_FOUND}" = "xyes"; then + # PKG_CHECK_MODULES will set HARFBUZZ_CFLAGS and HARFBUZZ_LIBS + USE_EXTERNAL_HARFBUZZ=true + else + HELP_MSG_MISSING_DEPENDENCY([harfbuzz]) + AC_MSG_ERROR([--with-harfbuzz=system specified, but no harfbuzz found! $HELP_MSG]) + fi + else + AC_MSG_ERROR([Invalid value for --with-harfbuzz: ${with_harfbuzz}, use 'system' or 'bundled']) + fi + + AC_SUBST(USE_EXTERNAL_HARFBUZZ) + AC_SUBST(HARFBUZZ_CFLAGS) + AC_SUBST(HARFBUZZ_LIBS) +]) --- old/make/autoconf/spec.gmk.in 2020-07-31 10:28:46.832861364 -0700 +++ new/make/autoconf/spec.gmk.in 2020-07-31 10:28:46.608861367 -0700 @@ -824,6 +824,10 @@ LCMS_CFLAGS:=@LCMS_CFLAGS@ LCMS_LIBS:=@LCMS_LIBS@ +USE_EXTERNAL_HARFBUZZ:=@USE_EXTERNAL_HARFBUZZ@ +HARFBUZZ_CFLAGS:=@HARFBUZZ_CFLAGS@ +HARFBUZZ_LIBS:=@HARFBUZZ_LIBS@ + USE_EXTERNAL_LIBPNG:=@USE_EXTERNAL_LIBPNG@ PNG_LIBS:=@PNG_LIBS@ PNG_CFLAGS:=@PNG_CFLAGS@ --- old/make/modules/java.desktop/Copy.gmk 2020-07-31 10:28:47.344861355 -0700 +++ new/make/modules/java.desktop/Copy.gmk 2020-07-31 10:28:47.080861360 -0700 @@ -71,6 +71,10 @@ LEGAL_EXCLUDES += freetype.md endif +ifeq ($(USE_EXTERNAL_HARFBUZZ), true) + LEGAL_EXCLUDES += harfbuzz.md +endif + $(eval $(call SetupCopyLegalFiles, COPY_LEGAL, \ EXCLUDES := $(LEGAL_EXCLUDES), \ )) --- old/make/modules/java.desktop/lib/Awt2dLibraries.gmk 2020-07-31 10:28:47.892861346 -0700 +++ new/make/modules/java.desktop/lib/Awt2dLibraries.gmk 2020-07-31 10:28:47.608861351 -0700 @@ -432,6 +432,9 @@ ########################################################################### +ifeq ($(USE_EXTERNAL_HARFBUZZ), true) + LIBHARFBUZZ_LIBS := $(HARFBUZZ_LIBS) +else HARFBUZZ_CFLAGS := -DHAVE_OT -DHAVE_FALLBACK -DHAVE_UCDN -DHAVE_ROUND # This is better than adding EXPORT_ALL_SYMBOLS @@ -508,6 +511,8 @@ TARGETS += $(BUILD_LIBHARFBUZZ) +endif + ########################################################################### LIBFONTMANAGER_EXTRA_HEADER_DIRS := \ @@ -576,7 +581,11 @@ $(WIN_AWT_LIB), \ )) -$(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT) $(BUILD_LIBHARFBUZZ) +$(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT) + +ifeq ($(USE_EXTERNAL_HARFBUZZ), false) + $(BUILD_LIBFONTMANAGER): $(BUILD_LIBHARFBUZZ) +endif ifeq ($(call isTargetOs, macosx), true) $(BUILD_LIBFONTMANAGER): $(call FindLib, $(MODULE), awt_lwawt)