#!/bin/sh test -z "$TMP" && TMP=/tmp PREFIX=/usr/local usage() { cat << EOF Usage: ./configure [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$PREFIX] By default, 'make install' will install all the files in '$PREFIX/bin', '$PREFIX/lib' etc. You can specify an installation prefix other than '$PREFIX' using '--prefix', for instance '--prefix=$HOME'. Platform: --platform=PLATFORM select platform specific Makefile Use a file of your choosing from the Makefiles directory. Default: autodetect. Optional Packages: --with-gdbm enable trivial Gdbm queries --with-lago enable Lago database queries --with-msql enable MiniSQL database queries --with-mysql enable Mysql database queries --with-sqlite enable Sqlite database queries --with-sqlite3 enable Sqlite version 3 database queries --with-mimer enable Mimer database support --with-postgres enable Postgres database queries --with-oracle enable Oracle database queries --with-odbc=library enable database queries over ODBC Report bugs to . EOF exit } DIRS= trylib() { echo "int main(){main();}" > tryconf.c gcc tryconf.c $DIRS "$1" $LDFLAGS > /dev/null 2>&1 } tryheader() { cat < EOF > tryconf.c #include <$1> int x; EOF gcc tryconf.c $LDFLAGS > /dev/null 2>&1 } tryprog() { PROG=`which $1` test ! -z "$PROG" -a -x "$PROG" } if trylib -lsocket; then LDFLAGS="$LDFLAGS -lsocket" LDFLAGS_CFG="$LDFLAGS_CFG -lsocket" fi if trylib -lnsl; then LDFLAGS="$LDFLAGS -lnsl" LDFLAGS_CFG="$LDFLAGS_CFG -lnsl" fi UNAME=`uname` case "$UNAME" in Darwin ) PLATFORM=Darwin ;; Linux ) PLATFORM=Linux ;; * ) PLATFORM=Other ;; esac CFLAGS=-Wall while test $# != 0; do case "$1" in --help | -h ) usage ;; --prefix=* ) PREFIX=`echo "$1"|cut -f 2- -d =` echo "PREFIX=$PREFIX" ;; --platform=* ) PLATFORM=`echo "$1"|cut -f 2- -d =` echo "PLATFORM=$PLATFORM" ;; --with-gdbm ) echo "With gdbm" LDFLAGS_CFG="$LDFLAGS_CFG -lgdbm" if trylib -lgdbm; then echo "gdbm found" LDFLAGS="$LDFLAGS -lgdbm" CFLAGS="$CFLAGS -DHAVE_LIBGDBM" else echo "gdbm not found" exit 1 fi ;; --with-lago ) echo "With lago" if test -d /usr/local/lago/lib; then LDFLAGS="$LDFLAGS -L/usr/local/lago/lib" LDFLAGS_CFG="$LDFLAGS_CFG -L/usr/local/lago/lib" fi LDFLAGS_CFG="$LDFLAGS_CFG -llago" if trylib -llago; then echo "lago found" LDFLAGS="$LDFLAGS -llago" CFLAGS="$CFLAGS -DHAVE_LIBLAGO" else echo "lago not found" exit 1 fi ;; --with-msql ) echo "With msql" if test -d /usr/local/Hughes; then LDFLAGS="$LDFLAGS -L/usr/local/Hughes/lib" LDFLAGS_CFG="$LDFLAGS_CFG -L/usr/local/Hughes/lib" CFLAGS="$CFLAGS -I/usr/local/Hughes/include" CFLAGS_CFG="$CFLAGS_CFG -I/usr/local/Hughes/include" fi LDFLAGS_CFG="$LDFLAGS_CFG -lmsql" if trylib -lmsql; then echo "msql found" LDFLAGS="$LDFLAGS -lmsql" CFLAGS="$CFLAGS -DHAVE_LIBMSQL" else echo "msql not found" exit 1 fi ;; --with-mysql ) echo "With mysql" if tryprog mysql_config; then echo "mysql_config found" LDFLAGS_CFG="$LDFLAGS_CFG `mysql_config --libs`" LDFLAGS="$LDFLAGS `mysql_config --libs`" CFLAGS_CFG="$CFLAGS_CFG `mysql_config --cflags`" CFLAGS="$CFLAGS `mysql_config --cflags`" CFLAGS="$CFLAGS -DHAVE_LIBMYSQLCLIENT" else echo "mysql_config not found" exit 1 fi ;; --with-sqlite ) echo "With sqlite" if trylib -lsqlite; then echo "sqlite found" LDFLAGS="$LDFLAGS -lsqlite" LDFLAGS_CFG="$LDFLAGS_CFG -lsqlite" CFLAGS="$CFLAGS -DHAVE_LIBSQLITE" else echo "sqlite not found" exit 1 fi ;; --with-sqlite3 ) echo "With sqlite3" if trylib -lsqlite3; then echo "sqlite3 found" LDFLAGS="$LDFLAGS -lsqlite3" LDFLAGS_CFG="$LDFLAGS_CFG -lsqlite3" CFLAGS="$CFLAGS -DHAVE_LIBSQLITE3" else echo "sqlite3 not found" exit 1 fi ;; --with-mimer ) echo "With mimer" LDFLAGS_CFG="$LDFLAGS_CFG -lmimer" if trylib -lpthread; then echo "pthread found" LDFLAGS_CFG="-lpthread $LDFLAGS_CFG" LDFLAGS="-lpthread $LDFLAGS" fi if trylib -lmimer; then echo "mimer found" LDFLAGS_CFG="-lmimer $LDFLAGS" LDFLAGS="-lmimer $LDFLAGS" CFLAGS="$CFLAGS -DHAVE_LIBMIMER" else echo "mimer not found" exit 1 fi ;; --with-postgres ) echo "With postgres" if test -d /usr/local/pgsql; then CFLAGS_CFG="$CFLAGS_CFG -I/usr/local/pgsql/include" LDFLAGS_CFG="$LDFLAGS_CFG -L/usr/local/pgsql/lib -lpq" CFLAGS="$CFLAGS -I/usr/local/pgsql/include" LDFLAGS="$LDFLAGS -L/usr/local/pgsql/lib" fi if trylib -lpq; then echo "pq found" LDFLAGS="$LDFLAGS -lpq" CFLAGS="$CFLAGS -DHAVE_LIBPQ" else echo "pq not found" fi ;; --with-oracle ) echo "With oracle" CFLAGS_CFG="$CFLAGS_CFG -L$ORACLE_HOME/rdbms/demo" LDFLAGS_CFG="$LDFLAGS_CFG -L$ORACLE_HOME/lib -lclntsh" CFLAGS="$CFLAGS -I$ORACLE_HOME/rdbms/demo" LDFLAGS="$LDFLAGS -L$ORACLE_HOME/lib" if trylib -lclntsh; then echo "clntsh found" LDFLAGS="$LDFLAGS -lclntsh" CFLAGS="$CFLAGS -DHAVE_LIBCLNTSH" else echo "clntsh not fond" exit 1 fi ;; --with-odbc* ) echo "enable database queries over ODBC" ODBCLIB=`echo "$1"|cut -f 2- -d =` test -z "$ODBCLIB" && ODBCLIB=odbc echo "ODBCLIB=$ODBCLIB" if trylib -l$ODBCLIB; then echo "$ODBCLIB found" LDFLAGS="$LDFLAGS -l$ODBCLIB" if tryheader windows.h; then CFLAGS="$CFLAGS -DHAVE_WINDOWS_H" fi CFLAGS="$CFLAGS -DHAVE_LIBODBC" else echo "$ODBCLIB not found" exit 1 fi ;; * ) usage ;; esac shift done rm -f Makefile echo "LDFLAGS = $LDFLAGS" >> Makefile echo "CFLAGS = $CFLAGS" >> Makefile echo "LDFLAGS_CFG = $LDFLAGS_CFG" >> Makefile echo "CFLAGS_CFG = $CFLAGS_CFG" >> Makefile echo "PREFIX = $PREFIX" >> Makefile cat config.in >> Makefile echo "$PLATFORM ($UNAME)" if test ! -s "Makefiles/$PLATFORM"; then echo "No Makefile for $PLATFORM" exit 1 fi cat "Makefiles/$PLATFORM" >> Makefile echo '.all: $(SHAREDLIB) $(STATICLIB) $(PROGS)' >> Makefile rm -f a.out tryconf.c