diff options
Diffstat (limited to 'configure')
-rwxr-xr-x | configure | 305 |
1 files changed, 305 insertions, 0 deletions
diff --git a/configure b/configure new file mode 100755 index 0000000..43a79ff --- /dev/null +++ b/configure @@ -0,0 +1,305 @@ +#!/bin/sh +# +# This file was generated by confgen version 2. +# Do not edit. +# + +PREFIX='/usr' +#EXECPREFIX='$PREFIX' +INSTALLROOT='' +BINMODE='755' +#DAEMONMODE='$BINMODE' +MANMODE='644' + +while [ x$1 != x ]; do case $1 in + + --help) + cat <<EOF +Usage: configure [options] + --help Show this message + --with-debug Enable debugging + --prefix=path Prefix for location of files [/usr] + --exec-prefix=path Location for arch-depedent files [prefix] + --installroot=root Top of filesystem tree to install in [/] + --binmode=mode Mode for binaries [755] + --daemonmode=mode Mode for daemon binaries [same as binmode] + --manmode=mode Mode for manual pages [644] + --with-c-compiler=cc Program for compiling C source [guessed] +EOF + exit 0;; + --verbose) ;; + --quiet) ;; + + --subdir) . ../configure.defs;; + + --with-debug|--debug) DEBUG=1;; + --prefix=*) PREFIX=`echo $1 | sed 's/^[^=]*=//'` ;; + --exec-prefix=*) EXECPREFIX=`echo $1 | sed 's/^[^=]*=//'` ;; + --installroot=*) INSTALLROOT=`echo $1 | sed 's/^[^=]*=//'` ;; + --binmode=*) BINMODE=`echo $1 | sed 's/^[^=]*=//'` ;; + --daemonmode=*) DAEMONMODE=`echo $1 | sed 's/^[^=]*=//'` ;; + --manmode=*) MANMODE=`echo $1 | sed 's/^[^=]*=//'` ;; + --with-c-compiler=*) CC=`echo $1 | sed 's/^[^=]*=//'` ;; + *) echo "Unrecognized option: $1"; exit 1;; +esac +shift +done + +if [ x$EXECPREFIX = x ]; then + EXECPREFIX="$PREFIX" +fi + +if [ x$DAEMONMODE = x ]; then + DAEMONMODE="$BINMODE" +fi + +BINDIR="$EXECPREFIX/bin" +SBINDIR="$EXECPREFIX/sbin" +MANDIR="$PREFIX/man" + +echo "Directories: $BINDIR $SBINDIR $MANDIR " + +if [ x$INSTALLROOT != x ]; then + echo "Installing in chroot tree rooted at $INSTALLROOT" +fi + +################################################## + +WARNINGS='-Wall -W -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline ' + +cat << EOF > __conftest.c + int main() { int class=0; return class; } +EOF + +if [ x"$CC" = x ]; then + echo -n 'Looking for a C compiler... ' + for TRY in egcs gcc g++ CC c++ cc; do + ( + $TRY __conftest.c -o __conftest || exit 1; + ./__conftest || exit 1; + ) >/dev/null 2>&1 || continue; + CC=$TRY + break; + done + if [ x"$CC" = x ]; then + echo 'failed.' + echo 'Cannot find a C compiler. Run configure with --with-c-compiler.' + rm -f __conftest* + exit + fi + echo "$CC" +else + echo -n 'Checking if C compiler works... ' + if ( + $CC __conftest.c -o __conftest || exit 1 + ./__conftest || exit 1 + ) >/dev/null 2>&1; then + echo 'yes' + else + echo 'no' + echo 'Compiler '"$CC"' does not exist or cannot compile C; try another.' + rm -f __conftest* + exit + fi +fi + +echo -n "Checking if $CC accepts gcc warnings... " +if ( + $CC $WARNINGS __conftest.c -o __conftest || exit 1 + ) >/dev/null 2>&1; then + echo 'yes' + CC_WARNINGS=1 +else + echo 'no' +fi + +if [ x$DEBUG = x ]; then + echo -n "Checking if $CC accepts -O2... " + if ( + $CC -O2 __conftest.c -o __conftest + ) >/dev/null 2>&1; then + echo 'yes' + CFLAGS="$CFLAGS -O2" + else + echo 'no' + echo -n "Checking if $CC accepts -O... " + if ( + $CC -O __conftest.c -o __conftest + ) >/dev/null 2>&1; then + echo 'yes' + CFLAGS="$CFLAGS -O" + else + echo 'no' + fi + fi + +else + echo -n "Checking if $CC accepts -g... " + if ( + $CC -g __conftest.c -o __conftest + ) >/dev/null 2>&1; then + echo 'yes' + CFLAGS="$CFLAGS -g" + else + echo 'no' + fi + +fi + +LDFLAGS= +LIBS= + +rm -f __conftest* + +################################################## + +echo -n 'Checking for socklen_t... ' +cat <<EOF >__conftest.c +#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> +int main() { + struct sockaddr_in sn; + socklen_t len = sizeof(sn); + getpeername(0, (struct sockaddr *)&sn, &len); + return 0; +} + +EOF +if ( + $CC $CFLAGS __conftest.c -o __conftest || exit 1 + ) >/dev/null 2>&1; then + echo 'yes' +else + if ( + $CC $CFLAGS -Dsocklen_t=int __conftest.c -o __conftest || exit 1 + ) >/dev/null 2>&1; then + echo 'int' + CFLAGS="$CFLAGS -Dsocklen_t=int" + else + if ( + $CC $CFLAGS -Dsocklen_t=size_t __conftest.c -o __conftest || exit 1 + ) >/dev/null 2>&1; then + echo 'size_t' + CFLAGS="$CFLAGS -Dsocklen_t=size_t" + else + echo 'no' + echo 'Cannot work out what to use for socklen_t. Help...' + rm -f __conftest* + exit + fi + fi +fi +rm -f __conftest* + +################################################## + +echo -n 'Checking for snprintf declaration... ' +cat <<EOF >__conftest.c +#include <stdio.h> +int main() { + void *x = (void *)snprintf; + printf("%lx", (long)x); + return 0; +} + +EOF +if ( + $CC $CFLAGS __conftest.c -o __conftest || exit 1 + ) >/dev/null 2>&1; then + echo 'ok' +else + if ( + $CC $CFLAGS -D_GNU_SOURCE __conftest.c -o __conftest || exit 1 + ./__conftest || exit 1 + ) >/dev/null 2>&1; then + echo '-D_GNU_SOURCE' + CFLAGS="$CFLAGS -D_GNU_SOURCE" + else + echo 'manual' + CFLAGS="$CFLAGS -DDECLARE_SNPRINTF" + fi +fi +rm -f __conftest* + +echo -n 'Checking for snprintf implementation... ' +cat <<EOF >__conftest.c +#include <stdio.h> +#include <string.h> +#ifdef DECLARE_SNPRINTF +#ifdef __cplusplus +extern "C" +#endif /*__cplusplus*/ +int snprintf(char *, int, const char *, ...); +#endif /*DECLARE_SNPRINTF*/ +int main() { + char buf[32]; + snprintf(buf, 8, "%s", "1234567890"); + if (strlen(buf)!=7) return 1; + return 0; +} + +EOF +if ( + $CC $CFLAGS __conftest.c $LIBBSD -o __conftest || exit 1 + ./__conftest || exit 1 + ) >/dev/null 2>&1; then + echo 'ok' +else + if ( + $CC $CFLAGS __conftest.c -lsnprintf $LIBBSD -o __conftest || exit 1 + ./__conftest || exit 1 + ) >/dev/null 2>&1; then + echo '-lsnprintf' + LIBS="$LIBS -lsnprintf" + else + if ( + $CC $CFLAGS __conftest.c -ldb $LIBBSD -o __conftest || exit 1 + ./__conftest || exit 1 + ) >/dev/null 2>&1; then + echo '-ldb' + LIBS="$LIBS -ldb" + else + echo 'missing' + echo 'This package requires snprintf.' + rm -f __conftest* + exit + fi + fi +fi +rm -f __conftest* + +################################################## + +## libbsd should go last in case it's broken +if [ "x$LIBBSD" != x ]; then + LIBS="$LIBS $LIBBSD" +fi + +echo 'Generating MCONFIG...' +( + echo -n '# Generated by configure (confgen version 2) on ' + date + echo '#' + echo + + echo "BINDIR=$BINDIR" + echo "SBINDIR=$SBINDIR" + echo "MANDIR=$MANDIR" + echo "BINMODE=$BINMODE" + echo "DAEMONMODE=$DAEMONMODE" + echo "MANMODE=$MANMODE" + echo "PREFIX=$PREFIX" + echo "EXECPREFIX=$EXECPREFIX" + echo "INSTALLROOT=$INSTALLROOT" + echo "CC=$CC" + if [ x$CC_WARNINGS != x ]; then + CFLAGS="$CFLAGS $WARNINGS" + fi + + echo "CFLAGS=$CFLAGS" | sed 's/= */=/' + echo "LDFLAGS=$LDFLAGS" | sed 's/= */=/' + echo "LIBS=$LIBS" | sed 's/= */=/' + +) > MCONFIG + |