create a configure.base file, containing the contents of configure.{in,ac}, with...
[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
141 # Generate configure.in and configure.ac
142 sed <configure.base >configure.in '/^SUBSTFOR configure.ac:.*/d;s/^SUBSTFOR configure.in://g'
143 sed <configure.base >configure.ac '/^SUBSTFOR configure.in:.*/d;s/^SUBSTFOR configure.ac://g'
144
145 libtoolize --copy --force
146 aclocal $ACLOCAL_FLAGS || {
147         echo
148         echo "aclocal failed - check that all needed development files are present on system"
149         exit 1
150 }
151 autoheader || {
152         echo
153         echo "autoheader failed"
154         exit 1
155 }
156 autoconf || {
157         echo
158         echo "autoconf failed"
159         #exit 1
160 }
161 automake --add-missing || {
162         echo
163         echo "automake failed"
164         #exit 1
165 }
166
167 # now remove the cache, because it can be considered dangerous in this case
168 rm -f config.cache
169
170 # The new configure options for busy application developers (Hadess)
171 #./configure --enable-maintainer-mode --enable-debug --enable-debug-verbose 
172
173 ./configure --enable-maintainer-mode --enable-plugin-srcdir --enable-debug --enable-debug-verbose "$@" || {
174         echo
175         echo "configure failed"
176         exit 1
177 }
178
179 echo 
180 echo "Now type 'make' to compile $package."