1#!/bin/sh 2 3echo "" 4 5# defaults 6DEBUG=no 7with_libdb=test 8with_mysql=test 9 10# parse options 11# --with/--without parsing copied from autoconf's output 12while [ $# -gt 0 ]; do 13 case $1 in 14 --with-*) 15 ac_option=$1 16 ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` 17 ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` 18 # Reject names that are not valid shell variable names. 19 expr "x$ac_package" : ".*[^A-Za-z0-9_-]" >/dev/null && 20 { echo "error: invalid package name: $ac_package"; exit 1; } 21 ac_package=`echo $ac_package | sed 's/-/_/g'` 22 case $ac_option in 23 *=*) 24 ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` 25 ;; 26 *) 27 ac_optarg=yes 28 ;; 29 esac 30 eval "with_$ac_package='$ac_optarg'" 31 ;; 32 --without-*) 33 ac_option=$1 34 ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` 35 ac_package=`expr "x$ac_option" : 'x-*without-\([^=]*\)'` 36 # Reject names that are not valid shell variable names. 37 expr "x$ac_package" : ".*[^A-Za-z0-9_-]" >/dev/null && 38 { echo "error: invalid package name: $ac_package"; exit 1; } 39 ac_package=`echo $ac_package | sed 's/-/_/g'` 40 eval "with_$ac_package=no" 41 ;; 42 --debug=yes|--debug|-d) 43 echo "Debug mode enabled." 44 with_debug=yes 45 ;; 46 --debug=no) 47 echo "Debug mode disabled." 48 with_debug=no 49 ;; 50 --help|-help|-h) 51 echo "usage: $0 [ options ]" 52 echo "available options:" 53 echo " --debug=yes (or -d) Enable debugging support." 54 echo " --debug=no Disable debugging support." 55 echo " --with-package Enable support for package in default location." 56 echo " --with-package=path Enable support for package installed in path." 57 echo " --without-package Disable support for package." 58 echo " --help (or -h) Show this message." 59 echo "" 60 echo "relevant packages:" 61 echo " libdb = BerkeleyDB" 62 echo " mysql = MySQL database" 63 exit 1 64 ;; 65 *) 66 echo "Unknown option '$1', try -h for help" 67 exit 1 68 ;; 69 esac 70 shift 71done 72 73echo "Examining system setup..." 74 75# Some known configs: 76# 77# uname -s uname -r uname -m uname -p 78# ======== =========== ======== ======== 79# SunOS 5.6 sun4u sparc 80# Linux 2.2.17 i686 unknown 81# FreeBSD 4.1-RELEASE i386 i386 82 83UNAME_S=`uname -s` 84UNAME_R=`uname -r` 85 86case "$UNAME_S" in 87 Linux) 88 if [ "$with_debug" = "yes" ]; then 89 CCDBG="-g" 90 LDDBG="-g" 91 else 92 CCDBG="-DNDEBUG" 93 LDDBG="" 94 fi 95 CC=gcc 96 CFLAGS="$CCDBG -D_UNIX -D_LINUX -Wall" 97 CXX=g++ 98 CXXFLAGS=${CFLAGS} 99 AR=ar 100 ARFLAGS="-rc" 101 LD=gcc 102 LDFLAGS="$LDDBG" 103 SYSLIBS="" 104 LIBDB_LIB="-ldb" 105 MYSQL_LIB="-lmysqlclient" 106 ;; 107 FreeBSD|DragonFly) 108 case "$UNAME_R" in 109 2.*) 110 OSVER=20 111 ;; 112 3.*) 113 OSVER=30 114 ;; 115 4.*) 116 OSVER=40 117 ;; 118 *) 119 # Assume 5.0 + 120 OSVER=50 121 ;; 122 esac 123 if [ "$with_debug" = "yes" ]; then 124 CCDBG="-g" 125 LDDBG="-g" 126 else 127 CCDBG="-DNDEBUG" 128 LDDBG="" 129 fi 130 CC=gcc 131 CFLAGS="$CCDBG -D_UNIX -D_BSD=$OSVER -Wall $CFLAGS" 132 CXX=g++ 133 CXXFLAGS=${CFLAGS} 134 AR=ar 135 ARFLAGS="-rc" 136 LD=gcc 137 LDFLAGS="$LDDBG $LDFLAGS" 138 SYSLIBS="" 139 LIBDB_LIB="${DB_LIBNAME}" 140 MYSQL_LIB="-lmysqlclient" 141 ;; 142 OpenBSD) 143 # I'm guessing OpenBSD looks mostly like FreeBSD 4.x 144 OSVER=40 145 if [ "$with_debug" = "yes" ]; then 146 CCDBG="-g" 147 LDDBG="-g" 148 else 149 CCDBG="-DNDEBUG" 150 LDDBG="" 151 fi 152 CC=gcc 153 CFLAGS="$CCDBG -D_UNIX -D_BSD=$OSVER -Wall" 154 CXX=g++ 155 CXXFLAGS=${CFLAGS} 156 AR=ar 157 ARFLAGS="-rc" 158 LD=gcc 159 LDFLAGS="$LDDBG" 160 SYSLIBS="" 161 LIBDB_LIB="" 162 MYSQL_LIB="-lmysqlclient" 163 ;; 164 Darwin) 165 # I'm guessing Darwin looks mostly like FreeBSD 4.x 166 OSVER=40 167 if [ "$with_debug" = "yes" ]; then 168 CCDBG="-g" 169 LDDBG="-g" 170 else 171 CCDBG="-DNDEBUG" 172 LDDBG="" 173 fi 174 CC=cc 175 CFLAGS="$CCDBG -D_UNIX -D_BSD=$OSVER -DNOLOCK -Wall" 176 CXX=c++ 177 CXXFLAGS=${CFLAGS} 178 AR=ar 179 ARFLAGS="-rc" 180 LD=cc 181 LDFLAGS="$LDDBG" 182 SYSLIBS="" 183 LIBDB_LIB="" 184 MYSQL_LIB="-lmysqlclient" 185 ;; 186 SunOS) 187 case "$UNAME_R" in 188 5.6) 189 OSVER=56 190 ;; 191 5.7) 192 OSVER=57 193 ;; 194 5.8) 195 OSVER=58 196 ;; 197 *) 198 # Assume 9.0+ 199 OSVER=59 200 ;; 201 esac 202 # Prefer gcc to the native cc here because I haven't tested with the 203 # native compiler yet. 204 type gcc >/dev/null 2>&1 205 if [ $? -eq 0 ]; then 206 if [ "$with_debug" = "yes" ]; then 207 CCDBG="-g" 208 LDDBG="-g" 209 else 210 CCDBG="-DNDEBUG" 211 LDDBG="" 212 fi 213 CC=gcc 214 CFLAGS="$CCDBG -D_UNIX -D_SOLARIS=$OSVER -Wall" 215 CXX=g++ 216 CXXFLAGS=${CFLAGS} 217 LD=gcc 218 LDFLAGS="$LDDBG" 219 else 220 if [ "$with_debug" = "yes" ]; then 221 CCDBG="-g" 222 LDDBG="-g" 223 else 224 CCDBG="-DNDEBUG" 225 LDDBG="" 226 fi 227 CC=cc 228 CFLAGS="-DNDEBUG -D_UNIX -D_SOLARIS=$OSVER" 229 CXX=c++ 230 CXXFLAGS=${CFLAGS} 231 LD=ld 232 LDFLAGS="" 233 fi 234 AR=ar 235 ARFLAGS="-rc" 236 SYSLIBS="" 237 LIBDB_LIB="-ldb" 238 MYSQL_LIB="-lmysqlclient" 239 ;; 240 OSF1) 241 if [ "$with_debug" = "yes" ]; then 242 CCDBG="-g2" 243 LDDBG="-g2" 244 else 245 CCDBG="-DNDEBUG" 246 LDDBG="" 247 fi 248 CC=cc 249 CFLAGS="$CCDBG -D_UNIX -D_OSF" 250 CXX=cxx 251 CXXFLAGS="-noexceptions ${CFLAGS}" 252 AR=ar 253 ARFLAGS="-rc" 254 LD=ld 255 LDFLAGS="" 256 SYSLIBS="-lm" 257 LIBDB_LIB="-ldb" 258 MYSQL_LIB="-lmysqlclient" 259 ;; 260 *) 261 if [ "$with_debug" = "yes" ]; then 262 CCDBG="-g" 263 LDDBG="-g" 264 else 265 CCDBG="-DNDEBUG" 266 LDDBG="" 267 fi 268 CC=cc 269 CFLAGS="$CCDBG -DNDEBUG -D_UNIX" 270 CXX=c++ 271 CXXFLAGS=${CFLAGS} 272 AR=ar 273 ARFLAGS="-rc" 274 LD=ld 275 LDFLAGS="$LDDBG" 276 SYSLIBS="" 277 LIBDB_LIB="-ldb" 278 MYSQL_LIB="-lmysqlclient" 279 ;; 280esac 281 282echo -n "Looking for compiler... " 283type $CC >/dev/null 2>&1 284if [ $? -ne 0 ]; then 285 echo "compiler '$CC' not found!" 286 exit 1 287else 288 echo "$CC is executable." 289fi 290 291echo -n "Checking for BerkeleyDB... " 292if [ "$with_libdb" = "test" ]; then 293 if [ -e /usr/local/BerkeleyDB.4.1/include/db.h ]; then 294 with_libdb=/usr/local/BerkeleyDB.4.1 295 LIBDB_LIB="-ldb" 296 elif [ -e /usr/include/db.h -o \ 297 -e /usr/local/include/db.h ]; then 298 with_libdb=yes 299 else 300 with_libdb=no 301 fi 302fi 303if [ "$with_libdb" = "no" ]; then 304 echo "disabled." 305else 306 if [ "$with_libdb" != "yes" ]; then 307 CFLAGS="$CFLAGS -I$with_libdb/include" 308 LDFLAGS="$LDFLAGS -L$with_libdb/lib" 309 fi 310 CFLAGS="$CFLAGS -DHAVE_LIBDB" 311 LDFLAGS="$LDFLAGS $LIBDB_LIB" 312 echo "enabled." 313fi 314 315echo -n "Checking for MySQL... " 316if [ "$with_mysql" = "test" ]; then 317 type mysql_config >/dev/null 2>&1 318 if [ $? -eq 0 ]; then 319 with_mysql=yes 320 CFLAGS="$CFLAGS `mysql_config --cflags`" 321 LDFLAGS="$LDFLAGS `mysql_config --libs`" 322 # mysql_config will add -lmysqlclient, don't add it twice 323 MYSQL_LIB="" 324 else 325 with_mysql=no 326 fi 327fi 328if [ "$with_mysql" = "no" ]; then 329 echo "disabled." 330else 331 if [ "$with_mysql" != "yes" ]; then 332 CFLAGS="$CFLAGS -I$with_mysql/include" 333 LDFLAGS="$LDFLAGS -L$with_mysql/lib" 334 fi 335 CFLAGS="$CFLAGS -DHAVE_MYSQL" 336 LDFLAGS="$LDFLAGS $MYSQL_LIB" 337 echo "enabled." 338fi 339 340for D in .; do 341 cat $D/Makefile.in | sed "s%@CC@%${CC}%g 342 s%@CXX@%${CXX}%g 343 s%@AR@%${AR}%g 344 s%@LD@%${LD}%g 345 s%@CFLAGS@%${CFLAGS}%g 346 s%@CXXFLAGS@%${CXXFLAGS}%g 347 s%@ARFLAGS@%${ARFLAGS}%g 348 s%@LDFLAGS@%${LDFLAGS}%g 349 s%@SYSLIBS@%${SYSLIBS}%" > $D/Makefile || exit 1 350done 351 352echo "Configuration successful." 353echo "Now run 'make all' and 'make install'." 354echo "" 355