forked from util-linux/util-linux
-
Notifications
You must be signed in to change notification settings - Fork 0
/
autogen.sh
executable file
·158 lines (127 loc) · 3.98 KB
/
autogen.sh
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
#!/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."
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 " 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