summaryrefslogtreecommitdiff
path: root/Build/source/Build
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-10-05 15:14:42 +0000
committerKarl Berry <karl@freefriends.org>2013-10-05 15:14:42 +0000
commit31e36f737b5df3392f1d115508e6fbb27aaa3cac (patch)
tree9a522a0ad7c7e64b071d5aaa1946fe80f4e2dca3 /Build/source/Build
parentebc6ea4fe4d7335683a4f749d7ba23de5dae0272 (diff)
new envvar TL_POSTCONFIGURE (default true), suggested by Nelson, tlbuild mail 28 May 2013 08:39:26
git-svn-id: svn://tug.org/texlive/trunk@31840 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/Build')
-rwxr-xr-xBuild/source/Build45
1 files changed, 29 insertions, 16 deletions
diff --git a/Build/source/Build b/Build/source/Build
index 9d71b5f4009..15cd8abf9ca 100755
--- a/Build/source/Build
+++ b/Build/source/Build
@@ -1,11 +1,12 @@
#!/bin/sh
# $Id$
# Public domain. Originally written many years ago by Sebastian Rahtz.
-# To build again, try Build --no-clean.
-# To build without optimization, try Build --debug.
+# The basic idea is to run configure && make, but with a multitude of
+# environment variables to allow overriding everything.
#
-# Any other options given are passed along to configure, and everything can be
-# overridden with environment variables.
+# To build again from where it left off, try Build --no-clean.
+# To build without optimization, try Build --debug.
+# Any other options given are passed along to configure.
# clean up environment
unset TEXMFCNF; export TEXMFCNF
@@ -30,6 +31,9 @@ fi
# make flags
: ${TL_MAKE_FLAGS=}
+# allow override of make target.
+: ${TL_TARGET=world}
+
# set MAKE to $TL_MAKE for configure
: ${MAKE=${TL_MAKE}}
export MAKE
@@ -41,6 +45,7 @@ else
rm -rf $TL_WORKDIR $TL_INSTALL_DEST
fi
+# allow adding environment setting for build.
: ${TL_BUILD_ENV=}
if test "x$1" = x--debug || test "x$1" = x-g; then
shift
@@ -54,36 +59,43 @@ if test "x$1" = x--debug || test "x$1" = x-g; then
TL_BUILD_ENV="$c $cxx $objcxx $TL_BUILD_ENV"
fi
-test -d $TL_WORKDIR || mkdir $TL_WORKDIR
-cd $TL_WORKDIR || exit 1
-
-# allow override of configure location, just in case.
+# allow override of configure location.
: ${TL_CONFIGURE=../configure}
+# allow for changing the banner identification, e.g.,
+# --with-banner-add='/SomeDistro'; see the build doc.
+: ${TL_CONF_BANNER=}
+
# default to supporting large files as much as possible;
# see comments at --disable-largefile in README.config.
: ${TL_CONF_LARGEFILE=--enable-largefile}
-# default to static linking.
-: ${TL_CONF_SHARED=--disable-shared}
-
# default to terminate if requested programs or features must be disabled.
: ${TL_CONF_MISSING=--disable-missing}
+# default to static linking.
+: ${TL_CONF_SHARED=--disable-shared}
+
# allow override of xdvi toolkit, default to standard xaw.
: ${TL_CONF_XDVI_TOOLKIT=--with-xdvi-x-toolkit=xaw}
-# allow adding arbitrary other configure args, such as
-# --with-banner-add='/SomeDistro'.
+# allow adding arbitrary other configure args, after all the others.
: ${TL_CONFIGURE_ARGS=}
-# allow override of make target.
-: ${TL_TARGET=world}
+
+# allow for doing stuff betwen configure and make.
+: ${TL_POSTCONFIGURE=true}
+
# Kpathsea is not going to be able to find its cnf files during the
# build, so omit the warning about it.
: ${KPATHSEA_WARNING=0}
+
+# make our working directory.
+test -d $TL_WORKDIR || mkdir $TL_WORKDIR
+cd $TL_WORKDIR || exit 1
+
# configure && make. Keep the tee outside, so that we can detect
# failure at either step.
{
@@ -99,12 +111,13 @@ cd $TL_WORKDIR || exit 1
--prefix=$TL_INSTALL_DEST \
--datadir=$TL_INSTALL_DEST \
$TL_CONF_BANNER \
- $TL_CONF_SHARED \
$TL_CONF_MISSING \
$TL_CONF_LARGEFILE \
+ $TL_CONF_SHARED \
$TL_CONF_XDVI_TOOLKIT \
$TL_CONFIGURE_ARGS \
"$@" \
+ && eval $TL_POSTCONFIGURE \
&& eval $TL_BUILD_ENV $TL_MAKE $TL_MAKE_FLAGS $TL_TARGET
# Too arcane to try to propagate the exit status through a pipeline.