AC_PROG_CXX: Add checks for C++11, C++98TR1 and C++98
[autoconf.git] / configure.ac
blob1336934a01632ce2b4e936706b7211570048aee3
1 #                                                       -*- Autoconf -*-
2 # Process this file with autoconf to produce a configure script.
4 # Copyright (C) 1992-1995, 1999-2013 Free Software Foundation, Inc.
6 # This program is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation, either version 3 of the License, or
9 # (at your option) any later version.
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
19 AC_PREREQ([2.62])
21 AC_INIT([GNU Autoconf],
22         m4_esyscmd([build-aux/git-version-gen .tarball-version]),
23         [bug-autoconf@gnu.org])
24 AC_CONFIG_SRCDIR([lib/autoconf/autoconf.m4])
26 AC_CONFIG_AUX_DIR([build-aux])
28 AM_INIT_AUTOMAKE([1.11 dist-xz readme-alpha no-texinfo.tex std-options])
30 AB_INIT
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.006;' || {
137    AC_MSG_ERROR([Perl 5.006 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.
208 AC_CONFIG_LINKS([GNUmakefile:GNUmakefile])
210 AC_CONFIG_FILES([Makefile doc/Makefile
211                  lib/Makefile lib/Autom4te/Makefile lib/autoscan/Makefile
212                  lib/m4sugar/Makefile
213                  lib/autoconf/Makefile lib/autotest/Makefile
214                  bin/Makefile])
216 AC_OUTPUT
217 # Report the state of this version of Autoconf if this is a beta.
218 m4_bmatch(m4_defn([AC_PACKAGE_VERSION]), [[-a-z]],
219 [    cat <<EOF
221 You are about to use an experimental version of Autoconf.  Be sure to
222 read the relevant mailing lists, most importantly <autoconf@gnu.org>.
224 Below you will find information on the status of this version of Autoconf.
227     sed -n '/^\* Status/,$p' $srcdir/BUGS
228 echo
229 ])dnl