autogen.sh (4119B)
1 #!/bin/sh 2 # Run this to generate all the initial makefiles, etc. 3 4 DIE=0 5 package=dopewars 6 srcfile=src/dopewars.c 7 8 # Uncomment the line below to debug this file 9 #DEBUG=defined 10 11 debug () 12 # print out a debug message if DEBUG is a defined variable 13 { 14 if test ! -z "$DEBUG" 15 then 16 echo "DEBUG: $1" 17 fi 18 } 19 20 version_check () 21 # check the version of a package 22 # first argument : package name (executable) 23 # second argument : source download url 24 # rest of arguments : major, minor, micro version 25 { 26 EXACT_VERSION=$1 27 PACKAGE=$2 28 URL=$3 29 MAJOR=$4 30 MINOR=$5 31 MICRO=$6 32 33 WRONG= 34 35 debug "major $MAJOR minor $MINOR micro $MICRO" 36 VERSION=$MAJOR 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 39 40 debug "version $VERSION" 41 if [ "$EXACT_VERSION" -eq 0 ]; then 42 echo -n "+ checking for $PACKAGE >= $VERSION ... " 43 else 44 echo -n "+ checking for $PACKAGE == $VERSION ... " 45 fi 46 47 ($PACKAGE --version) < /dev/null > /dev/null 2>&1 || 48 { 49 echo 50 echo "You must have $PACKAGE installed to compile $package." 51 echo "Download the appropriate package for your distribution," 52 echo "or get the source tarball at $URL" 53 return 1 54 } 55 # the following line is carefully crafted sed magic 56 pkg_version=`$PACKAGE --version|head -n 1|sed 's/^[a-zA-Z\.\ ()]*//;s/^.* //'` 57 debug "pkg_version $pkg_version" 58 pkg_major=`echo $pkg_version | cut -d. -f1` 59 pkg_minor=`echo $pkg_version | sed s/[-,a-z,A-Z].*// | cut -d. -f2` 60 pkg_micro=`echo $pkg_version | sed s/[-,a-z,A-Z].*// | cut -d. -f3` 61 test -z "$pkg_minor" && pkg_minor=0 62 test -z "$pkg_micro" && pkg_micro=0 63 64 debug "found major $pkg_major minor $pkg_minor micro $pkg_micro" 65 66 #start checking the version 67 if [ "$EXACT_VERSION" -eq 0 ]; then 68 debug "version check >=" 69 if [ "$pkg_major" -lt "$MAJOR" ]; then 70 WRONG=1 71 elif [ "$pkg_major" -eq "$MAJOR" ]; then 72 if [ "$pkg_minor" -lt "$MINOR" ]; then 73 WRONG=1 74 elif [ "$pkg_minor" -eq "$MINOR" -a "$pkg_minor" -lt "$MINOR" ]; then 75 WRONG=1 76 fi 77 fi 78 else 79 debug "version check ==" 80 if [ "$MAJOR" -ne "$pkg_major" -o \ 81 "$MINOR" -ne "$pkg_minor" -o \ 82 "$MICRO" -ne "$pkg_micro" ]; then 83 WRONG=1 84 fi 85 fi 86 87 if test ! -z "$WRONG"; then 88 echo "found $pkg_version, not ok !" 89 echo 90 if [ "$EXACT_VERSION" -eq 0 ]; then 91 echo "You must have $PACKAGE $VERSION or greater to compile $package." 92 echo "Get the latest version from <$URL>." 93 else 94 echo "You must have exactly $PACKAGE $VERSION to compile $package." 95 echo "Get this version from <$URL>." 96 fi 97 return 1 98 else 99 echo "found $pkg_version, ok." 100 fi 101 } 102 103 version_check 0 "autoconf" "ftp://ftp.gnu.org/pub/gnu/autoconf/" 2 13 || DIE=1 104 version_check 0 "automake" "ftp://ftp.gnu.org/pub/gnu/automake/" 1 4 || DIE=1 105 #version_check 0 "xgettext" "ftp://ftp.gnu.org/pub/gnu/gettext/" 0 10 38 || DIE=1 106 #version_check 0 "msgfmt" "ftp://ftp.gnu.org/pub/gnu/gettext/" 0 10 38 || DIE=1 107 108 if test "$DIE" -eq 1; then 109 exit 1 110 fi 111 112 test -f $srcfile || { 113 echo "You must run this script in the top-level $package directory" 114 exit 1 115 } 116 117 if test -z "$*"; then 118 echo "I am going to run ./configure with no arguments - if you wish " 119 echo "to pass any to it, please specify them on the $0 command line." 120 fi 121 122 echo "+ running aclocal ..." 123 aclocal -I m4 $ACLOCAL_FLAGS || { 124 echo 125 echo "aclocal failed - check that all needed development files are present on system" 126 exit 1 127 } 128 129 echo "+ running autoheader ... " 130 autoheader || { 131 echo 132 echo "autoheader failed" 133 exit 1 134 } 135 echo "+ running autoconf ... " 136 autoconf || { 137 echo 138 echo "autoconf failed" 139 exit 1 140 } 141 echo "+ running automake ... " 142 automake -a -c || { 143 echo 144 echo "automake failed" 145 exit 1 146 } 147 148 # now remove the cache, because it can be considered dangerous in this case 149 echo "+ removing config.cache ... " 150 rm -f config.cache 151 152 echo "+ running configure ... " 153 if test -n "$*"; then 154 echo "using: $@" 155 fi 156 echo 157 158 ./configure "$@" || { 159 echo 160 echo "configure failed" 161 exit 1 162 } 163 164 echo 165 echo "Now type 'make' to compile $package."