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