1.1 --- a/gst-plugins-mythtv/common/autogen-helper.sh Tue May 01 17:22:20 2007 +0100
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,302 +0,0 @@
1.4 -# a silly hack that generates autoregen.sh but it's handy
1.5 -echo "#!/bin/sh" > autoregen.sh
1.6 -echo "./autogen.sh $@ \$@" >> autoregen.sh
1.7 -chmod +x autoregen.sh
1.8 -
1.9 -# helper functions for autogen.sh
1.10 -
1.11 -debug ()
1.12 -# print out a debug message if DEBUG is a defined variable
1.13 -{
1.14 - if test ! -z "$DEBUG"
1.15 - then
1.16 - echo "DEBUG: $1"
1.17 - fi
1.18 -}
1.19 -
1.20 -version_check ()
1.21 -# check the version of a package
1.22 -# first argument : package name (executable)
1.23 -# second argument : optional path where to look for it instead
1.24 -# third argument : source download url
1.25 -# rest of arguments : major, minor, micro version
1.26 -# all consecutive ones : suggestions for binaries to use
1.27 -# (if not specified in second argument)
1.28 -{
1.29 - PACKAGE=$1
1.30 - PKG_PATH=$2
1.31 - URL=$3
1.32 - MAJOR=$4
1.33 - MINOR=$5
1.34 - MICRO=$6
1.35 -
1.36 - # for backwards compatibility, we let PKG_PATH=PACKAGE when PKG_PATH null
1.37 - if test -z "$PKG_PATH"; then PKG_PATH=$PACKAGE; fi
1.38 - debug "major $MAJOR minor $MINOR micro $MICRO"
1.39 - VERSION=$MAJOR
1.40 - if test ! -z "$MINOR"; then VERSION=$VERSION.$MINOR; else MINOR=0; fi
1.41 - if test ! -z "$MICRO"; then VERSION=$VERSION.$MICRO; else MICRO=0; fi
1.42 -
1.43 - debug "major $MAJOR minor $MINOR micro $MICRO"
1.44 -
1.45 - for SUGGESTION in $PKG_PATH; do
1.46 - COMMAND="$SUGGESTION"
1.47 -
1.48 - # don't check if asked not to
1.49 - test -z "$NOCHECK" && {
1.50 - echo -n " checking for $COMMAND >= $VERSION ... "
1.51 - } || {
1.52 - # we set a var with the same name as the package, but stripped of
1.53 - # unwanted chars
1.54 - VAR=`echo $PACKAGE | sed 's/-//g'`
1.55 - debug "setting $VAR"
1.56 - eval $VAR="$COMMAND"
1.57 - return 0
1.58 - }
1.59 -
1.60 - debug "checking version with $COMMAND"
1.61 - ($COMMAND --version) < /dev/null > /dev/null 2>&1 ||
1.62 - {
1.63 - echo "not found."
1.64 - continue
1.65 - }
1.66 - # strip everything that's not a digit, then use cut to get the first field
1.67 - pkg_version=`$COMMAND --version|head -n 1|sed 's/^[^0-9]*//'|cut -d' ' -f1`
1.68 - debug "pkg_version $pkg_version"
1.69 - # remove any non-digit characters from the version numbers to permit numeric
1.70 - # comparison
1.71 - pkg_major=`echo $pkg_version | cut -d. -f1 | sed s/[a-zA-Z\-].*//g`
1.72 - pkg_minor=`echo $pkg_version | cut -d. -f2 | sed s/[a-zA-Z\-].*//g`
1.73 - pkg_micro=`echo $pkg_version | cut -d. -f3 | sed s/[a-zA-Z\-].*//g`
1.74 - test -z "$pkg_major" && pkg_major=0
1.75 - test -z "$pkg_minor" && pkg_minor=0
1.76 - test -z "$pkg_micro" && pkg_micro=0
1.77 - debug "found major $pkg_major minor $pkg_minor micro $pkg_micro"
1.78 -
1.79 - #start checking the version
1.80 - debug "version check"
1.81 -
1.82 - # reset check
1.83 - WRONG=
1.84 -
1.85 - if [ ! "$pkg_major" -gt "$MAJOR" ]; then
1.86 - debug "major: $pkg_major <= $MAJOR"
1.87 - if [ "$pkg_major" -lt "$MAJOR" ]; then
1.88 - debug "major: $pkg_major < $MAJOR"
1.89 - WRONG=1
1.90 - elif [ ! "$pkg_minor" -gt "$MINOR" ]; then
1.91 - debug "minor: $pkg_minor <= $MINOR"
1.92 - if [ "$pkg_minor" -lt "$MINOR" ]; then
1.93 - debug "minor: $pkg_minor < $MINOR"
1.94 - WRONG=1
1.95 - elif [ "$pkg_micro" -lt "$MICRO" ]; then
1.96 - debug "micro: $pkg_micro < $MICRO"
1.97 - WRONG=1
1.98 - fi
1.99 - fi
1.100 - fi
1.101 -
1.102 - if test ! -z "$WRONG"; then
1.103 - echo "found $pkg_version, not ok !"
1.104 - continue
1.105 - else
1.106 - echo "found $pkg_version, ok."
1.107 - # we set a var with the same name as the package, but stripped of
1.108 - # unwanted chars
1.109 - VAR=`echo $PACKAGE | sed 's/-//g'`
1.110 - debug "setting $VAR"
1.111 - eval $VAR="$COMMAND"
1.112 - return 0
1.113 - fi
1.114 - done
1.115 -
1.116 - echo "not found !"
1.117 - echo "You must have $PACKAGE installed to compile $package."
1.118 - echo "Download the appropriate package for your distribution,"
1.119 - echo "or get the source tarball at $URL"
1.120 - return 1;
1.121 -}
1.122 -
1.123 -aclocal_check ()
1.124 -{
1.125 - # normally aclocal is part of automake
1.126 - # so we expect it to be in the same place as automake
1.127 - # so if a different automake is supplied, we need to adapt as well
1.128 - # so how's about replacing automake with aclocal in the set var,
1.129 - # and saving that in $aclocal ?
1.130 - # note, this will fail if the actual automake isn't called automake*
1.131 - # or if part of the path before it contains it
1.132 - if [ -z "$automake" ]; then
1.133 - echo "Error: no automake variable set !"
1.134 - return 1
1.135 - else
1.136 - aclocal=`echo $automake | sed s/automake/aclocal/`
1.137 - debug "aclocal: $aclocal"
1.138 - if [ "$aclocal" != "aclocal" ];
1.139 - then
1.140 - CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-aclocal=$aclocal"
1.141 - fi
1.142 - if [ ! -x `which $aclocal` ]; then
1.143 - echo "Error: cannot execute $aclocal !"
1.144 - return 1
1.145 - fi
1.146 - fi
1.147 -}
1.148 -
1.149 -autoheader_check ()
1.150 -{
1.151 - # same here - autoheader is part of autoconf
1.152 - # use the same voodoo
1.153 - if [ -z "$autoconf" ]; then
1.154 - echo "Error: no autoconf variable set !"
1.155 - return 1
1.156 - else
1.157 - autoheader=`echo $autoconf | sed s/autoconf/autoheader/`
1.158 - debug "autoheader: $autoheader"
1.159 - if [ "$autoheader" != "autoheader" ];
1.160 - then
1.161 - CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-autoheader=$autoheader"
1.162 - fi
1.163 - if [ ! -x `which $autoheader` ]; then
1.164 - echo "Error: cannot execute $autoheader !"
1.165 - return 1
1.166 - fi
1.167 - fi
1.168 -
1.169 -}
1.170 -
1.171 -autoconf_2_52d_check ()
1.172 -{
1.173 - # autoconf 2.52d has a weird issue involving a yes:no error
1.174 - # so don't allow it's use
1.175 - test -z "$NOCHECK" && {
1.176 - ac_version=`$autoconf --version|head -n 1|sed 's/^[a-zA-Z\.\ ()]*//;s/ .*$//'`
1.177 - if test "$ac_version" = "2.52d"; then
1.178 - echo "autoconf 2.52d has an issue with our current build."
1.179 - echo "We don't know who's to blame however. So until we do, get a"
1.180 - echo "regular version. RPM's of a working version are on the gstreamer site."
1.181 - exit 1
1.182 - fi
1.183 - }
1.184 - return 0
1.185 -}
1.186 -
1.187 -die_check ()
1.188 -{
1.189 - # call with $DIE
1.190 - # if set to 1, we need to print something helpful then die
1.191 - DIE=$1
1.192 - if test "x$DIE" = "x1";
1.193 - then
1.194 - echo
1.195 - echo "- Please get the right tools before proceeding."
1.196 - echo "- Alternatively, if you're sure we're wrong, run with --nocheck."
1.197 - exit 1
1.198 - fi
1.199 -}
1.200 -
1.201 -autogen_options ()
1.202 -{
1.203 - if test "x$1" = "x"; then
1.204 - return 0
1.205 - fi
1.206 -
1.207 - while test "x$1" != "x" ; do
1.208 - optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
1.209 - case "$1" in
1.210 - --noconfigure)
1.211 - NOCONFIGURE=defined
1.212 - AUTOGEN_EXT_OPT="$AUTOGEN_EXT_OPT --noconfigure"
1.213 - echo "+ configure run disabled"
1.214 - shift
1.215 - ;;
1.216 - --nocheck)
1.217 - AUTOGEN_EXT_OPT="$AUTOGEN_EXT_OPT --nocheck"
1.218 - NOCHECK=defined
1.219 - echo "+ autotools version check disabled"
1.220 - shift
1.221 - ;;
1.222 - --debug)
1.223 - DEBUG=defined
1.224 - AUTOGEN_EXT_OPT="$AUTOGEN_EXT_OPT --debug"
1.225 - echo "+ debug output enabled"
1.226 - shift
1.227 - ;;
1.228 - --prefix=*)
1.229 - CONFIGURE_EXT_OPT="$CONFIGURE_EXT_OPT --prefix=$optarg"
1.230 - echo "+ passing --prefix=$optarg to configure"
1.231 - shift
1.232 - ;;
1.233 - --prefix)
1.234 - shift
1.235 - echo "DEBUG: $1"
1.236 - CONFIGURE_EXT_OPT="$CONFIGURE_EXT_OPT --prefix=$1"
1.237 - echo "+ passing --prefix=$1 to configure"
1.238 - shift
1.239 - ;;
1.240 - -h|--help)
1.241 - echo "autogen.sh (autogen options) -- (configure options)"
1.242 - echo "autogen.sh help options: "
1.243 - echo " --noconfigure don't run the configure script"
1.244 - echo " --nocheck don't do version checks"
1.245 - echo " --debug debug the autogen process"
1.246 - echo " --prefix will be passed on to configure"
1.247 - echo
1.248 - echo " --with-autoconf PATH use autoconf in PATH"
1.249 - echo " --with-automake PATH use automake in PATH"
1.250 - echo
1.251 - echo "to pass options to configure, put them as arguments after -- "
1.252 - exit 1
1.253 - ;;
1.254 - --with-automake=*)
1.255 - AUTOMAKE=$optarg
1.256 - echo "+ using alternate automake in $optarg"
1.257 - CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-automake=$AUTOMAKE"
1.258 - shift
1.259 - ;;
1.260 - --with-autoconf=*)
1.261 - AUTOCONF=$optarg
1.262 - echo "+ using alternate autoconf in $optarg"
1.263 - CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-autoconf=$AUTOCONF"
1.264 - shift
1.265 - ;;
1.266 - --disable*|--enable*|--with*)
1.267 - echo "+ passing option $1 to configure"
1.268 - CONFIGURE_EXT_OPT="$CONFIGURE_EXT_OPT $1"
1.269 - shift
1.270 - ;;
1.271 - --) shift ; break ;;
1.272 - *) echo "- ignoring unknown autogen.sh argument $1"; shift ;;
1.273 - esac
1.274 - done
1.275 -
1.276 - for arg do CONFIGURE_EXT_OPT="$CONFIGURE_EXT_OPT $arg"; done
1.277 - if test ! -z "$CONFIGURE_EXT_OPT"
1.278 - then
1.279 - echo "+ options passed to configure: $CONFIGURE_EXT_OPT"
1.280 - fi
1.281 -}
1.282 -
1.283 -toplevel_check ()
1.284 -{
1.285 - srcfile=$1
1.286 - test -f $srcfile || {
1.287 - echo "You must run this script in the top-level $package directory"
1.288 - exit 1
1.289 - }
1.290 -}
1.291 -
1.292 -
1.293 -tool_run ()
1.294 -{
1.295 - tool=$1
1.296 - options=$2
1.297 - run_if_fail=$3
1.298 - echo "+ running $tool $options..."
1.299 - $tool $options || {
1.300 - echo
1.301 - echo $tool failed
1.302 - eval $run_if_fail
1.303 - exit 1
1.304 - }
1.305 -}