| #!/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="$(CFLAGS)";; | |
| 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 |