Merge branch 'pppd_print_changes' of https://github.com/nlhintz/ppp into nlhintz...
[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
8 #  if [ -d /NextApps ]; then
9 #    system="NeXTStep"
10 #  else
11   system=`uname -s`
12   release=`uname -r`
13   arch=`uname -m`
14 #  fi
15 state="unknown"
16
17 case $system in
18   Linux)
19     makext="linux";
20     ksrc="linux";
21     state="known";;
22   SunOS)
23     karch=`/usr/bin/isainfo -k`
24     case $release in
25 #      [0-3]*)  state="ancient";;
26 #      4*)      state="known"; ksrc="sunos4"; makext="sunos4";;
27       5.[7-9]*|5.[1-9][0-9]*)   state="known"; ksrc="solaris"; makext="sol2";
28               case "$karch" in
29                 amd64)          archvariant='-64x';;
30                 sparcv9)        archvariant='-64';;
31                 *)      ;;
32               esac;;
33       5.[1-6]*) state="known"; ksrc="solaris"; makext="sol2";;
34     esac
35     if [ "$1" = gcc ]; then
36         shift
37         usegcc=gcc
38     fi
39     if [ "$1" = 32 ]; then
40         shift
41         archvariant=
42     fi
43     if [ -x /opt/SUNWspro/bin/cc -a "$usegcc" != gcc ] &&
44        /opt/SUNWspro/bin/cc -flags >/dev/null 2>&1; then
45       if [ "$archvariant" = "-64x" ]; then
46         ( cd /tmp; echo "int x;" > ppp$$.c
47           /opt/SUNWspro/bin/cc -c -errwarn -xchip=opteron -m64 ppp$$.c >/dev/null 2>&1 || (
48             echo "WorkShop C is unable to make 64 bit modules, and your $karch system needs"
49             echo "them.  Consider upgrading cc on this machine."
50             rm -f ppp$$.c
51             exit 1
52           ) || exit 1
53           rm -f ppp$$.c ppp$$.o
54         ) || exit 1
55       fi
56     elif gcc --version >/dev/null 2>&1; then
57       archvariant=gcc$archvariant
58       compiletype=.gcc
59       if [ "$archvariant" = "gcc-64" -o"$archvariant" = "gcc-64x" ]; then
60         ( cd /tmp; touch ppp$$.c
61           gcc -c -m64 ppp$$.c >/dev/null 2>&1 || (
62             echo "gcc is unable to make 64 bit modules, and your $karch system needs them."
63             echo "Consider upgrading gcc on this machine, or switching to Sun WorkShop."
64             rm -f ppp$$.c
65             exit 1
66           ) || exit 1
67           rm -f ppp$$.c ppp$$.o
68         ) || exit 1
69       fi
70     else
71       echo "C compiler not found; hoping for the best."
72     fi;;
73   NetBSD|FreeBSD|ULTRIX|OSF1|NeXTStep|SINIX-?|UNIX_SV|UNIX_System_V)
74     state="notincluded";;
75 #    NetBSD)
76 #      makext="bsd";
77 #      case $release in
78 #        0.*)   state="ancient";;
79 #        1.0*)  state="ancient";;
80 #        1.1*)  state="known"; ksrc="netbsd-1.1";;
81 #        1.2*)  state="known"; ksrc="netbsd-1.2"; makext="netbsd-1.2";;
82 #        1.[3-9]*|[2-9]*)
83 #               state="late"; ksrc="netbsd-1.2";;
84 #      esac;;
85 #    ULTRIX)
86 #      makext="ultrix";
87 #      case $release in
88 #        [0-3]*)        state="ancient";;
89 #        4.[01]*)       state="early"; ksrc="ultrix";;
90 #        4.[234])       state="known"; ksrc="ultrix";;
91 #      esac;;
92 #    OSF1)
93 #      makext="osf";
94 #      case $release in
95 #        V1.*)   state="neolithic"; ksrc="osf1";;
96 #        V[23].*)       state="neolithic"; ksrc="osf1";;
97 #        V4.*)  state="known"; ksrc="osf1";;
98 #        V[5-9]*) state="late"; ksrc="osf1";;
99 #      esac;;
100 #    FreeBSD)
101 #      makext="bsd";
102 #      case $release in
103 #        1.*)   state="known"; ksrc="freebsd-old";;
104 #        2.[01]*)       state="known"; ksrc="freebsd-2.0";;
105 #        2.2.[2-7]*) state="late"; ksrc="freebsd-2.0";;
106 #        2.2.8*)   state="known"; ksrc="freebsd-2.2.8";;
107 #        3.[0-1]*)      state="known"; ksrc="freebsd-3.0";;
108 #      esac;;
109 #    NeXTStep)
110 #      makext="NeXT";
111 #      ksrc="NeXT";
112 #      state="known";;
113 #    SINIX-?)
114 #      case $release in
115 #        5.4[01]) state=known; ksrc=svr4; makext=svr4;;
116 #        5.4[2-9]) state=late; ksrc=svr4; makext=svr4;;
117 #      esac;;
118 #    # Intel SVR4 systems come with a bug in the uname program.  Unless
119 #    # your provider fixed the bug, or you get a fix for it, uname -S will
120 #    # overwrite the system name with the node name!
121 #    UNIX_SV|UNIX_System_V|`uname -n`)
122 #      case $release in
123 #        4.0) state=known; ksrc=svr4; makext=svr4;;
124 #        4.2) state=late; ksrc=svr4; makext=svr4;;
125 #      esac;;
126 esac
127
128 if [ -d "$ksrc" ]; then :; else
129   state="notincluded"
130   unset ksrc
131 fi
132
133 case $state in
134   neolithic) 
135     echo "This is a newer release on an outdated OS ($system)."
136     echo " This software may or may not work on this OS."
137     echo " You may want to download an older version of PPP for this OS.";;
138   ancient)
139     echo "This is an old release of a supported OS ($system)."
140     echo "This software cannot be used as-is on this system,"
141     echo "but you may be able to port it.  Good luck!"
142     exit;;
143   early)
144     echo "This is an old release of a supported OS ($system)."
145     echo "This software should install and run on this system,"
146     echo "but it hasn't been tested.";;
147   late)
148     echo "This is a newer release of $system than is supported by"
149     echo "this software.  It may or may not work.";;
150   unknown)
151     echo "This software has not been ported to $system.  Sorry.";;
152   notincluded)
153     echo "Support for $system has not been included"
154     echo "in this distribution.  Sorry.";;
155   known)
156     echo "Configuring for $system";;
157 esac
158
159 # Parse arguments
160 while [ $# -gt 0 ]; do
161     arg=$1
162     val=
163     shift
164     case $arg in
165         *=*)
166             val=`expr "x$arg" : 'x[^=]*=\(.*\)'`
167             arg=`expr "x$arg" : 'x\([^=]*\)=.*'`
168             ;;
169         --prefix|--sysconf)
170             if [ $# -eq 0 ]; then
171                 echo "error: the $arg argument requires a value" 1>&2
172                 exit 1
173             fi
174             val=$1
175             shift
176             ;;
177     esac
178     case $arg in
179         --prefix)       DESTDIR=$val ;;
180         --sysconfdir)   SYSCONF=$val ;;
181     esac
182 done
183
184 mkmkf() {
185     rm -f $2
186     if [ -f $1 ]; then
187         echo "  $2 <= $1"
188         sed -e "s,@DESTDIR@,$DESTDIR,g" -e "s,@SYSCONF@,$SYSCONF,g" $1 >$2
189     fi
190 }
191
192 if [ -d "$ksrc" ]; then
193     echo "Creating Makefiles."
194     mkmkf $ksrc/Makefile.top Makefile
195     mkmkf $ksrc/Makedefs$compiletype Makedefs.com
196     for dir in pppd pppstats chat pppdump pppd/plugins pppd/plugins/rp-pppoe \
197                pppd/plugins/radius pppd/plugins/pppoatm \
198                pppd/plugins/pppol2tp; do
199         mkmkf $dir/Makefile.$makext $dir/Makefile
200     done
201     if [ -f $ksrc/Makefile.$makext$archvariant ]; then
202         mkmkf $ksrc/Makefile.$makext$archvariant $ksrc/Makefile
203     fi
204 else
205   echo "Unable to locate kernel source $ksrc"
206   exit 1
207 fi