1 #!/bin/sh
2 # Run this to generate all the initial makefiles, etc.
4 DIE=0
5 package=GStreamer
6 srcfile=gst/gstobject.h
7 #DEBUG=defined
8 if test "x$1" = "x-d"; then echo "DEBUG output wanted."; DEBUG=defined; fi
10 debug ()
11 # print out a debug message if DEBUG is a defined variable
12 {
13 if test ! -z $DEBUG
14 then
15 echo "DEBUG: $1"
16 fi
17 }
19 version_check ()
20 # check the version of a package
21 # first argument : package name (executable)
22 # second argument : source download url
23 # rest of arguments : major, minor, micro version
24 {
25 PACKAGE=$1
26 URL=$2
27 MAJOR=$3
28 MINOR=$4
29 MICRO=$5
32 debug "major $MAJOR minor $MINOR micro $MICRO"
33 VERSION=$MAJOR
34 if test ! -z "$MINOR"; then VERSION=$VERSION.$MINOR; else MINOR=0; fi
35 if test ! -z "$MICRO"; then VERSION=$VERSION.$MICRO; else MICRO=0; fi
37 debug "major $MAJOR minor $MINOR micro $MICRO"
38 echo "Checking for $1 > $VERSION ..."
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
56 debug "found major $pkg_major minor $pkg_minor micro $pkg_micro"
58 #start checking the version
59 debug "version check"
61 if [ "$pkg_major" \< "$MAJOR -o "$pkg_major" = $MAJOR" ]; then
62 debug "$pkg_major <= $MAJOR"
63 if [ "$pkg_major" \< "$MAJOR" ]; then
64 WRONG=1
65 elif [ "$pkg_minor" \< "$MINOR -o $pkg_minor = $MINOR" ]; then
66 if [ "$pkg_minor" \< "$MINOR" ]; then
67 WRONG=1
68 elif [ "$pkg_micro" \< "$MICRO" ]; then
69 WRONG=1
70 fi
71 fi
72 fi
74 if test ! -z $WRONG; then
75 echo
76 echo "You must have $PACKAGE $VERSION or greater to compile $package."
77 echo "Get the latest version from $URL"
78 return 1
79 fi
80 }
82 version_check "autoconf" "ftp://ftp.gnu.org/pub/gnu/autoconf/" 2 52 || DIE=1
83 version_check "automake" "ftp://ftp.gnu.org/pub/gnu/automake/" 1 5 || DIE=1
84 version_check "libtool" "ftp://ftp.gnu.org/pub/gnu/libtool/" 1 4 0 || DIE=1
85 version_check "pkg-config" "http://www.freedesktop.org/software/pkgconfig" 0 7 0 || DIE=1
87 if test "$DIE" -eq 1; then
88 exit 1
89 fi
91 test -f $srcfile || {
92 echo "You must run this script in the top-level $package directory"
93 exit 1
94 }
96 if test -z "$*"; then
97 echo "I am going to run ./configure with no arguments - if you wish "
98 echo "to pass any to it, please specify them on the $0 command line."
99 fi
102 libtoolize --copy --force
103 aclocal $ACLOCAL_FLAGS || {
104 echo
105 echo "aclocal failed - check that all needed development files are present on system"
106 exit 1
107 }
108 autoheader || {
109 echo
110 echo "autoheader failed"
111 exit 1
112 }
113 autoconf || {
114 echo
115 echo "autoconf failed"
116 #exit 1
117 }
118 automake --add-missing || {
119 echo
120 echo "automake failed"
121 #exit 1
122 }
124 # now remove the cache, because it can be considered dangerous in this case
125 rm -f config.cache
127 CONFIGURE_OPT='--enable-maintainer-mode --enable-plugin-builddir --enable-debug --enable-DEBUG'
129 echo
130 echo "./configure default flags: $CONFIGURE_OPT"
131 echo "using: $CONFIGURE_OPT $@"
132 echo
134 ./configure $CONFIGURE_OPT "$@" || {
135 echo
136 echo "configure failed"
137 exit 1
138 }
140 echo
141 echo "Now type 'make' to compile $package."