1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163
|
#!/bin/sh
#
# Helps generate autoconf/automake stuff, when code is checked out from SCM.
#
# Copyright (C) 2006-2010 - Karel Zak <kzak@redhat.com>
#
srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.
THEDIR=`pwd`
cd $srcdir
DIE=0
warn_mesg ()
{
echo
echo "WARNING: $1"
test -z "$2" ||
echo " $2"
echo
}
error_mesg ()
{
echo
echo "ERROR: $1"
test -z "$2" ||
echo " $2"
echo
DIE=1
}
# provide simple gettext backward compatibility
autopoint_fun ()
{
# we have to deal with set -e ...
ret="0"
# check against this hardcoded set of alternative gettext versions
gt_ver=`gettext --version |\
sed -n -e 's/.* \(0\.17\|0\.18\|0\.18\.[1-2]\)$/\1/p'`
if [ -n "$gt_ver" ]; then
warn_mesg "warning: forcing autopoint to use old gettext $gt_ver"
rm -f configure.ac.autogenbak
sed -i.autogenbak configure.ac \
-e "s/\(AM_GNU_GETTEXT_VERSION\).*/\1([$gt_ver])/"
fi
autopoint "$@" || ret=$?
if [ -n "$gt_ver" ]; then
mv configure.ac.autogenbak configure.ac
fi
return $ret
}
test -f sys-utils/mount.c ||
error_mesg "You must run this script in the top-level util-linux directory."
(autopoint --version) < /dev/null > /dev/null 2>&1 ||
error_mesg "You must have autopoint installed to generate the util-linux build system." "The autopoint command is part of the GNU gettext package."
(autoconf --version) < /dev/null > /dev/null 2>&1 ||
error_mesg "You must have autoconf installed to generate the util-linux build system."
(autoheader --version) < /dev/null > /dev/null 2>&1 ||
error_mesg "You must have autoheader installed to generate the util-linux build system." "The autoheader command is part of the GNU autoconf package."
[ -x "$(command -v gettext)" -o -x "$(command -v xgettext)" ] ||
warn_mesg "You need have [x]gettext binary installed to update po/ stuff."
(flex --version) < /dev/null > /dev/null 2>&1 ||
error_mesg "You must have flex installed to build the util-linux."
if ! (bison --version) < /dev/null > /dev/null 2>&1; then
error_mesg "You must have bison installed to build the util-linux."
else
lexver=$(bison --version | awk '/^bison \(GNU [Bb]ison\)/ { print $4 }')
case "$lexver" in
[2-9].*)
;;
*)
error_mesg "You must have bison version >= 2.x, but you have $lexver."
;;
esac
fi
LIBTOOLIZE=libtoolize
case `uname` in Darwin*) LIBTOOLIZE=glibtoolize ;; esac
if ! ($LIBTOOLIZE --version) < /dev/null > /dev/null 2>&1; then
error_mesg "You must have libtool-2 installed to generate the util-linux build system."
else
ltver=$($LIBTOOLIZE --version | awk '/^[g]*libtoolize/ { print $4 }')
ltver=${ltver:-"none"}
test ${ltver##2.} = "$ltver" &&
error_mesg "You must have libtool version >= 2.x.x, but you have $ltver."
fi
(automake --version) < /dev/null > /dev/null 2>&1 ||
error_mesg "You must have automake installed to generate the util-linux build system."
if test "$DIE" -eq 1; then
exit 1
fi
echo
echo "Generating build-system with:"
echo " autopoint: $(autopoint --version | head -1)"
echo " aclocal: $(aclocal --version | head -1)"
echo " autoconf: $(autoconf --version | head -1)"
echo " autoheader: $(autoheader --version | head -1)"
echo " automake: $(automake --version | head -1)"
echo " libtoolize: $($LIBTOOLIZE --version | head -1)"
echo " flex: $(flex --version | head -1)"
echo " bison: $(bison --version | head -1)"
echo
rm -rf autom4te.cache
set -e
po/update-potfiles
autopoint_fun --force $AP_OPTS
if ! grep -q datarootdir po/Makefile.in.in; then
echo "INFO: autopoint does not honor dataroot variable, patching."
sed -i -e 's/^datadir *=\(.*\)/datarootdir = @datarootdir@\
datadir = @datadir@/g' po/Makefile.in.in
fi
$LIBTOOLIZE --force $LT_OPTS
# patch libtool
if test -f tools/libtool.m4.patch; then
if test -L m4/libtool.m4; then
cp m4/libtool.m4 m4/libtool.m4.org
rm m4/libtool.m4
mv m4/libtool.m4.org m4/libtool.m4
fi
set +e
patch --batch --dry -p1 < tools/libtool.m4.patch > /dev/null 2>&1
if [ "$?" -eq 0 ]; then
patch -p1 --batch < tools/libtool.m4.patch
fi
set -e
fi
aclocal -I m4 $AL_OPTS
autoconf $AC_OPTS
autoheader $AH_OPTS
automake --add-missing $AM_OPTS
cd "$THEDIR"
echo
echo "Now type '$srcdir/configure' and 'make' to compile."
echo
|