]> git.ozlabs.org Git - ppp.git/blobdiff - configure
pppd: Fix SIGSEGV in EAP-TLS code when TLS verify method is not specified
[ppp.git] / configure
index 04dd908bd2e6f47cfcce82f5db32b82b1369f844..b0c3d2b491220a06542c2a8eedbd4346a8420880 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,43 +1,66 @@
 #!/bin/sh
-# $Id: configure,v 1.30 2002/11/02 19:48:12 carlsonj Exp $
+# $Id: configure,v 1.38 2008/06/15 07:08:49 paulus Exp $
 
-#  if [ -d /NextApps ]; then
-#    system="NeXTStep"
-#  else
-  system=`uname -s`
-  release=`uname -r`
-  machine=`uname -p`
-  arch=`uname -m`
-#  fi
+# 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";;
+    state="known";
+    CFLAGS="-O2 -g -pipe";;
   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 ] &&
+    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 -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" ]; 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
@@ -49,57 +72,6 @@ case $system in
     fi;;
   NetBSD|FreeBSD|ULTRIX|OSF1|NeXTStep|SINIX-?|UNIX_SV|UNIX_System_V)
     state="notincluded";;
-#    NetBSD)
-#      makext="bsd";
-#      case $release in
-#        0.*)  state="ancient";;
-#        1.0*) state="ancient";;
-#        1.1*) state="known"; ksrc="netbsd-1.1";;
-#        1.2*) state="known"; ksrc="netbsd-1.2"; makext="netbsd-1.2";;
-#        1.[3-9]*|[2-9]*)
-#              state="late"; ksrc="netbsd-1.2";;
-#      esac;;
-#    ULTRIX)
-#      makext="ultrix";
-#      case $release in
-#        [0-3]*)       state="ancient";;
-#        4.[01]*)      state="early"; ksrc="ultrix";;
-#        4.[234])      state="known"; ksrc="ultrix";;
-#      esac;;
-#    OSF1)
-#      makext="osf";
-#      case $release in
-#        V1.*)   state="neolithic"; ksrc="osf1";;
-#        V[23].*)      state="neolithic"; ksrc="osf1";;
-#        V4.*) state="known"; ksrc="osf1";;
-#        V[5-9]*) state="late"; ksrc="osf1";;
-#      esac;;
-#    FreeBSD)
-#      makext="bsd";
-#      case $release in
-#        1.*)  state="known"; ksrc="freebsd-old";;
-#        2.[01]*)      state="known"; ksrc="freebsd-2.0";;
-#        2.2.[2-7]*) state="late"; ksrc="freebsd-2.0";;
-#        2.2.8*)   state="known"; ksrc="freebsd-2.2.8";;
-#        3.[0-1]*)     state="known"; ksrc="freebsd-3.0";;
-#      esac;;
-#    NeXTStep)
-#      makext="NeXT";
-#      ksrc="NeXT";
-#      state="known";;
-#    SINIX-?)
-#      case $release in
-#        5.4[01]) state=known; ksrc=svr4; makext=svr4;;
-#        5.4[2-9]) state=late; ksrc=svr4; makext=svr4;;
-#      esac;;
-#    # Intel SVR4 systems come with a bug in the uname program.  Unless
-#    # your provider fixed the bug, or you get a fix for it, uname -S will
-#    # overwrite the system name with the node name!
-#    UNIX_SV|UNIX_System_V|`uname -n`)
-#      case $release in
-#        4.0) state=known; ksrc=svr4; makext=svr4;;
-#        4.2) state=late; ksrc=svr4; makext=svr4;;
-#      esac;;
 esac
 
 if [ -d "$ksrc" ]; then :; else
@@ -108,22 +80,6 @@ if [ -d "$ksrc" ]; then :; else
 fi
 
 case $state in
-  neolithic) 
-    echo "This is a newer release on an outdated OS ($system)."
-    echo " This software may or may not work on this OS."
-    echo " You may want to download an older version of PPP for this OS.";;
-  ancient)
-    echo "This is an old release of a supported OS ($system)."
-    echo "This software cannot be used as-is on this system,"
-    echo "but you may be able to port it.  Good luck!"
-    exit;;
-  early)
-    echo "This is an old release of a supported OS ($system)."
-    echo "This software should install and run on this system,"
-    echo "but it hasn't been tested.";;
-  late)
-    echo "This is a newer release of $system than is supported by"
-    echo "this software.  It may or may not work.";;
   unknown)
     echo "This software has not been ported to $system.  Sorry.";;
   notincluded)
@@ -133,27 +89,56 @@ case $state in
     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 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/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
-  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