#! /bin/sh -
### ========================================================================
### Automate the building of daily TeX Live 2020 snapshots for all
### local architectures.  The environment variable prefix controls the
### choice of search path, and suitable defaults are provided if it is
### not yet set.
###
### Usage:
###     [unpack the texlive-YYMMDD distribution somewhere and cd to it]
###     [env CC=/path/to/c-compiler        \
###          CXX=/path/to/c++-compiler     \
###          CLISP=/path/to/clisp          \
###	     GNUDF=/path/to/gnu/df         \
###	     GNUDU=/path/to/gnu/du         \
###	     GNUMAKE=/path/to/gnu/make     \
###	     GNUTAR=/path/to/gnu/tar       \
###	     TL_CONFIGURE_FLAGS="..." ]    \
###	     $prefix/src/texlive/build-texlive-2021.sh [ -m64 ] [ texlive-YYYYMMDD ]
###
### The -m64 option is needed to select a 64-bit Solaris build.
###
### [13-Apr-2021] -- final tweaks at end of TeX Live 2021 build season
### [06-Jan-2021] -- update for TeX Live 2021 build season
### [07-Apr-2020] -- add support for RISC-V64 architecture
### [23-Dec-2019] -- first prototype for TeX Live 2020 builds
### [19-Jun-2019] -- even more tweaks for 2019 builds, including restoring
###                  correct in-build-tree installation directory with
###                  settings of TL_INSTALL_DIR and --exec-prefix
### [11-Apr-2019] -- more  tweaks for 2019 builds
### [25-Mar-2019] -- minor tweaks for 2019 builds
### [01-Mar-2018] -- minor tweaks to deal with 2018-vintage build issues
### [17-Jan-2018] -- adapt from build-texlive-2017.sh for 2018 builds
### [04-Feb-2017] -- adapt from build-texlive-2016.sh for 2017 builds
### [04-Mar-2016] -- adapt from build-texlive-2015.sh for 2016 builds
### [31-Mar-2015] -- revise with search loops and run-time variable overrides
### [28-Mar-2015] -- copied from 2014 version
### [20-Jun-2014] -- more minor tweaks
### [24-May-2014] -- add support for command-line naming of texlive-YYYYMMDD
### [04-Apr-2014] -- minor tweaks
### [30-Mar-2014]
### ========================================================================

IFS='
	'

PATH=/bin:/usr/bin
### pod2man is needed for dvipng, and Parabola Linux has it in a
### nonstandard directory
test -x /usr/bin/core_perl/pod2man && PATH=$PATH:/usr/bin/core_perl
export PATH

fatal()
{
    echo "ERROR:" "$@"
    exit 1
}

test -z "$prefix" && test -d /usr/uumath/bin && prefix=/usr/uumath
test -z "$prefix" && test -d /usr/local/bin  && prefix=/usr/local
prefix=${prefix-/usr/local}

test ! -x /usr/bin/clisp -a ! -x /bin/clisp -a -x $prefix/bin/clisp && PATH=$PATH:$prefix/bin && export PATH

date

echo "DEBUG: prefix             = $prefix"

SYSBINDIRS="/bin /usr/bin /opt/csw/bin /usr/pkg/bin /usr/local/bin"

### Default to GNU compilers, but allow override from environment
CC=${CC-gcc}
CXX=${CXX-g++}

### Remove local customizations
CONFIG_SITE=
export CONFIG_SITE

# C++14 is required for asymptote in TeX Live 2018 and later years
# We also need it for xpdf on NetBSD to expose SIZE_MAX in <stdint.h>
test -z "$CXXFLAGS" && CXXFLAGS=-std=c++14

if test -z "${GNUDF}"
then
    for d in ${prefix}/bin ${SYSBINDIRS}
    do
	test -z "${GNUDF}" -a -f $d/gdf && GNUDF=$d/gdf
	test -z "${GNUDF}" -a -f $d/df  && GNUDF=$d/df
	test -z "${GNUDF}" || break
    done
fi

if test -z "${GNUDU}"
then
    for d in ${prefix}/bin ${SYSBINDIRS}
    do
	test -z "${GNUDU}" -a -f $d/gdu && GNUDU=$d/gdu
	test -z "${GNUDU}" -a -f $d/du  && GNUDU=$d/du
	test -z "${GNUDU}" || break
    done
fi

test ! -f ${GNUDF} && fatal Cannot find suitable GNU df utility

if test -z "${GNUMAKE}"
then
    for d in ${prefix}/bin ${SYSBINDIRS}
    do
	test -z "${GNUMAKE}" -a -f $d/gmake && GNUMAKE=$d/gmake
	test -z "${GNUMAKE}" -a -f $d/make  && GNUMAKE=$d/make
	test -z "${GNUMAKE}" || break
    done
fi

test ! -f ${GNUMAKE} && fatal Cannot find suitable GNU make utility

if test -z "${GNUTAR}"
then
    for d in ${prefix}/bin ${SYSBINDIRS}
    do
	test -z "${GNUTAR}" -a -f $d/gnutar && GNUTAR=$d/gnutar
	test -z "${GNUTAR}" -a -f $d/gtar   && GNUTAR=$d/gtar
	test -z "${GNUTAR}" -a -f $d/tar    && GNUTAR=$d/tar
	test -z "${GNUTAR}" || break
    done
fi

test ! -f ${GNUTAR}  && fatal Cannot find suitable GNU tar utility

if test -z "${CLISP}"
then
    ## NB: For clisp, we MUST prefer the vendor version, because it
    ## will not have dependencies on local libraries that propagate
    ## into xindy.run.
    for d in ${SYSBINDIRS} ${prefix}/bin
    do
	test -z "${CLISP}" -a -f $d/clisp    && CLISP=$d/clisp && break
    done
fi

if test -z "${TIME}"
then
    for d in ${SYSBINDIRS} ${prefix}/bin
    do
	test -z "${TIME}" -a -f $d/time    && TIME=$d/time
	test -z "${TIME}" || break
    done
fi

tlsrcdir=${tlsrcdir-$prefix/src/texlive}
tlbasename=
tltarfile=

echo "DEBUG: argc                 = $#"

## supply default argument in none given
test $# -gt 0 || set texlive-20210106

while test $# -gt 0
do
    case "$1" in
    -*) tlarch=$1
	;;

    *)
	echo "DEBUG: tlsrcdir             = $tlsrcdir"
	echo "DEBUG: tltarfile            = $tltarfile"
	echo "DEBUG: arg-1                = $1"
	tlbasename=$1
	if test -f $tlsrcdir/$1.tar.gz
	then
	    tltarfile=$tlsrcdir/$1.tar.gz
	elif test -f $HOME/$1.tar.gz
	then
	    tltarfile=$HOME/$1.tar.gz
	elif test -f `pwd`/$1.tar.gz
	then
	    tltarfile=`pwd`/$1.tar.gz
	elif test -f $tlsrcdir/$1.tar.xz
	then
	    tltarfile=$tlsrcdir/$1.tar.xz
	elif test -f $HOME/$1.tar.xz
	then
	    tltarfile=$HOME/$1.tar.xz
	elif test -f `pwd`/$1.tar.xz
	then
	    tltarfile=`pwd`/$1.tar.xz
	else
	    fatal ERROR: Expected texlive-YYYYMMDD, but no .tar.gz or .tar.xz file found in $tlsrcdir or $HOME or `pwd`
	fi
	;;

    esac
    shift
done

if test -n "$tltarfile"
then
	test -d $tlbasename || (echo Unpacking $tltarfile ... && ${GNUTAR} xfz $tltarfile)
	cd $tlbasename || fatal Cannot change directory to $tlbasename
fi

tlbuilddir=`pwd`
TL_INSTALL_DIR=$tlbuilddir/source/inst

if test -d source -a -f source/Build -a -x source/Build
then
    cd source
else
    fatal ERROR: This is not a valid TeX Live source tree: missing source directory and/or source/Build script
fi

TL_BUILD_ENV=
TL_COMPILER_GFLAGS=

TL_CONFIGURE_ARGS=${TL_CONFIGURE_ARGS-}

## The next two settings are site-specific

## At Utah, we disable use of libiconv to avoid dependencies on $prefix/lib*/libiconv.so*.
## : ${TL_CONFIGURE_FLAGS:=--with-iconv=no}
TL_CONFIGURE_FLAGS="$TL_CONFIGURE_FLAGS --with-iconv=no"

## Until we are in final builds, we make debugging the default mode
: ${TL_DEBUG_FLAGS:=--debug}

: ${libdir:=${prefix}/lib}

## Define architecture features if the user did not already do so
: ${tlarch=$1}
: ${tlmodel="`uname -m`"}
: ${tlrelease="`uname -r`"}
: ${tlsystem="`uname -s`"}
: ${tlmakeflags=-j8}

echo
echo =============================== Initial settings ===============================
echo
echo "DEBUG: exec_prefix          = ${exec_prefix}"
echo "DEBUG: prefix               = ${prefix}"
echo "DEBUG: tlarch               = ${tlarch}"
echo "DEBUG: tlmodel              = ${tlmodel}"
echo "DEBUG: tlrelease            = ${tlrelease}"
echo "DEBUG: tlsystem             = ${tlsystem}"
echo "DEBUG: CC                   = ${CC}"
echo "DEBUG: CFLAGS               = ${CFLAGS}"
echo "DEBUG: CPPFLAGS             = ${CPPFLAGS}"
echo "DEBUG: CXX                  = ${CXX}"
echo "DEBUG: CXXFLAGS             = ${CXXFLAGS}"
echo "DEBUG: CLISP                = ${CLISP}"
echo "DEBUG: GNUDF                = ${GNUDF}"
echo "DEBUG: GNUDU                = ${GNUDU}"
echo "DEBUG: GNUMAKE              = ${GNUMAKE}"
echo "DEBUG: GNUTAR               = ${GNUTAR}"
echo "DEBUG: LD                   = ${LD}"
echo "DEBUG: LDFLAGS              = ${LDFLAGS}"
echo "DEBUG: LIBS                 = ${LIBS}"
echo "DEBUG: PATH                 = ${PATH}"
echo "DEBUG: TL_BUILD_ENV         = ${TL_BUILD_ENV}"
echo "DEBUG: TL_COMPILER_GFLAGS   = ${TL_COMPILER_GFLAGS}"
echo "DEBUG: TL_CONFIGURE_FLAGS   = ${TL_CONFIGURE_FLAGS}"
echo "DEBUG: TL_INSTALL_DIR       = ${TL_INSTALL_DIR}"
echo "DEBUG: C compiler version   = `${CC}  --version | head -1 || true`"
echo "DEBUG: C++ compiler version = `${CXX} --version | head -1 || true`"

