]> git.ipfire.org Git - thirdparty/openssl.git/blob - config
gcc < 2.8 does not support ultrasparc.
[thirdparty/openssl.git] / config
1 #!/bin/sh
2 #
3 # OpenSSL config: determine the operating system and run ./Configure
4 #
5 # "config -h" for usage information.
6 #
7 # this is a merge of minarch and GuessOS from the Apache Group.
8 # Originally written by Tim Hudson <tjh@cryptsoft.com>.
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
25 MACHINE=`(uname -m) 2>/dev/null` || MACHINE="unknown"
26 RELEASE=`(uname -r) 2>/dev/null` || RELEASE="unknown"
27 SYSTEM=`(uname -s) 2>/dev/null` || SYSTEM="unknown"
28 VERSION=`(uname -v) 2>/dev/null` || VERSION="unknown"
29
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 (
34 XREL=`uname -X 2>/dev/null | grep "^Release" | awk '{print $3}'`
35 if [ "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
62 fi
63 # Now we simply scan though... In most cases, the SYSTEM info is enough
64 #
65 case "${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 11.*)
86 echo "${MACHINE}-hp-hpux11"; exit 0
87 ;;
88 10.*)
89 echo "${MACHINE}-hp-hpux10"; exit 0
90 ;;
91 *)
92 echo "${MACHINE}-hp-hpux"; exit 0
93 ;;
94 esac
95 ;;
96
97 IRIX:*)
98 echo "${MACHINE}-sgi-irix"; exit 0
99 ;;
100
101 IRIX64:*)
102 echo "${MACHINE}-sgi-irix64"; exit 0
103 ;;
104
105 Linux:[2-9].*)
106 echo "${MACHINE}-whatever-linux2"; exit 0
107 ;;
108
109 Linux:1.*)
110 echo "${MACHINE}-whatever-linux1"; exit 0
111 ;;
112
113 LynxOS:*)
114 echo "${MACHINE}-lynx-lynxos"; exit 0
115 ;;
116
117 BSD/386:*:*:*486*|BSD/OS:*:*:*:*486*)
118 echo "i486-whatever-bsdi"; exit 0
119 ;;
120
121 BSD/386:*|BSD/OS:*)
122 echo "${MACHINE}-whatever-bsdi"; exit 0
123 ;;
124
125 FreeBSD:3*:*:*)
126 echo "${MACHINE}-whatever-freebsd3"; exit 0
127 ;;
128
129 FreeBSD:*:*:*386*)
130 case `sysctl -n hw.model` in
131 Pentium*)
132 echo "i586-whatever-freebsd"; exit 0
133 ;;
134 *)
135 echo "i386-whatever-freebsd"; exit 0
136 ;;
137 esac;
138 ;;
139
140 FreeBSD:*)
141 echo "${MACHINE}-whatever-freebsd"; exit 0
142 ;;
143
144 NetBSD:*:*:*386*)
145 echo "`sysctl -n hw.model | sed 's,.*\(.\)86-class.*,i\186,'`-whateve\r-netbsd"; exit 0
146 ;;
147
148 NetBSD:*)
149 echo "${MACHINE}-whatever-netbsd"; exit 0
150 ;;
151
152 OpenBSD:*)
153 echo "${MACHINE}-whatever-openbsd"; exit 0
154 ;;
155
156 OSF1:*:*:*alpha*)
157 echo "${MACHINE}-dec-osf"; exit 0
158 ;;
159
160 QNX:*)
161 case "$VERSION" in
162 423)
163 echo "${MACHINE}-qssl-qnx32"
164 ;;
165 *)
166 echo "${MACHINE}-qssl-qnx"
167 ;;
168 esac
169 exit 0
170 ;;
171
172 Paragon*:*:*:*)
173 echo "i860-intel-osf1"; exit 0
174 ;;
175
176 SunOS:5.*)
177 echo "${MACHINE}-sun-solaris2"; exit 0
178 ;;
179
180 SunOS:*)
181 echo "${MACHINE}-sun-sunos4"; exit 0
182 ;;
183
184 UNIX_System_V:4.*:*)
185 echo "${MACHINE}-whatever-sysv4"; exit 0
186 ;;
187
188 *:4*:R4*:m88k)
189 echo "${MACHINE}-whatever-sysv4"; exit 0
190 ;;
191
192 DYNIX/ptx:4*:*)
193 echo "${MACHINE}-whatever-sysv4"; exit 0
194 ;;
195
196 *:4.0:3.0:3[34]?? | *:4.0:3.0:3[34]??,*)
197 echo "i486-ncr-sysv4"; exit 0
198 ;;
199
200 ULTRIX:*)
201 echo "${MACHINE}-unknown-ultrix"; exit 0
202 ;;
203
204 SINIX*)
205 echo "${MACHINE}-sni-sysv4"; exit 0
206 ;;
207
208 machten:*)
209 echo "${MACHINE}-tenon-${SYSTEM}"; exit 0;
210 ;;
211
212 library:*)
213 echo "${MACHINE}-ncr-sysv4"; exit 0
214 ;;
215
216 ConvexOS:*:11.0:*)
217 echo "${MACHINE}-v11-${SYSTEM}"; exit 0;
218 ;;
219
220 esac
221
222 #
223 # Ugg. These are all we can determine by what we know about
224 # the output of uname. Be more creative:
225 #
226
227 # Do the Apollo stuff first. Here, we just simply assume
228 # that the existance of the /usr/apollo directory is proof
229 # enough
230 if [ -d /usr/apollo ]; then
231 echo "whatever-apollo-whatever"
232 exit 0
233 fi
234
235 # Now NeXT
236 ISNEXT=`hostinfo 2>/dev/null`
237 case "$ISNEXT" in
238 *NeXT*)
239 echo "whatever-next-nextstep"; exit 0
240 ;;
241 esac
242
243 # At this point we gone through all the one's
244 # we know of: Punt
245
246 echo "${MACHINE}-whatever-${SYSTEM}"
247 exit 0
248 ) 2>/dev/null | (
249
250 # ---------------------------------------------------------------------------
251 # this is where the translation occurs into SSLeay terms
252 # ---------------------------------------------------------------------------
253
254 PREFIX=""
255 SUFFIX=""
256 TEST="false"
257
258 # pick up any command line args to config
259 for i
260 do
261 case "$i" in
262 -d*) PREFIX="debug-";;
263 -t*) TEST="true";;
264 -h*) TEST="true"; cat <<EOF
265 Usage: config [options]
266 -d Add a debug- prefix to machine choice.
267 -t Test mode, do not run the Configure perl script.
268 -h This help.
269
270 Any other text will be passed to the Configure perl script.
271 See INSTALL for instructions.
272
273 EOF
274 ;;
275 *) options=$options" $i" ;;
276 esac
277 done
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
281 GCCVER=`(gcc -v) 2>&1`
282 if [ $? = "0" ]; then
283 CC=gcc
284 else
285 CC=cc
286 if [ "$SYSTEM" = "SunOS" ]
287 then
288 case `cc -V 2>&1` in
289 *4*) CC=sc4;;
290 *5*) CC=sc5;;
291 *) CC=cc;;
292 esac
293 fi
294 fi
295
296 # read the output of the embedded GuessOS
297 read GUESSOS
298
299 echo Operating system: $GUESSOS
300
301 # now map the output into SSLeay terms ... really should hack into the
302 # script above so we end up with values in vars but that would take
303 # more time that I want to waste at the moment
304 case "$GUESSOS" in
305 alpha-*-linux2) OUT="alpha-gcc" ;;
306 ppc-*-linux2) OUT="linux-ppc" ;;
307 *-*-linux2) OUT="linux-elf" ;;
308 *-*-linux1) OUT="linux-aout" ;;
309 sun4u-sun-solaris2) OUT="solaris-usparc-$CC" ;;
310 sun4*-sun-solaris2) OUT="solaris-sparc-$CC" ;;
311 *86*-sun-solaris2) OUT="solaris-x86-$CC" ;;
312 *-*-sunos4) OUT="sunos-$CC" ;;
313 alpha*-*-freebsd3) OUT="FreeBSD-alpha" ;;
314 *-freebsd3) OUT="FreeBSD-elf" ;;
315 *-freebsd) OUT="FreeBSD" ;;
316 *86*-*-netbsd) OUT="NetBSD-x86" ;;
317 sun3*-*-netbsd) OUT="NetBSD-m68" ;;
318 *-*-netbsd) OUT="NetBSD-sparc" ;;
319 *86*-*-openbsd) OUT="OpenBSD-x86" ;;
320 alpha*-*-openbsd) OUT="OpenBSD-alpha" ;;
321 pmax*-*-openbsd) OUT="OpenBSD-mips" ;;
322 *-*-openbsd) OUT="OpenBSD" ;;
323 *-*-osf) OUT="alpha-cc" ;;
324 *-*-unixware*) OUT="unixware-2.0" ;;
325 *-sni-sysv4) OUT="SINIX" ;;
326 # these are all covered by the catchall below
327 # *-hpux*) OUT="hpux-$CC" ;;
328 # *-aix) OUT="aix-$CC" ;;
329 # *-dgux) OUT="dgux" ;;
330 *) OUT=`echo $GUESSOS | awk -F- '{print $3}'`;;
331 esac
332
333 # gcc < 2.8 does not support -mcpu=ultrasparc
334 if [ "$OUT" = solaris-usparc-gcc ]
335 then
336 if [ `echo "$GCCVER" | sed 's/.*version //;s/\.//;s/\..*//'` -lt 28 ]
337 then
338 OUT=solaris-sparc-gcc
339 fi
340 fi
341
342 case "$GUESSOS" in
343 i386-*) options="$options 386" ;;
344 esac
345
346 if [ -z "$OUT" ]; then
347 OUT="$CC"
348 fi
349
350 if [ ".$PERL" = . ] ; then
351 for i in . `echo $PATH | sed 's/:/ /g'`; do
352 if [ -f "$i/perl5" ] ; then
353 PERL="$i/perl5"
354 break;
355 fi;
356 done
357 fi
358
359 if [ ".$PERL" = . ] ; then
360 for i in . `echo $PATH | sed 's/:/ /g'`; do
361 if [ -f "$i/perl" ] ; then
362 if "$i/perl" -e 'exit($]<5.0)'; then
363 PERL="$i/perl"
364 break;
365 fi;
366 fi;
367 done
368 fi
369
370 if [ ".$PERL" = . ] ; then
371 echo "You need Perl 5."
372 exit 1
373 fi
374
375 # run Configure to check to see if we need to specify the
376 # compiler for the platform ... in which case we add it on
377 # the end ... otherwise we leave it off
378
379 $PERL ./Configure 2>&1 | grep "$OUT-$CC" > /dev/null
380 if [ $? = "0" ]; then
381 OUT="$OUT-$CC"
382 fi
383
384 OUT="$PREFIX$OUT"
385
386 $PERL ./Configure 2>&1 | grep "$OUT" > /dev/null
387 if [ $? = "0" ]; then
388 echo Configuring for $OUT
389
390 if [ "$TEST" = "true" ]; then
391 echo $PERL ./Configure $OUT $options
392 else
393 $PERL ./Configure $OUT $options
394 fi
395 else
396 echo "This system ($OUT) is not supported. See file INSTALL for details."
397 fi
398 )