| 1 |
#!/usr/bin/env bash |
| 2 |
|
| 3 |
PROJECT=sparkleshare |
| 4 |
|
| 5 |
function error () { |
| 6 |
echo "Error: $1" 1>&2 |
| 7 |
exit 1 |
| 8 |
} |
| 9 |
|
| 10 |
function check_autotool_version () { |
| 11 |
which $1 &>/dev/null || { |
| 12 |
error "$1 is not installed, and is required to configure $PACKAGE" |
| 13 |
} |
| 14 |
|
| 15 |
version=$($1 --version | head -n 1 | cut -f4 -d' ') |
| 16 |
major=$(echo $version | cut -f1 -d.) |
| 17 |
minor=$(echo $version | cut -f2 -d.) |
| 18 |
rev=$(echo $version | cut -f3 -d. | sed 's/[^0-9].*$//') |
| 19 |
major_check=$(echo $2 | cut -f1 -d.) |
| 20 |
minor_check=$(echo $2 | cut -f2 -d.) |
| 21 |
rev_check=$(echo $2 | cut -f3 -d.) |
| 22 |
|
| 23 |
if [ $major -lt $major_check ]; then |
| 24 |
do_bail=yes |
| 25 |
elif [[ $minor -lt $minor_check && $major = $major_check ]]; then |
| 26 |
do_bail=yes |
| 27 |
elif [[ $rev -lt $rev_check && $minor = $minor_check && $major = $major_check ]]; then |
| 28 |
do_bail=yes |
| 29 |
fi |
| 30 |
|
| 31 |
if [ x"$do_bail" = x"yes" ]; then |
| 32 |
error "$1 version $2 or better is required to configure $PROJECT" |
| 33 |
fi |
| 34 |
} |
| 35 |
|
| 36 |
function run () { |
| 37 |
echo "Running $@ ..." |
| 38 |
$@ 2>.autogen.log || { |
| 39 |
cat .autogen.log 1>&2 |
| 40 |
rm .autogen.log |
| 41 |
error "Could not run $1, which is required to configure $PROJECT" |
| 42 |
} |
| 43 |
rm .autogen.log |
| 44 |
} |
| 45 |
|
| 46 |
srcdir=$(dirname $0) |
| 47 |
test -z "$srcdir" && srcdir=. |
| 48 |
|
| 49 |
(test -f $srcdir/configure.ac) || { |
| 50 |
error "Directory \"$srcdir\" does not look like the top-level $PROJECT directory" |
| 51 |
} |
| 52 |
|
| 53 |
# MacPorts on OS X only seems to have glibtoolize |
| 54 |
WHICHLIBTOOLIZE=$(which libtoolize || which glibtoolize) |
| 55 |
if [ x"$WHICHLIBTOOLIZE" == x"" ]; then |
| 56 |
error "libtool is required to configure $PROJECT" |
| 57 |
fi |
| 58 |
LIBTOOLIZE=$(basename $WHICHLIBTOOLIZE) |
| 59 |
|
| 60 |
check_autotool_version aclocal 1.9 |
| 61 |
check_autotool_version automake 1.9 |
| 62 |
check_autotool_version autoconf 2.53 |
| 63 |
check_autotool_version $LIBTOOLIZE 1.4.3 |
| 64 |
check_autotool_version intltoolize 0.35.0 |
| 65 |
check_autotool_version pkg-config 0.14.0 |
| 66 |
|
| 67 |
if [ $(pkg-config --modversion gnome-doc-utils 2> /dev/null) ]; then |
| 68 |
run gnome-doc-prepare --automake --force |
| 69 |
else |
| 70 |
echo "gnome-doc-utils not found; user help will not be built" |
| 71 |
echo "AC_DEFUN([GNOME_DOC_INIT], [AC_MSG_NOTICE([])])" > build/m4/gnome-doc-utils.m4 |
| 72 |
ACLOCAL_FLAGS="-I build/m4 $ACLOCAL_FLAGS" |
| 73 |
touch gnome-doc-utils.make |
| 74 |
fi |
| 75 |
|
| 76 |
if git --help &>/dev/null; then |
| 77 |
git submodule update --init |
| 78 |
fi |
| 79 |
|
| 80 |
run intltoolize --force --copy |
| 81 |
run $LIBTOOLIZE --force --copy --automake |
| 82 |
run aclocal -I build/m4/sparkleshare -I build/m4/shamrock -I build/m4/shave $ACLOCAL_FLAGS |
| 83 |
run autoconf |
| 84 |
|
| 85 |
run automake --gnu --add-missing --force --copy \ |
| 86 |
-Wno-portability -Wno-portability |
| 87 |
|
| 88 |
if test -d $srcdir/SmartIrc4net; then |
| 89 |
echo Running SmartIrc4net/autogen.sh ... |
| 90 |
(cd $srcdir/SmartIrc4net; NOCONFIGURE=1 ./autogen.sh "$@") |
| 91 |
echo Done running SmartIrc4net/autogen.sh ... |
| 92 |
fi |
| 93 |
|
| 94 |
if [ ! -z "$NOCONFIGURE" ]; then |
| 95 |
echo "Done. ./configure skipped." |
| 96 |
exit $? |
| 97 |
fi |
| 98 |
|
| 99 |
if [ $# = 0 ]; then |
| 100 |
echo "WARNING: I am going to run configure without any arguments." |
| 101 |
fi |
| 102 |
|
| 103 |
run ./configure --enable-maintainer-mode $@ |