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 $@