1 # a silly hack that generates autoregen.sh but it's handy
2 echo "#!/bin/sh" > autoregen.sh
3 echo "./autogen.sh $@ \$@" >> autoregen.sh
6 # helper functions for autogen.sh
9 # print out a debug message if DEBUG is a defined variable
18 # check the version of a package
19 # first argument : package name (executable)
20 # second argument : optional path where to look for it instead
21 # third argument : source download url
22 # rest of arguments : major, minor, micro version
23 # all consecutive ones : suggestions for binaries to use
24 # (if not specified in second argument)
33 # for backwards compatibility, we let PKG_PATH=PACKAGE when PKG_PATH null
34 if test -z "$PKG_PATH"; then PKG_PATH=$PACKAGE; fi
35 debug "major $MAJOR minor $MINOR micro $MICRO"
37 if test ! -z "$MINOR"; then VERSION=$VERSION.$MINOR; else MINOR=0; fi
38 if test ! -z "$MICRO"; then VERSION=$VERSION.$MICRO; else MICRO=0; fi
40 debug "major $MAJOR minor $MINOR micro $MICRO"
42 for SUGGESTION in $PKG_PATH; do
45 # don't check if asked not to
46 test -z "$NOCHECK" && {
47 echo -n " checking for $COMMAND >= $VERSION ... "
49 # we set a var with the same name as the package, but stripped of
51 VAR=`echo $PACKAGE | sed 's/-//g'`
57 debug "checking version with $COMMAND"
58 ($COMMAND --version) < /dev/null > /dev/null 2>&1 ||
63 # the following line is carefully crafted sed magic
64 # you don't want to mess with it
65 #pkg_version=`$COMMAND --version|head -n 1|sed 's/^[a-zA-z\.\ ()]*//;s/ .*$//'`
66 pkg_version=`$COMMAND --version|head -n 1|sed 's/^.*) //'|sed 's/ (.*)//'`
67 debug "pkg_version $pkg_version"
68 # remove any non-digit characters from the version numbers to permit numeric
70 pkg_major=`echo $pkg_version | cut -d. -f1 | sed s/[a-zA-Z\-].*//g`
71 pkg_minor=`echo $pkg_version | cut -d. -f2 | sed s/[a-zA-Z\-].*//g`
72 pkg_micro=`echo $pkg_version | cut -d. -f3 | sed s/[a-zA-Z\-].*//g`
73 test -z "$pkg_major" && pkg_major=0
74 test -z "$pkg_minor" && pkg_minor=0
75 test -z "$pkg_micro" && pkg_micro=0
76 debug "found major $pkg_major minor $pkg_minor micro $pkg_micro"
78 #start checking the version
84 if [ ! "$pkg_major" -gt "$MAJOR" ]; then
85 debug "major: $pkg_major <= $MAJOR"
86 if [ "$pkg_major" -lt "$MAJOR" ]; then
87 debug "major: $pkg_major < $MAJOR"
89 elif [ ! "$pkg_minor" -gt "$MINOR" ]; then
90 debug "minor: $pkg_minor <= $MINOR"
91 if [ "$pkg_minor" -lt "$MINOR" ]; then
92 debug "minor: $pkg_minor < $MINOR"
94 elif [ "$pkg_micro" -lt "$MICRO" ]; then
95 debug "micro: $pkg_micro < $MICRO"
101 if test ! -z "$WRONG"; then
102 echo "found $pkg_version, not ok !"
105 echo "found $pkg_version, ok."
106 # we set a var with the same name as the package, but stripped of
108 VAR=`echo $PACKAGE | sed 's/-//g'`
116 echo "You must have $PACKAGE installed to compile $package."
117 echo "Download the appropriate package for your distribution,"
118 echo "or get the source tarball at $URL"
124 # normally aclocal is part of automake
125 # so we expect it to be in the same place as automake
126 # so if a different automake is supplied, we need to adapt as well
127 # so how's about replacing automake with aclocal in the set var,
128 # and saving that in $aclocal ?
129 # note, this will fail if the actual automake isn't called automake*
130 # or if part of the path before it contains it
131 if [ -z "$automake" ]; then
132 echo "Error: no automake variable set !"
135 aclocal=`echo $automake | sed s/automake/aclocal/`
136 debug "aclocal: $aclocal"
137 if [ "$aclocal" != "aclocal" ];
139 CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-aclocal=$aclocal"
141 if [ ! -x `which $aclocal` ]; then
142 echo "Error: cannot execute $aclocal !"
150 # same here - autoheader is part of autoconf
151 # use the same voodoo
152 if [ -z "$autoconf" ]; then
153 echo "Error: no autoconf variable set !"
156 autoheader=`echo $autoconf | sed s/autoconf/autoheader/`
157 debug "autoheader: $autoheader"
158 if [ "$autoheader" != "autoheader" ];
160 CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-autoheader=$autoheader"
162 if [ ! -x `which $autoheader` ]; then
163 echo "Error: cannot execute $autoheader !"
169 autoconf_2.52d_check ()
171 # autoconf 2.52d has a weird issue involving a yes:no error
172 # so don't allow it's use
173 test -z "$NOCHECK" && {
174 ac_version=`$autoconf --version|head -n 1|sed 's/^[a-zA-z\.\ ()]*//;s/ .*$//'`
175 if test "$ac_version" = "2.52d"; then
176 echo "autoconf 2.52d has an issue with our current build."
177 echo "We don't know who's to blame however. So until we do, get a"
178 echo "regular version. RPM's of a working version are on the gstreamer site."
188 # if set to 1, we need to print something helpful then die
190 if test "x$DIE" = "x1";
193 echo "- Please get the right tools before proceeding."
194 echo "- Alternatively, if you're sure we're wrong, run with --nocheck."
201 if test "x$1" == "x"; then
205 while test "x$1" != "x" ; do
206 optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
210 AUTOGEN_EXT_OPT="$AUTOGEN_EXT_OPT --noconfigure"
211 echo "+ configure run disabled"
215 AUTOGEN_EXT_OPT="$AUTOGEN_EXT_OPT --nocheck"
217 echo "+ autotools version check disabled"
222 AUTOGEN_EXT_OPT="$AUTOGEN_EXT_OPT --debug"
223 echo "+ debug output enabled"
227 CONFIGURE_EXT_OPT="$CONFIGURE_EXT_OPT --prefix=$optarg"
228 echo "+ passing --prefix=$optarg to configure"
234 CONFIGURE_EXT_OPT="$CONFIGURE_EXT_OPT --prefix=$1"
235 echo "+ passing --prefix=$1 to configure"
240 echo "autogen.sh (autogen options) -- (configure options)"
241 echo "autogen.sh help options: "
242 echo " --noconfigure don't run the configure script"
243 echo " --nocheck don't do version checks"
244 echo " --debug debug the autogen process"
245 echo " --prefix will be passed on to configure"
247 echo " --with-autoconf PATH use autoconf in PATH"
248 echo " --with-automake PATH use automake in PATH"
250 echo "to pass options to configure, put them as arguments after -- "
255 echo "+ using alternate automake in $optarg"
256 CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-automake=$AUTOMAKE"
261 echo "+ using alternate autoconf in $optarg"
262 CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-autoconf=$AUTOCONF"
266 *) echo "- ignoring unknown autogen.sh argument $1"; shift ;;
270 for arg do CONFIGURE_EXT_OPT="$CONFIGURE_EXT_OPT $arg"; done
271 if test ! -z "$CONFIGURE_EXT_OPT"
273 echo "+ options passed to configure: $CONFIGURE_EXT_OPT"
280 test -f $srcfile || {
281 echo "You must run this script in the top-level $package directory"
291 echo "+ running $tool $options..."