case "${tlsystem}" in
	Bitrig)
		## NB: Bitrig (OpenBSD-based) native package system installs in /usr/local tree!
		## There is no multilib support: all 64-bit libraries are in /usr{,/local}/lib.
		PATH=/bin:/usr/bin:/usr/local/bin
		export PATH
		libdir=/usr/local/lib
		libs=
		test -f ${libdir}/libfontconfig.a              && libs="${libs} ${libdir}/libfontconfig.a"
		test -f ${libdir}/libexpat.a                   && libs="${libs} ${libdir}/libexpat.a"
		test -f ${libdir}/libfreetype.a                && libs="${libs} ${libdir}/libfreetype.a"
		test -f ${libdir}/libpng.a                     && libs="${libs} ${libdir}/libpng.a"
		test -f ${libdir}/libxml2.a                    && libs="${libs} ${libdir}/libxml2.a"
		test -f ${libdir}/libbz2.a                     && libs="${libs} ${libdir}/libbz2.a"
		test -f ${libdir}/libz.a                       && libs="${libs} ${libdir}/libz.a"
		libs="${libs} -lm"
		TL_BUILD_ENV=
		TL_BUILD_ENV="${TL_BUILD_ENV} CC=${CC}"
		TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${CXX}"
		test -f ${libdir}/libfontconfig.a               && TL_BUILD_ENV="${TL_BUILD_ENV} FONTCONFIG_LIBS=${libdir}/libfontconfig.a"
		TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-Wl,-rpath,${libdir} -L${libdir} ${LDFLAGS}'"
		TL_BUILD_ENV="${TL_BUILD_ENV} LIBS='${libs} ${LIBS}'"
		TL_COMPILER_GFLAGS="${tlarch} -g -I/usr/local/include/freetype1 -I/usr/include -I/usr/local/include"
		## NO: "error: you can not use system libraries for a native TeX Live build"
		## NO: TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --with-system-icu"
		;;

	Darwin)
		case "${tlmodel}" in
		Power*)
			libs=
			test -f ${libdir}/libfontconfig.a      && libs="${libs} ${libdir}/libfontconfig.a"
			## test -f ${libdir}/libexpat.a           && libs="${libs} ${libdir}/libexpat.a"
			test -f ${libdir}/libfreetype.a        && libs="${libs} ${libdir}/libfreetype.a"
			## test -f ${libdir}/libbz2.a             && libs="${libs} ${libdir}/libbz2.a"
			## test -f ${libdir}/libz.a               && libs="${libs} ${libdir}/libz.a"
			libs="${libs} -lm"
			TL_BUILD_ENV=
			TL_BUILD_ENV="${TL_BUILD_ENV} CC=${CC}"
			TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${CXX}"
			test -f ${libdir}/libfontconfig.a       && TL_BUILD_ENV="${TL_BUILD_ENV} FONTCONFIG_LIBS=${libdir}/libfontconfig.a"
			TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-Wl,-rpath,${libdir} -L${libdir} ${LDFLAGS}'"
			TL_BUILD_ENV="${TL_BUILD_ENV} LIBS='${libs} ${LIBS}'"
			TL_COMPILER_GFLAGS="${tlarch} -g -I${prefix}/include/freetype2 -I/usr/include -I${prefix}/include"
			;;

		i386)
			libs=
			test -f ${libdir}/libfontconfig.a      && libs="${libs} ${libdir}/libfontconfig.a"
			test -f ${libdir}/libexpat.a           && libs="${libs} ${libdir}/libexpat.a"
			test -f ${libdir}/libfreetype.a        && libs="${libs} ${libdir}/libfreetype.a"
			test -f ${libdir}/libbz2.a             && libs="${libs} ${libdir}/libbz2.a"
			test -f ${libdir}/libz.a               && libs="${libs} ${libdir}/libz.a"
			libs="${libs} -lm"
			TL_BUILD_ENV=
			TL_BUILD_ENV="${TL_BUILD_ENV} CC=${CC}"
			TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${CXX}"
			test -f ${libdir}/libfontconfig.a       && TL_BUILD_ENV="${TL_BUILD_ENV} FONTCONFIG_LIBS=${libdir}/libfontconfig.a"
			TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-Wl,-rpath,${libdir} -L${libdir} ${LDFLAGS}'"
			TL_BUILD_ENV="${TL_BUILD_ENV} LIBS='${libs} ${LIBS}'"
			TL_COMPILER_GFLAGS="${tlarch} -g -I${prefix}/include/freetype2 -I/usr/include -I${prefix}/include"
			;;

		esac
		;;

	DragonFly)
		PATH=/usr/local/bin:/bin:/usr/bin
		export PATH
		libs=
		## test -f /usr/pkg/lib/libfontconfig.a           && libs="${libs} /usr/pkg/lib/libfontconfig.a"
		## test -f /usr/pkg/lib/libexpat.a                && libs="${libs} /usr/pkg/lib/libexpat.a"
		## test -f /usr/pkg/lib/libfreetype.a             && libs="${libs} /usr/pkg/lib/libfreetype.a"
		## test -f /usr/pkg/lib/libxml2.a                 && libs="${libs} /usr/pkg/lib/libxml2.a"
		## test -f /usr/pkg/lib/libbz2.a                  && libs="${libs} /usr/pkg/lib/libbz2.a"
		## test -f /usr/pkg/lib/libz.a                    && libs="${libs} /usr/pkg/lib/libz.a"
		libs="${libs} -lm"
		TL_BUILD_ENV=
		TL_BUILD_ENV="${TL_BUILD_ENV} CC=${CC}"
		TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${CXX}"
		test -f /usr/pkg/lib/libfontconfig.a            && TL_BUILD_ENV="${TL_BUILD_ENV} FONTCONFIG_LIBS=/usr/pkg/lib/libfontconfig.a"
		## TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-Wl,-rpath,/usr/pkg/lib -L/usr/pkg/lib -Wl,-rpath,${libdir} -L${libdir} ${LDFLAGS}'"
		TL_BUILD_ENV="${TL_BUILD_ENV} LIBS='${libs} ${LIBS}'"
		## TL_COMPILER_GFLAGS="${tlarch} -g -I${prefix}/include/freetype2 -I/usr/include -I${prefix}/include"
		TL_COMPILER_GFLAGS="${tlarch} -g -I/usr/local/include/freetype2 -I/usr/include -I/usr/local/include"
		## TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --disable-luajittex"
		## Clisp-2.49 fails to build on DragonFlyBSD 4.0, and
		## is not available in the package system, so xindy cannot be built
		## TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --disable-xindy"
		## clisp-2.49.92.p3 builds on DragonFlyBSD 5.6.2, so do not disable xindy
		test -f "${CLISP}" && TL_CONFIGURE_FLAGS="--enable-xindy CLISP=${CLISP} ${TL_CONFIGURE_FLAGS}"
		;;

	FreeBSD)
		## Need $prefix/bin in PATH for clisp and pkg_config
		## NB: FreeBSD native package system installs in /usr/local tree!
		## We need /usr/local/bin first, because it has a newer version
		## of makeinfo that is needed for processing TeXinfo files
		PATH=/usr/local/bin:/bin:/usr/bin:$prefix/bin
		export PATH
 		libs=
		test -f ${libdir}/libfontconfig.a              && libs="${libs} ${libdir}/libfontconfig.a"
		test -f ${libdir}/libexpat.a                   && libs="${libs} ${libdir}/libexpat.a"
		test -f ${libdir}/libfreetype.a                && libs="${libs} ${libdir}/libfreetype.a"
		test -f ${libdir}/libpng.a                     && libs="${libs} ${libdir}/libpng.a"
		test -f ${libdir}/libxml2.a                    && libs="${libs} ${libdir}/libxml2.a"
		test -f ${libdir}/libbz2.a                     && libs="${libs} ${libdir}/libbz2.a"
		test -f ${libdir}/libz.a                       && libs="${libs} ${libdir}/libz.a"
		libs="${libs} -lm"
		TL_BUILD_ENV=
		TL_BUILD_ENV="${TL_BUILD_ENV} CC=${CC}"
		TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${CXX}"
		test -f ${libdir}/libfontconfig.a               && TL_BUILD_ENV="${TL_BUILD_ENV} FONTCONFIG_LIBS=${libdir}/libfontconfig.a"
		## [13-Apr-2021] If libraries from /usr/local/lib are explicitly specified here, they
		## are searched BEFORE libraries within the TeX Live build tree, and that breaks
		## builds of the ICU components: their functions in the native libraries have no
		## version suffixes, but those in the TeX Live *.a files have version suffixes
		## (_68 in TeX Live 2021), leading to missing symbols.
		## NO: TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-Wl,-rpath,/usr/local/lib -L/usr/local/lib -Wl,-rpath,${libdir} -L${libdir} ${LDFLAGS}'"
		TL_BUILD_ENV="${TL_BUILD_ENV} LIBS='${libs} ${LIBS}'"
		TL_COMPILER_GFLAGS="${tlarch} -g -I/usr/local/include -I${prefix}/include/freetype2 -I/usr/include -I${prefix}/include"
		test -f "${CLISP}" && TL_CONFIGURE_FLAGS="--enable-xindy CLISP=${CLISP} ${TL_CONFIGURE_FLAGS}"
		;;

	GNU)	# Hurd (only supports x86)
		PATH=/bin:/usr/bin:${prefix}/bin
		export PATH
		libs=
		test -f ${libdir}/libfontconfig.a              && libs="${libs} ${libdir}/libfontconfig.a"
		test -f ${libdir}/libexpat.a                   && libs="${libs} ${libdir}/libexpat.a"
		test -f ${libdir}/libfreetype.a                && libs="${libs} ${libdir}/libfreetype.a"
		test -f ${libdir}/libxml2.a                    && libs="${libs} ${libdir}/libxml2.a"
		test -f ${libdir}/libbz2.a                     && libs="${libs} ${libdir}/libbz2.a"
		test -f ${libdir}/libz.a                       && libs="${libs} ${libdir}/libz.a"
		libs="${libs} -lm"
		TL_BUILD_ENV=
		TL_BUILD_ENV="${TL_BUILD_ENV} CC=${CC}"
		TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${CXX}"
		## test -f ${libdir}/libfontconfig.a               && TL_BUILD_ENV="${TL_BUILD_ENV} FONTCONFIG_LIBS=${libdir}/libfontconfig.a"
		TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-Wl,-rpath,${libdir} -L${libdir} ${LDFLAGS}'"
		TL_BUILD_ENV="${TL_BUILD_ENV} LIBS='${libs} ${LIBS}'"
		TL_COMPILER_GFLAGS="${tlarch} -g -I${prefix}/include/freetype2 -I/usr/include -I/usr/include/X11 -I${prefix}/include -DPATH_MAX=1024"
		## libicu may not be available on Hurd, and clisp is not available
		TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --disable-xetex --disable-xindy"
		;;

	GNU/kFreeBSD)
		PATH=/bin:/usr/bin
		export PATH
		libs=
		test -f ${libdir}/libfontconfig.a              && libs="${libs} ${libdir}/libfontconfig.a"
		test -f ${libdir}/libexpat.a                   && libs="${libs} ${libdir}/libexpat.a"
		test -f ${libdir}/libfreetype.a                && libs="${libs} ${libdir}/libfreetype.a"
		test -f ${libdir}/libxml2.a                    && libs="${libs} ${libdir}/libxml2.a"
		test -f ${libdir}/libbz2.a                     && libs="${libs} ${libdir}/libbz2.a"
		test -f ${libdir}/libz.a                       && libs="${libs} ${libdir}/libz.a"
		libs="${libs} -lm"
		TL_BUILD_ENV=
		TL_BUILD_ENV="${TL_BUILD_ENV} CC=${CC}"
		TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${CXX}"
		test -f ${libdir}/libfontconfig.a               && TL_BUILD_ENV="${TL_BUILD_ENV} FONTCONFIG_LIBS=${libdir}/libfontconfig.a"
		TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-Wl,-rpath,${libdir} -L${libdir} ${LDFLAGS}'"
		TL_BUILD_ENV="${TL_BUILD_ENV} LIBS='${libs} ${LIBS}'"
		TL_COMPILER_GFLAGS="${tlarch} -g -I${prefix}/include/freetype2 -I/usr/include -I${prefix}/include"
		;;

	IRIX64)
		PATH=/bin:/usr/bin:/usr/bsd
		export PATH
		libs=
		test -f ${libdir}/libfontconfig.a              && libs="${libs} ${libdir}/libfontconfig.a"
		test -f ${libdir}/libexpat.a                   && libs="${libs} ${libdir}/libexpat.a"
		test -f ${libdir}/libfreetype.a                && libs="${libs} ${libdir}/libfreetype.a"
		test -f ${libdir}/libxml2.a                    && libs="${libs} ${libdir}/libxml2.a"
		test -f ${libdir}/libbz2.a                     && libs="${libs} ${libdir}/libbz2.a"
		test -f ${libdir}/libz.a                       && libs="${libs} ${libdir}/libz.a"
		libs="${libs} -lm"
		TL_BUILD_ENV=
		TL_BUILD_ENV="${TL_BUILD_ENV} CC=${CC}"
		TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${CXX}"
		## TL_BUILD_ENV="${TL_BUILD_ENV} CC=${prefix}/bin/gcc"
		## TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${prefix}/bin/g++"
		test -f ${libdir}/libfontconfig.a               && TL_BUILD_ENV="${TL_BUILD_ENV} FONTCONFIG_LIBS=${libdir}/libfontconfig.a"
		TL_BUILD_ENV="${TL_BUILD_ENV} GNUMAKE=${prefix}/bin/make"
		TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-Wl,-rpath,${libdir} -L${libdir} ${LDFLAGS}'"
		TL_BUILD_ENV="${TL_BUILD_ENV} LIBS='${libs} ${LIBS}'"
		TL_COMPILER_GFLAGS="${tlarch} -g -I${prefix}/include/freetype2 -I/usr/include -I${prefix}/include"
		TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --without-graphite --disable-xetex --disable-bibtexu --disable-biber"
		;;

	LibertyBSD)
		## Need private version of strip in /var/tmp/bin:
		## #! /bin/sh
		## /usr/bin/strip "$@" || true

		mkdir /var/tmp/bin 2> /dev/null || true

		if test ! -f /var/tmp/bin/strip
		then
		    printf '#! /bin/sh\n/usr/bin/strip "$@"\n' >/var/tmp/bin/strip
		    chmod a+rx /var/tmp/bin/strip
		fi

		case "${tlrelease}" in
		5.*)
			PATH=/var/tmp/bin:/bin:/usr/bin:$prefix/bin
			export PATH
			libs=
			## test -f ${libdir}/libfontconfig.a      && libs="${libs} ${libdir}/libfontconfig.a"
			## test -f /usr/lib/libexpat.a            && libs="${libs} /usr/lib/libexpat.a"
			## test -f ${libdir}/libfreetype.a        && libs="${libs} ${libdir}/libfreetype.a"
			## test -f ${libdir}/libbz2.a             && libs="${libs} ${libdir}/libbz2.a"
			## test -f /usr/lib/libz.a                && libs="${libs} /usr/lib/libz.a"
			## [28-Apr-2016] Force X11 libraries with -lXaw and -lfreetype into linker path
			test -f /usr/X11R6/lib/libXaw.a        && libs="${libs} -L/usr/X11R6/lib -Wl,-rpath,/usr/X11R6/lib"
			libs="${libs} -lpthread -lm"
			TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS}"
			;;

		6.*)
			PATH=/var/tmp/bin:/bin:/usr/bin:$prefix/bin
			export PATH
			libs=
			test -f /usr/X11R6/lib/libXaw.a        && libs="${libs} -L/usr/X11R6/lib -Wl,-rpath,/usr/X11R6/lib"
			libs="${libs} -lpthread -lm"
			TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS}"
			;;

		*)
			fatal ERROR: No support yet for this release of LibertyBSD
			;;

		esac

		TL_BUILD_ENV=
		TL_BUILD_ENV="${TL_BUILD_ENV} CC=${CC}"
		TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${CXX}"
		TL_BUILD_ENV="${TL_BUILD_ENV} CPPFLAGS=-DU_PLATFORM=U_PF_BSD"
		test -f ${libdir}/libfontconfig.a               && TL_BUILD_ENV="${TL_BUILD_ENV} FONTCONFIG_LIBS=${libdir}/libfontconfig.a"
		## TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-Wl,-rpath,${libdir} -L${libdir} ${LDFLAGS}'"
		TL_BUILD_ENV="${TL_BUILD_ENV} LIBS='${libs} ${LIBS}'"
		## TL_COMPILER_GFLAGS="${tlarch} -g -I${prefix}/include/freetype2 -I/usr/include -I${prefix}/include"
		## LibertyBSD packages are installed in the /usr/local tree, and that tree may override
		## settings in /usr
		TL_COMPILER_GFLAGS="${tlarch} -g -I/usr/X11R6/include/freetype2 -I/usr/X11R6/include -I/usr/local/include -I/usr/include"
		;;

	Linux)
		case "${tlmodel}" in
		aarch64)
			libs=
			libdir=/usr/lib
			test -f /usr/lib/libfontconfig.a       && libs="${libs}  /usr/lib/libfontconfig.a"
			test -f ${libdir}/libexpat.a           && libs="${libs} ${libdir}/libexpat.a"
			test -f ${libdir}/libfreetype.a        && libs="${libs} ${libdir}/libfreetype.a"
			test -f ${libdir}/libbz2.a             && libs="${libs} ${libdir}/libbz2.a"
			test -f ${libdir}/libz.a               && libs="${libs} ${libdir}/libz.a"
			libs="${libs} -lm"
			TL_BUILD_ENV=
			TL_BUILD_ENV="${TL_BUILD_ENV} CC=${CC}"
			TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${CXX}"
			TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-Wl,-rpath,${libdir} -L${libdir} ${LDFLAGS}'"
			TL_BUILD_ENV="${TL_BUILD_ENV} LIBS='${libs} ${LIBS}'"
			test -f ${libdir}/libfontconfig.a       && TL_BUILD_ENV="${TL_BUILD_ENV} FONTCONFIG_LIBS='${libdir}/libfontconfig.a'"
			TL_COMPILER_GFLAGS="${tlarch} -g -I${prefix}/include/freetype2 -I/usr/include -I${prefix}/include"
			TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --disable-luajittex --disable-luajithbtex --disable-mfluajit --disable-mfluajit-nowin"
			;;

		alpha)
			libs=
			## test -f ${libdir}/libfontconfig.a      && libs="${libs} ${libdir}/libfontconfig.a"
			## test -f ${libdir}/libexpat.a           && libs="${libs} ${libdir}/libexpat.a"
			## test -f ${libdir}/libfreetype.a        && libs="${libs} ${libdir}/libfreetype.a"
			## test -f ${libdir}/libbz2.a             && libs="${libs} ${libdir}/libbz2.a"
			## test -f ${libdir}/libz.a               && libs="${libs} ${libdir}/libz.a"
			libs="${libs} -lm"
			TL_BUILD_ENV=
			TL_BUILD_ENV="${TL_BUILD_ENV} CC=${CC}"
			TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${CXX}"
			## TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-Wl,-rpath,${libdir} -L${libdir} ${LDFLAGS}'"
			TL_BUILD_ENV="${TL_BUILD_ENV} LIBS='${libs} ${LIBS}'"
			## test -f ${libdir}/libfontconfig.a       && TL_BUILD_ENV="${TL_BUILD_ENV} FONTCONFIG_LIBS='${libdir}/libfontconfig.a'"
			## TL_COMPILER_GFLAGS="${tlarch} -g -I${prefix}/include/freetype2 -I/usr/include -I${prefix}/include"
			TL_COMPILER_GFLAGS="${tlarch} -g -I/usr/include/freetype2"
			;;

		armv7l)
			libs=
			test -f ${libdir}/libfontconfig.a      && libs="${libs} ${libdir}/libfontconfig.a"
			test -f ${libdir}/libexpat.a           && libs="${libs} ${libdir}/libexpat.a"
			test -f ${libdir}/libfreetype.a        && libs="${libs} ${libdir}/libfreetype.a"
			test -f ${libdir}/libbz2.a             && libs="${libs} ${libdir}/libbz2.a"
			test -f ${libdir}/libz.a               && libs="${libs} ${libdir}/libz.a"
			libs="${libs} -lm"
			TL_BUILD_ENV=
			TL_BUILD_ENV="${TL_BUILD_ENV} CC=${CC}"
			TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${CXX}"
			TL_BUILD_ENV="${TL_BUILD_ENV} U_CC=${CC} U_CXX=${CXX}"
			TL_BUILD_ENV="${TL_BUILD_ENV} LD_LIBRARY_PATH='/lib:/usr/lib'"
			TL_BUILD_ENV="${TL_BUILD_ENV} LD_RUN_PATH='/lib:/usr/lib'"
			TL_BUILD_ENV="${TL_BUILD_ENV} LIBS='${libs} ${LIBS}'"
			test -f ${libdir}/libfontconfig.a       && TL_BUILD_ENV="${TL_BUILD_ENV} FONTCONFIG_LIBS='${libdir}/libfontconfig.a'"
			TL_COMPILER_GFLAGS="${tlarch} -g -I${prefix}/include/freetype2 -I${prefix}/include -I/usr/include"
			## We have to disable xindy because its build gets an error: SIGSEGV cannot be cured"
			## TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --disable-xindy"
			## xindy ok in TeX Live 2020
			TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --enable-xindy"
			;;

		i686)
			libs=
			## test -f ${libdir}/libfontconfig.a      && libs="${libs} ${libdir}/libfontconfig.a"
			## test -f ${libdir}/libexpat.a           && libs="${libs} ${libdir}/libexpat.a"
			## test -f ${libdir}/libfreetype.a        && libs="${libs} ${libdir}/libfreetype.a"
			## test -f ${libdir}/libbz2.a             && libs="${libs} ${libdir}/libbz2.a"
			## test -f ${libdir}/libz.a               && libs="${libs} ${libdir}/libz.a"
			libs="${libs} -lm"
			TL_BUILD_ENV=
			TL_BUILD_ENV="${TL_BUILD_ENV} CC=${CC}"
			TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${CXX}"
			TL_BUILD_ENV="${TL_BUILD_ENV} U_CC=${CC} U_CXX=${CXX}"

			## if test -d /lib/i386-linux-gnu
			## then
			## 	TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-Wl,-rpath,/lib/i386-linux-gnu -L/lib/i386-linux-gnu -Wl,-rpath,${libdir} -L${libdir} ${LDFLAGS}'"
			## else
			## 	TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-Wl,-rpath,${libdir} -L${libdir} ${LDFLAGS}'"
			## fi
			TL_BUILD_ENV="${TL_BUILD_ENV} LD_LIBRARY_PATH='/lib:/usr/lib'"
			TL_BUILD_ENV="${TL_BUILD_ENV} LD_RUN_PATH='/lib:/usr/lib'"
			TL_BUILD_ENV="${TL_BUILD_ENV} LIBS='${libs} ${LIBS}'"
			## test -f ${libdir}/libfontconfig.a       && TL_BUILD_ENV="${TL_BUILD_ENV} FONTCONFIG_LIBS='${libdir}/libfontconfig.a'"
			## TL_COMPILER_GFLAGS="${tlarch} -g -I${prefix}/include/freetype2 -I${prefix}/include -I/usr/include"
			TL_COMPILER_GFLAGS="${tlarch} -g -I/usr/include/freetype2 -I/usr/include"
			test -f "${CLISP}" && TL_CONFIGURE_FLAGS="--enable-xindy CLISP=${CLISP} ${TL_CONFIGURE_FLAGS}"

			## Void Linux uses /bin/dash for /bin/sh, and that shell handles
			## control characters on the command line different to other
			## Bourne-family shells, breaking generated C code in
			## source/libs/zziplib/, and the TeX Live build.  Force use
 			## of a properly working shell.
			if   test -x /bin/bash ; then CONFIG_SHELL=/bin/bash
			elif test -x /bin/ksh  ; then CONFIG_SHELL=/bin/ksh
			elif test -x /bin/mksh ; then CONFIG_SHELL=/bin/mksh
			else                          CONFIG_SHELL=${SHELL-/bin/sh}
			fi
			TL_BUILD_ENV="${TL_BUILD_ENV} CONFIG_SHELL=${CONFIG_SHELL}"

			;;

		ia64)   # TeX Live 2014 has a native IA-64 build!
			libs=
			## test -f ${libdir}/libfontconfig.a      && libs="${libs} ${libdir}/libfontconfig.a"
			## test -f ${libdir}/libexpat.a           && libs="${libs} ${libdir}/libexpat.a"
			## test -f ${libdir}/libfreetype.a        && libs="${libs} ${libdir}/libfreetype.a"
			## test -f ${libdir}/libbz2.a             && libs="${libs} ${libdir}/libbz2.a"
			## test -f ${libdir}/libz.a               && libs="${libs} ${libdir}/libz.a"
			libs="${libs} -lm"
			TL_BUILD_ENV=
			TL_BUILD_ENV="${TL_BUILD_ENV} CC=${CC}"
			TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${CXX}"
			## TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-Wl,-rpath,${libdir} -L${libdir} ${LDFLAGS}'"
			TL_BUILD_ENV="${TL_BUILD_ENV} LIBS='${libs} ${LIBS}'"
			## test -f ${libdir}/libfontconfig.a       && TL_BUILD_ENV="${TL_BUILD_ENV} FONTCONFIG_LIBS='${libdir}/libfontconfig.a'"
			## TL_COMPILER_GFLAGS="${tlarch} -g -I${prefix}/include/freetype2 -I/usr/include -I${prefix}/include"
			TL_COMPILER_GFLAGS="${tlarch} -g -I/usr/include/freetype2 -I/usr/include"
			TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --disable-luajittex"
			TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --disable-luatex"
			TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --disable-mfluajit"
			TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --disable-xindy"
			;;

		m68k)
			libs=
			libdir=/usr/lib
			test -f /usr/lib/libfontconfig.a       && libs="${libs}  /usr/lib/libfontconfig.a"
			test -f ${libdir}/libexpat.a           && libs="${libs} ${libdir}/libexpat.a"
			test -f ${libdir}/libfreetype.a        && libs="${libs} ${libdir}/libfreetype.a"
			test -f ${libdir}/libbz2.a             && libs="${libs} ${libdir}/libbz2.a"
			test -f ${libdir}/libz.a               && libs="${libs} ${libdir}/libz.a"
			libs="${libs} -lm"
			TL_BUILD_ENV=
			TL_BUILD_ENV="${TL_BUILD_ENV} CC=${CC}"
			TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${CXX}"
			TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-Wl,-rpath,${libdir} -L${libdir} ${LDFLAGS}'"
			TL_BUILD_ENV="${TL_BUILD_ENV} LIBS='${libs} ${LIBS}'"
			test -f ${libdir}/libfontconfig.a       && TL_BUILD_ENV="${TL_BUILD_ENV} FONTCONFIG_LIBS='${libdir}/libfontconfig.a'"
			TL_COMPILER_GFLAGS="${tlarch} -g -I${prefix}/include/freetype2 -I/usr/include -I/usr/include/freetype2 -I${prefix}/include"
			TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --disable-luajittex --disable-luajithbtex --disable-mfluajit --disable-mfluajit-nowin"
			;;

		mips64)
			libs=
			test -f ${libdir}/libfontconfig.a      && libs="${libs} ${libdir}/libfontconfig.a"
			test -f ${libdir}/libexpat.a           && libs="${libs} ${libdir}/libexpat.a"
			test -f ${libdir}/libfreetype.a        && libs="${libs} ${libdir}/libfreetype.a"
			test -f ${libdir}/libbz2.a             && libs="${libs} ${libdir}/libbz2.a"
			test -f ${libdir}/libz.a               && libs="${libs} ${libdir}/libz.a"
			libs="${libs} -lm"
			TL_BUILD_ENV=
			TL_BUILD_ENV="${TL_BUILD_ENV} CC=${CC}"
			TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${CXX}"
			TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-Wl,-rpath,${libdir} -L${libdir} ${LDFLAGS}'"
			TL_BUILD_ENV="${TL_BUILD_ENV} LIBS='${libs} ${LIBS}'"
			test -f ${libdir}/libfontconfig.a       && TL_BUILD_ENV="${TL_BUILD_ENV} FONTCONFIG_LIBS='${libdir}/libfontconfig.a'"
			TL_COMPILER_GFLAGS="${tlarch} -g -I${prefix}/include/freetype2 -I/usr/include -I${prefix}/include"
			## TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --disable-luajittex"
			## TeX Live libicu components fail to build on this system
			TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --disable-xetex"
			;;

		ppc)
			libs=
			test -f ${libdir}/libfontconfig.a      && libs="${libs} ${libdir}/libfontconfig.a"
			test -f ${libdir}/libexpat.a           && libs="${libs} ${libdir}/libexpat.a"
			test -f ${libdir}/libfreetype.a        && libs="${libs} ${libdir}/libfreetype.a"
			test -f ${libdir}/libbz2.a             && libs="${libs} ${libdir}/libbz2.a"
			test -f ${libdir}/libz.a               && libs="${libs} ${libdir}/libz.a"
			libs="${libs} -lm"
			TL_BUILD_ENV=
			TL_BUILD_ENV="${TL_BUILD_ENV} CC=${CC}"
			TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${CXX}"
			TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-Wl,-rpath,/usr/lib -L/usr/lib -Wl,-rpath,${libdir} -L${libdir} ${LDFLAGS}'"
			TL_BUILD_ENV="${TL_BUILD_ENV} LIBS='${libs} ${LIBS}'"
			test -f ${libdir}/libfontconfig.a       && TL_BUILD_ENV="${TL_BUILD_ENV} FONTCONFIG_LIBS='${libdir}/libfontconfig.a'"
			TL_COMPILER_GFLAGS="${tlarch} -g -I${prefix}/include/freetype2 -I/usr/include -I${prefix}/include"
			# NB: on systems that have /usr/bin/clisp,
			# $prefix/bin/clisp must exist, or be a
			# link to /usr/bin/clisp
			;;

		ppc64*)
			libs=
			test -f /usr/lib/libfontconfig.a       && libs="${libs}  /usr/lib/libfontconfig.a"
			test -f ${libdir}/libexpat.a           && libs="${libs} ${libdir}/libexpat.a"
			test -f ${libdir}/libfreetype.a        && libs="${libs} ${libdir}/libfreetype.a"
			test -f ${libdir}/libbz2.a             && libs="${libs} ${libdir}/libbz2.a"
			test -f ${libdir}/libz.a               && libs="${libs} ${libdir}/libz.a"
			libs="${libs} -lm"
			TL_BUILD_ENV=
			TL_BUILD_ENV="${TL_BUILD_ENV} CC=${CC}"
			TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${CXX}"
			TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-Wl,-rpath,${libdir} -L${libdir} ${LDFLAGS}'"
			TL_BUILD_ENV="${TL_BUILD_ENV} LIBS='${libs} ${LIBS}'"
			test -f ${libdir}/libfontconfig.a       && TL_BUILD_ENV="${TL_BUILD_ENV} FONTCONFIG_LIBS='${libdir}/libfontconfig.a'"
			TL_COMPILER_GFLAGS="${tlarch} -g -I${prefix}/include/freetype2 -I/usr/include -I${prefix}/include"
			TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --disable-luajittex"
			;;

		riscv64)
			libs=
			libdir=/usr/lib64
			test -f /usr/lib/libfontconfig.a       && libs="${libs}  /usr/lib/libfontconfig.a"
			test -f ${libdir}/libexpat.a           && libs="${libs} ${libdir}/libexpat.a"
			test -f ${libdir}/libfreetype.a        && libs="${libs} ${libdir}/libfreetype.a"
			test -f ${libdir}/libbz2.a             && libs="${libs} ${libdir}/libbz2.a"
			test -f ${libdir}/libz.a               && libs="${libs} ${libdir}/libz.a"
			libs="${libs} -lm"
			TL_BUILD_ENV=
			TL_BUILD_ENV="${TL_BUILD_ENV} CC=${CC}"
			TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${CXX}"
			TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-Wl,-rpath,${libdir} -L${libdir} ${LDFLAGS}'"
			TL_BUILD_ENV="${TL_BUILD_ENV} LIBS='${libs} ${LIBS}'"
			test -f ${libdir}/libfontconfig.a       && TL_BUILD_ENV="${TL_BUILD_ENV} FONTCONFIG_LIBS='${libdir}/libfontconfig.a'"
			TL_COMPILER_GFLAGS="${tlarch} -g -I${prefix}/include/freetype2 -I/usr/include -I${prefix}/include"
			TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --disable-luajittex --disable-luajithbtex --disable-mfluajit --disable-mfluajit-nowin"
			;;

		sparc64)
			libs=
			test -f ${libdir}/libfontconfig.a      && libs="${libs} ${libdir}/libfontconfig.a"
			test -f ${libdir}/libexpat.a           && libs="${libs} ${libdir}/libexpat.a"
			test -f ${libdir}/libfreetype.a        && libs="${libs} ${libdir}/libfreetype.a"
			test -f ${libdir}/libbz2.a             && libs="${libs} ${libdir}/libbz2.a"
			test -f ${libdir}/libz.a               && libs="${libs} ${libdir}/libz.a"
			libs="${libs} -lm"
			TL_BUILD_ENV=
			TL_BUILD_ENV="${TL_BUILD_ENV} CC=${CC}"
			TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${CXX}"
			TL_BUILD_ENV="${TL_BUILD_ENV} CPPFLAGS=-DU_IS_BIG_ENDIAN=1"
			TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-Wl,-rpath,${libdir} -L${libdir} ${LDFLAGS}'"
			TL_BUILD_ENV="${TL_BUILD_ENV} LIBS='${libs} ${LIBS}'"
			test -f ${libdir}/libfontconfig.a       && TL_BUILD_ENV="${TL_BUILD_ENV} FONTCONFIG_LIBS='${libdir}/libfontconfig.a'"
			TL_COMPILER_GFLAGS="${tlarch} -g -mcpu=v9 -I${prefix}/include/freetype2 -I/usr/include -I${prefix}/include"
			## We have to omit xetex, because the latest
			## libicu version fails to pass its validation
			## checks on GNU/Linux SPARC, sigh...
			## TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --with-iconv=no --without-graphite --disable-xetex"
			;;

		s390x)
			libs=
			libdir=/usr/lib
			test -f /usr/lib/libfontconfig.a       && libs="${libs}  /usr/lib/libfontconfig.a"
			test -f ${libdir}/libexpat.a           && libs="${libs} ${libdir}/libexpat.a"
			test -f ${libdir}/libfreetype.a        && libs="${libs} ${libdir}/libfreetype.a"
			test -f ${libdir}/libbz2.a             && libs="${libs} ${libdir}/libbz2.a"
			test -f ${libdir}/libz.a               && libs="${libs} ${libdir}/libz.a"
			libs="${libs} -lm"
			TL_BUILD_ENV=
			TL_BUILD_ENV="${TL_BUILD_ENV} CC=${CC}"
			TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${CXX}"
			TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-Wl,-rpath,${libdir} -L${libdir} ${LDFLAGS}'"
			TL_BUILD_ENV="${TL_BUILD_ENV} LIBS='${libs} ${LIBS}'"
			test -f ${libdir}/libfontconfig.a       && TL_BUILD_ENV="${TL_BUILD_ENV} FONTCONFIG_LIBS='${libdir}/libfontconfig.a'"
			TL_COMPILER_GFLAGS="${tlarch} -g -I${prefix}/include/freetype2 -I/usr/include -I${prefix}/include"
			TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --disable-luajittex --disable-luajithbtex --disable-mfluajit --disable-mfluajit-nowin"
			;;

		x86_64)
			libdir=${prefix}/lib64
			libs=
			## test -f ${libdir}/libfontconfig.a      && libs="${libs} ${libdir}/libfontconfig.a"
			## test -f ${libdir}/libexpat.a           && libs="${libs} ${libdir}/libexpat.a"
			## test -f ${libdir}/libfreetype.a        && libs="${libs} ${libdir}/libfreetype.a"
			## test -f ${libdir}/libbz2.a             && libs="${libs} ${libdir}/libbz2.a"
			## test -f ${libdir}/libz.a               && libs="${libs} ${libdir}/libz.a"
			libs="${libs} -lm"
			TL_BUILD_ENV=
			TL_BUILD_ENV="${TL_BUILD_ENV} CC=${CC}"
			TL_BUILD_ENV="${TL_BUILD_ENV} CFLAGS='${CFLAGS}'"
			TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${CXX}"
			TL_BUILD_ENV="${TL_BUILD_ENV} CXXFLAGS='${CXXFLAGS}'"
			TL_BUILD_ENV="${TL_BUILD_ENV} LD_LIBRARY_PATH='/lib64:/usr/lib64' LD_RUN_PATH='/lib64:/usr/lib64'"
			## TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-Wl,-rpath,${libdir} -L${libdir} ${LDFLAGS}'"
			## New for 2020:
			TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='${LDFLAGS} -static-libstdc++'"
			TL_BUILD_ENV="${TL_BUILD_ENV} LIBS='${libs} ${LIBS}'"
			## New for 2021:
			test -f /etc/redhat-release                 &&
			    grep -s 'release 7' /etc/redhat-release &&
				TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --enable-cxx-runtime-hack=yes"

			## Void Linux uses /bin/dash for /bin/sh, and that shell handles
			## control characters on the command line different to other
			## Bourne-family shells, breaking generated C code in
			## source/libs/zziplib/, and the TeX Live build.  Force use
 			## of a properly working shell.
			if   test -x /bin/bash ; then CONFIG_SHELL=/bin/bash
			elif test -x /bin/ksh  ; then CONFIG_SHELL=/bin/ksh
			elif test -x /bin/mksh ; then CONFIG_SHELL=/bin/mksh
			else                          CONFIG_SHELL=${SHELL-/bin/sh}
			fi
			TL_BUILD_ENV="${TL_BUILD_ENV} CONFIG_SHELL=${CONFIG_SHELL}"

			## test -f ${libdir}/libfontconfig.a       && TL_BUILD_ENV="${TL_BUILD_ENV} FONTCONFIG_LIBS='${libdir}/libfontconfig.a'"
			## TL_COMPILER_GFLAGS="${tlarch} -g -I${prefix}/include/freetype2 -I/usr/include -I${prefix}/include"
			TL_COMPILER_GFLAGS="${tlarch} -g -I/usr/include/freetype2"
			;;

		*)
			fatal ERROR: No TeX Live build supported yet for this system
			;;

		esac

		## clisp is available on some, but not all, Linux
		## distributions, and we cannot build xindy without it
		## (none of ecl, gcl, or sbcl are usable Common Lisps
		## for xindy)
		## NB: We insert the xindy flags BEFORE the TL_CONFIGURE_FLAGS, so that
		## xindy can be enabled/disabled by platform-specific code above
		test -f "${CLISP}" && TL_CONFIGURE_FLAGS="--enable-xindy CLISP=${CLISP} ${TL_CONFIGURE_FLAGS}"
		test -f "${CLISP}" || TL_CONFIGURE_FLAGS="--disable-xindy ${TL_CONFIGURE_FLAGS}"
		;;

	MidnightBSD)
		## Need $prefix/bin in PATH for pkg_config
		## NB: MidnightBSD native package system (mport) installs in /usr/local tree!
		PATH=/bin:/usr/bin:/usr/local/bin:$prefix/bin
		export PATH
		libdir=/usr/local/lib
		libs=
		libs="${libs} -lm"
		TL_BUILD_ENV=
		TL_BUILD_ENV="${TL_BUILD_ENV} CC=${CC}"
		TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${CXX}"
		TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-Wl,-rpath,${libdir} -L${libdir} ${LDFLAGS}'"
		TL_BUILD_ENV="${TL_BUILD_ENV} LIBS='${libs} ${LIBS}'"
		TL_COMPILER_GFLAGS="${tlarch} -g -I/usr/local/include/freetype2 -I/usr/include -I/usr/local/include"
		## configure does not recognize this system, so treat it as a similar one
		TL_CONFIGURE_ARGS="${TL_CONFIGURE_ARGS} --build=x86_64-unknown-freebsd11.0"
		;;

	Minix)
		PATH=/usr/pkg/bin:/usr/pkg/sbin:/bin:/usr/bin:/sbin:/usr/sbin
		export PATH
		libdir=$prefix/lib
		libs=
		libs="${libs} -lm"
		TL_BUILD_ENV=
		TL_BUILD_ENV="${TL_BUILD_ENV} CC=${CC}"
		TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${CXX}"
		TL_BUILD_ENV="${TL_BUILD_ENV} CXXFLAGS='${CXXFLAGS} -I/usr/pkg/include -I/usr/include/c++ -I/usr/pkg/gcc45/include/g++ -I/usr/pkg/gcc45/include/g++/i586-elf32-minix'"
		TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-Wl,-rpath,${libdir} -L${libdir} ${LDFLAGS}'"
		TL_BUILD_ENV="${TL_BUILD_ENV} LIBS='${libs} ${LIBS}'"
		TL_COMPILER_GFLAGS="${tlarch} -g"
		;;

	MirBSD)
		## This platform needs a repair to <stdlib.h>:
		##
		##      % diff /usr/include/stdlib.h /local/build/include/stdlib.h
		##      276c276
		##      <       __attribute__((bounded (string, 1, 2)));
		##      ---
		##      >       __attribute__((bounded (__string__, 1, 2)));
		##      294c294
		##      <       __attribute__((bounded (string, 1, 2)));
		##      ---
		##      >       __attribute__((bounded (__string__, 1, 2)));
		libs=
		test -f ${libdir}/libfontconfig.a              && libs="${libs} ${libdir}/libfontconfig.a"
		test -f /usr/lib/libexpat.a                    && libs="${libs} /usr/lib/libexpat.a"
		test -f ${libdir}/libfreetype.a                && libs="${libs} ${libdir}/libfreetype.a"
		test -f ${libdir}/libbz2.a                     && libs="${libs} ${libdir}/libbz2.a"
		test -f ${libdir}/libz.a                       && libs="${libs} ${libdir}/libz.a"
		libs="${libs} -lm"
		TL_BUILD_ENV=
		TL_BUILD_ENV="${TL_BUILD_ENV} CC=${CC}"
		TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${CXX}"
		## we have only mgcc in MirBSD, so force its use
		TL_BUILD_ENV="${TL_BUILD_ENV} CC=mgcc"
		TL_BUILD_ENV="${TL_BUILD_ENV} CPPFLAGS='-DU_PLATFORM=U_PF_BSD -I/local/build/include'"
		TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${CXX}"
		test -f ${libdir}/libfontconfig.a               && TL_BUILD_ENV="${TL_BUILD_ENV} FONTCONFIG_LIBS=${libdir}/libfontconfig.a"
		TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-Wl,-rpath,${libdir} -L${libdir} ${LDFLAGS}'"
		TL_BUILD_ENV="${TL_BUILD_ENV} LIBS='${libs} ${LIBS}'"
		TL_COMPILER_GFLAGS="${tlarch} -g -I${prefix}/include/freetype2 -I/usr/include -I${prefix}/include"
		## We have to omit xetex, because the latest
		## libicu version fails to build on MirBSD, sigh...
		## TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --with-iconv=no --without-graphite --disable-xetex --disable-bibtexu"
		TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --with-iconv=no --without-graphite"
		;;

	NetBSD)
		## Need private version of strip in /var/tmp/bin:
		## #! /bin/sh
		## /usr/bin/strip "$@" || true

		mkdir /var/tmp/bin 2> /dev/null || true

		if test ! -f /var/tmp/bin/strip
		then
		    printf '#! /bin/sh\n/usr/bin/strip "$@"\n' >/var/tmp/bin/strip
		    chmod a+rx /var/tmp/bin/strip
		fi

		## Need /usr/pkg/bin for perl, which is absent from the first two directories in PATH
		PATH=/var/tmp/bin:/bin:/usr/bin:/usr/pkg/bin:$prefix/bin
		export PATH
		libs=
		test -f ${libdir}/libfontconfig.a              && libs="${libs} ${libdir}/libfontconfig.a"
		test -f ${libdir}/libexpat.a                   && libs="${libs} ${libdir}/libexpat.a"
		test -f ${libdir}/libfreetype.a                && libs="${libs} ${libdir}/libfreetype.a"
		test -f ${libdir}/libxml2.a                    && libs="${libs} ${libdir}/libxml2.a"
		test -f ${libdir}/libbz2.a                     && libs="${libs} ${libdir}/libbz2.a"
		test -f ${libdir}/libz.a                       && libs="${libs} ${libdir}/libz.a"
		# C++11 is required for asymptote in TeX Live 2018 and later years
		# We also need it for xpdf on NetBSD to expose SIZE_MAX in <stdint.h>
		CXXFLAGS="${CXXFLAGS} -std=c++14"
		CXXFLAGS="${CXXFLAGS} -D_NETBSD_SOURCE"
		libs="${libs} -lm"
		TL_BUILD_ENV=
		TL_BUILD_ENV="${TL_BUILD_ENV} CC=${CC}"
		TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${CXX}"
		test -f ${libdir}/libfontconfig.a               && TL_BUILD_ENV="${TL_BUILD_ENV} FONTCONFIG_LIBS=${libdir}/libfontconfig.a"
		## TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-L/usr/pkg/lib -Wl,-rpath,/usr/pkg/lib -L/usr/X11R7/lib -Wl,-rpath,/usr/X11R7/lib -Wl,-rpath,${libdir} -L${libdir} ${LDFLAGS}'"
		TL_BUILD_ENV="${TL_BUILD_ENV} CC='${CC}'"
		TL_BUILD_ENV="${TL_BUILD_ENV} CFLAGS='${CFLAGS}'"
		TL_BUILD_ENV="${TL_BUILD_ENV} CXX='${CXX}'"
		TL_BUILD_ENV="${TL_BUILD_ENV} CXXFLAGS='${CXXFLAGS}'"
		TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-L/usr/X11R7/lib -Wl,-rpath,/usr/X11R7/lib -Wl,-rpath,${libdir} -L${libdir} ${LDFLAGS}'"
		TL_BUILD_ENV="${TL_BUILD_ENV} LIBS='${libs} ${LIBS}'"
		TL_COMPILER_GFLAGS="${tlarch} -g -I${prefix}/include/freetype2 -I/usr/include -I${prefix}/include"
