Ignore tests that require read-only directories under root.
[autoconf.git] / configure.ac
blob99ba100c97f9e92e2eab1448e028e7aea214a27a
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 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_SUBST([PACKAGE_NAME])dnl
27 AC_CONFIG_SRCDIR([ChangeLog])
29 AC_CONFIG_AUX_DIR([build-aux])
31 AM_INIT_AUTOMAKE([1.7.9 dist-bzip2 readme-alpha no-texinfo.tex])
33 # We use `/bin/sh -n script' to check that there are no syntax errors
34 # in the scripts.  Although incredible, there are /bin/sh that go into
35 # endless loops with `-n', e.g., SunOS's:
37 #   $ uname -a
38 #   SunOS ondine 4.1.3 2 sun4m unknown
39 #   $ cat endless.sh
40 #   while false
41 #   do
42 #     :
43 #   done
44 #   exit 0
45 #   $ time sh endless.sh
46 #   sh endless.sh  0,02s user 0,03s system 78% cpu 0,064 total
47 #   $ time sh -nx endless.sh
48 #   ^Csh -nx endless.sh  3,67s user 0,03s system 63% cpu 5,868 total
50 # Also, some implementations of /bin/sh (e.g., Solaris 8) are soooo slow
51 # that they are unusable on large scripts like our testsuite.
53 # So before using `/bin/sh -n' to check our scripts, we first check
54 # that `/bin/sh -n' is known to not have these problems.
56 AC_CACHE_CHECK([whether /bin/sh -n is known to work], ac_cv_sh_n_works,
57 [if (
58     unset BASH_VERSION ZSH_VERSION
59     /bin/sh -c '
60       test -n "${BASH_VERSION+set}" || # Bash
61       test -n "${KSH_VERSION+set}" || # pdksh
62       test -n "${ZSH_VERSION+set}" || # zsh
63       test -n "${.sh.version}" # ksh93; put this last since its syntax is dodgy
64     '
65   ) 2>/dev/null
66 then ac_cv_sh_n_works=yes
67 else ac_cv_sh_n_works=no
70 AC_SUBST(ac_cv_sh_n_works)
72 # Initialize the test suite.
73 AC_CONFIG_TESTDIR([tests])
74 AC_CONFIG_FILES([tests/Makefile tests/atlocal])
75 AC_PATH_PROG([EXPR], [expr])
78 ## ---- ##
79 ## M4.  ##
80 ## ---- ##
82 # We use an absolute name for GNU m4 so even if users have another m4 first in
83 # their path, the installer can configure with a path that has GNU m4
84 # on it and get that path embedded in the installed autoconf and
85 # autoheader scripts.
86 AC_PROG_GNU_M4
88 ## ----------- ##
89 ## Man pages.  ##
90 ## ----------- ##
92 AC_CONFIG_FILES(man/Makefile)
93 AM_MISSING_PROG(HELP2MAN, help2man)
96 ## ------ ##
97 ## Perl.  ##
98 ## ------ ##
100 # We use an absolute name for perl so the #! line in autoscan will work.
101 AC_PATH_PROG([PERL], perl, no)
102 AC_SUBST([PERL])dnl
103 if test "$PERL" = no; then
104   AC_MSG_ERROR([perl is not found])
106 $PERL -e 'require 5.005_03;' || {
107    AC_MSG_ERROR([Perl 5.005_03 or better is required])
111 ## ------- ##
112 ## Emacs.  ##
113 ## ------- ##
115 AC_CONFIG_FILES([lib/emacs/Makefile])
116 TEST_EMACS=$EMACS
117 test x"$TEST_EMACS" = xt && TEST_EMACS=
118 AC_CHECK_PROGS([TEST_EMACS], [emacs xemacs], [no])
120 # autoconf-mode.el and autotest-mode.el do not work with older version of
121 # Emacs (i.e. 18.x.x).  During byte-compilation, Emacs complains:
122 # "Variable (broken nil) seen on pass 2 of byte compiler but not pass 1"
123 # We detect this problem here.
124 AS_IF([test "$TEST_EMACS" != no],
125   [AC_CACHE_CHECK([whether $TEST_EMACS is sufficiently recent],
126     [ac_cv_prog_emacs_ok],
127     [# Note: The quoted "EOF" is intentional.  It protects the ` in the text.
128     cat >conftest.el << "EOF"
129       (defvar broken)
130       (defun broken-mode () (setq broken-defaults `(broken nil)))
132     AS_IF([AC_RUN_LOG(
133       [$TEST_EMACS -batch -q -f batch-byte-compile conftest.el 1>&2])],
134       [ac_cv_prog_emacs_ok=yes], [ac_cv_prog_emacs_ok=no])
135     rm -f conftest.el conftest.elc])
136   AS_IF([test $ac_cv_prog_emacs_ok = no], [TEST_EMACS=no])])
138 AC_SUBST([EMACS], [$TEST_EMACS])
140 AM_PATH_LISPDIR
143 ## ------------ ##
144 ## Grep & sed.  ##
145 ## ------------ ##
146 AC_PROG_GREP
147 AC_PROG_EGREP
148 AC_PROG_SED
151 ## ------------ ##
152 ## Conclusion.  ##
153 ## ------------ ##
155 AC_CONFIG_FILES([Makefile doc/Makefile
156                  lib/Makefile lib/Autom4te/Makefile lib/autoscan/Makefile
157                  lib/m4sugar/Makefile
158                  lib/autoconf/Makefile lib/autotest/Makefile
159                  bin/Makefile])
161 AC_OUTPUT
162 # Report the state of this version of Autoconf if this is a beta.
163 m4_bmatch(m4_defn([AC_PACKAGE_VERSION]),  [[a-z]],
164 [    cat <<EOF
166 You are about to use an experimental version of Autoconf.  Be sure to
167 read the relevant mailing lists, most importantly <autoconf@gnu.org>.
169 Below you will find information on the status of this version of Autoconf.
173     sed -n '/^\* Status/,$p' $srcdir/BUGS
174 ])dnl