]> git.ipfire.org Git - thirdparty/openssl.git/blame - config
New function SSL_CTX_set_session_id_context.
[thirdparty/openssl.git] / config
CommitLineData
58964a49
RE
1#!/bin/sh
2#
5d3bb220 3# OpenSSL config: determine the operating system and run ./Configure
58964a49 4#
5d3bb220 5# "config -h" for usage information.
58964a49 6#
5d3bb220
UM
7# this is a merge of minarch and GuessOS from the Apache Group.
8# Originally written by Tim Hudson <tjh@cryptsoft.com>.
58964a49
RE
9
10# Original Apache Group comments on GuessOS
11
12# Simple OS/Platform guesser. Similar to config.guess but
13# much, much smaller. Since it was developed for use with
14# Apache, it follows under Apache's regular licensing
15# with one specific addition: Any changes or additions
16# to this script should be Emailed to the Apache
17# group (apache@apache.org) in general and to
18# Jim Jagielski (jim@jaguNET.com) in specific.
19#
20# Be as similar to the output of config.guess/config.sub
21# as possible.
22
23# First get uname entries that we use below
24
25MACHINE=`(uname -m) 2>/dev/null` || MACHINE="unknown"
26RELEASE=`(uname -r) 2>/dev/null` || RELEASE="unknown"
27SYSTEM=`(uname -s) 2>/dev/null` || SYSTEM="unknown"
28VERSION=`(uname -v) 2>/dev/null` || VERSION="unknown"
29
58964a49
RE
30# Now test for ISC and SCO, since it is has a braindamaged uname.
31#
32# We need to work around FreeBSD 1.1.5.1
33(
34XREL=`uname -X 2>/dev/null | grep "^Release" | awk '{print $3}'`
35if [ "x$XREL" != "x" ]; then
36 if [ -f /etc/kconfig ]; then
37 case "$XREL" in
38 4.0|4.1)
39 echo "${MACHINE}-whatever-isc4"; exit 0
40 ;;
41 esac
42 else
43 case "$XREL" in
44 3.2v4.2)
45 echo "whatever-whatever-sco3"; exit 0
46 ;;
47 3.2v5.0*)
48 echo "whatever-whatever-sco5"; exit 0
49 ;;
50 4.2MP)
51 if [ "x$VERSION" = "x2.1.1" ]; then
52 echo "${MACHINE}-whatever-unixware211"; exit 0
53 else
54 echo "${MACHINE}-whatever-unixware2"; exit 0
55 fi
56 ;;
57 4.2)
58 echo "whatever-whatever-unixware1"; exit 0
59 ;;
60 esac
61 fi
62fi
63# Now we simply scan though... In most cases, the SYSTEM info is enough
64#
65case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
66 A/UX:*)
67 echo "m68k-apple-aux3"; exit 0
68 ;;
69
70 AIX:*)
71 echo "${MACHINE}-ibm-aix"; exit 0
72 ;;
73
74 dgux:*)
75 echo "${MACHINE}-dg-dgux"; exit 0
76 ;;
77
78 HI-UX:*)
79 echo "${MACHINE}-hi-hiux"; exit 0
80 ;;
81
82 HP-UX:*)
83 HPUXVER=`echo ${RELEASE}|sed -e 's/[^.]*.[0B]*//'`
84 case "$HPUXVER" in
85 10.*)
86 echo "${MACHINE}-hp-hpux10."; exit 0
87 ;;
88 *)
89 echo "${MACHINE}-hp-hpux"; exit 0
90 ;;
91 esac
92 ;;
93
94 IRIX:*)
95 echo "${MACHINE}-sgi-irix"; exit 0
96 ;;
97
98 IRIX64:*)
99 echo "${MACHINE}-sgi-irix64"; exit 0
100 ;;
101
102 Linux:[2-9].*)
103 echo "${MACHINE}-whatever-linux2"; exit 0
104 ;;
105
106 Linux:1.*)
107 echo "${MACHINE}-whatever-linux1"; exit 0
108 ;;
109
110 LynxOS:*)
111 echo "${MACHINE}-lynx-lynxos"; exit 0
112 ;;
113
114 BSD/386:*:*:*486*|BSD/OS:*:*:*:*486*)
115 echo "i486-whatever-bsdi"; exit 0
116 ;;
117
118 BSD/386:*|BSD/OS:*)
119 echo "${MACHINE}-whatever-bsdi"; exit 0
120 ;;
121
5dcdcd47
BL
122 FreeBSD:3*:*:*)
123 echo "${MACHINE}-whatever-freebsd3"; exit 0
124 ;;
125
c6fdd7dc
UM
126 FreeBSD:*:*:*386*)
127 case `sysctl -n hw.model` in
128 Pentium*)
129 echo "i586-whatever-freebsd"; exit 0
130 ;;
131 *)
132 echo "i386-whatever-freebsd"; exit 0
133 ;;
134 esac;
58964a49
RE
135 ;;
136
137 FreeBSD:*)
138 echo "${MACHINE}-whatever-freebsd"; exit 0
139 ;;
140
c6fdd7dc
UM
141 NetBSD:*:*:*386*)
142 echo "`sysctl -n hw.model | sed 's,.*\(.\)86-class.*,i\186,'`-whateve\r-netbsd"; exit 0
58964a49
RE
143 ;;
144
145 NetBSD:*)
146 echo "${MACHINE}-whatever-netbsd"; exit 0
147 ;;
148
149 OpenBSD:*)
150 echo "${MACHINE}-whatever-openbsd"; exit 0
151 ;;
152
153 OSF1:*:*:*alpha*)
154 echo "${MACHINE}-dec-osf"; exit 0
155 ;;
156
157 QNX:*)
158 case "$VERSION" in
159 423)
160 echo "${MACHINE}-qssl-qnx32"
161 ;;
162 *)
163 echo "${MACHINE}-qssl-qnx"
164 ;;
165 esac
166 exit 0
167 ;;
168
169 Paragon*:*:*:*)
170 echo "i860-intel-osf1"; exit 0
171 ;;
172
173 SunOS:5.*)
174 echo "${MACHINE}-sun-solaris2"; exit 0
175 ;;
176
177 SunOS:*)
178 echo "${MACHINE}-sun-sunos4"; exit 0
179 ;;
180
181 UNIX_System_V:4.*:*)
182 echo "${MACHINE}-whatever-sysv4"; exit 0
183 ;;
184
185 *:4*:R4*:m88k)
186 echo "${MACHINE}-whatever-sysv4"; exit 0
187 ;;
188
189 DYNIX/ptx:4*:*)
190 echo "${MACHINE}-whatever-sysv4"; exit 0
191 ;;
192
193 *:4.0:3.0:3[34]?? | *:4.0:3.0:3[34]??,*)
194 echo "i486-ncr-sysv4"; exit 0
195 ;;
196
197 ULTRIX:*)
198 echo "${MACHINE}-unknown-ultrix"; exit 0
199 ;;
200
201 SINIX*)
202 echo "${MACHINE}-sni-sysv4"; exit 0
203 ;;
204
205 machten:*)
206 echo "${MACHINE}-tenon-${SYSTEM}"; exit 0;
207 ;;
208
209 library:*)
210 echo "${MACHINE}-ncr-sysv4"; exit 0
211 ;;
212
213 ConvexOS:*:11.0:*)
214 echo "${MACHINE}-v11-${SYSTEM}"; exit 0;
215 ;;
216
217esac
218
219#
220# Ugg. These are all we can determine by what we know about
221# the output of uname. Be more creative:
222#
223
224# Do the Apollo stuff first. Here, we just simply assume
225# that the existance of the /usr/apollo directory is proof
226# enough
227if [ -d /usr/apollo ]; then
228 echo "whatever-apollo-whatever"
229 exit 0
230fi
231
232# Now NeXT
233ISNEXT=`hostinfo 2>/dev/null`
234case "$ISNEXT" in
235 *NeXT*)
236 echo "whatever-next-nextstep"; exit 0
237 ;;
238esac
239
240# At this point we gone through all the one's
241# we know of: Punt
242
243echo "${MACHINE}-whatever-${SYSTEM}|${RELEASE}|${VERSION}"
244exit 0
245) 2>/dev/null | (
246
247# ---------------------------------------------------------------------------
248# this is where the translation occurs into SSLeay terms
249# ---------------------------------------------------------------------------
250
251PREFIX=""
252SUFFIX=""
253VERBOSE="false"
254TEST="false"
255
256# pick up any command line args to config
257for i
258do
259case "$i" in
260-d*) PREFIX="debug-";;
261-v*) VERBOSE="true";;
dfeab068 262-t*) TEST="true";;
5d3bb220
UM
263-h*) TEST="true"; cat <<EOF
264Usage: config [options]
dfeab068
RE
265 -d Add a debug- prefix to machine choice.
266 -v Verbose mode.
267 -t Test mode, do not run the Configure perl script.
268 -h This help.
269
71308064 270Any other text will be passed to the Configure perl script.
462ba4f6 271See INSTALL for instructions.
dfeab068 272
dfeab068
RE
273EOF
274;;
275*) options=$options" $i" ;;
58964a49
RE
276esac
277done
278
279# figure out if gcc is available and if so we use it otherwise
280# we fallback to whatever cc does on the system
44a25707 281GCCVER=`(gcc -v) 2>&1`
58964a49
RE
282if [ $? = "0" ]; then
283 CC=gcc
284else
285 CC=cc
286fi
287
288# read the output of the embedded GuessOS
289read GUESSOS
290
291if [ "$VERBOSE" = "true" ]; then
292 echo GUESSOS $GUESSOS
293fi
294
295# now map the output into SSLeay terms ... really should hack into the
296# script above so we end up with values in vars but that would take
297# more time that I want to waste at the moment
298case "$GUESSOS" in
dfeab068 299 alpha-*-linux2) OUT="alpha-gcc" ;;
ba423add 300 ppc-*-linux2) OUT="linux-ppc" ;;
58964a49 301 *-*-linux2) OUT="linux-elf" ;;
dabba110 302 *-*-linux1) OUT="linux-aout" ;;
58964a49
RE
303 sun4*-sun-solaris2) OUT="solaris-sparc-$CC" ;;
304 *86*-sun-solaris2) OUT="solaris-x86-$CC" ;;
305 *-*-sunos4) OUT="sunos-$CC" ;;
5dcdcd47 306 *-freebsd3) OUT="FreeBSD-elf" ;;
58964a49
RE
307 *-freebsd) OUT="FreeBSD" ;;
308 *86*-*-netbsd) OUT="NetBSD-x86" ;;
309 sun3*-*-netbsd) OUT="NetBSD-m68" ;;
310 *-*-netbsd) OUT="NetBSD-sparc" ;;
dfeab068
RE
311 *86*-*-openbsd) OUT="OpenBSD-x86" ;;
312 alpha*-*-openbsd) OUT="OpenBSD-alpha" ;;
313 pmax*-*-openbsd) OUT="OpenBSD-mips" ;;
314 *-*-openbsd) OUT="OpenBSD" ;;
315 *-*-osf) OUT="alpha-cc" ;;
58964a49
RE
316 *-*-unixware*) OUT="unixware-2.0" ;;
317 *-sni-sysv4) OUT="SINIX" ;;
dfeab068 318 *-hpux*) OUT="hpux-$CC" ;;
58964a49 319 # these are all covered by the catchall below
58964a49
RE
320 # *-aix) OUT="aix-$CC" ;;
321 # *-dgux) OUT="dgux" ;;
322 *) OUT=`echo $GUESSOS | awk -F- '{print $3}'`;;
5d3bb220
UM
323esac
324
325case "$GUESSOS" in
326 i386-*) options="$options 386" ;;
58964a49
RE
327esac
328
329if [ -z "$OUT" ]; then
330 OUT="$CC"
331fi
332
99aab161
UM
333if [ ".$PERL" = . ] ; then
334 for i in . `echo $PATH | sed 's/:/ /g'`; do
335 if [ -f "$i/perl5" ] ; then
336 PERL="$i/perl5"
337 break;
338 fi;
339 done
340fi
341
342if [ ".$PERL" = . ] ; then
343 for i in . `echo $PATH | sed 's/:/ /g'`; do
344 if [ -f "$i/perl" ] ; then
a5a47e4a
UM
345 if "$i/perl" -e 'exit($]<5.0)'; then
346 PERL="$i/perl"
347 break;
348 fi;
99aab161
UM
349 fi;
350 done
351fi
352
a5a47e4a 353if [ ".$PERL" = . ] ; then
99aab161
UM
354 echo "You need Perl 5."
355 exit 1
356fi
357
58964a49
RE
358# run Configure to check to see if we need to specify the
359# compiler for the platform ... in which case we add it on
360# the end ... otherwise we leave it off
99aab161
UM
361
362$PERL ./Configure 2>&1 | grep "$OUT-$CC" > /dev/null
58964a49
RE
363if [ $? = "0" ]; then
364 OUT="$OUT-$CC"
365fi
366
367OUT="$PREFIX$OUT"
368
369# at this point we have the answer ... which we could check again
370# and then fallback to a vanilla SSLeay build but then this script
371# wouldn't get updated
372echo Configuring for $OUT
373
374if [ "$TEST" = "true" ]; then
99aab161 375 echo $PERL ./Configure $OUT $options
58964a49 376else
99aab161 377 $PERL ./Configure $OUT $options
58964a49
RE
378fi
379
380)
381