blob: bb72fbafaf2baf37197ce8b1de74c0b9957743cb [file] [log] [blame]
#!/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