#!/bin/sh
-# $Id: configure,v 1.31 2004/01/17 05:47:55 carlsonj Exp $
+# $Id: configure,v 1.37 2005/06/26 23:53:17 carlsonj Exp $
+
+# Where to install stuff by default
+DESTDIR=/usr/local
+SYSCONF=/etc
# if [ -d /NextApps ]; then
# system="NeXTStep"
# else
system=`uname -s`
release=`uname -r`
- machine=`uname -p`
arch=`uname -m`
# fi
state="unknown"
ksrc="linux";
state="known";;
SunOS)
+ karch=`/usr/bin/isainfo -k`
case $release in
# [0-3]*) state="ancient";;
# 4*) state="known"; ksrc="sunos4"; makext="sunos4";;
- 5.[7-9]*|5.[1-9][0-9]) state="known"; ksrc="solaris"; makext="sol2";
- case "`/usr/bin/isainfo -k`" 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 [ -x /opt/SUNWspro/bin/cc -a "$1" != "gcc" ] &&
+ 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
- : # use Sun WorkShop compiler
+ if [ "$archvariant" = "-64x" ]; then
+ ( cd /tmp; echo "int x;" > ppp$$.c
+ /opt/SUNWspro/bin/cc -c -errwarn -xchip=opteron -xarch=amd64 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" ]; then
+ 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 $arch system needs them."
- echo "consider upgrading gcc on this machine, or switching to Sun WorkShop."
+ 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
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 ;;
+ esac
+done
+
+mkmkf() {
+ rm -f $2
+ if [ -f $1 ]; then
+ echo " $2 <= $1"
+ sed -e "s,@DESTDIR@,$DESTDIR,g" -e "s,@SYSCONF@,$SYSCONF,g" $1 >$2
+ fi
+}
+
if [ -d "$ksrc" ]; then
- echo "Creating links to Makefiles."
- rm -f Makefile
- ln -s $ksrc/Makefile.top Makefile
- echo " Makefile -> $ksrc/Makefile.top"
- rm -f Makedefs.com
- ln -s $ksrc/Makedefs$compiletype Makedefs.com
- echo " $ksrc/Makedefs$compiletype -> Makedefs.com"
- for dir in pppd pppstats chat pppdump pppd/plugins pppd/plugins/rp-pppoe pppd/plugins/radius; do
- rm -f $dir/Makefile
- if [ -f $dir/Makefile.$makext ]; then
- ln -s Makefile.$makext $dir/Makefile
- echo " $dir/Makefile -> Makefile.$makext"
+ 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/rp-pppoe \
+ pppd/plugins/radius pppd/plugins/pppoatm; do
+ mkmkf $dir/Makefile.$makext $dir/Makefile
+ done
+ if [ -f $ksrc/Makefile.$makext$archvariant ]; then
+ mkmkf $ksrc/Makefile.$makext$archvariant $ksrc/Makefile
fi
- done
- if [ "$archvariant" ]; then
- makext=$makext$archvariant
- rm -f $ksrc/Makefile
- ln -s Makefile.$makext $ksrc/Makefile
- echo " $ksrc/Makefile -> Makefile.$makext"
- fi
else
echo "Unable to locate kernel source $ksrc"
exit 1