diff --git a/autogen.sh b/autogen.sh index 1a48e235..25f176bd 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,5 +1,55 @@ #! /bin/sh +args=$(getopt bfos "$@") +if [ $? -ne 0 ]; then + echo "Usage: autogen.sh [-b] [-f] [-o] [-s] [--]" + echo + echo "> -b: do not update the system detection scripts" + echo "> -f: force the recreation of all autoconf scripts" + echo "> -o: overwrite/downgrade system detection scripts" + echo "> -s: setup an environment for developers" + exit 2 +fi + +force=false +update_config=true +overwrite_config=false +dev_setup=false + +eval set -- "$args" + +while [ $# -ne 0 ]; do + case $1 in + -b) + update_config=false + ;; + -f) + force=true + ;; + -o) + overwrite_config=true + ;; + -s) + dev_setup=true + ;; + --) + shift + break + ;; + esac + shift +done + +if [ -s configure ]; then + if [ "$force" != true ]; then + echo "autoconf scripts already exist." >&2 + exit 0 + fi +elif [ "$dev_setup" != true ]; then + echo "A development environment was not created." + exit 0 +fi + if glibtoolize --version >/dev/null 2>&1; then LIBTOOLIZE='glibtoolize' else @@ -26,6 +76,14 @@ command -v automake >/dev/null 2>&1 || { exit 1 } +if [ "$overwrite_config" = false ]; then + if [ -f build-aux/config.guess ]; then + mv build-aux/config.guess build-aux/config.guess.stable + fi + if [ -f build-aux/config.sub ]; then + mv build-aux/config.sub build-aux/config.sub.stable + fi +fi if autoreconf --version >/dev/null 2>&1; then autoreconf -ivf else @@ -34,8 +92,16 @@ else automake --add-missing --force-missing --include-deps && autoconf fi +if [ "$overwrite_config" = false ]; then + if [ -f build-aux/config.guess.stable ]; then + mv build-aux/config.guess.stable build-aux/config.guess + fi + if [ -f build-aux/config.sub.stable ]; then + mv build-aux/config.sub.stable build-aux/config.sub + fi +fi -[ -z "$DO_NOT_UPDATE_CONFIG_SCRIPTS" ] && +[ "$update_config" = true ] && [ -z "$DO_NOT_UPDATE_CONFIG_SCRIPTS" ] && command -v curl >/dev/null 2>&1 && { echo "Downloading config.guess and config.sub..."