Clarify the messages about the patched automake one more time.
[platform/upstream/gstreamer.git] / autogen.sh
1 #!/bin/sh
2 # Run this to generate all the initial makefiles, etc.
3
4 DIE=0
5 package=GStreamer
6 srcfile=gst/gstobject.h
7
8 (autoconf --version) < /dev/null > /dev/null 2>&1 || {
9         echo
10         echo "You must have autoconf installed to compile $package."
11         echo "Download the appropriate package for your distribution,"
12         echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/autoconf/"
13         DIE=1
14 }
15
16 (automake --version) < /dev/null > /dev/null 2>&1 || {
17         echo
18         echo "You must have automake installed to compile $package."
19         echo "Download the appropriate package for your distribution,"
20         echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/automake/"
21         DIE=1
22 }
23 automakevermin=`(automake --version|head -n 1|sed 's/^.* //;s/\./ /g;';echo "1 4")|sort -n|head -n 1`
24 automakevergood=`(automake --version|head -n 1|sed 's/^.* //;s/\./ /g;';echo "1 4f")|sort -n|head -n 1`
25 if test "x$automakevermin" != "x1 4"; then
26 # version is less than 1.4, the minimum suitable version
27         echo
28         echo "You must have automake version 1.4 or greater installed."
29         echo "Download the appropriate package for your distribution,"
30         echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/automake/"
31         DIE=1
32 else
33 if test "x$automakevergood" != "x1 4f"; then
34 echo -n "Checking for patched automake..."
35 # version is less than 1.4f, the version with the patch applied
36 # check that patch is applied
37 cat > autogen.patch.tmp <<EOF
38 --- 1
39 +++ 2
40 @@ -2383,8 +2383,8 @@
41         # to all possible directories, and use it.  If DIST_SUBDIRS is
42         # defined, just use it.
43         local (\$dist_subdir_name);
44 -       if (&variable_defined ('DIST_SUBDIRS')
45 -           || &variable_conditions ('SUBDIRS'))
46 +       if (&variable_conditions ('SUBDIRS')
47 +           || &variable_defined ('DIST_SUBDIRS'))
48         {
49             \$dist_subdir_name = 'DIST_SUBDIRS';
50             if (! &variable_defined ('DIST_SUBDIRS'))
51 EOF
52   if patch -s -f --dry-run `which automake` <autogen.patch.tmp >/dev/null 2>&1;
53   then
54     # Patch succeeded: appropriately patched.
55     echo " found."
56   else
57     # Patch failed: either unpatched or incompatibly patched.
58     if patch -R -s -f --dry-run `which automake` <autogen.patch.tmp >/dev/null 2>&1;
59     then
60       # Reversed patch succeeded: not patched.
61       echo " not found."
62       echo
63       echo "Detected automake version 1.4 (or near) without patch."
64       echo "Your version of automake needs a patch applied in order to operate correctly."
65       echo
66       patchedfile="`pwd`/automake"
67       if test -e $patchedfile; then 
68         PATCHED=0
69       else
70         echo "making a patched version..."
71         patch -R -s -f `which automake` <autogen.patch.tmp -o $patchedfile;
72         chmod +x $patchedfile;
73         PATCHED=1
74       fi
75       echo
76       echo "***************************************************************************"
77       if test -e $patchedfile; then 
78         if test "x$PATCHED" == "x1"; then
79           echo "A patched version of automake is available at:"
80           echo "$patchedfile"
81           echo "You should put this in an appropriate place, or modify $PATH, so that it is"
82           echo "used in preference to this installed version of automake."
83         fi
84       fi
85       echo "You should abort the build now.  Read the README file for an explanation."
86       echo "***************************************************************************"
87       echo
88       # Give user time to respond
89       sleep 5;
90       echo "Continuing anyway: I recommend keeping a check on the amount of memory used"
91       echo "while running automake - it is likely to grow extremely large."
92       echo
93     else
94       # Reversed patch failed: incompatibly patched.
95       echo
96       echo
97       echo "Unable to check whether automake is appropriately patched."
98       echo "Your version of automake may need to have a patch applied."
99       echo "Read the README file for more explanation."
100       echo
101     fi
102   fi
103 rm autogen.patch.tmp
104 fi
105 fi
106
107
108
109 (libtool --version) < /dev/null > /dev/null 2>&1 || {
110         echo
111         echo "You must have libtool installed to compile $package."
112         echo "Get the latest version from ftp://alpha.gnu.org/gnu/libtool/"
113         DIE=1
114 }
115
116 libtool_version=`libtool --version | sed 's/^.* \([0-9\.]*\) .*$/\1/'`
117 libtool_major=`echo $libtool_version | cut -d. -f1`
118 libtool_minor=`echo $libtool_version | cut -d. -f2`
119 libtool_micro=`echo $libtool_version | cut -d. -f3`
120 if [ x$libtool_micro = x ]; then
121         libtool_micro=0
122 fi
123 if [ $libtool_major -le 1 ]; then
124         if [ $libtool_major -lt 1 ]; then
125                 echo
126                 echo "You must have libtool 1.3.5 or greater to compile $package."
127                 echo "Get the latest version from ftp://alpha.gnu.org/gnu/libtool/"
128                 DIE=1
129         elif [ $libtool_minor -le 3 ]; then
130                 if [ $libtool_minor -lt 3 ]; then
131                         echo
132                         echo "You must have libtool 1.3.5 or greater to compile $package."
133                         echo "Get the latest version from ftp://alpha.gnu.org/gnu/libtool/"
134                         DIE=1
135                 elif [ $libtool_micro -lt 5 ]; then
136                         echo
137                         echo "You must have libtool 1.3.5 or greater to compile $package."
138                         echo "Get the latest version from ftp://alpha.gnu.org/gnu/libtool/"
139                         DIE=1
140                 fi
141         fi
142 fi
143
144 if test "$DIE" -eq 1; then
145         exit 1
146 fi
147
148 test -f $srcfile || {
149         echo "You must run this script in the top-level $package directory"
150         exit 1
151 }
152
153 if test -z "$*"; then
154         echo "I am going to run ./configure with no arguments - if you wish "
155         echo "to pass any to it, please specify them on the $0 command line."
156 fi
157
158
159 # Generate configure.in and configure.ac
160 sed <configure.base >configure.in '/^SUBSTFOR configure.ac:.*/d;s/^SUBSTFOR configure.in://g'
161 sed <configure.base >configure.ac '/^SUBSTFOR configure.in:.*/d;s/^SUBSTFOR configure.ac://g'
162
163 libtoolize --copy --force
164 aclocal $ACLOCAL_FLAGS || {
165         echo
166         echo "aclocal failed - check that all needed development files are present on system"
167         exit 1
168 }
169 autoheader || {
170         echo
171         echo "autoheader failed"
172         exit 1
173 }
174 autoconf || {
175         echo
176         echo "autoconf failed"
177         #exit 1
178 }
179 automake --add-missing || {
180         echo
181         echo "automake failed"
182         #exit 1
183 }
184
185 # now remove the cache, because it can be considered dangerous in this case
186 rm -f config.cache
187
188 # The new configure options for busy application developers (Hadess)
189 #./configure --enable-maintainer-mode --enable-debug --enable-debug-verbose 
190
191 ./configure --enable-maintainer-mode --enable-plugin-srcdir --enable-debug --enable-debug-verbose "$@" || {
192         echo
193         echo "configure failed"
194         exit 1
195 }
196
197 echo 
198 echo "Now type 'make' to compile $package."