blob: 3ce1a37c45318d8ab0ceef116d739bde3413e769 [file] [log] [blame]
#!/bin/sh -e
# Bootstrap the pristine source ready for distribution and deployment.
SCRIPT_OK=0
SCRIPT_ERROR=1
ACINCLUDE_FILE="acinclude.m4"
ACINCLUDE_IN_FILE="acinclude.m4.in"
ACINCLUDE_TMP_FILE="acinclude.m4.tmp"
AUTHORS_FILE="authors.xml"
BUILD_AUX_DIRECTORY="build-aux"
CONFIG_GUESS_FILE="build-aux/config.guess"
CONFIG_SUB_FILE="build-aux/config.sub"
basename=`basename $0`
get () {
variable_name=$1
echo "changequote(\`[', \`]')" > $ACINCLUDE_TMP_FILE
sed -e "s/m4_//" < $ACINCLUDE_IN_FILE >> $ACINCLUDE_TMP_FILE
echo $variable_name >> $ACINCLUDE_TMP_FILE
if test -x "`which m4 || true`"; then
`which m4` $ACINCLUDE_TMP_FILE | grep -v "^$" || true
else
if test -x "`which gm4 || true`"; then
`which gm4` $ACINCLUDE_TMP_FILE | grep -v "^$" || true
else
echo unknown
fi
fi
rm -f $ACINCLUDE_TMP_FILE
}
display_version () {
cat << EOF
$basename - `get LOCAL_PACKAGE_NAME` `get LOCAL_VERSION_PRIMARY`
Copyright (c) 2008 Hunter Morris <huntermorris@gmail.com>
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
EOF
}
display_help () {
cat << EOF
Usage: $basename [OPTION]...
The $basename script bootstraps the pristine source so that it can be built.
The exit status is 0 for success or 1 for failure.
Options:
-h display a short help message and exit
-v display version information and exit
Environment variables:
REVISION manual override for revision information
EOF
}
display_error () {
if test -n "$1"; then
echo $1 >&2
fi
echo >&2
echo "Try \`"$basename" -h' for more information." >&2
exit $SCRIPT_ERROR
}
generate_acinclude () {
if test -z "$REVISION"; then
REVISION=""
fi
if test -z "`get LOCAL_VERSION_STAGE`" -o -z "$REVISION"; then
sed "s/%release%//" < $ACINCLUDE_IN_FILE > $ACINCLUDE_FILE
else
sed "s/%release%/$REVISION/" < $ACINCLUDE_IN_FILE > $ACINCLUDE_FILE
fi
}
process_file_collection () {
echo "Installing \`"$BUILD_AUX_DIRECTORY"'"
mkdir -p $BUILD_AUX_DIRECTORY
}
run_aclocal () {
if test -x "`which aclocal || true`"; then
echo "Running aclocal"
`which aclocal` -I m4
else
echo "Can't find aclocal"
exit $SCRIPT_ERROR
fi
}
run_libtoolize () {
if test -x "`which libtoolize || true`"; then
echo "Running libtoolize"
`which libtoolize` -f -c
else
if test -x "`which glibtoolize || true`"; then
echo "Running glibtoolize"
`which glibtoolize` -f -c
else
echo "Can't find libtoolize or glibtoolize"
exit $SCRIPT_ERROR
fi
fi
}
run_autoheader () {
if test -x "`which autoheader || true`"; then
echo "Running autoheader"
`which autoheader` -f
else
echo "Can't find autoheader"
exit $SCRIPT_ERROR
fi
}
run_automake () {
AUTOMAKE_OPTION_COLLECTION=""
if test -x "`which automake || true`"; then
echo "Running automake"
`which automake` -f -c -a --gnits
else
echo "Can't find automake"
exit $SCRIPT_ERROR
fi
}
run_autoconf () {
if test -x "`which autoconf || true`"; then
echo "Running autoconf"
`which autoconf` -f
else
echo "Can't find autoconf"
exit $SCRIPT_ERROR
fi
}
run_command_collection () {
run_libtoolize
run_aclocal
run_autoheader
run_automake
run_autoconf
cat << EOF
You have bootstrapped erlang-bcrypt.
Run \`./configure' to configure the source before you install.
EOF
}
parse_script_option_list () {
set +e
options=`getopt hVC $@`
if test ! $? -eq 0; then
display_error
fi
set -e
eval set -- $options
while [ $# -gt 0 ]; do
case "$1" in
-h) shift; display_help; exit $SCRIPT_OK;;
-V) shift; display_version; exit $SCRIPT_OK;;
--) shift; break;;
*) display_error "Unknown option: $1" >&2;;
esac
done
cd `dirname $0`
process_file_collection
generate_acinclude
run_command_collection
}
parse_script_option_list $@