]> git.ozlabs.org Git - ppp.git/blob - configure
pppd man page: Update header to refer to pppd 2.5.x
[ppp.git] / configure
1 #!/bin/sh
2 # $Id: configure,v 1.38 2008/06/15 07:08:49 paulus Exp $
3
4 # Where to install stuff by default
5 DESTDIR=/usr/local
6 SYSCONF=/etc
7 LIBDIR='${PREFIX}'/lib
8 INCDIR='${PREFIX}'/include
9
10 VERSION=$(awk -F '"' '/VERSION/ { print $2; }' pppd/patchlevel.h)
11
12 # Compile defaults
13 CROSS_COMPILE=
14 CC=cc
15 CFLAGS=
16
17 system=`uname -s`
18 release=`uname -r`
19 arch=`uname -m`
20 state="unknown"
21
22 case $system in
23   Linux)
24     makext="linux";
25     ksrc="linux";
26     state="known";
27     CFLAGS="-O2 -g -pipe";;
28   SunOS)
29     karch=`/usr/bin/isainfo -k`
30     case $release in
31       5.[7-9]*|5.[1-9][0-9]*)   state="known"; ksrc="solaris"; makext="sol2";
32               case "$karch" in
33                 amd64)          archvariant='-64x';;
34                 sparcv9)        archvariant='-64';;
35                 *)      ;;
36               esac;;
37       5.[1-6]*) state="known"; ksrc="solaris"; makext="sol2";;
38     esac
39     if [ "$1" = gcc ]; then
40         shift
41         usegcc=gcc
42     fi
43     if [ "$1" = 32 ]; then
44         shift
45         archvariant=
46     fi
47     if [ -x /opt/SUNWspro/bin/cc -a "$usegcc" != gcc ] &&
48        /opt/SUNWspro/bin/cc -flags >/dev/null 2>&1; then
49       if [ "$archvariant" = "-64x" ]; then
50         ( cd /tmp; echo "int x;" > ppp$$.c
51           /opt/SUNWspro/bin/cc -c -errwarn -xchip=opteron -m64 ppp$$.c >/dev/null 2>&1 || (
52             echo "WorkShop C is unable to make 64 bit modules, and your $karch system needs"
53             echo "them.  Consider upgrading cc on this machine."
54             rm -f ppp$$.c
55             exit 1
56           ) || exit 1
57           rm -f ppp$$.c ppp$$.o
58         ) || exit 1
59       fi
60     elif gcc --version >/dev/null 2>&1; then
61       archvariant=gcc$archvariant
62       compiletype=.gcc
63       if [ "$archvariant" = "gcc-64" -o"$archvariant" = "gcc-64x" ]; then
64         ( cd /tmp; touch ppp$$.c
65           gcc -c -m64 ppp$$.c >/dev/null 2>&1 || (
66             echo "gcc is unable to make 64 bit modules, and your $karch system needs them."
67             echo "Consider upgrading gcc on this machine, or switching to Sun WorkShop."
68             rm -f ppp$$.c
69             exit 1
70           ) || exit 1
71           rm -f ppp$$.c ppp$$.o
72         ) || exit 1
73       fi
74     else
75       echo "C compiler not found; hoping for the best."
76     fi;;
77   NetBSD|FreeBSD|ULTRIX|OSF1|NeXTStep|SINIX-?|UNIX_SV|UNIX_System_V)
78     state="notincluded";;
79 esac
80
81 if [ -d "$ksrc" ]; then :; else
82   state="notincluded"
83   unset ksrc
84 fi
85
86 case $state in
87   unknown)
88     echo "This software has not been ported to $system.  Sorry.";;
89   notincluded)
90     echo "Support for $system has not been included"
91     echo "in this distribution.  Sorry.";;
92   known)
93     echo "Configuring for $system";;
94 esac
95
96 # Parse arguments
97 while [ $# -gt 0 ]; do
98     arg=$1
99     val=
100     shift
101     case $arg in
102         *=*)
103             val=`expr "x$arg" : 'x[^=]*=\(.*\)'`
104             arg=`expr "x$arg" : 'x\([^=]*\)=.*'`
105             ;;
106         --prefix|--sysconf|--libdir|--includedir)
107             if [ $# -eq 0 ]; then
108                 echo "error: the $arg argument requires a value" 1>&2
109                 exit 1
110             fi
111             val=$1
112             shift
113             ;;
114     esac
115     case $arg in
116         --prefix)        DESTDIR=$val ;;
117         --sysconfdir)    SYSCONF=$val ;;
118         --libdir)        LIBDIR=$val ; HAVE_LIBDIR_PARAM=1 ;;
119         --includedir)    INCDIR=$val ; HAVE_INCDIR_PARAM=1 ;;
120         --cross_compile) CROSS_COMPILE=$val ;;
121         --cc)            CC=$val ;;
122         --cflags)        CFLAGS=$val ;;
123     esac
124 done
125
126 mkmkf() {
127     rm -f $2
128     if [ -f $1 ]; then
129         echo "  $2 <= $1"
130         sed -e "s,@DESTDIR@,$DESTDIR,g" \
131             -e "s,@SYSCONF@,$SYSCONF,g" \
132             -e "s,@LIBDIR@,$LIBDIR,g" \
133             -e "s,@INCDIR@,$INCDIR,g" \
134             -e "s,@CROSS_COMPILE@,$CROSS_COMPILE,g" \
135             -e "s,@CC@,$CC,g" \
136             -e "s|@CFLAGS@|$CFLAGS|g" \
137             -e "s,@VERSION@,$VERSION,g" $1 >$2
138     fi
139 }
140
141 if [ -d "$ksrc" ]; then
142     echo "Creating Makefiles."
143     mkmkf $ksrc/Makefile.top Makefile
144     mkmkf $ksrc/Makedefs$compiletype Makedefs.com
145     for dir in pppd pppstats chat pppdump pppd/plugins pppd/plugins/pppoe \
146                pppd/plugins/radius pppd/plugins/pppoatm \
147                pppd/plugins/pppol2tp; do
148         mkmkf $dir/Makefile.$makext $dir/Makefile
149     done
150     if [ -f $ksrc/Makefile.$makext$archvariant ]; then
151         mkmkf $ksrc/Makefile.$makext$archvariant $ksrc/Makefile
152     fi
153     if [ -f "$ksrc/pppd.pc.in" ] ; then
154         echo "Creating pkg-config file"
155         if [ ${HAVE_LIBDIR_PARAM:-0} -ne 1 ] ; then
156             LIBDIR='${prefix}'/lib
157         fi
158         if [ ${HAVE_INCDIR_PARAM:-0} -ne 1 ] ; then
159             INCDIR='${prefix}'/include
160         fi
161         mkmkf $ksrc/pppd.pc.in pppd/pppd.pc
162     fi
163 else
164   echo "Unable to locate kernel source $ksrc"
165   exit 1
166 fi