bcd79c503fda461ecce3b6d6a498014d4b8de43a
[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 "It is not safe to perform the build without a patched automake."
86       echo "Read the README file for an explanation."
87       echo "***************************************************************************"
88       echo
89       DIE=1
90     else
91       # Reversed patch failed: incompatibly patched.
92       echo
93       echo
94       echo "Unable to check whether automake is appropriately patched."
95       echo "Your version of automake may need to have a patch applied."
96       echo "Read the README file for more explanation."
97       echo
98     fi
99   fi
100 rm autogen.patch.tmp
101 fi
102 fi
103
104
105
106 (libtool --version) < /dev/null > /dev/null 2>&1 || {
107         echo
108         echo "You must have libtool installed to compile $package."
109         echo "Get the latest version from ftp://alpha.gnu.org/gnu/libtool/"
110         DIE=1
111 }
112
113 libtool_version=`libtool --version | sed 's/^.* \([0-9\.]*\) .*$/\1/'`
114 libtool_major=`echo $libtool_version | cut -d. -f1`
115 libtool_minor=`echo $libtool_version | cut -d. -f2`
116 libtool_micro=`echo $libtool_version | cut -d. -f3`
117 if [ x$libtool_micro = x ]; then
118         libtool_micro=0
119 fi
120 if [ $libtool_major -le 1 ]; then
121         if [ $libtool_major -lt 1 ]; then
122                 echo
123                 echo "You must have libtool 1.3.5 or greater to compile $package."
124                 echo "Get the latest version from ftp://alpha.gnu.org/gnu/libtool/"
125                 DIE=1
126         elif [ $libtool_minor -le 3 ]; then
127                 if [ $libtool_minor -lt 3 ]; then
128                         echo
129                         echo "You must have libtool 1.3.5 or greater to compile $package."
130                         echo "Get the latest version from ftp://alpha.gnu.org/gnu/libtool/"
131                         DIE=1
132                 elif [ $libtool_micro -lt 5 ]; then
133                         echo
134                         echo "You must have libtool 1.3.5 or greater to compile $package."
135                         echo "Get the latest version from ftp://alpha.gnu.org/gnu/libtool/"
136                         DIE=1
137                 fi
138         fi
139 fi
140
141 if test "$DIE" -eq 1; then
142         exit 1
143 fi
144
145 test -f $srcfile || {
146         echo "You must run this script in the top-level $package directory"
147         exit 1
148 }
149
150 if test -z "$*"; then
151         echo "I am going to run ./configure with no arguments - if you wish "
152         echo "to pass any to it, please specify them on the $0 command line."
153 fi
154
155
156 # Generate configure.in and configure.ac
157 sed <configure.base >configure.in '/^SUBSTFOR configure.ac:.*/d;s/^SUBSTFOR configure.in://g'
158 sed <configure.base >configure.ac '/^SUBSTFOR configure.in:.*/d;s/^SUBSTFOR configure.ac://g'
159
160 libtoolize --copy --force
161 aclocal $ACLOCAL_FLAGS || {
162         echo
163         echo "aclocal failed - check that all needed development files are present on system"
164         exit 1
165 }
166 autoheader || {
167         echo
168         echo "autoheader failed"
169         exit 1
170 }
171 autoconf || {
172         echo
173         echo "autoconf failed"
174         #exit 1
175 }
176 automake --add-missing || {
177         echo
178         echo "automake failed"
179         #exit 1
180 }
181
182 # now remove the cache, because it can be considered dangerous in this case
183 rm -f config.cache
184
185 # The new configure options for busy application developers (Hadess)
186 #./configure --enable-maintainer-mode --enable-debug --enable-debug-verbose 
187
188 ./configure --enable-maintainer-mode --enable-plugin-builddir --enable-debug --enable-debug-verbose "$@" || {
189         echo
190         echo "configure failed"
191         exit 1
192 }
193
194 echo 
195 echo "Now type 'make' to compile $package."