#		TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --with-iconv=no --without-graphite --disable-xetex --disable-dvisvgm --disable-lcdf-typetools"
#		TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --disable-dvisvgm --enable-xindy --with-iconv=no"
		## As of 25-Feb-2020, dvisvgm can now be built on NetBSD.
		TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --enable-xindy --with-iconv=no"
		;;


	OpenBSD)
		## Need private version of strip in /var/tmp/bin:
		## #! /bin/sh
		## /usr/bin/strip "$@" || true

		mkdir /var/tmp/bin 2> /dev/null || true

		if test ! -f /var/tmp/bin/strip
		then
		    printf '#! /bin/sh\n/usr/bin/strip "$@"\n' >/var/tmp/bin/strip
		    chmod a+rx /var/tmp/bin/strip
		fi

		case "${tlrelease}" in
		4.*)
			PATH=/var/tmp/bin:/bin:/usr/bin
			export PATH
			libs=
			test -f ${libdir}/libfontconfig.a      && libs="${libs} ${libdir}/libfontconfig.a"
			test -f /usr/lib/libexpat.a            && libs="${libs} /usr/lib/libexpat.a"
			test -f ${libdir}/libfreetype.a        && libs="${libs} ${libdir}/libfreetype.a"
			test -f ${libdir}/libbz2.a             && libs="${libs} ${libdir}/libbz2.a"
			test -f ${libdir}/libz.a               && libs="${libs} ${libdir}/libz.a"
			## [28-Apr-2016] Force X11 libraries with -lXaw and -lfreetype into linker path
			test -f /usr/X11R6/lib/libXaw.a        && libs="${libs} -L/usr/X11R6/lib -Wl,-rpath,/usr/X11R6/lib"
			libs="${libs} -lm"
			## We have to omit xetex, because the latest
			## libicu version fails to build on OpenBSD, sigh...
			TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --with-iconv=no --without-graphite --disable-xetex --disable-bibtexu"
			;;

		5.*)
			PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/sbin:$prefix/bin
			export PATH
			libs=
			## test -f ${libdir}/libfontconfig.a      && libs="${libs} ${libdir}/libfontconfig.a"
			## test -f /usr/lib/libexpat.a            && libs="${libs} /usr/lib/libexpat.a"
			## test -f ${libdir}/libfreetype.a        && libs="${libs} ${libdir}/libfreetype.a"
			## test -f ${libdir}/libbz2.a             && libs="${libs} ${libdir}/libbz2.a"
			## test -f /usr/lib/libz.a                && libs="${libs} /usr/lib/libz.a"
			## [28-Apr-2016] Force X11 libraries with -lXaw and -lfreetype into linker path
			test -f /usr/X11R6/lib/libXaw.a        && libs="${libs} -L/usr/X11R6/lib -Wl,-rpath,/usr/X11R6/lib"
			libs="${libs} -lpthread -lm"
			TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS}"
			;;

		6.*)
			PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/sbin:$prefix/bin
			export PATH
			libs=
			test -f /usr/X11R6/lib/libXaw.a        && libs="${libs} -L/usr/X11R6/lib -Wl,-rpath,/usr/X11R6/lib"
			libs="${libs} -lpthread -lm"
			TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --disable-luajittex --disable-mfluajit --enable-xindy"
			;;

		*)
			fatal ERROR: No support yet for this release of OpenBSD
			;;

		esac

		TL_BUILD_ENV=
		TL_BUILD_ENV="${TL_BUILD_ENV} CC=${CC}"
		TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${CXX}"
		TL_BUILD_ENV="${TL_BUILD_ENV} CPPFLAGS=-DU_PLATFORM=U_PF_BSD"
		test -f ${libdir}/libfontconfig.a               && TL_BUILD_ENV="${TL_BUILD_ENV} FONTCONFIG_LIBS=${libdir}/libfontconfig.a"
		## TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-Wl,-rpath,${libdir} -L${libdir} ${LDFLAGS}'"
		TL_BUILD_ENV="${TL_BUILD_ENV} LIBS='${libs} ${LIBS}'"
		## TL_COMPILER_GFLAGS="${tlarch} -g -I${prefix}/include/freetype2 -I/usr/include -I${prefix}/include"
		## OpenBSD packages are installed in the /usr/local tree, and that tree may override
		## settings in /usr
		TL_COMPILER_GFLAGS="${tlarch} -g -I/usr/X11R6/include/freetype2 -I/usr/X11R6/include -I/usr/local/include -I/usr/include"
		;;

	OS108)
		## Need private version of strip in /var/tmp/bin:
		## #! /bin/sh
		## /usr/bin/strip "$@" || true

		mkdir /var/tmp/bin 2> /dev/null || true

		if test ! -f /var/tmp/bin/strip
		then
		    printf '#! /bin/sh\n/usr/bin/strip "$@"\n' >/var/tmp/bin/strip
		    chmod a+rx /var/tmp/bin/strip
		fi

		## Need /usr/pkg/bin for perl, which is absent from the first two directories in PATH
		PATH=/var/tmp/bin:/bin:/usr/bin:/usr/pkg/bin:$prefix/bin
		export PATH
		libs=
		test -f ${libdir}/libfontconfig.a              && libs="${libs} ${libdir}/libfontconfig.a"
		test -f ${libdir}/libexpat.a                   && libs="${libs} ${libdir}/libexpat.a"
		test -f ${libdir}/libfreetype.a                && libs="${libs} ${libdir}/libfreetype.a"
		test -f ${libdir}/libxml2.a                    && libs="${libs} ${libdir}/libxml2.a"
		test -f ${libdir}/libbz2.a                     && libs="${libs} ${libdir}/libbz2.a"
		test -f ${libdir}/libz.a                       && libs="${libs} ${libdir}/libz.a"
		libs="${libs} -lm"
		test -z "${GNUMAKE}" -a -f /usr/pkg/bin/gmake  && GNUMAKE=/usr/pkg/bin/gmake
		TL_BUILD_ENV=
		TL_BUILD_ENV="${TL_BUILD_ENV} CC=${CC}"
		TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${CXX}"
		test -f ${libdir}/libfontconfig.a               && TL_BUILD_ENV="${TL_BUILD_ENV} FONTCONFIG_LIBS=${libdir}/libfontconfig.a"
		## TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-L/usr/pkg/lib -Wl,-rpath,/usr/pkg/lib -L/usr/X11R7/lib -Wl,-rpath,/usr/X11R7/lib -Wl,-rpath,${libdir} -L${libdir} ${LDFLAGS}'"
		TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-L/usr/X11R7/lib -Wl,-rpath,/usr/X11R7/lib -Wl,-rpath,${libdir} -L${libdir} ${LDFLAGS}'"
		TL_BUILD_ENV="${TL_BUILD_ENV} LIBS='${libs} ${LIBS}'"
		TL_COMPILER_GFLAGS="${tlarch} -g -I${prefix}/include/freetype2 -I/usr/include -I${prefix}/include -DSIZE_MAX=0xffffffffUL"
		TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --with-iconv=yes --build=x86_64-unknown-netbsd8.0"
		test -f "${CLISP}" && TL_CONFIGURE_FLAGS="--enable-xindy CLISP=${CLISP} ${TL_CONFIGURE_FLAGS}"
		;;

	SunOS)
		case "${tlarch}" in
		-m64)
			libdir=${prefix}/lib/64
			## We need gcc-3.x because gcc-4.x produces assembly errors in lua51/lcoco.c
			PATH=/usr/sfw/bin:/bin:/usr/ccs/bin
			test -d /bin/amd64            && PATH=/bin/amd64:${PATH}
			test -d ${prefix}/bin/amd64   && PATH=${prefix}/bin/amd64:${PATH}
			test -d bin/sparcv9           && PATH=/bin/sparcv9:${PATH}
			test -d ${prefix}/bin/sparcv9 && PATH=${prefix}/bin/sparcv9:${PATH}
			;;

		*)
			libdir=${prefix}/lib
			tlarch=-m32
			PATH=/bin:/usr/sfw/bin:/usr/ccs/bin
			;;

		esac

		## For OpenIndiana, we have two additional sources of GNU software
		test -d /usr/gnu/bin			&& PATH=/usr/gnu/bin:$PATH
		test -d /usr/gcc/4.3/bin		&& PATH=/usr/gcc/4.3/bin:$PATH

		## For Solaris 11.3, Oracle has a fairly rich GNU tool
		## chain in /bin and /lib, and with --disable-gl, we
		## only need gcc-5.2 compilers from /opt/csw/bin to
		## produce a TeX Live build that is completely devoid
		## of references to the /opt/csw tree that might not
		## be available at other sites.

		if test -x /opt/csw/bin/g++-4.9 -a -x /opt/csw/bin/gcc-4.9 || \
		   test -x /opt/csw/bin/g++-5.5 -a -x /opt/csw/bin/gcc-5.5
		then
			PATH=/opt/csw/bin:/bin

			libs=-lm
			test -x /bin/clisp -o -x /opt/csw/bin/clisp && TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --enable-xindy"

			## Force Oracle libraries ahead of /opt/csw ones
			case "${tlarch}" in
			-m64)
				## NO: LDFLAGS="$LDFLAGS -R/lib/64 -L/lib/64"
				## NO: LDFLAGS="$LDFLAGS -R/usr/lib/64 -L/usr/lib/64"
				## NO: LDFLAGS="$LDFLAGS -R/opt/csw/lib/64 -L/opt/csw/lib/64"
				LDFLAGS="$LDFLAGS -static-libstdc++"
				;;
			*)
				## NO: LDFLAGS="$LDFLAGS -R/lib -L/lib"
				## NO: LDFLAGS="$LDFLAGS -R/usr/lib -L/usr/lib"
				## NO: LDFLAGS="$LDFLAGS -R/opt/csw/lib -L/opt/csw/lib"
				LDFLAGS="$LDFLAGS -static-libstdc++"
				;;
			esac

			## /bin/gcc is gcc-4.8.2, and neither it nor the CSW gcc-4.9.2 compilers
			## can build asymptote
			test "$CXX" = "g++" && CXX=/opt/csw/bin/g++-5.5 && CXXFLAGS="$CXXFLAGS -I/opt/csw/include"
			test "$CC"  = "gcc" &&  CC=/opt/csw/bin/gcc-5.5 &&   CFLAGS="  $CFLAGS -I/opt/csw/include"
			test -x /bin/gmake  && GMAKE=/bin/gmake
			CPPFLAGS="$CPPFLAGS ${tlarch}"
			CXXFLAGS="$CXXFLAGS ${tlarch}"
			CFLAGS="    $CFLAGS ${tlarch}"
			TL_BUILD_ENV="${TL_BUILD_ENV} CC='${CC}'"
			TL_BUILD_ENV="${TL_BUILD_ENV} CXX='${CXX}'"
			TL_BUILD_ENV="${TL_BUILD_ENV} CFLAGS='${CFLAGS}'"
			TL_BUILD_ENV="${TL_BUILD_ENV} CXXFLAGS='${CXXFLAGS}'"
			TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='${LDFLAGS}'"
			TL_COMPILER_GFLAGS="${tlarch} -g"
		else # perhaps older version of Solaris
			libs=
			test -f ${libdir}/libfontconfig.a	&& libs="${libs} ${libdir}/libfontconfig.a"
			test -f ${libdir}/libexpat.a		&& libs="${libs} ${libdir}/libexpat.a"
			test -f ${libdir}/libfreetype.a		&& libs="${libs} ${libdir}/libfreetype.a"
			test -f ${libdir}/libbz2.a		&& libs="${libs} ${libdir}/libbz2.a"
			test -f ${libdir}/libgmp.a		&& libs="${libs} ${libdir}/libgmp.a"
			test -f ${libdir}/libz.a		&& libs="${libs} ${libdir}/libz.a"
			libs="${libs} -lm"

			export PATH
			TL_BUILD_ENV=
			TL_BUILD_ENV="${TL_BUILD_ENV} CC=${CC}"
			TL_BUILD_ENV="${TL_BUILD_ENV} CXX=${CXX}"

			# gcc-4.2 on Solaris x86_64 and x86
			test -f $prefix/bin/gcc-4.2 && TL_BUILD_ENV="${TL_BUILD_ENV}  CC=$prefix/bin/gcc-4.2"
			test -f $prefix/bin/g++-4.2 && TL_BUILD_ENV="${TL_BUILD_ENV} CXX=$prefix/bin/g++-4.2"

			# gcc-4.4 on Solaris SPARC
			test -f $prefix/bin/gcc-4.4 && TL_BUILD_ENV="${TL_BUILD_ENV}  CC=$prefix/bin/gcc-4.4"
			test -f $prefix/bin/g++-4.4 && TL_BUILD_ENV="${TL_BUILD_ENV} CXX=$prefix/bin/g++-4.4"

			TL_BUILD_ENV="${TL_BUILD_ENV} LDFLAGS='-R/usr/openwin/lib -L/usr/openwin/lib -R${libdir} -L${libdir} ${LDFLAGS}'"
			TL_BUILD_ENV="${TL_BUILD_ENV} LIBS='${libs} ${LIBS}'"
			test -f ${libdir}/libfontconfig.a               && TL_BUILD_ENV="${TL_BUILD_ENV} FONTCONFIG_LIBS='${libdir}/libfontconfig.a'"
			TL_COMPILER_GFLAGS="${tlarch} -g -I${prefix}/include/freetype2 -I/usr/include -I${prefix}/include"

			## [30-Mar-2014] need GNU make 3.80 or later for freetype2 builds
			GNUMAKE=/usr/sfw/bin/gmake

			## [30-Mar-2014] temporary until dvisvgm problems worked out by TeX Live developers
			TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --disable-dvisvgm"

			## [04-Apr-2014] Karl Berry reports that ttftotype42 tests fail on Solaris
			TL_CONFIGURE_FLAGS="${TL_CONFIGURE_FLAGS} --disable-lcdftypetools"
		fi

		export PATH
		;;

	*)
		fatal ERROR: TeX Live build is not yet supported for this system
		;;

