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