Fix config.status --version.
[autoconf.git] / configure.ac
blob13e48ab7f49c5eded507b54733630b140e08236b
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 dnl Allow maintainer rules under GNU make even in VPATH builds.  This does
156 dnl not work in autoconf 2.61 or earlier, but we don't want to require
157 dnl unreleased autoconf during bootstrap, hence the version test.
158 dnl TODO remove the version check once we depend on autoconf 2.62.
159 dnl Meanwhile, we must use a shell variable so that we bypass automake's
160 dnl attempts to remove the sole copy of GNUmakefile in a non-VPATH build
161 dnl during 'make distclean'.
162 dnl TODO avoid the shell variable once automake is fixed.
163 GNUmakefile=GNUmakefile
164 m4_if(m4_version_compare([2.61a.100],
165         m4_defn([m4_PACKAGE_VERSION])), [1], [],
166       [AC_CONFIG_LINKS([$GNUmakefile:$GNUmakefile], [],
167         [GNUmakefile=$GNUmakefile])])
169 AC_CONFIG_FILES([Makefile doc/Makefile
170                  lib/Makefile lib/Autom4te/Makefile lib/autoscan/Makefile
171                  lib/m4sugar/Makefile
172                  lib/autoconf/Makefile lib/autotest/Makefile
173                  bin/Makefile])
175 AC_OUTPUT
176 # Report the state of this version of Autoconf if this is a beta.
177 m4_bmatch(m4_defn([AC_PACKAGE_VERSION]),  [[a-z]],
178 [    cat <<EOF
180 You are about to use an experimental version of Autoconf.  Be sure to
181 read the relevant mailing lists, most importantly <autoconf@gnu.org>.
183 Below you will find information on the status of this version of Autoconf.
187     sed -n '/^\* Status/,$p' $srcdir/BUGS
188 ])dnl