esac

## [01-Mar-2018] a CentOS 6 build attempt failed in source/Work/texk/dvipdfm-x
## because exec_prefix had not been set
exec_prefix=${exec_prefix-${TL_INSTALL_DIR}}
TL_CONFIGURE_FLAGS="--exec-prefix=${exec_prefix} ${TL_CONFIGURE_FLAGS}"

## [01-Mar-2018] CentOS 6 builds fail in texk/web2c because of an internal
## error in /usr/bin/ld:
##	BFD version 2.20.51.0.2-5.47.el6_9.1 20100205 internal error,
##	aborting at reloc.c line 5615 in bfd_generic_get_relocated_section_contents
## We therefore need to allow the user to supply an alternate LD, and we do so
## automatically on that system if LD has not been set.
test -z "$LD" &&								\
	test -f /etc/redhat-release &&						\
		grep -s "release 6" /etc/redhat-release >/dev/null 2>&1 &&	\
			test -x $prefix/bin/ld &&				\
				LD=$prefix/bin/ld

test -z "$LD" || TL_BUILD_ENV="${TL_BUILD_ENV} LD=${LD}"

## Because ld is invoked inside the compiler, we need to be able override
## its location.  Tests show that if LD is a global environment variable,
## then gcc will use its value in place of /bin/ld, whew....!
test -z "$LD" || export LD

