Formerly ../configure.in.~16~
[kopensolaris-gnu/glibc.git] / configure.in
1 dnl Autoconf sets the quotes to [ and ], which hoses shell commands.
2 dnl We get rid of the quotes altogether, and turn them on for AC_*.
3 changequote(,)dnl
4 #! /bin/sh
5
6 # Configuration script for the GNU C Library.
7 dnl You can ignore the following line if you are reading this sentence.
8 # DO NOT EDIT!  This script is generated from configure.in; edit that instead.
9
10 # Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc.
11 # This file is part of the GNU C Library.
12
13 # The GNU C Library is free software; you can redistribute it and/or
14 # modify it under the terms of the GNU Library General Public License as
15 # published by the Free Software Foundation; either version 2 of the
16 # License, or (at your option) any later version.
17
18 # The GNU C Library is distributed in the hope that it will be useful,
19 # but WITHOUT ANY WARRANTY; without even the implied warranty of
20 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
21 # Library General Public License for more details.
22
23 # You should have received a copy of the GNU Library General Public
24 # License along with the GNU C Library; see the file COPYING.LIB.  If
25 # not, write to the Free Software Foundation, Inc., 675 Mass Ave,
26 # Cambridge, MA 02139, USA.
27
28 #
29 #       Configure the GNU C Library.
30 #
31
32 prog="`basename $0`"
33
34 if [ $# -eq 0 -a "${ARCH-${machine}}" != "" ]; then
35   set "${ARCH-${machine}}"
36 fi
37
38 # All the standard GNU configure options are accepted but only
39 # --nfp, --with-gnu-ld, and --with-gnu-as are meaningful.
40 nfp=
41 gnu_ld=
42 gnu_as=
43 version=
44 release=
45 prefix=
46 exec_prefix=
47
48 lose=
49 for arg in $*; do
50   if [ x$next != x ]; then
51     eval "$next = \$arg"
52     next=
53   else
54     case $arg in
55      -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=* | --s=*)
56         srcdir=`echo $arg | sed 's/-*s[a-z]*=//'`
57         ;;
58      -srcdir | --srcdir | --srcdi | --srcd | --src | --sr | --s)
59         next=srcdir
60         ;;
61      -target | --target | --targe | --targ | --tar | --ta | --t)
62         next=target
63         ;;
64      -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
65         target=`echo $arg | sed 's/-*t[a-z]*=//'`
66         ;; 
67
68      -with-gnu-ld | --with-gnu-ld | --with-gnu-l)
69         gnu_ld=--with-gnu-ld
70         ;;
71
72      -gas | --gas | --ga | --g | -with-gnu-as | --with-gnu-as | -with-gnu-a)
73         gnu_as=--with-gnu-as
74         ;;
75
76      -nfp | --nfp | --nf | --n)
77         nfp=--nfp
78         ;;
79
80      -with-* | --with-*)
81        ;; # ignored
82
83      -x | --x)
84        ;; # ignored
85
86      -os-release=* | -os-releas=* | -os-relea=* | -os-rele=* | -os-rel=* \
87      | -os-re=* | -os-r=* | --os-release=* | --os-releas=* | --os-relea=* \
88      | --os-rele=* | --os-rel=* | --os-re=* | --os-r=*)
89        release=`echo $arg | sed 's/-*os-r[a-z]*=//'`
90        ;;
91      -os-release | -os-releas | -os-relea | -os-rele | -os-rel \
92      | -os-re | -os-r | --os-release | --os-releas | --os-relea \
93      | --os-rele | --os-rel | --os-re | --os-r)
94        next=release
95        ;;
96
97      -os-version=* | -os-versio=* | -os-versi=* | -os-vers=* | -os-ver=* \
98      | -os-ver=* | -os-ve=* | -os-v=* | --os-version=* | --os-versio=* \
99      | --os-versi=* | --os-vers=* | --os-ver=* | --os-ver=* | --os-ve=* \
100      | --os-v=*)
101        version=`echo $arg | sed 's/-*os-v[a-z]*=//'`
102        ;;
103      -os-version | -os-versio | -os-versi | -os-vers | -os-ver \
104      | -os-ver | -os-ve | -os-v |--os-version | --os-versio \
105      | --os-versi | --os-vers | --os-ver | --os-ver | --os-ve | --os-v)
106        next=version
107        ;;
108
109      # For backward compatibility, also recognize exact --exec_prefix.
110      -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* | --exec=* | --exe=* | --ex=* | --e=*)
111         exec_prefix=`echo $arg | sed 's/[-a-z_]*=//'`
112         ;;
113      -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- | --exec | --exe | --ex | --e)
114         next=exec_prefix
115         ;;
116
117      -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
118         prefix=`echo $arg | sed 's/[-a-z_]*=//'`
119         ;;
120      -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
121         next=prefix
122         ;;
123
124      -*)
125         echo "Invalid option \`$arg'" 1>&2
126         lose=yes
127         ;;
128      *)
129         if [ ! "$target" ]; then
130           target=$arg
131         else
132           lose=yes
133         fi
134         ;;
135     esac
136   fi
137 done
138
139 # NEXT will be set iff we have seen an option that wants an arg, but no arg.
140 if [ "$next" ]; then
141   echo "$0: the \`--${next}' option requires an argument" >&2
142   lose=yes
143 fi
144
145 if [ "$lose" = yes -o ! "$target" ]; then
146   echo "Usage: $prog [--srcdir=DIR] [--nfp] [--with-gnu-ld] TARGET" >&2
147   if [ -r config.status ]; then
148     cat config.status >&2
149   fi
150   exit 1
151 fi
152
153 dnl This deals with setting srcdir if it needs to be set.
154 changequote([,])
155 AC_PREPARE(features.h)
156 changequote(,)
157
158 # Canonicalize the configuration name.
159 config=`$srcdir/config.sub $target`
160 if [ ! "$config" ]; then
161   # config.sub has written an error message.
162   exit 1
163 fi
164
165 sysdep_dir=$srcdir/sysdeps
166
167 # machine-vendor-os
168 eval "`echo $config | \
169        sed 's/^\(.*\)-\(.*\)-\(.*\)$/machine=\1 vendor=\2 os=\3/'`"
170
171 case "$os" in
172 gnu*)
173   os=mach/hurd ;;
174 sunos* | ultrix* | newsos* | dynix* | bsd*)
175   base_os=unix/bsd ;;
176 linux* | sysv* | isc* | esix* | sco* | minix*)
177   base_os=unix/sysv ;;
178 esac
179
180 case "$os" in
181 gnu* | linux*)
182   gnu_ld=--with-gnu-ld
183   gnu_as=--with-gnu-as
184 esac
185
186 # For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
187 tail=$os
188 ostry=$os
189 while o=`echo $tail | sed 's/\.[^.]*$//'`; [ $o != $tail ]; do
190   ostry="$ostry /$o"
191   tail=$o
192 done  
193 o=`echo $tail | sed 's/[0-9]*$//'`
194 if [ $o != $tail ]; then
195   ostry="$ostry /$o"
196 fi
197
198 # For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
199 base=
200 tail=$base_os
201 while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; [ "$b" ]; do
202   set $b
203   base="$base /$1"
204   tail="$2"
205 done
206
207 # Find what sysdep directories exist.
208 sysnames=
209 for b in $base ''; do
210   for v in /$vendor ''; do
211     for o in /$ostry ''; do
212       for m in /$machine ''; do
213         if [ -d $sysdep_dir$b$v$o$m ]; then
214           sysnames="$sysnames $b$v$o$m"
215           [ "$o" -o "$b" ] && os_used=t
216           [ "$m" ] && machine_used=t
217         fi
218       done
219     done
220   done
221 done
222
223 if [ ! "$os_used" -a "$os" != none ]; then
224   echo Operating system $os is not supported. >&2
225   exit 1
226 fi
227 if [ ! "$machine_used" -a "$machine" != none ]; then
228   echo The $machine is not supported. >&2
229   exit 1
230 fi
231
232 # Uniquize the list.
233 seen=
234 for name in $sysnames; do
235   if echo "$seen" | fgrep -x $name >/dev/null; then
236     # Already in the list.
237     true;
238   else
239     # A new one.
240     if [ "$seen" = "" ]; then
241       seen="$name"
242     else
243       seen="$seen
244 $name"
245     fi
246   fi
247 done
248 sysnames="$seen"
249
250 # We have now validated the configuration.
251
252 # This will get text that should go into config.make.
253 config_vars=
254
255 changequote([,])
256 AC_PROG_INSTALL
257 AC_PROG_RANLIB
258
259 AC_PROG_CC
260 AC_PROG_CPP
261 echo checking for signed size_t type
262 echo '#include <stddef.h>
263 FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
264 eval "$CPP conftest.c 2>/dev/null" \
265 | grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null \
266 || AC_DEFINE(__SIZE_TYPE__, unsigned long int)
267 rm -f conftest*
268
269 AC_HEADER_EGREP(__gnuc_va_list, stdarg.h, [config_vars="$config_vars
270 stdarg.h = # The installed <stdarg.h> defines __gnuc_va_list."])
271
272 # Find out what this system calls `sys_siglist'.
273 AC_HAVE_FUNCS(sys_siglist _sys_siglist)
274
275 # Find out the name of the table the system's <ctype.h> uses for character
276 # classification.  This is used by sysdeps/unix/common/glue-ctype.c.
277 AC_HAVE_FUNCS(_ctype_ __ctype_ __ctype _ctype__)
278 changequote(,)
279
280 sysnames="`echo $sysnames | sed -e 's@^/@@' -e 's@ /@ @g'`"
281
282 if [ ! "$nfp" -a -d $sysdep_dir/$machine/fpu ]; then
283   sysnames="${machine}/fpu $sysnames"
284 fi
285
286 rm -f sysdirs
287 echo $sysnames > Sysnames
288
289 cat - Sysnames <<END
290 Configuring the GNU C Library for \`${config}'.
291 Using system-dependent files from directories:
292 END
293
294 export sysdep_dir
295 for dir in `$srcdir/find-sysdirs < Sysnames`; do
296   if [ -r $sysdep_dir/$dir/uname.c -o -r $sysdep_dir/$dir/uname.S ]; then
297     uname=$dir
298     break
299   fi
300 done
301 if [ $uname = generic ]; then
302   kernel_release=
303   kernel_version=
304
305   if [ ! "$release" -o ! "$version" ]; then
306     if [ -r /vmunix ]; then
307       kernel_id=`strings /vmunix | grep UNIX`
308     elif [ -r /dynix ]; then
309       kernel_id=`strings /dynix | grep DYNIX`
310     else
311       kernel_id=
312     fi
313     if [ "$kernel_id" ]; then
314       kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
315       kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
316     fi
317   fi
318
319   sysname=`echo $os | sed 's/[0-9.]*$//'`
320   if [ $sysname != $os ]; then
321     config_release=`echo $os | sed s/$sysname//`
322   fi
323
324   if [ "$release" ]; then
325     # All is well.
326     true
327   elif [ x`echo "$config_release" | sed "s/^$kernel_release//"` \
328          != x$config_release ]; then
329     # The configuration release is a substring of the kernel release.
330     release=$kernel_release
331   elif [ x$config_release != x ]; then
332     release=$config_release
333   elif [ x$kernel_release != x ]; then
334     release=$kernel_release
335   else
336     cat <<END
337 I don't know what release of $sysname you are using.  Please enter the
338 release number now.  This information is used only for the \`uname' function,
339 so it is not critical.
340 END
341     read release
342     if [ ! "$release" ]; then
343       release=unknown
344     fi
345   fi
346
347   if [ "$version" ]; then
348     # All is well.
349     true
350   elif [ ! "$kernel_version" ]; then
351     cat <<END
352 I don't know what version of $sysname $release you are using.  Please enter
353 the version number now.  This information is used only for the uname
354 function, so it is not critical.
355 END
356     read version
357     if [ ! "$version" ]; then
358       version=unknown
359     fi
360   else
361     version=$kernel_version
362   fi
363
364   cat > config-name.h <<END
365 /* This file was generated automatically by configure.  Do not edit.
366    This is used by the generic uname function.  */
367 #define UNAME_SYSNAME "${sysname}"
368 #define UNAME_RELEASE "${release}"
369 #define UNAME_VERSION "${version}"
370 #define UNAME_MACHINE "${machine}-${vendor}"
371 END
372
373   system_name="$sysname $release version $version on $vendor $machine"
374 else
375   # Not generic uname.  We don't need config-name.h at all.
376   system_name=$config
377 fi
378
379 if [ "$gnu_ld" ]; then
380   DEFS="$DEFS -DHAVE_GNU_LD"
381 fi
382 if [ "$gnu_as" ]; then
383   DEFS="$DEFS -DHAVE_GNU_AS"
384 fi
385
386 (
387   echo '# This file was generated automatically by configure.  Do not edit.'
388   echo '# Put configuration parameters in configparms instead.'
389   echo "config-machine = ${machine}"
390   echo "config-vendor = ${vendor}"
391   echo "config-os = ${os}"
392   if [ "$prefix" ]; then
393     echo "prefix = ${prefix}"
394   fi
395   if [ "$exec_prefix" ]; then
396     echo "exec_prefix = ${exec_prefix}"
397   fi
398   echo "config-defines = ${DEFS}"
399   for var in INSTALL INSTALL_PROGRAM INSTALL_DATA RANLIB; do
400     eval "echo \"${var} = \${$var}\""
401   done
402   echo "$config_vars"
403 ) > config.make
404
405 switches=
406 if [ "$gnu_as" ]; then
407   switches="$switches --with-gnu-as"
408 fi
409 if [ "$gnu_ld" ]; then
410   switches="$switches --with-gnu-ld"
411 fi
412 if [ "$exec_prefix" ]; then
413   switches="$switches --exec_prefix=$exec_prefix"
414 fi
415 if [ "$prefix" ]; then
416   switches="$switches --prefix=$prefix"
417 fi
418 if [ "$release" ]; then
419   switches="$switches --os-release='$release'"
420 fi
421 if [ "$version" ]; then
422   switches="$switches --os-version='$version'"
423 fi
424
425 cat > config.status <<END
426 #!/bin/sh
427 # This file was generated automatically by configure.  Do not edit.
428 # The GNU C library was configured in `pwd` for
429 # $system_name as follows:
430 $0 $config --srcdir=$srcdir $switches
431 END
432
433 if [ $srcdir != . ]; then
434   if [ $srcdir = .. ]; then
435     cwd=`pwd`
436     objdir=`basename $cwd`
437   else
438     objdir=`pwd`
439   fi
440   cat > Makefile <<END
441 # This file was generated automatically by configure.  Do not edit.
442 srcdir = $srcdir
443
444 all .DEFAULT:
445         \$(MAKE) -C \$(srcdir) ARCH=$objdir \$@
446 END
447
448 echo "# Wrote Makefile in `pwd`." >> config.status
449 fi
450 chmod a+x config.status
451
452 exit 0
453 dnl This gets rid of the random stuff autoconf has stuffed in weird places.
454 divert(-1)dnl AC_This is here so I can search for `AC_' to find the frobs.
455 dnl Local Variables:
456 dnl compile-command: "m4 /gd/gnu/autoconf/acgeneral.m4 /gd/gnu/autoconf/acspecific.m4 configure.in > configure && chmod a+x configure"
457 dnl End: