#!/bin/sh # $Id$ # Public domain. Originally written many years ago by Sebastian Rahtz. # To build again from same sources, try Build --no-clean. # To build (mostly) without optimization, try Build --debug. # # Any other options given are passed along to configure, and everything can be # overridden with environment variables. # clean up environment unset TEXMFCNF; export TEXMFCNF LANG=C; export LANG # cd to our source directory. mydir=`dirname $0` cd $mydir || exit 1 : ${TL_WORKDIR=Work} # allow override of install destination. if test -z "$TL_INSTALL_DEST"; then H=`pwd` test -d inst || mkdir -p inst/texmf # avoid configure warnings TL_INSTALL_DEST=$H/inst fi # allow override of make program. : ${TL_MAKE=make} # make flags : ${TL_MAKE_FLAGS=} # and then also set GNUMAKE to that, for the sake of freetype2/configure. : ${GNUMAKE=${TL_MAKE}} export GNUMAKE if test "x$1" = x--no-clean; then shift else test -f Makefile && $TL_MAKE clean rm -rf $TL_WORKDIR $TL_INSTALL_DEST fi # For MacOSX PowerPC, we want to keep working on 10.3. # For MacOSX Intel, though, the earliest system is 10.4. if sh build-aux/config.guess | grep powerpc.*darwin >/dev/null \ && test -z "$MACOSX_DEPLOYMENT_TARGET"; then MACOSX_DEPLOYMENT_TARGET=10.3 export MACOSX_DEPLOYMENT_TARGET fi : ${TL_BUILD_ENV=} if test "x$1" = x--debug || test "x$1" = x-g; then TL_BUILD_ENV="CFLAGS=-g CXXFLAGS=-g OBJCFLAGS=-g $TL_BUILD_ENV" shift fi test -d $TL_WORKDIR || mkdir $TL_WORKDIR cd $TL_WORKDIR || exit 1 # allow override of configure location, just in case. : ${TL_CONFIGURE=../configure} # default to static linking. : ${TL_CONF_SHARED=--disable-shared} # longinteger and off_t declarations are still inconsistent, do not # enable this unless you are testing. : ${TL_CONF_LARGEFILE=--disable-largefile} # allow override of xdvi toolkit, default to standard xaw. : ${TL_CONF_XDVI_TOOLKIT=--with-xdvi-x-toolkit=xaw} # default to building ICU without thread support, since xetex doesn't need it. : ${TL_CONF_THREADS=--disable-threads} # default to include freetype2 support for old Mac font file formats. : ${TL_CONF_MAC_FONTS=--with-old-mac-fonts} # configure defaults to skipping xindy, as it requires clisp (see # utils/README). But in addition, if --enable-xindy is given, still # disable the documentation and data file building, which require a # working LaTeX installation. : ${TL_CONF_XINDY="--disable-xindy-docs --disable-xindy-make-rules"} # allow adding arbitrary other configure args. : ${TL_CONFIGURE_ARGS=} # allow override of make target. : ${TL_TARGET=world} # Kpathsea is not going to be able to find its cnf files during the # build, so omit the warning about it. : ${KPATHSEA_WARNING=0} # configure && make. Keep the tee outside, so that we can detect # failure at either step. { echo starting `date` set -vx # show the configure and make commands in the log. eval $TL_BUILD_ENV time $TL_CONFIGURE \ --prefix=$TL_INSTALL_DEST \ --datadir=$TL_INSTALL_DEST \ $TL_CONF_SHARED \ $TL_CONF_LARGEFILE \ $TL_CONF_XDVI_TOOLKIT \ $TL_CONF_THREADS \ $TL_CONF_MAC_FONTS \ $TL_CONF_XINDY \ $TL_CONFIGURE_ARGS \ "$@" \ && eval $TL_BUILD_ENV time $TL_MAKE $TL_MAKE_FLAGS $TL_TARGET # Too arcane to try to propagate the exit status through a pipeline. # Just use a temp file. echo $? >exitstatus.txt } 2>&1 | tee build.log # report the number of binaries built. bindir=$TL_INSTALL_DEST/bin count=`find $bindir \! -type d -print | wc -l` if test "$count" -gt 0; then echo echo "$0: $count executables in $bindir." else echo "$0: Build failed, no executables under $bindir." exit 1 fi | tee -a build.log echo done `date` | tee -a build.log exit `cat exitstatus.txt`