echo
echo ================================ Final settings ================================
echo
echo "DEBUG: exec_prefix          = ${exec_prefix}"
echo "DEBUG: libdir               = ${libdir}"
echo "DEBUG: prefix               = ${prefix}"
echo "DEBUG: tlarch               = ${tlarch}"
echo "DEBUG: tlmodel              = ${tlmodel}"
echo "DEBUG: tlrelease            = ${tlrelease}"
echo "DEBUG: tlsystem             = ${tlsystem}"
echo "DEBUG: CC                   = ${CC}"
echo "DEBUG: CFLAGS               = ${CFLAGS}"
echo "DEBUG: CPPFLAGS             = ${CPPFLAGS}"
echo "DEBUG: CXX                  = ${CXX}"
echo "DEBUG: CXXFLAGS             = ${CXXFLAGS}"
echo "DEBUG: CLISP                = ${CLISP}"
echo "DEBUG: GNUDF                = ${GNUDF}"
echo "DEBUG: GNUDU                = ${GNUDU}"
echo "DEBUG: GNUMAKE              = ${GNUMAKE}"
echo "DEBUG: GNUTAR               = ${GNUTAR}"
echo "DEBUG: LD                   = ${LD}"
echo "DEBUG: LDFLAGS              = ${LDFLAGS}"
echo "DEBUG: LIBS                 = ${LIBS}"
echo "DEBUG: PATH                 = ${PATH}"
echo "DEBUG: TL_BUILD_ENV         = ${TL_BUILD_ENV}"
echo "DEBUG: TL_COMPILER_GFLAGS   = ${TL_COMPILER_GFLAGS}"
echo "DEBUG: TL_CONFIGURE_FLAGS   = ${TL_CONFIGURE_FLAGS}"
echo "DEBUG: C compiler version   = `${CC}  --version | head -1 || true`"
echo "DEBUG: C++ compiler version = `${CXX} --version | head -1 || true`"

