]> git.ipfire.org Git - thirdparty/util-linux.git/blobdiff - autogen.sh
hwclock: free temporary variable before return
[thirdparty/util-linux.git] / autogen.sh
index d1a686c1636c729377b9e40686c33865c84cf00b..833f90415f5c51c3351d7c196b1fd1ae082ae82d 100755 (executable)
@@ -13,6 +13,25 @@ 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 ()
 {
@@ -21,10 +40,10 @@ autopoint_fun ()
 
        # check against this hardcoded set of alternative gettext versions
        gt_ver=`gettext --version |\
-               sed -n -e 's/.* \(0\.18\|0\.18\.[1-2]\)$/\1/p'`
+               sed -n -e 's/.* \(0\.17\|0\.18\|0\.18\.[1-2]\)$/\1/p'`
 
        if [ -n "$gt_ver" ]; then
-               echo "warning, force autopoint to use old gettext $gt_ver"
+               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])/"
@@ -39,65 +58,67 @@ autopoint_fun ()
        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
-}
+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 || {
-        echo
-        echo "You must have autopoint installed to generate 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 build system."
-       echo
-       DIE=1
-}
-(autoheader --version) < /dev/null > /dev/null 2>&1 || {
-       echo
-       echo "You must have autoheader installed to generate util-linux build system."
-       echo "The autoheader command is part of the GNU autoconf package."
-       echo
-       DIE=1
-}
-(libtool --version) < /dev/null > /dev/null 2>&1 || {
-       echo
-       echo "You must have libtool-2 installed to generate util-linux build system."
-       echo
-       DIE=1
-}
-(automake --version) < /dev/null > /dev/null 2>&1 || {
-       echo
-       echo "You must have automake installed to generate util-linux build system."
-       echo 
-       DIE=1
-}
+(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."
 
-ltver=$(libtoolize --version | awk '/^libtoolize/ { print $4 }')
-ltver=${ltver:-"none"}
-test ${ltver##2.} = "$ltver" && {
-       echo "You must have libtool version >= 2.x.x, but you have $ltver."
-       DIE=1
-}
+(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 "Generate build-system by:"
+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 "   libtoolize: $($LIBTOOLIZE --version | head -1)"
+echo "   flex:       $(flex --version | head -1)"
+echo "   bison:      $(bison --version | head -1)"
+echo
 
 rm -rf autom4te.cache
 
@@ -105,18 +126,35 @@ set -e
 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.
+       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
+$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
+
+cd "$THEDIR"
 
 echo
 echo "Now type '$srcdir/configure' and 'make' to compile."