aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'autogen.sh')
-rwxr-xr-xautogen.sh23
1 files changed, 18 insertions, 5 deletions
diff --git a/autogen.sh b/autogen.sh
index e9fd6b3..8ff14d5 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -5,14 +5,27 @@ touch ChangeLog
# avoid ugly warnings due to mismatch between local libtool and
# whatever updated version is on the host
-find m4/*.m4 '!' -name 'ax_*.m4' -delete 2>/dev/null
+find m4/*.m4 '!' -name 'ax_*.m4' -delete 2>/dev/null || :
# not everyone has sys-devel/autoconf-archive installed
-for macro in $(grep -o '\<AX[A-Z_]*\>' configure.ac | sort -u) ; do
- if m4=$(grep -rl "\[${macro}\]" /usr/share/aclocal/) ; then
- cp -v $m4 m4/
+has() { [[ " ${*:2} " == *" $1 "* ]] ; }
+import_ax() {
+ local macro content m4 lm4s
+ content=$(sed -e '/^[[:space:]]*#/d' -e 's:\<dnl\>.*::' "$@")
+ for macro in $(echo "${content}" | grep -o '\<AX[A-Z_]*\>' | sort -u) ; do
+ if m4=$(grep -rl "\[${macro}\]" /usr/share/aclocal/) ; then
+ has ${m4} "${m4s[@]}" || lm4s+=( ${m4} )
+ fi
+ done
+ if [[ ${#lm4s[@]} -gt 0 ]] ; then
+ cp -v `printf '%s\n' ${lm4s[@]} | sort -u` m4/
+ m4s+=( "${lm4s[@]}" )
fi
-done
+}
+m4s=()
+import_ax configure.ac
+import_ax m4/ax_*.m4
+import_ax m4/ax_*.m4
autoreconf -i -f