## [30-Mar-2014] Does making this global solve the freetype2 build problem on Solaris?

export GNUMAKE

## [25-May-2014] Switch to static -liconv whenever it is available,
## because it is not standardly available on most Unix systems, but
## both xdvi and xindy insist on using it, even ignoring our
## --with-iconv=no option, sigh...

if test -f ${libdir}/libiconv.a
then
    echo Forcing -liconv library references to use static library because -liconv is often missing at other sites ...
    TL_BUILD_ENV="${TL_BUILD_ENV} LIBICONV=${libdir}/libiconv.a LTLIBICONV=${libdir}/libiconv.a iconv_libs=${libdir}/libiconv.a X_EXTRA_LIBS=${libdir}/libiconv.a"
    find `pwd` -name Makefile -o -name Makefile.in | xargs ${prefix}/bin/sed -i -e "s=-liconv=${libdir}/libiconv.a="
    find `pwd` -name Make\* | sort | xargs grep iconv
fi

cat <<EOF
========================================================================

Preparing to build TeX Live in `pwd` with these commands:

    date
    uptime || true
    nice ${TIME} env -i                                                 \\
      HOME=${HOME}                                                      \\
        PATH=${PATH}                                                    \\
          TL_BUILD_ENV="${TL_BUILD_ENV}"                                \\
            TL_COMPILER_GFLAGS="${TL_COMPILER_GFLAGS}"                  \\
              TL_CONFIGURE_ARGS="${TL_CONFIGURE_ARGS}"                  \\
                TL_INSTALL_DIR="${TL_INSTALL_DIR}"                      \\
                  TL_MAKE=${GNUMAKE}                                    \\
                    TL_MAKE_FLAGS="${tlmakeflags}"                      \\
                      ./Build ${TL_DEBUG_FLAGS} ${TL_CONFIGURE_FLAGS}
    uptime || true
    date

