]> git.ipfire.org Git - thirdparty/util-linux.git/blobdiff - autogen.sh
libmount: don't use sscanf() for swaps parsing
[thirdparty/util-linux.git] / autogen.sh
index 70bb96b26132946995a2a03874fee683cd928e4f..3625b2da9125a105b0f5b6846dfb0075cbf93acc 100755 (executable)
 #
 # Helps generate autoconf/automake stuff, when code is checked out from SCM.
 #
-# Copyright (C) 2006 - Karel Zak <kzak@redhat.com> 
+# Copyright (C) 2006-2010 - Karel Zak <kzak@redhat.com>
 #
 
 srcdir=`dirname $0`
-test -z "$srcdir" && srcdir=. 
+test -z "$srcdir" && srcdir=.
 
 THEDIR=`pwd`
 cd $srcdir
 DIE=0
 
+# 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
+               echo "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 || {
+       echo
+       echo "You must run this script in the top-level util-linux directory."
+       echo
+       DIE=1
+}
+
 (autopoint --version) < /dev/null > /dev/null 2>&1 || {
         echo
-        echo "You must have autopoint installed to generate util-linux-ng build system.."
-        echo "Download the appropriate package for your distribution,"
-        echo "or see http://www.gnu.org/software/gettext"
+        echo "You must have autopoint installed to generate the util-linux build system."
+        echo "The autopoint command is part of the GNU gettext package."
+       echo
         DIE=1
 }
 (autoconf --version) < /dev/null > /dev/null 2>&1 || {
        echo
-       echo "You must have autoconf installed to generate util-linux-ng build system."
+       echo "You must have autoconf installed to generate the util-linux build system."
        echo
-       echo "Download the appropriate package for your distribution,"
-       echo "or see http://www.gnu.org/software/autoconf"
        DIE=1
 }
-(automake --version) < /dev/null > /dev/null 2>&1 || {
+(autoheader --version) < /dev/null > /dev/null 2>&1 || {
+       echo
+       echo "You must have autoheader installed to generate the util-linux build system."
+       echo "The autoheader command is part of the GNU autoconf package."
        echo
-       echo "You must have automake installed to generate util-linux-ng build system."
-       echo 
-       echo "Download the appropriate package for your distribution,"
-       echo "or see http://www.gnu.org/software/automake"
        DIE=1
 }
-(autoheader --version) < /dev/null > /dev/null 2>&1 || {
+
+if ! (bison --version) < /dev/null > /dev/null 2>&1; then
+       echo
+       echo "You must have bison installed to build the util-linux."
        echo
-       echo "You must have autoheader installed to generate util-linux-ng build system."
-       echo 
-       echo "Download the appropriate package for your distribution,"
-       echo "or see http://www.gnu.org/software/autoheader"
        DIE=1
-}
-(libtool --version) < /dev/null > /dev/null 2>&1 || {
+else
+       lexver=$(bison --version | awk '/^bison \(GNU [Bb]ison\)/ { print $4 }')
+       case "$lexver" in
+               [2-9].*)
+                       ;;
+               *)
+                       echo
+                       echo "You must have bison version >= 2.x, but you have $lexver."
+                       echo
+                       DIE=1
+                       ;;
+       esac
+fi
+
+LIBTOOLIZE=libtoolize
+case `uname` in Darwin*) LIBTOOLIZE=glibtoolize ;; esac
+if ! ($LIBTOOLIZE --version) < /dev/null > /dev/null 2>&1; then
+       echo
+       echo "You must have libtool-2 installed to generate the util-linux build system."
+       echo
+       DIE=1
+else
+       ltver=$($LIBTOOLIZE --version | awk '/^[g]*libtoolize/ { print $4 }')
+       ltver=${ltver:-"none"}
+       test ${ltver##2.} = "$ltver" && {
+               echo
+               echo "You must have libtool version >= 2.x.x, but you have $ltver."
+               echo
+               DIE=1
+       }
+fi
+
+(automake --version) < /dev/null > /dev/null 2>&1 || {
+       echo
+       echo "You must have automake installed to generate the util-linux build system."
        echo
-       echo "You must have libtool installed to generate util-linux build-system."
-       echo "Download the appropriate package for your distribution,"
-       echo "or see http://www.gnu.org/software/libtool"
        DIE=1
 }
+
 if test "$DIE" -eq 1; then
        exit 1
 fi
 
-test -f mount/mount.c || {
-       echo "You must run this script in the top-level util-linux-ng directory"
-       exit 1
-}
+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 "   bison:      $(bison --version | head -1)"
+
+rm -rf autom4te.cache
 
 set -e
-autopoint --force
-libtoolize --copy --force
-aclocal -I m4
-autoconf
-autoheader
-automake --add-missing
+po/update-potfiles
+autopoint_fun --force $AP_OPTS
+if ! grep -q datarootdir po/Makefile.in.in; then
+       echo 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
+aclocal -I m4 $AL_OPTS
+autoconf $AC_OPTS
+autoheader $AH_OPTS
+
+automake --add-missing $AM_OPTS
 
-cd $THEDIR
+cd "$THEDIR"
 
-echo 
+echo
 echo "Now type '$srcdir/configure' and 'make' to compile."
-echo 
+echo