summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/tangle-sh.in
diff options
context:
space:
mode:
authorPeter Breitenlohner <peb@mppmu.mpg.de>2012-12-29 14:32:45 +0000
committerPeter Breitenlohner <peb@mppmu.mpg.de>2012-12-29 14:32:45 +0000
commit9da2af345bbc3848d181319a77b830c77034ae1e (patch)
tree74832eb1c57486b7ce18e0d987150cbdf42876a9 /Build/source/texk/web2c/tangle-sh.in
parenta7c9a7ff1a6d0925eafe21175304c494e266b319 (diff)
build system: Enable "silent rules" (see Automake manual)
git-svn-id: svn://tug.org/texlive/trunk@28654 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/tangle-sh.in')
-rw-r--r--Build/source/texk/web2c/tangle-sh.in31
1 files changed, 22 insertions, 9 deletions
diff --git a/Build/source/texk/web2c/tangle-sh.in b/Build/source/texk/web2c/tangle-sh.in
index c0a304c0893..724e0805f4f 100644
--- a/Build/source/texk/web2c/tangle-sh.in
+++ b/Build/source/texk/web2c/tangle-sh.in
@@ -1,7 +1,7 @@
#! @SHELL@
# tangle-sh: shell script to invoke tangle (or ctangle, etc).
#
-# Copyright (C) 2009 Peter Breitenlohner <tex-live@tug.org>
+# Copyright (C) 2009, 2012 Peter Breitenlohner <tex-live@tug.org>
#
# This file is free software; the copyright holder
# gives unlimited permission to copy and/or distribute it,
@@ -29,15 +29,31 @@ test "x$CWEBINPUTS" = x || env="CWEBINPUTS=$CWEBINPUTS $env"
target=$1; shift
tangle=$1; shift
base=$1
+
+do_tangle () {
+ echo timestamp >$stamp.tmp
+ if $AM_V_P; then
+ echo "$env $tangle $@"
+ $tangle "$@" || exit 1
+ else
+ case $base in
+ aleph | xetex) echo " OTANGLE " $base;;
+ *tex | mf) echo " TANGLE " $base;;
+ *) echo " CTANGLE " $base;;
+ esac
+ $tangle "$@" >$base.out 2>&1; rc=$?
+ test $rc -eq 0 || { cat $base.out; exit $rc; }
+ rm -f $base.out
+ fi
+ mv -f $stamp.tmp $stamp
+}
+
stamp=$base-tangle
case $target in
$stamp)
# Normal build.
rm -f $stamp.tmp
- echo timestamp >$stamp.tmp
- echo "$env $tangle $@"
- $tangle "$@" || exit 1
- mv -f $stamp.tmp $stamp
+ do_tangle "$@"
;;
*)
# Recover from removal of $target
@@ -46,10 +62,7 @@ case $target in
if mkdir $stamp.lock 2>/dev/null; then
# Code executed by the first process.
rm -f $stamp $stamp.tmp
- echo timestamp >$stamp.tmp
- echo "$env $tangle $@"
- $tangle "$@" || exit 1
- mv -f $stamp.tmp $stamp
+ do_tangle "$@"
rmdir $stamp.lock
else
# Code executed by the follower processes.