#!/bin/sh # $Id: configure,v 1.38 2008/06/15 07:08:49 paulus Exp $ # Where to install stuff by default DESTDIR=/usr/local SYSCONF=/etc # Compile defaults CROSS_COMPILE= CC=cc CFLAGS= system=`uname -s` release=`uname -r` arch=`uname -m` state="unknown" case $system in Linux) makext="linux"; ksrc="linux"; state="known"; CFLAGS="-O2 -g -pipe";; SunOS) karch=`/usr/bin/isainfo -k` case $release in 5.[7-9]*|5.[1-9][0-9]*) state="known"; ksrc="solaris"; makext="sol2"; case "$karch" in amd64) archvariant='-64x';; sparcv9) archvariant='-64';; *) ;; esac;; 5.[1-6]*) state="known"; ksrc="solaris"; makext="sol2";; esac if [ "$1" = gcc ]; then shift usegcc=gcc fi if [ "$1" = 32 ]; then shift archvariant= fi if [ -x /opt/SUNWspro/bin/cc -a "$usegcc" != gcc ] && /opt/SUNWspro/bin/cc -flags >/dev/null 2>&1; then if [ "$archvariant" = "-64x" ]; then ( cd /tmp; echo "int x;" > ppp$$.c /opt/SUNWspro/bin/cc -c -errwarn -xchip=opteron -m64 ppp$$.c >/dev/null 2>&1 || ( echo "WorkShop C is unable to make 64 bit modules, and your $karch system needs" echo "them. Consider upgrading cc on this machine." rm -f ppp$$.c exit 1 ) || exit 1 rm -f ppp$$.c ppp$$.o ) || exit 1 fi elif gcc --version >/dev/null 2>&1; then archvariant=gcc$archvariant compiletype=.gcc if [ "$archvariant" = "gcc-64" -o"$archvariant" = "gcc-64x" ]; then ( cd /tmp; touch ppp$$.c gcc -c -m64 ppp$$.c >/dev/null 2>&1 || ( echo "gcc is unable to make 64 bit modules, and your $karch system needs them." echo "Consider upgrading gcc on this machine, or switching to Sun WorkShop." rm -f ppp$$.c exit 1 ) || exit 1 rm -f ppp$$.c ppp$$.o ) || exit 1 fi else echo "C compiler not found; hoping for the best." fi;; NetBSD|FreeBSD|ULTRIX|OSF1|NeXTStep|SINIX-?|UNIX_SV|UNIX_System_V) state="notincluded";; esac if [ -d "$ksrc" ]; then :; else state="notincluded" unset ksrc fi case $state in unknown) echo "This software has not been ported to $system. Sorry.";; notincluded) echo "Support for $system has not been included" echo "in this distribution. Sorry.";; known) echo "Configuring for $system";; esac # Parse arguments while [ $# -gt 0 ]; do arg=$1 val= shift case $arg in *=*) val=`expr "x$arg" : 'x[^=]*=\(.*\)'` arg=`expr "x$arg" : 'x\([^=]*\)=.*'` ;; --prefix|--sysconf) if [ $# -eq 0 ]; then echo "error: the $arg argument requires a value" 1>&2 exit 1 fi val=$1 shift ;; esac case $arg in --prefix) DESTDIR=$val ;; --sysconfdir) SYSCONF=$val ;; --cross_compile) CROSS_COMPILE=$val ;; --cc) CC=$val ;; --cflags) CFLAGS=$val ;; esac done mkmkf() { rm -f $2 if [ -f $1 ]; then echo " $2 <= $1" sed -e "s,@DESTDIR@,$DESTDIR,g" -e "s,@SYSCONF@,$SYSCONF,g" \ -e "s,@CROSS_COMPILE@,$CROSS_COMPILE,g" -e "s,@CC@,$CC,g" \ -e "s|@CFLAGS@|$CFLAGS|g" $1 >$2 fi } if [ -d "$ksrc" ]; then echo "Creating Makefiles." mkmkf $ksrc/Makefile.top Makefile mkmkf $ksrc/Makedefs$compiletype Makedefs.com for dir in pppd pppstats chat pppdump pppd/plugins pppd/plugins/pppoe \ pppd/plugins/radius pppd/plugins/pppoatm \ pppd/plugins/pppol2tp; do mkmkf $dir/Makefile.$makext $dir/Makefile done if [ -f $ksrc/Makefile.$makext$archvariant ]; then mkmkf $ksrc/Makefile.$makext$archvariant $ksrc/Makefile fi else echo "Unable to locate kernel source $ksrc" exit 1 fi