diff options
Diffstat (limited to 'nixpkgs/pkgs/development/tools/misc/automake/builder.sh')
-rw-r--r-- | nixpkgs/pkgs/development/tools/misc/automake/builder.sh | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/tools/misc/automake/builder.sh b/nixpkgs/pkgs/development/tools/misc/automake/builder.sh new file mode 100644 index 000000000000..e54a2acca67e --- /dev/null +++ b/nixpkgs/pkgs/development/tools/misc/automake/builder.sh @@ -0,0 +1,47 @@ +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 + # `ACLOCAL_PATH' into a `-I dir' option. This way `aclocal' + # becomes modular; M4 macros do not need to be stored in a single + # global directory, while callers of `aclocal' do not need to pass + # `-I' options explicitly. + + for prog in $out/bin/aclocal*; do + wrapAclocal "$prog" + done + + ln -s aclocal-1.11 $out/share/aclocal + ln -s automake-1.11 $out/share/automake +} + +genericBuild |