123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- #!/bin/sh
- # Run this to generate all the initial makefiles, etc.
- DIE=0
- SRCDIR=`dirname $0`
- BUILDDIR=`pwd`
- srcfile=src/mssh.c
- debug ()
- # print out a debug message if DEBUG is a defined variable
- {
- if [ ! -z "$DEBUG" ]; then
- echo "DEBUG: $1"
- fi
- }
- version_check ()
- # check the version of a package
- # first argument : complain ('1') or not ('0')
- # second argument : package name (executable)
- # third argument : source download url
- # rest of arguments : major, minor, micro version
- {
- COMPLAIN=$1
- PACKAGE=$2
- URL=$3
- MAJOR=$4
- MINOR=$5
- MICRO=$6
- WRONG=
- debug "major $MAJOR minor $MINOR micro $MICRO"
- VERSION=$MAJOR
- if [ ! -z "$MINOR" ]; then VERSION=$VERSION.$MINOR; else MINOR=0; fi
- if [ ! -z "$MICRO" ]; then VERSION=$VERSION.$MICRO; else MICRO=0; fi
- debug "version $VERSION"
- echo "+ checking for $PACKAGE >= $VERSION ... " | tr -d '\n'
- ($PACKAGE --version) < /dev/null > /dev/null 2>&1 ||
- {
- echo
- echo "You must have $PACKAGE installed to compile $package."
- echo "Download the appropriate package for your distribution,"
- echo "or get the source tarball at $URL"
- return 1
- }
- # the following line is carefully crafted sed magic
- pkg_version=`$PACKAGE --version|head -n 1|sed 's/([^)]*)//g;s/^[a-zA-Z\.\ \-\/]*//;s/ .*$//'`
- debug "pkg_version $pkg_version"
- pkg_major=`echo $pkg_version | cut -d. -f1`
- pkg_minor=`echo $pkg_version | sed s/[-,a-z,A-Z].*// | cut -d. -f2`
- pkg_micro=`echo $pkg_version | sed s/[-,a-z,A-Z].*// | cut -d. -f3`
- [ -z "$pkg_minor" ] && pkg_minor=0
- [ -z "$pkg_micro" ] && pkg_micro=0
- debug "found major $pkg_major minor $pkg_minor micro $pkg_micro"
- #start checking the version
- if [ "$pkg_major" -lt "$MAJOR" ]; then
- WRONG=1
- elif [ "$pkg_major" -eq "$MAJOR" ]; then
- if [ "$pkg_minor" -lt "$MINOR" ]; then
- WRONG=1
- elif [ "$pkg_minor" -eq "$MINOR" -a "$pkg_micro" -lt "$MICRO" ]; then
- WRONG=1
- fi
- fi
- if [ ! -z "$WRONG" ]; then
- echo "found $pkg_version, not ok !"
- if [ "$COMPLAIN" -eq "1" ]; then
- echo
- echo "You must have $PACKAGE $VERSION or greater to compile $package."
- echo "Get the latest version from <$URL>."
- echo
- fi
- return 1
- else
- echo "found $pkg_version, ok."
- fi
- }
- version_check 1 "pkg-config" "http://pkgconfig.freedesktop.org/" 0 9 || DIE=1
- version_check 1 "autoconf" "ftp://ftp.gnu.org/pub/gnu/autoconf/" 2 56 || DIE=1
- version_check 1 "automake" "ftp://ftp.gnu.org/pub/gnu/automake/" 1 9 || DIE=1
- if [ "$DIE" -eq 1 ]; then
- exit 1
- fi
- # Chdir to the srcdir, then run auto* tools.
- cd $SRCDIR
- [ -f $srcfile ] || {
- echo "Are you sure $SRCDIR is a valid source directory?"
- exit 1
- }
- echo "+ running aclocal ..."
- aclocal || {
- echo
- echo "aclocal failed - check that all needed development files are present on system"
- exit 1
- }
- echo "+ running autoconf ... "
- autoconf || {
- echo
- echo "autoconf failed"
- exit 1
- }
- echo "+ running autoheader ... "
- autoheader || {
- echo
- echo "autoheader failed"
- exit 1
- }
- echo "+ running automake ... "
- automake -a -c || {
- echo
- echo "automake failed"
- exit 1
- }
- # Chdir back to the builddir before the configure step.
- cd $BUILDDIR
- # now remove the cache, because it can be considered dangerous in this case
- echo "+ Tidying up ... "
- rm -fr autom4te.cache config.h.in\~
- echo
- echo "Done."
- exit 0
|