configure (3284B)
1 #!/bin/bash 2 VERSION=0.1 3 PACKAGE=libextractor 4 prefix=/usr/local 5 config=RELEASE 6 configurations=" RELEASE DEBUG" 7 common_packages="" 8 9 10 usage () 11 { 12 echo "Usage : configure [OPTION]... [--config=CONFIG]" 13 echo 14 echo "Options:" 15 echo " --prefix=PREFIX install architecture-independent files in PREFIX" 16 echo " [/usr/local]" 17 echo " --bindir=DIR user executables [PREFIX/bin]" 18 echo " --datadir=DIR read-only architecture-independent data [PREFIX/share]" 19 echo " --libdir=DIR object code libraries [PREFIX/lib]" 20 echo 21 echo "Configurations available :" 22 for c in $configurations; do 23 if [ "$c" = "$config" ]; then 24 echo " $c (Default)" 25 else 26 echo " $c" 27 fi 28 done 29 } 30 31 validate_config () 32 { 33 test -z "$1" && return 0 34 for c in $configurations; do 35 if [ "$c" = "$1" ]; then 36 return 1 37 fi 38 done 39 return 0 40 } 41 42 check_package () 43 { 44 name=`echo $1 | cut -d\; -f1` 45 version=`echo $1 | cut -d\; -f2` 46 47 echo -n "Checking for package '$name'.." | tee -a config.log 48 pkg-config --atleast-version=$version $name 49 if [ $? -ne 0 ]; then 50 echo " ERROR: Package named '$name' >= $version not found." | tee -a config.log 51 echo "Try adjusting your PKG_CONFIG_PATH environment variable." | tee -a config.log 52 return 1 53 fi 54 echo " found." | tee -a config.log 55 } 56 57 check_required_packages () 58 { 59 echo "Looking for required packages" | tee config.log 60 var=required_packages_$config 61 for pkg in $common_packages ${!var}; do 62 check_package $pkg 63 retval=$? 64 [ $retval -ne 0 ] && return $retval 65 done 66 return 0 67 } 68 69 while test x$1 != x; do 70 case $1 in 71 --prefix=*) 72 prefix=`echo $1 | sed 's/--prefix=//'` 73 ;; 74 --prefix) 75 shift 76 prefix=$1 77 ;; 78 --libdir=*) 79 libdir=`echo $1 | sed 's/--libdir=//'` 80 ;; 81 --libdir) 82 shift 83 libdir=$1 84 ;; 85 --bindir=*) 86 bindir=`echo $1 | sed 's/--bindir=//'` 87 ;; 88 --bindir) 89 shift 90 bindir=$1 91 ;; 92 --datadir=*) 93 datadir=`echo $1 | sed 's/--datadir=//'` 94 ;; 95 --datadir) 96 shift 97 datadir=$1 98 ;; 99 --config=*) 100 conf=`echo $1 | sed 's/--config=//'` 101 validate_config "$conf" 102 if [ $? -eq 1 ]; then 103 config=$conf 104 else 105 echo "Invalid config name - $conf" 106 usage 107 exit 1 108 fi 109 ;; 110 --help) 111 usage 112 exit 113 ;; 114 *) 115 echo Unknown argument $1 >&2 116 usage 117 exit 1 118 ;; 119 esac 120 shift 121 done 122 123 check_required_packages 124 [ $? -eq 1 ] && exit 1 125 126 if [ -z "$libdir" ]; then 127 libdir=$prefix/lib 128 fi 129 if [ -z "$bindir" ]; then 130 bindir=$prefix/bin 131 fi 132 if [ -z "$datadir" ]; then 133 datadir=$prefix/share 134 fi 135 136 echo "prefix=$prefix" > config.make 137 echo "libdir=$libdir" >> config.make 138 echo "bindir=$bindir" >> config.make 139 echo "datadir=$datadir" >> config.make 140 echo "RUNTIME=mono" >> config.make 141 echo "ASSEMBLY_VERSION=$VERSION.0.0" >> config.make 142 echo "VERSION=$VERSION" >> config.make 143 echo "PACKAGE=$PACKAGE" >> config.make 144 echo "CONFIG=$config" >> config.make 145 146 echo 147 echo "$PACKAGE has been configured with " 148 echo " prefix = $prefix" 149 if [ "$libdir" != "$prefix/lib" ]; then 150 echo " libdir = $libdir" 151 fi 152 if [ "$bindir" != "$prefix/bin" ]; then 153 echo " bindir = $bindir" 154 fi 155 if [ "$datadir" != "$prefix/share" ]; then 156 echo " datadir = $datadir" 157 fi 158 echo " config = $config" 159 echo