Forked from
Core Modules / dune-common
3905 commits behind the upstream repository.
-
Ansgar Burchardt authoredAnsgar Burchardt authored
dune-autogen 3.97 KiB
#!/bin/bash
# barf on errors
set -e
usage () {
echo "Usage: dune-autogen DUNE_MODULE_PATH_LIST [options]"
echo " --ac=, --acversion=VERSION use a specific VERSION of autoconf"
echo " --am=, --amversion=VERSION use a specific VERSION of automake"
echo " -h, --help you already found this :-)"
}
## get my name...
grep '^Module:' dune.module >/dev/null || echo "Parser Error: Module entry missing in dune.module"
name=
while read head name rest
do case "$head" in
Module:) break;;
Module:*) name="${head#Module:}"; break;;
esac
name=
done <dune.module
## dune-all.m4
rm -f dune-all.m4
rm -f $name.m4
# add current dir to PATH
PATH=`dirname "$0"`:$PATH
# guess libtool prefix
if test -n "$LIBTOOLIZE"; then
LIBTOOL_prefix=`dirname "\`dirname "$LIBTOOLIZE"\`"`
PATH=$LIBTOOL_prefix:$PATH
ACLOCAL_FLAGS="$ACLOCAL_FLAGS -I \"$LIBTOOL_prefix/share/aclocal\""
fi
for OPT in "$@"; do
set +e
# stolen from configure...
# when no option is set, this returns an error code
arg=`expr "x$OPT" : 'x[^=]*=\(.*\)'`
set -e
case "$OPT" in
--ac=*|--acversion=*)
if test "x$arg" = "x"; then
usage;
exit 1;
fi
ACVERSION=$arg
;;
--am=*|--amversion=*)
if test "x$arg" = "x"; then
usage;
exit 1;
fi
AMVERSION=$arg
;;
-h|--help) usage ; exit 0 ;;
*)
if test -d "$OPT/m4"; then
ACLOCAL_FLAGS="$ACLOCAL_FLAGS -I \"$OPT/m4\""
fi
if test -z "$am_dir"; then
# if am_dir is already set, then we already find dune-common
# and did set am_dir correctly.
if test -f "$OPT/dune-common.pc.in" ; then
# if test \( -d "$OPT/am" \) -a ! \( -h "$OPT/am" \) ; then
echo "Found am directory $OPT/am"
am_dir="$OPT/am"
fi
if test -d "$OPT/share/dune/aclocal"; then
ACLOCAL_FLAGS="$ACLOCAL_FLAGS -I $OPT/share/dune/aclocal"
fi
if test -d "$OPT/share/aclocal"; then
ACLOCAL_FLAGS="$ACLOCAL_FLAGS -I $OPT/share/aclocal"
fi
if test -d "$OPT/share/dune-common/am"; then
echo "Found am directory $OPT/share/dune-common/am"
am_dir="$OPT/share/dune-common/am"
fi
fi
PATH=$OPT/bin:$PATH
;;
esac
done
## report parameters
if test "x$ACVERSION" != "x"; then
echo "Forcing autoconf version $ACVERSION"
if ! which autoconf$ACVERSION > /dev/null; then
echo
echo "Error: Could not find autoconf$ACVERSION"
echo " Did you specify a wrong version?"
exit 1
fi
fi
if test "x$AMVERSION" != "x"; then
echo "Forcing automake version $AMVERSION"
if ! which automake$AMVERSION > /dev/null; then
echo
echo "Error: Could not find automake$AMVERSION"
echo " Did you specify a wrong version?"
exit 1
fi
fi
## run autotools
echo "--> dunedoxynize..."
dunedoxynize
echo "--> libtoolize..."
# this script won't rewrite the files if they already exist. This is a
# PITA when you want to upgrade libtool, thus I'm setting --force
if [ x`type -t glibtoolize` = xfile ]; then
LIBTOOLIZE=glibtoolize
fi
${LIBTOOLIZE-libtoolize} --force
# writing privat m4 file
echo -n "--> "
dunecontrol --only=$name m4create
# prepare everything
echo "--> aclocal..."
rm -f aclocal.m4
rm -rf autom4te.cache
eval aclocal$AMVERSION "-I . $ACLOCAL_FLAGS"
# create a link to the dune-common am directory
if [ "$name" != "dune-common" ]; then
if [ -n "$am_dir" ] && [ -d "$am_dir" ]; then
echo "--> linking dune-common/am..."
rm -f am
ln -s "$am_dir" am
else
echo
echo "Error: Could not find dune-common/am!"
usage
exit 1
fi
fi
# applications should provide a config.h for now
echo "--> autoheader..."
autoheader$ACVERSION
echo "--> automake..."
automake$AMVERSION -W all --add-missing
echo "--> autoconf..."
autoconf$ACVERSION
## tell the user what to do next
echo "Now run ./configure to setup $name"