Formerly ../configure.in.~8~
[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 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      -exec_prefix=* | --exec_prefix=* | --exec_prefi=* | --exec_pref=* | --exec_pre=* | --exec_pr=* | --exec_p=* | --exec_=* | --exec=* | --exe=* | --ex=* | --e=*)
110         exec_prefix=`echo $arg | sed 's/[-a-z_]*=//'`
111         ;;
112      -exec_prefix | --exec_prefix | --exec_prefi | --exec_pref | --exec_pre | --exec_pr | --exec_p | --exec_ | --exec | --exe | --ex | --e)
113         next=exec_prefix
114         ;;
115
116      -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
117         prefix=`echo $arg | sed 's/[-a-z_]*=//'`
118         ;;
119      -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
120         next=prefix
121         ;;
122
123      -*)
124         echo "Invalid option \`$arg'" 1>&2
125         lose=yes
126         ;;
127      *)
128         if [ ! "$target" ]; then
129           target=$arg
130         else
131           lose=yes
132         fi
133         ;;
134     esac
135   fi
136 done
137
138 # NEXT will be set iff we have seen an option that wants an arg, but no arg.
139 if [ "$next" ]; then
140   echo "$0: the \`--${next}' option requires an argument" >&2
141   lose=yes
142 fi
143
144 if [ "$lose" = yes -o ! "$target" ]; then
145   echo "Usage: $prog [--srcdir=DIR] [--nfp] [--with-gnu-ld] TARGET" >&2
146   if [ -r config.status ]; then
147     cat config.status >&2
148   fi
149   exit 1
150 fi
151
152 dnl This deals with setting srcdir if it needs to be set.
153 changequote([,])
154 AC_PREPARE(features.h)
155 changequote(,)
156
157 # Canonicalize the configuration name.
158 config=`$srcdir/config.sub $target`
159 if [ ! "$config" ]; then
160   # config.sub has written an error message.
161   exit 1
162 fi
163
164 sysdep_dir=$srcdir/sysdeps
165
166 # machine-vendor-os
167 eval "`echo $config | \
168        sed 's/^\(.*\)-\(.*\)-\(.*\)$/machine=\1 vendor=\2 os=\3/'`"
169
170 case "$os" in
171 gnu*)
172   os=mach/hurd ;;
173 sunos* | ultrix* | newsos* | dynix | bsd*)
174   base_os=unix/bsd ;;
175 linux* | sysv* | isc* | esix* | sco* | minix*)
176   base_os=unix/sysv ;;
177 esac
178
179 case "$os" in
180 gnu* | linux*)
181   gnu_ld=--with-gnu-ld
182   gnu_as=--with-gnu-as
183 esac
184
185 # For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
186 tail=$os
187 ostry=$os
188 while o=`echo $tail | sed 's/\.[^.]*$//'`; [ $o != $tail ]; do
189   ostry="$ostry /$o"
190   tail=$o
191 done  
192 o=`echo $tail | sed 's/[0-9]*$//'`
193 if [ $o != $tail ]; then
194   ostry="$ostry /$o"
195 fi
196
197 # For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
198 base=
199 tail=$base_os
200 while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; [ "$b" ]; do
201   set $b
202   base="$base /$1"
203   tail="$2"
204 done
205
206 # Find what sysdep directories exist.
207 sysnames=
208 for b in $base ''; do
209   for v in /$vendor ''; do
210     for o in /$ostry ''; do
211       for m in /$machine ''; do
212         if [ -d $sysdep_dir$b$v$o$m ]; then
213           sysnames="$sysnames $b$v$o$m"
214           [ "$o" -o "$b" ] && os_used=t
215           [ "$m" ] && machine_used=t
216         fi
217       done
218     done
219   done
220 done
221
222 if [ ! "$os_used" -a "$os" != none ]; then
223   echo Operating system $os is not supported. >&2
224   exit 1
225 fi
226 if [ ! "$machine_used" -a "$machine" != none ]; then
227   echo The $machine is not supported. >&2
228   exit 1
229 fi
230
231 # Uniquize the list.
232 seen=
233 for name in $sysnames; do
234   if echo "$seen" | fgrep -x $name >/dev/null; then
235     # Already in the list.
236     true;
237   else
238     # A new one.
239     if [ "$seen" = "" ]; then
240       seen="$name"
241     else
242       seen="$seen
243 $name"
244     fi
245   fi
246 done
247 sysnames="$seen"
248
249 # We have now validated the configuration.
250
251 changequote([,])
252 AC_PROG_INSTALL
253 AC_PROG_RANLIB
254
255 # Find out what this system calls `sys_siglist'.
256 AC_HAVE_FUNCS(sys_siglist _sys_siglist)
257
258 # Find out the name of the table the system's <ctype.h> uses for character
259 # classification.  This is used by sysdeps/unix/common/glue-ctype.c.
260 AC_HAVE_FUNCS(_ctype_ __ctype_ __ctype _ctype__)
261 changequote(,)
262
263 sysnames="`echo $sysnames | sed -e 's@^/@@' -e 's@ /@ @g'`"
264
265 if [ ! "$nfp" -a -d $sysdep_dir/$machine/fpu ]; then
266   sysnames="${machine}/fpu $sysnames"
267 fi
268
269 rm -f sysdirs
270 echo $sysnames > Sysnames
271
272 cat - Sysnames <<END
273 Configuring the GNU C Library for \`${config}'.
274 Using system-dependent files from directories:
275 END
276
277 export sysdep_dir
278 for dir in `$srcdir/find-sysdirs < Sysnames`; do
279   if [ -r $sysdep_dir/$dir/uname.c -o -r $sysdep_dir/$dir/uname.S ]; then
280     uname=$dir
281     break
282   fi
283 done
284 if [ $uname = generic ]; then
285   if [ ! "$release" -o ! "$version" ] && [ -r /vmunix ]; then
286     kernel_id=`strings /vmunix | grep UNIX`
287     kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
288     kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
289   else
290     kernel_release=
291     kernel_version=
292   fi
293
294   sysname=`echo $os | sed 's/[0-9.]*$//'`
295   if [ $sysname != $os ]; then
296     config_release=`echo $os | sed s/$sysname//`
297   fi
298
299   if [ "$release" ]; then
300     # All is well.
301     true
302   elif [ x`echo "$config_release" | sed "s/^$kernel_release//"` \
303        != x$config_release ]; then
304     # The configuration release is a substring of the kernel release.
305     release=$kernel_release
306   elif [ x$config_release != x ]; then
307     release=$config_release
308   elif [ x$kernel_release != x ]; then
309     release=$kernel_release
310   else
311     cat <<END
312 I don't know what release of $sysname you are using.  Please enter the
313 release number now.  This information is used only for the \`uname' function,
314 so it is not critical.
315 END
316     read release
317     if [ ! "$release" ]; then
318       release=unknown
319     fi
320   fi
321
322   if [ "$version" ]; then
323     # All is well.
324     true
325   elif [ ! "$kernel_version" ]; then
326     cat <<END
327 I don't know what version of $sysname $release you are using.  Please enter
328 the version number now.  This information is used only for the uname
329 function, so it is not critical.
330 END
331     read version
332     if [ ! "$version" ]; then
333       version=unknown
334     fi
335   else
336     version=$kernel_version
337   fi
338
339   cat > config-name.h <<END
340 /* This file was generated automatically by configure.  Do not edit.
341    This is used by the generic uname function.  */
342 #define UNAME_SYSNAME "${sysname}"
343 #define UNAME_RELEASE "${release}"
344 #define UNAME_VERSION "${version}"
345 #define UNAME_MACHINE "${machine}-${vendor}"
346 END
347
348   system_name="$sysname $release version $version on $vendor $machine"
349 else
350   # Not generic uname.  We don't need config-name.h at all.
351   system_name=$config
352 fi
353
354 if [ "$gnu_ld" ]; then
355   DEFS="$DEFS -DHAVE_GNU_LD"
356 fi
357 if [ "$gnu_as" ]; then
358   DEFS="$DEFS -DHAVE_GNU_AS"
359 fi
360
361 (
362   echo '# This file was generated automatically by configure.  Do not edit.'
363   echo '# Put configuration parameters in configparms instead.'
364   echo "config-machine = ${machine}"
365   echo "config-vendor = ${vendor}"
366   echo "config-os = ${os}"
367   if [ "$prefix" ]; then
368     echo "prefix = ${prefix}"
369   fi
370   if [ "$exec_prefix" ]; then
371     echo "exec_prefix = ${exec_prefix}"
372   fi
373   echo "config-defines = ${DEFS}"
374   for var in INSTALL INSTALL_PROGRAM INSTALL_DATA RANLIB; do
375     eval "echo \"${var} = \${$var}\""
376   done
377 ) > config.make
378
379 switches=
380 if [ "$gnu_as" ]; then
381   switches="$switches --with-gnu-as"
382 fi
383 if [ "$gnu_ld" ]; then
384   switches="$switches --with-gnu-ld"
385 fi
386 if [ "$exec_prefix" ]; then
387   switches="$switches --exec_prefix=$exec_prefix"
388 fi
389 if [ "$prefix" ]; then
390   switches="$switches --prefix=$prefix"
391 fi
392 if [ "$release" ]; then
393   switches="$switches --os-release='$release'"
394 fi
395 if [ "$version" ]; then
396   switches="$switches --os-version='$version'"
397 fi
398
399 cat > config.status <<END
400 #!/bin/sh
401 # This file was generated automatically by configure.  Do not edit.
402 # The GNU C library was configured in `pwd` for
403 # $system_name as follows:
404 $0 $config --srcdir=$srcdir $switches
405 END
406
407 if [ $srcdir != . ]; then
408   if [ $srcdir = .. ]; then
409     cwd=`pwd`
410     objdir=`basename $cwd`
411   else
412     objdir=`pwd`
413   fi
414   cat > Makefile <<END
415 # This file was generated automatically by configure.  Do not edit.
416 srcdir = $srcdir
417
418 all .DEFAULT:
419         \$(MAKE) -C \$(srcdir) ARCH=$objdir \$@
420 END
421
422 echo "# Wrote Makefile in `pwd`." >> config.status
423 fi
424 chmod a+x config.status
425
426 exit 0
427 dnl This gets rid of the random stuff autoconf has stuffed in weird places.
428 divert(-1)dnl AC_This is here so I can search for `AC_' to find the frobs.
429 dnl Local Variables:
430 dnl compile-command: "m4 /gd/gnu/autoconf/acgeneral.m4 /gd/gnu/autoconf/acspecific.m4 configure.in > configure && chmod a+x configure"
431 dnl End: