autoconf: Use -D_STDC_C99=, not -xc99=all, with Solaris cc
[autoconf.git] / configure.ac
blob669b1c896c185b9be0f7ae03eb1abddb901e145b
1 #                                                       -*- Autoconf -*-
2 # Process this file with autoconf to produce a configure script.
4 # Copyright (C) 1992, 1993, 1994, 1995, 1999, 2000, 2001, 2002, 2003,
5 # 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
6 # Inc.
8 # This program is free software: you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation, either version 3 of the License, or
11 # (at your option) any later version.
13 # This program is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 # GNU General Public License for more details.
18 # You should have received a copy of the GNU General Public License
19 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
21 # We need AC_CONFIG_TESTDIR, AC_PROG_SED, AC_PROG_GREP.
22 AC_PREREQ([2.60])
24 AC_INIT([GNU Autoconf],
25         m4_esyscmd([build-aux/git-version-gen .tarball-version]),
26         [bug-autoconf@gnu.org])
27 AC_CONFIG_SRCDIR([ChangeLog])
29 AC_CONFIG_AUX_DIR([build-aux])
31 AM_INIT_AUTOMAKE([1.11 dist-bzip2 dist-xz
32 readme-alpha no-texinfo.tex std-options])
34 AB_INIT
36 # We use `/bin/sh -n script' to check that there are no syntax errors
37 # in the scripts.  Although incredible, there are /bin/sh that go into
38 # endless loops with `-n', e.g., SunOS's:
40 #   $ uname -a
41 #   SunOS ondine 4.1.3 2 sun4m unknown
42 #   $ cat endless.sh
43 #   while false
44 #   do
45 #     :
46 #   done
47 #   exit 0
48 #   $ time sh endless.sh
49 #   sh endless.sh  0,02s user 0,03s system 78% cpu 0,064 total
50 #   $ time sh -nx endless.sh
51 #   ^Csh -nx endless.sh  3,67s user 0,03s system 63% cpu 5,868 total
53 # Also, some implementations of /bin/sh (e.g., Solaris 8) are soooo slow
54 # that they are unusable on large scripts like our testsuite.
56 # So before using `/bin/sh -n' to check our scripts, we first check
57 # that `/bin/sh -n' is known to not have these problems.
59 AC_CACHE_CHECK([whether /bin/sh -n is known to work], [ac_cv_sh_n_works],
60 [if (
61     unset BASH_VERSION ZSH_VERSION
62     /bin/sh -c '
63       test -n "${BASH_VERSION+set}" || # Bash
64       test -n "${KSH_VERSION+set}" || # pdksh
65       test -n "${ZSH_VERSION+set}" || # zsh
66       test -n "${.sh.version}" # ksh93; put this last since its syntax is dodgy
67     '
68   ) 2>/dev/null
69 then ac_cv_sh_n_works=yes
70 else ac_cv_sh_n_works=no
73 AC_SUBST([ac_cv_sh_n_works])
75 AC_MSG_CHECKING([for characters that cannot appear in file names])
76 AC_CACHE_VAL([ac_cv_unsupported_fs_chars],
77 [ac_cv_unsupported_fs_chars=
78 for c in '\\' \" '<' '>' '*' '?' '|'
80   touch "conftest.t${c}t" 2>/dev/null
81   test -f "conftest.t${c}t" && rm -f "conftest.t${c}t" && continue
82   # $c cannot be used in a file name.
83   ac_cv_unsupported_fs_chars=$ac_cv_unsupported_fs_chars$c
84 done
86 if test -n "$ac_cv_unsupported_fs_chars"; then
87   AC_MSG_RESULT([$ac_cv_unsupported_fs_chars])
88 else
89   AC_MSG_RESULT([none])
92 AC_SUBST([ac_cv_unsupported_fs_chars])
94 AC_CACHE_CHECK([whether directories can have trailing spaces],
95                [ac_cv_dir_trailing_space],
96 [rm -rf 'conftest.d ' && mkdir 'conftest.d ' && touch 'conftest.d /tfile' 2>/dev/null
97 stat=$?
98 rm -rf 'conftest.d '
99 case $stat$? in #(
100    00) ac_cv_dir_trailing_space=yes ;; #(
101    *) ac_cv_dir_trailing_space=no ;;
102 esac
104 AC_SUBST([ac_cv_dir_trailing_space])
106 # Initialize the test suite.
107 AC_CONFIG_TESTDIR([tests])
108 AC_CONFIG_FILES([tests/Makefile tests/atlocal])
109 AC_PATH_PROG([EXPR], [expr])
112 ## ---- ##
113 ## M4.  ##
114 ## ---- ##
116 # We use an absolute name for GNU m4 so even if users have another m4 first in
117 # their path, the installer can configure with a path that has GNU m4
118 # on it and get that path embedded in the installed autoconf and
119 # autoheader scripts.
120 AC_PROG_GNU_M4
122 ## ----------- ##
123 ## Man pages.  ##
124 ## ----------- ##
126 AC_CONFIG_FILES([man/Makefile])
127 AM_MISSING_PROG([HELP2MAN], [help2man])
130 ## ------ ##
131 ## Perl.  ##
132 ## ------ ##
134 # We use an absolute name for perl so the #! line in autoscan will work.
135 AC_PATH_PROG([PERL], [perl], [no])
136 AC_SUBST([PERL])dnl
137 if test "$PERL" = no; then
138   AC_MSG_ERROR([perl is not found])
140 $PERL -e 'require 5.005_03;' || {
141    AC_MSG_ERROR([Perl 5.005_03 or better is required])
144 # Find out whether the system supports flock
145 # Note this test does not try to find out whether it works with this
146 # particular file system.  It merely avoids us running flock on systems
147 # where that bails out.
148 AC_CACHE_CHECK([whether $PERL Fcntl::flock is implemented],
149   [ac_cv_perl_flock_implemented],
150   [echo lock me > conftest.fil
151    if $PERL -e 'use Fcntl ":flock"; flock("conftest.fil", LOCK_EX); 1;'; then
152      ac_cv_perl_flock_implemented=yes
153    else
154      ac_cv_perl_flock_implemented=no
155    fi
156    rm -f conftest.fil
157   ])
158 AC_SUBST([PERL_FLOCK], [$ac_cv_perl_flock_implemented])
161 ## ------- ##
162 ## Emacs.  ##
163 ## ------- ##
165 AC_CONFIG_FILES([lib/emacs/Makefile])
166 TEST_EMACS=$EMACS
167 test x"$TEST_EMACS" = xt && TEST_EMACS=
168 AC_CHECK_PROGS([TEST_EMACS], [emacs xemacs], [no])
170 # autoconf-mode.el and autotest-mode.el do not work with older version of
171 # Emacs (i.e. 18.x.x).  During byte-compilation, Emacs complains:
172 # "Variable (broken nil) seen on pass 2 of byte compiler but not pass 1"
173 # We detect this problem here.
174 AS_IF([test "$TEST_EMACS" != no],
175   [AC_CACHE_CHECK([whether $TEST_EMACS is sufficiently recent],
176     [ac_cv_prog_emacs_ok],
177     [# Note: The quoted "EOF" is intentional.  It protects the ` in the text.
178     cat >conftest.el << "EOF"
179       (defvar broken)
180       (defun broken-mode () (setq broken-defaults `(broken nil)))
182     AS_IF([AC_RUN_LOG(
183       [$TEST_EMACS -batch -q -f batch-byte-compile conftest.el 1>&2])],
184       [ac_cv_prog_emacs_ok=yes], [ac_cv_prog_emacs_ok=no])
185     rm -f conftest.el conftest.elc])
186   AS_IF([test $ac_cv_prog_emacs_ok = no], [TEST_EMACS=no])])
188 AC_SUBST([EMACS], [$TEST_EMACS])
190 AM_PATH_LISPDIR
193 ## ------------ ##
194 ## Grep & sed.  ##
195 ## ------------ ##
196 AC_PROG_GREP
197 AC_PROG_EGREP
198 AC_PROG_SED
201 ## ----- ##
202 ## Make. ##
203 ## ----- ##
204 AC_PROG_MAKE_CASE_SENSITIVE
207 ## ------------ ##
208 ## Conclusion.  ##
209 ## ------------ ##
211 dnl Allow maintainer rules under GNU make even in VPATH builds.  This does
212 dnl not work in autoconf 2.61 or earlier, but we don't want to require
213 dnl unreleased autoconf during bootstrap, hence the version test.
214 dnl TODO remove the version check once we depend on autoconf 2.62.
215 dnl Meanwhile, we must use a shell variable so that we bypass automake's
216 dnl attempts to remove the sole copy of GNUmakefile in a non-VPATH build
217 dnl during 'make distclean'.
218 dnl TODO avoid the shell variable once automake is fixed.
219 GNUmakefile=GNUmakefile
220 m4_if(m4_version_compare([2.61a.100],
221         m4_defn([m4_PACKAGE_VERSION])), [1], [],
222       [AC_CONFIG_LINKS([$GNUmakefile:$GNUmakefile], [],
223         [GNUmakefile=$GNUmakefile])])
225 AC_CONFIG_FILES([Makefile doc/Makefile
226                  lib/Makefile lib/Autom4te/Makefile lib/autoscan/Makefile
227                  lib/m4sugar/Makefile
228                  lib/autoconf/Makefile lib/autotest/Makefile
229                  bin/Makefile])
231 AC_OUTPUT
232 # Report the state of this version of Autoconf if this is a beta.
233 m4_bmatch(m4_defn([AC_PACKAGE_VERSION]), [[-a-z]],
234 [    cat <<EOF
236 You are about to use an experimental version of Autoconf.  Be sure to
237 read the relevant mailing lists, most importantly <autoconf@gnu.org>.
239 Below you will find information on the status of this version of Autoconf.
242     sed -n '/^\* Status/,$p' $srcdir/BUGS
243 echo
244 ])dnl