Disk space check:

`${GNUDF} -h .`

After configuration, if the make fails, repair problems and restart it
like this:

    cd ${tlbuilddir}/source/Work
    ${GNUMAKE} world

If that succeeds, copy the ${tlbuilddir}/source/inst/bin/*/* files into
the appropriate TeX Live bin/ARCHITECTURE-NAME/ directory.

========================================================================
EOF

date
uptime || true

# [06-Jan-2021] Disable this feature for TeX Live 2021 builds, because
# it leads to undefined symbol conflicts between the locally installed
# (and likely newer) libfontconfig and the TeX Live private build of
# freetype2:
#
# if test -f ${libdir}/libfontconfig.a
# then
#     echo Patching FONTCONFIG_LIBS ...
#     find `pwd` -name Makefile.in | xargs ${prefix}/bin/sed -i -e "s=@FONTCONFIG_LIBS@=${libdir}/libfontconfig.a="
#     find `pwd` -name Makefile.in | xargs grep '^FONTCONFIG_LIBS'
# fi

nice ${TIME} env -i                                                     \
  HOME=${HOME}                                                          \
    PATH=${PATH}                                                        \
      TL_BUILD_ENV="${TL_BUILD_ENV}"                                    \
        TL_COMPILER_GFLAGS="${TL_COMPILER_GFLAGS}"                      \
          TL_CONFIGURE_ARGS="${TL_CONFIGURE_ARGS}"                      \
            TL_INSTALL_DIR="${TL_INSTALL_DIR}"                          \
              TL_MAKE=${GNUMAKE}                                        \
                TL_MAKE_FLAGS="${tlmakeflags}"                          \
                  ./Build ${TL_DEBUG_FLAGS} ${TL_CONFIGURE_FLAGS}
uptime || true
date

cat <<EOF
========================================================================

Finished TeX Live build attempt:

Disk space check:

`${GNUDF} -h .`

Stripped binaries are in `echo ${tlbuilddir}/source/inst/bin/*`

Checking just-built binaries: expect roughly 459
............................. found  exactly `ls -1 ${tlbuilddir}/source/inst/bin/*/* | wc -l`

------------------------------------------------------------------------

Binary directory disk space check:

`test -d ${tlbuilddir}/source/inst/bin && ${GNUDU} -sh ${tlbuilddir}/source/inst/bin`

------------------------------------------------------------------------

Library dependency check (executables MUST NOT refer to ${prefix} libraries)

`cd ${tlbuilddir}/source/inst/bin/* ; ${prefix}/src/texlive/show-texlive-libs.sh 2/dev/null || true`

========================================================================
EOF

date
