Deal more gracefully with being either unable to check that automake is or finding...
[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       echo "***************************************************************************"
67       echo "You should abort the build now and read the README file for an explanation."
68       echo "***************************************************************************"
69       echo
70       # Give user time to respond
71       sleep 5;
72       echo "continuing anyway: I recommend keeping a check on the amount of memory used"
73       echo "while running automake - it is likely to grow extremely large."
74       echo
75     else
76       # Reversed patch failed: incompatibly patched.
77       echo
78       echo
79       echo "Unable to check whether automake is appropriately patched."
80       echo "Your version of automake may need to have a patch applied."
81       echo "Read the README file for more explanation."
82       echo
83     fi
84   fi
85 rm autogen.patch.tmp
86 fi
87 fi
88
89
90
91 (libtool --version) < /dev/null > /dev/null 2>&1 || {
92         echo
93         echo "You must have libtool installed to compile $package."
94         echo "Get the latest version from ftp://alpha.gnu.org/gnu/libtool/"
95         DIE=1
96 }
97
98 libtool_version=`libtool --version | sed 's/^.* \([0-9\.]*\) .*$/\1/'`
99 libtool_major=`echo $libtool_version | cut -d. -f1`
100 libtool_minor=`echo $libtool_version | cut -d. -f2`
101 libtool_micro=`echo $libtool_version | cut -d. -f3`
102 if [ x$libtool_micro = x ]; then
103         libtool_micro=0
104 fi
105 if [ $libtool_major -le 1 ]; then
106         if [ $libtool_major -lt 1 ]; then
107                 echo
108                 echo "You must have libtool 1.3.5 or greater to compile $package."
109                 echo "Get the latest version from ftp://alpha.gnu.org/gnu/libtool/"
110                 DIE=1
111         elif [ $libtool_minor -le 3 ]; then
112                 if [ $libtool_minor -lt 3 ]; then
113                         echo
114                         echo "You must have libtool 1.3.5 or greater to compile $package."
115                         echo "Get the latest version from ftp://alpha.gnu.org/gnu/libtool/"
116                         DIE=1
117                 elif [ $libtool_micro -lt 5 ]; then
118                         echo
119                         echo "You must have libtool 1.3.5 or greater to compile $package."
120                         echo "Get the latest version from ftp://alpha.gnu.org/gnu/libtool/"
121                         DIE=1
122                 fi
123         fi
124 fi
125
126 if test "$DIE" -eq 1; then
127         exit 1
128 fi
129
130 test -f $srcfile || {
131         echo "You must run this script in the top-level $package directory"
132         exit 1
133 }
134
135 if test -z "$*"; then
136         echo "I am going to run ./configure with no arguments - if you wish "
137         echo "to pass any to it, please specify them on the $0 command line."
138 fi
139
140 libtoolize --copy --force
141 aclocal $ACLOCAL_FLAGS || {
142         echo
143         echo "aclocal failed - check that all needed development files are present on system"
144         exit 1
145 }
146 autoheader || {
147         echo
148         echo "autoheader failed"
149         exit 1
150 }
151 autoconf || {
152         echo
153         echo "autoconf failed"
154         #exit 1
155 }
156 automake --add-missing || {
157         echo
158         echo "automake failed"
159         #exit 1
160 }
161
162 # now remove the cache, because it can be considered dangerous in this case
163 rm -f config.cache
164
165 # The new configure options for busy application developers (Hadess)
166 #./configure --enable-maintainer-mode --enable-debug --enable-debug-verbose 
167
168 ./configure --enable-maintainer-mode --enable-plugin-srcdir --enable-debug --enable-debug-verbose "$@" || {
169         echo
170         echo "configure failed"
171         exit 1
172 }
173
174 echo 
175 echo "Now type 'make' to compile $package."