Formerly ../configure.in.~14~
[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   if [ ! "$release" -o ! "$version" ] && [ -r /vmunix ]; then
303     kernel_id=`strings /vmunix | grep UNIX`
304     kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
305     kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
306   else
307     kernel_release=
308     kernel_version=
309   fi
310
311   sysname=`echo $os | sed 's/[0-9.]*$//'`
312   if [ $sysname != $os ]; then
313     config_release=`echo $os | sed s/$sysname//`
314   fi
315
316   if [ "$release" ]; then
317     # All is well.
318     true
319   elif [ x`echo "$config_release" | sed "s/^$kernel_release//"` \
320          != x$config_release ]; then
321     # The configuration release is a substring of the kernel release.
322     release=$kernel_release
323   elif [ x$config_release != x ]; then
324     release=$config_release
325   elif [ x$kernel_release != x ]; then
326     release=$kernel_release
327   else
328     cat <<END
329 I don't know what release of $sysname you are using.  Please enter the
330 release number now.  This information is used only for the \`uname' function,
331 so it is not critical.
332 END
333     read release
334     if [ ! "$release" ]; then
335       release=unknown
336     fi
337   fi
338
339   if [ "$version" ]; then
340     # All is well.
341     true
342   elif [ ! "$kernel_version" ]; then
343     cat <<END
344 I don't know what version of $sysname $release you are using.  Please enter
345 the version number now.  This information is used only for the uname
346 function, so it is not critical.
347 END
348     read version
349     if [ ! "$version" ]; then
350       version=unknown
351     fi
352   else
353     version=$kernel_version
354   fi
355
356   cat > config-name.h <<END
357 /* This file was generated automatically by configure.  Do not edit.
358    This is used by the generic uname function.  */
359 #define UNAME_SYSNAME "${sysname}"
360 #define UNAME_RELEASE "${release}"
361 #define UNAME_VERSION "${version}"
362 #define UNAME_MACHINE "${machine}-${vendor}"
363 END
364
365   system_name="$sysname $release version $version on $vendor $machine"
366 else
367   # Not generic uname.  We don't need config-name.h at all.
368   system_name=$config
369 fi
370
371 if [ "$gnu_ld" ]; then
372   DEFS="$DEFS -DHAVE_GNU_LD"
373 fi
374 if [ "$gnu_as" ]; then
375   DEFS="$DEFS -DHAVE_GNU_AS"
376 fi
377
378 (
379   echo '# This file was generated automatically by configure.  Do not edit.'
380   echo '# Put configuration parameters in configparms instead.'
381   echo "config-machine = ${machine}"
382   echo "config-vendor = ${vendor}"
383   echo "config-os = ${os}"
384   if [ "$prefix" ]; then
385     echo "prefix = ${prefix}"
386   fi
387   if [ "$exec_prefix" ]; then
388     echo "exec_prefix = ${exec_prefix}"
389   fi
390   echo "config-defines = ${DEFS}"
391   for var in INSTALL INSTALL_PROGRAM INSTALL_DATA RANLIB; do
392     eval "echo \"${var} = \${$var}\""
393   done
394   echo "$config_vars"
395 ) > config.make
396
397 switches=
398 if [ "$gnu_as" ]; then
399   switches="$switches --with-gnu-as"
400 fi
401 if [ "$gnu_ld" ]; then
402   switches="$switches --with-gnu-ld"
403 fi
404 if [ "$exec_prefix" ]; then
405   switches="$switches --exec_prefix=$exec_prefix"
406 fi
407 if [ "$prefix" ]; then
408   switches="$switches --prefix=$prefix"
409 fi
410 if [ "$release" ]; then
411   switches="$switches --os-release='$release'"
412 fi
413 if [ "$version" ]; then
414   switches="$switches --os-version='$version'"
415 fi
416
417 cat > config.status <<END
418 #!/bin/sh
419 # This file was generated automatically by configure.  Do not edit.
420 # The GNU C library was configured in `pwd` for
421 # $system_name as follows:
422 $0 $config --srcdir=$srcdir $switches
423 END
424
425 if [ $srcdir != . ]; then
426   if [ $srcdir = .. ]; then
427     cwd=`pwd`
428     objdir=`basename $cwd`
429   else
430     objdir=`pwd`
431   fi
432   cat > Makefile <<END
433 # This file was generated automatically by configure.  Do not edit.
434 srcdir = $srcdir
435
436 all .DEFAULT:
437         \$(MAKE) -C \$(srcdir) ARCH=$objdir \$@
438 END
439
440 echo "# Wrote Makefile in `pwd`." >> config.status
441 fi
442 chmod a+x config.status
443
444 exit 0
445 dnl This gets rid of the random stuff autoconf has stuffed in weird places.
446 divert(-1)dnl AC_This is here so I can search for `AC_' to find the frobs.
447 dnl Local Variables:
448 dnl compile-command: "m4 /gd/gnu/autoconf/acgeneral.m4 /gd/gnu/autoconf/acspecific.m4 configure.in > configure && chmod a+x configure"
449 dnl End: