applied steveb's numeric comparison patch made autogen swallow arguments meant for...
[platform/upstream/gst-common.git] / gst-autogen.sh
1 # helper functions for autogen.sh
2
3 debug ()
4 # print out a debug message if DEBUG is a defined variable
5 {
6   if test ! -z "$DEBUG"
7   then
8     echo "DEBUG: $1"
9   fi
10 }
11
12 version_check ()
13 # check the version of a package
14 # first argument : package name (executable)
15 # second argument : source download url
16 # rest of arguments : major, minor, micro version
17 {
18   PACKAGE=$1
19   URL=$2
20   MAJOR=$3
21   MINOR=$4
22   MICRO=$5
23
24   WRONG=
25
26   debug "major $MAJOR minor $MINOR micro $MICRO"
27   VERSION=$MAJOR
28   if test ! -z "$MINOR"; then VERSION=$VERSION.$MINOR; else MINOR=0; fi
29   if test ! -z "$MICRO"; then VERSION=$VERSION.$MICRO; else MICRO=0; fi
30
31   debug "major $MAJOR minor $MINOR micro $MICRO"
32   
33   test -z "$NOCHECK" && {
34       echo -n "  checking for $1 >= $VERSION ... "
35   } || {
36       return 0
37   }
38   
39   ($PACKAGE --version) < /dev/null > /dev/null 2>&1 || 
40   {
41         echo
42         echo "You must have $PACKAGE installed to compile $package."
43         echo "Download the appropriate package for your distribution,"
44         echo "or get the source tarball at $URL"
45         return 1
46   }
47   # the following line is carefully crafted sed magic
48   pkg_version=`$PACKAGE --version|head -n 1|sed 's/^[a-zA-z\.\ ()]*//;s/ .*$//'`
49   debug "pkg_version $pkg_version"
50   pkg_major=`echo $pkg_version | cut -d. -f1`
51   pkg_minor=`echo $pkg_version | cut -d. -f2`
52   pkg_micro=`echo $pkg_version | cut -d. -f3`
53   test -z "$pkg_minor" && pkg_minor=0
54   test -z "$pkg_micro" && pkg_micro=0
55
56   debug "found major $pkg_major minor $pkg_minor micro $pkg_micro"
57
58   #start checking the version
59   debug "version check"
60
61   if [ ! "$pkg_major" -gt "$MAJOR" ]; then
62     debug "$pkg_major <= $MAJOR"
63     if [ "$pkg_major" -lt "$MAJOR" ]; then
64       WRONG=1
65     elif [ ! "$pkg_minor" -gt "$MINOR" ]; then
66       if [ "$pkg_minor" -lt "$MINOR" ]; then
67         WRONG=1
68       elif [ "$pkg_micro" -lt "$MICRO" ]; then
69         WRONG=1
70       fi
71     fi
72   fi
73
74   if test ! -z "$WRONG"; then
75     echo "found $pkg_version, not ok !"
76     echo
77     echo "You must have $PACKAGE $VERSION or greater to compile $package."
78     echo "Get the latest version from $URL"
79     return 1
80   else
81     echo "found $pkg_version, ok."
82   fi
83 }
84
85 autoconf_2.52d_check ()
86 {
87   # autoconf 2.52d has a weird issue involving a yes:no error
88   # so don't allow it's use
89   ac_version=`autoconf --version|head -n 1|sed 's/^[a-zA-z\.\ ()]*//;s/ .*$//'`
90   if test "$ac_version" = "2.52d"; then
91     echo "autoconf 2.52d has an issue with our current build."
92     echo "We don't know who's to blame however.  So until we do, get a"
93     echo "regular version.  RPM's of a working version are on the gstreamer site."
94     exit 1
95   fi
96 }
97
98 autogen_options ()
99 {
100   for i in $@; do
101       if test "$i" = "--autogen-noconfigure"; then
102           NOCONFIGURE=defined
103           echo "+ configure run disabled"
104       elif test "$i" = "--autogen-nocheck"; then
105           NOCHECK=defined
106           echo "+ autotools version check disabled"
107       elif test "$i" = "--autogen-debug"; then
108           DEBUG=defined
109           echo "+ debug output enabled"
110       elif test "$i" = "--help"; then
111           echo "autogen.sh help options: "
112           echo " --autogen-noconfigure    don't run the configure script"
113           echo " --autogen-nocheck        don't do version checks"
114           echo " --autogen-debug          debug the autogen process"
115           exit 1
116       else
117           CONFIGURE_EXT_OPT="$CONFIGURE_EXT_OPT $i"
118       fi
119   done
120 }
121
122 toplevel_check ()
123 {
124   srcfile=$1
125   test -f $srcfile || {
126         echo "You must run this script in the top-level $package directory"
127         exit 1
128   }
129 }
130
131
132 tool_run ()
133 {
134   tool=$1
135   options=$2
136   echo "+ running $tool $options..."
137   $tool $options || {
138     echo
139     echo $tool failed
140     exit 1
141   }
142 }