Author: ludo
Date: Thu Jul  7 15:10:40 2011
New Revision: 27622
URL: https://svn.nixos.org/websvn/nix/?rev=27622&sc=1

Log:
GNU Automake: Append `-I' flags stemming from $ACLOCAL_PATH instead of 
prepending them.

See <http://lists.gnu.org/archive/html/bug-gnulib/2011-07/msg00100.html>
for an illustration of the bug.

Modified:
   nixpkgs/trunk/pkgs/development/tools/misc/automake/builder.sh

Modified: nixpkgs/trunk/pkgs/development/tools/misc/automake/builder.sh
==============================================================================
--- nixpkgs/trunk/pkgs/development/tools/misc/automake/builder.sh       Thu Jul 
 7 15:10:33 2011        (r27621)
+++ nixpkgs/trunk/pkgs/development/tools/misc/automake/builder.sh       Thu Jul 
 7 15:10:40 2011        (r27622)
@@ -1,5 +1,33 @@
 source $stdenv/setup
 
+# Wrap the given `aclocal' program, appending extra `-I' flags
+# corresponding to the directories listed in $ACLOCAL_PATH.  (Note
+# that `wrapProgram' can't be used for that purpose since it can only
+# prepend flags, not append them.)
+wrapAclocal() {
+    local program="$1"
+    local wrapped="$(dirname $program)/.$(basename $program)-wrapped"
+
+    mv "$program" "$wrapped"
+    cat > "$program"<<EOF
+#! $SHELL -e
+
+unset extraFlagsArray
+declare -a extraFlagsArray
+
+oldIFS=\$IFS
+IFS=:
+for dir in \$ACLOCAL_PATH; do
+    if test -n "\$dir" -a -d "\$dir"; then
+        extraFlagsArray=("\${extraFlagsArray[@]}" "-I" "\$dir")
+    fi
+done
+IFS=\$oldIFS
+
+exec "$wrapped" "\$@" "\${extraFlagsArray[@]}"
+EOF
+    chmod +x "$program"
+}
 
 postInstall() {
     # Create a wrapper around `aclocal' that converts every element in
@@ -9,16 +37,7 @@
     # `-I' options explicitly.
 
     for prog in $out/bin/aclocal*; do 
-        wrapProgram $prog --run \
-            '
-oldIFS=$IFS
-IFS=:
-for dir in $ACLOCAL_PATH; do
-    if test -n "$dir" -a -d "$dir"; then
-        extraFlagsArray=("${extraFlagsArray[@]}" "-I" "$dir")
-    fi
-done
-IFS=$oldIFS'
+        wrapAclocal "$prog"
     done
 }
 
_______________________________________________
nix-commits mailing list
[email protected]
http://mail.cs.uu.nl/mailman/listinfo/nix-commits

Reply via email to