* lib/m4sugar/m4sh.m4 (M4SH-SANITIZE): New diversion.
[autoconf.git] / configure.ac
blobff8b7763dec0260f633290cff0e2cf65192c3e73
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 # 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 2, or (at your option)
10 # 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, write to the Free Software
19 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
20 # 02111-1307, USA.
22 # We need AC_CONFIG_TESTDIR.
23 AC_PREREQ([2.59])
25 AC_INIT([GNU Autoconf], [2.59a], [bug-autoconf@gnu.org])
26 AC_SUBST([PACKAGE_NAME])dnl
27 AC_CONFIG_SRCDIR([ChangeLog])
29 AC_CONFIG_AUX_DIR([config])
30 AC_CONFIG_FILES([config/Makefile])
32 AM_INIT_AUTOMAKE([check-news 1.7.9 dist-bzip2 readme-alpha])
34 # We use `/bin/sh -n script' to check that there are no syntax errors
35 # in the scripts.  Although incredible, there are /bin/sh that go into
36 # endless loops with `-n', e.g., SunOS's:
38 #   $ uname -a
39 #   SunOS ondine 4.1.3 2 sun4m unknown
40 #   $ cat endless.sh
41 #   while false
42 #   do
43 #     :
44 #   done
45 #   exit 0
46 #   $ time sh endless.sh
47 #   sh endless.sh  0,02s user 0,03s system 78% cpu 0,064 total
48 #   $ time sh -nx endless.sh
49 #   ^Csh -nx endless.sh  3,67s user 0,03s system 63% cpu 5,868 total
51 # So before using `/bin/sh -n' to check our scripts, we first check
52 # that `/bin/sh -n' is not broken to death.
54 # A script that never returns.  We don't care that it never returns,
55 # broken /bin/sh loop equally with `false', but it makes it easier to
56 # test the robustness in a good environment: just remove the `-n'.
57 AC_CACHE_CHECK([whether sh -n works], ac_cv_sh_n_works,
58 [cat > conftest.sh <<_CONFEOF_
59 while :
61   :
62 done
63 _CONFEOF_
65 (/bin/sh -n conftest.sh) &
66 sleep 2
67 if kill $! >/dev/null 2>&1; then
68   # We managed to kill the child, which means that we probably
69   # can't trust `/bin/sh -n', hence the test failed.
70   ac_cv_sh_n_works=no
71 else
72   ac_cv_sh_n_works=yes
74 rm conftest.sh
76 AC_SUBST(ac_cv_sh_n_works)
78 # Initialize the test suite and build position independent wrappers.
79 AC_CONFIG_TESTDIR([tests])
80 AC_CONFIG_FILES([tests/Makefile tests/atlocal])
81 AC_CONFIG_FILES([tests/autoconf:tests/wrapper.in],
82                 [chmod +x tests/autoconf])
83 AC_CONFIG_FILES([tests/autoheader:tests/wrapper.in],
84                 [chmod +x tests/autoheader])
85 AC_CONFIG_FILES([tests/autom4te:tests/wrapper.in],
86                 [chmod +x tests/autom4te])
87 AC_CONFIG_FILES([tests/autoreconf:tests/wrapper.in],
88                 [chmod +x tests/autoreconf])
89 AC_CONFIG_FILES([tests/autoscan:tests/wrapper.in],
90                 [chmod +x tests/autoscan])
91 AC_CONFIG_FILES([tests/autoupdate:tests/wrapper.in],
92                 [chmod +x tests/autoupdate])
93 AC_CONFIG_FILES([tests/ifnames:tests/wrapper.in],
94                 [chmod +x tests/ifnames])
95 AC_PATH_PROG([EXPR], [expr])
98 ## ---- ##
99 ## M4.  ##
100 ## ---- ##
102 # We use a path for GNU m4 so even if users have another m4 first in
103 # their path, the installer can configure with a path that has GNU m4
104 # first and get that path embedded in the installed autoconf and
105 # autoheader scripts.
106 AC_PROG_GNU_M4
107 if test x"$ac_cv_prog_gnu_m4" != xyes; then
108   AC_MSG_ERROR([GNU M4 1.4 is required])
111 ## ----------- ##
112 ## Man pages.  ##
113 ## ----------- ##
115 AC_CONFIG_FILES(man/Makefile)
116 AM_MISSING_PROG(HELP2MAN, help2man)
119 ## ------ ##
120 ## Perl.  ##
121 ## ------ ##
123 # We use a path for perl so the #! line in autoscan will work.
124 AC_PATH_PROG([PERL], perl, no)
125 AC_SUBST([PERL])dnl
126 if test "$PERL" = no; then
127   AC_MSG_ERROR([perl is not found])
129 $PERL -e 'require 5.005_03;' || {
130    AC_MSG_ERROR([Perl 5.005_03 or better is required])
134 ## ------- ##
135 ## Emacs.  ##
136 ## ------- ##
138 AC_CONFIG_FILES([lib/emacs/Makefile])
139 TEST_EMACS=$EMACS
140 test x"$TEST_EMACS" = xt && TEST_EMACS=
141 AC_CHECK_PROGS([TEST_EMACS], [emacs xemacs], [no])
143 # autoconf-mode.el and autotest-mode.el do not work with older version of
144 # Emacs (i.e. 18.x.x).  During byte-compilation, Emacs complains:
145 # "Variable (broken nil) seen on pass 2 of byte compiler but not pass 1"
146 # We detect this problem here.
147 AS_IF([test "$TEST_EMACS" != no],
148   [AC_CACHE_CHECK([whether $TEST_EMACS is sufficiently recent],
149     [ac_cv_prog_emacs_ok],
150     [# Note: The quoted "EOF" is intentional.  It protects the ` in the text.
151     cat >conftest.el << "EOF"
152       (defvar broken)
153       (defun broken-mode () (setq broken-defaults `(broken nil)))
155     AS_IF([AC_RUN_LOG(
156       [$TEST_EMACS -batch -q -f batch-byte-compile conftest.el 1>&2])],
157       [ac_cv_prog_emacs_ok=yes], [ac_cv_prog_emacs_ok=no])
158     rm -f conftest.el conftest.elc])
159   AS_IF([test $ac_cv_prog_emacs_ok = no], [TEST_EMACS=no])])
161 AC_SUBST([EMACS], [$TEST_EMACS])
163 AM_PATH_LISPDIR
166 ## ------------ ##
167 ## Conclusion.  ##
168 ## ------------ ##
170 AC_CONFIG_FILES([Makefile doc/Makefile
171                  lib/Makefile lib/Autom4te/Makefile lib/autoscan/Makefile
172                  lib/m4sugar/Makefile
173                  lib/autoconf/Makefile lib/autotest/Makefile
174                  bin/Makefile])
176 AC_OUTPUT
177 # Report the state of this version of Autoconf if this is a beta.
178 m4_bmatch(m4_defn([AC_PACKAGE_VERSION]),  [[a-z]],
179 [    cat <<EOF
181 You are about to use an experimental version of Autoconf.  Be sure to
182 read the relevant mailing lists, most importantly <autoconf@gnu.org>.
184 Below you will find information on the status of this version of Autoconf.
188     sed -n '/^\* Status/,$p' $srcdir/BUGS