build-sys: make autogen.sh output more user friendly

Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
Karel Zak 2021-06-09 16:09:16 +02:00
parent 67735475db
commit 366063645f
1 changed files with 41 additions and 57 deletions

View File

@ -13,6 +13,25 @@ THEDIR=`pwd`
cd $srcdir cd $srcdir
DIE=0 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 # provide simple gettext backward compatibility
autopoint_fun () autopoint_fun ()
{ {
@ -24,7 +43,7 @@ autopoint_fun ()
sed -n -e 's/.* \(0\.17\|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 if [ -n "$gt_ver" ]; then
echo "warning: forcing autopoint to use old gettext $gt_ver" warn_mesg "warning: forcing autopoint to use old gettext $gt_ver"
rm -f configure.ac.autogenbak rm -f configure.ac.autogenbak
sed -i.autogenbak configure.ac \ sed -i.autogenbak configure.ac \
-e "s/\(AM_GNU_GETTEXT_VERSION\).*/\1([$gt_ver])/" -e "s/\(AM_GNU_GETTEXT_VERSION\).*/\1([$gt_ver])/"
@ -39,55 +58,30 @@ autopoint_fun ()
return $ret return $ret
} }
test -f sys-utils/mount.c || { test -f sys-utils/mount.c ||
echo error_mesg "You must run this script in the top-level util-linux directory."
echo "You must run this script in the top-level util-linux directory."
echo
DIE=1
}
(autopoint --version) < /dev/null > /dev/null 2>&1 || { (autopoint --version) < /dev/null > /dev/null 2>&1 ||
echo error_mesg "You must have autopoint installed to generate the util-linux build system." "The autopoint command is part of the GNU gettext package."
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 the util-linux build system."
echo
DIE=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
DIE=1
}
[ -x "$(command -v gettext)" -o -x "$(command -v xgettext)" ] || { (autoconf --version) < /dev/null > /dev/null 2>&1 ||
echo error_mesg "You must have autoconf installed to generate the util-linux build system."
echo "You need have [x]gettext binary installed to update po/ stuff."
echo (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."
if ! (bison --version) < /dev/null > /dev/null 2>&1; then if ! (bison --version) < /dev/null > /dev/null 2>&1; then
echo error_mesg "You must have bison installed to build the util-linux."
echo "You must have bison installed to build the util-linux."
echo
DIE=1
else else
lexver=$(bison --version | awk '/^bison \(GNU [Bb]ison\)/ { print $4 }') lexver=$(bison --version | awk '/^bison \(GNU [Bb]ison\)/ { print $4 }')
case "$lexver" in case "$lexver" in
[2-9].*) [2-9].*)
;; ;;
*) *)
echo error_mesg "You must have bison version >= 2.x, but you have $lexver."
echo "You must have bison version >= 2.x, but you have $lexver."
echo
DIE=1
;; ;;
esac esac
fi fi
@ -95,27 +89,16 @@ fi
LIBTOOLIZE=libtoolize LIBTOOLIZE=libtoolize
case `uname` in Darwin*) LIBTOOLIZE=glibtoolize ;; esac case `uname` in Darwin*) LIBTOOLIZE=glibtoolize ;; esac
if ! ($LIBTOOLIZE --version) < /dev/null > /dev/null 2>&1; then if ! ($LIBTOOLIZE --version) < /dev/null > /dev/null 2>&1; then
echo error_mesg "You must have libtool-2 installed to generate the util-linux build system."
echo "You must have libtool-2 installed to generate the util-linux build system."
echo
DIE=1
else else
ltver=$($LIBTOOLIZE --version | awk '/^[g]*libtoolize/ { print $4 }') ltver=$($LIBTOOLIZE --version | awk '/^[g]*libtoolize/ { print $4 }')
ltver=${ltver:-"none"} ltver=${ltver:-"none"}
test ${ltver##2.} = "$ltver" && { test ${ltver##2.} = "$ltver" &&
echo error_mesg "You must have libtool version >= 2.x.x, but you have $ltver."
echo "You must have libtool version >= 2.x.x, but you have $ltver."
echo
DIE=1
}
fi fi
(automake --version) < /dev/null > /dev/null 2>&1 || { (automake --version) < /dev/null > /dev/null 2>&1 ||
echo error_mesg "You must have automake installed to generate the util-linux build system."
echo "You must have automake installed to generate the util-linux build system."
echo
DIE=1
}
if test "$DIE" -eq 1; then if test "$DIE" -eq 1; then
exit 1 exit 1
@ -130,6 +113,7 @@ echo " autoheader: $(autoheader --version | head -1)"
echo " automake: $(automake --version | head -1)" echo " automake: $(automake --version | head -1)"
echo " libtoolize: $($LIBTOOLIZE --version | head -1)" echo " libtoolize: $($LIBTOOLIZE --version | head -1)"
echo " bison: $(bison --version | head -1)" echo " bison: $(bison --version | head -1)"
echo
rm -rf autom4te.cache rm -rf autom4te.cache
@ -137,7 +121,7 @@ set -e
po/update-potfiles po/update-potfiles
autopoint_fun --force $AP_OPTS autopoint_fun --force $AP_OPTS
if ! grep -q datarootdir po/Makefile.in.in; then 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@\ sed -i -e 's/^datadir *=\(.*\)/datarootdir = @datarootdir@\
datadir = @datadir@/g' po/Makefile.in.in datadir = @datadir@/g' po/Makefile.in.in
fi fi