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