Compactify program rules using ternary operators.
authorRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Sat, 20 Sep 2008 13:38:26 +0000 (15:38 +0200)
committerRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Sat, 20 Sep 2008 13:38:26 +0000 (15:38 +0200)
* lib/am/progs.am (install-%DIR%PROGRAMS): Uglify^WCompactify
using ternary operators `%KEY?TRUE:FALSE%'.
(uninstall-%DIR%PROGRAMS): Likewise.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
ChangeLog
lib/am/progs.am

index 80f935a..e9053e9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2008-09-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
+       Compactify program rules using ternary operators.
+       * lib/am/progs.am (install-%DIR%PROGRAMS): Uglify^WCompactify
+       using ternary operators `%KEY?TRUE:FALSE%'.
+       (uninstall-%DIR%PROGRAMS): Likewise.
+
        New doc section about command line length limits.
        * doc/automake.texi (Length limitations): New node.
        (Alternative): `nobase_' is not always equivalent to several
index ea14053..4ed702b 100644 (file)
@@ -33,17 +33,13 @@ install-%DIR%PROGRAMS: $(%DIR%_PROGRAMS)
 ## On Cygwin with libtool test won't see `foo.exe' but instead `foo'.
 ## So we check for both.
        sed 's/$(EXEEXT)$$//' | \
-       while read p p1; do \
-         if test -f $$p \
-?LIBTOOL?           || test -f $$p1 \
-         ; then echo "$$p"; echo "$$p"; else :; fi; \
+       while read p p1; do if test -f $$p%LIBTOOL? || test -f $$p1%; \
+         then echo "$$p"; echo "$$p"; else :; fi; \
        done | \
 ## We now have a list of sourcefile pairs, separated by newline.
 ## Turn that into "sourcefile source_base target_dir xformed_target_base",
 ## with newlines being turned into spaces in a second step.
-       sed -e 'p;s,.*/,,;n;h' \
-?BASE?     -e 's|.*|.|' \
-?!BASE?            -e 's|[^/]*$$||; s|^$$|.|' \
+       sed -e 'p;s,.*/,,;n;h' -e '%BASE?s|.*|.|:s|[^/]*$$||; s|^$$|.|%' \
            -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
        sed 'N;N;N;s,\n, ,g' | \
 ## The following awk script turns that into one line containing directories
@@ -88,9 +84,8 @@ uninstall-%DIR%PROGRAMS:
 ## Remove any leading directory before applying $(transform),
 ## but keep the directory part in the hold buffer, in order to
 ## reapply it again afterwards in the nobase case.  Append $(EXEEXT).
-         sed 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/; \
-?!BASE?               x;s,[^/]*$$,,;G;s,\n,,; \
-              '`; \
+         sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+             -e 's/$$/$(EXEEXT)/'%BASE? : -e 'x;s,[^/]*$$,,;G;s,\n,,'%`; \
        test -n "$$list" || exit 0; \
        echo " ( cd '$(DESTDIR)$(%NDIR%dir)' && rm -f" $$files ")"; \
        cd "$(DESTDIR)$(%NDIR%dir)" && rm -f $$files