1source $stdenv/setup
2
3# Wrap the given `aclocal' program, appending extra `-I' flags
4# corresponding to the directories listed in $ACLOCAL_PATH. (Note
5# that `wrapProgram' can't be used for that purpose since it can only
6# prepend flags, not append them.)
7wrapAclocal() {
8 local program="$1"
9 local wrapped="$(dirname $program)/.$(basename $program)-wrapped"
10
11 mv "$program" "$wrapped"
12 cat > "$program"<<EOF
13#! $SHELL -e
14
15unset extraFlagsArray
16declare -a extraFlagsArray
17
18oldIFS=\$IFS
19IFS=:
20for dir in \$ACLOCAL_PATH; do
21 if test -n "\$dir" -a -d "\$dir"; then
22 extraFlagsArray=("\${extraFlagsArray[@]}" "-I" "\$dir")
23 fi
24done
25IFS=\$oldIFS
26
27exec "$wrapped" "\$@" "\${extraFlagsArray[@]}"
28EOF
29 chmod +x "$program"
30}
31
32postInstall() {
33 # Create a wrapper around `aclocal' that converts every element in
34 # `ACLOCAL_PATH' into a `-I dir' option. This way `aclocal'
35 # becomes modular; M4 macros do not need to be stored in a single
36 # global directory, while callers of `aclocal' do not need to pass
37 # `-I' options explicitly.
38
39 for prog in $out/bin/aclocal*; do
40 wrapAclocal "$prog"
41 done
42
43 ln -s aclocal-1.11 $out/share/aclocal
44 ln -s automake-1.11 $out/share/automake
45}
46
47genericBuild