1#                                                       -*- Autoconf -*-
2# Process this file with autoconf to produce a configure script.
3
4# Copyright (C) 1992, 1993, 1994, 1995, 1999, 2000, 2001, 2002, 2003,
5# 2004, 2005, 2006 Free Software Foundation, Inc.
6
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.
11#
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.
16#
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., 51 Franklin Street, Fifth Floor, Boston, MA
20# 02110-1301, USA.
21
22# We need AC_CONFIG_TESTDIR.
23AC_PREREQ([2.59])
24
25AC_INIT([GNU Autoconf], [2.61], [bug-autoconf@gnu.org])
26AC_SUBST([PACKAGE_NAME])dnl
27AC_CONFIG_SRCDIR([ChangeLog])
28
29AC_CONFIG_AUX_DIR([build-aux])
30
31AM_INIT_AUTOMAKE([check-news 1.7.9 dist-bzip2 readme-alpha])
32
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:
36#
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
49#
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.
52
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.
55
56AC_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
66then ac_cv_sh_n_works=yes
67else ac_cv_sh_n_works=no
68fi
69])
70AC_SUBST(ac_cv_sh_n_works)
71
72# Initialize the test suite.
73AC_CONFIG_TESTDIR([tests])
74AC_CONFIG_FILES([tests/Makefile tests/atlocal])
75AC_PATH_PROG([EXPR], [expr])
76
77
78## ---- ##
79## M4.  ##
80## ---- ##
81
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# first and get that path embedded in the installed autoconf and
85# autoheader scripts.
86AC_PROG_GNU_M4
87if test x"$ac_cv_prog_gnu_m4" != xyes; then
88  AC_MSG_ERROR([GNU M4 1.4 is required])
89fi
90
91## ----------- ##
92## Man pages.  ##
93## ----------- ##
94
95AC_CONFIG_FILES(man/Makefile)
96AM_MISSING_PROG(HELP2MAN, help2man)
97
98
99## ------ ##
100## Perl.  ##
101## ------ ##
102
103# We use an absolute name for perl so the #! line in autoscan will work.
104AC_PATH_PROG([PERL], perl, no)
105AC_SUBST([PERL])dnl
106if test "$PERL" = no; then
107  AC_MSG_ERROR([perl is not found])
108fi
109$PERL -e 'require 5.005_03;' || {
110   AC_MSG_ERROR([Perl 5.005_03 or better is required])
111}
112
113
114## ------- ##
115## Emacs.  ##
116## ------- ##
117
118AC_CONFIG_FILES([lib/emacs/Makefile])
119TEST_EMACS=$EMACS
120test x"$TEST_EMACS" = xt && TEST_EMACS=
121AC_CHECK_PROGS([TEST_EMACS], [emacs xemacs], [no])
122
123# autoconf-mode.el and autotest-mode.el do not work with older version of
124# Emacs (i.e. 18.x.x).  During byte-compilation, Emacs complains:
125# "Variable (broken nil) seen on pass 2 of byte compiler but not pass 1"
126# We detect this problem here.
127AS_IF([test "$TEST_EMACS" != no],
128  [AC_CACHE_CHECK([whether $TEST_EMACS is sufficiently recent],
129    [ac_cv_prog_emacs_ok],
130    [# Note: The quoted "EOF" is intentional.  It protects the ` in the text.
131    cat >conftest.el << "EOF"
132      (defvar broken)
133      (defun broken-mode () (setq broken-defaults `(broken nil)))
134EOF
135    AS_IF([AC_RUN_LOG(
136      [$TEST_EMACS -batch -q -f batch-byte-compile conftest.el 1>&2])],
137      [ac_cv_prog_emacs_ok=yes], [ac_cv_prog_emacs_ok=no])
138    rm -f conftest.el conftest.elc])
139  AS_IF([test $ac_cv_prog_emacs_ok = no], [TEST_EMACS=no])])
140
141AC_SUBST([EMACS], [$TEST_EMACS])
142
143AM_PATH_LISPDIR
144
145
146## ------------ ##
147## Grep & sed.  ##
148## ------------ ##
149AC_PROG_GREP
150AC_PROG_EGREP
151AC_PROG_SED
152
153
154## ------------ ##
155## Conclusion.  ##
156## ------------ ##
157
158AC_CONFIG_FILES([Makefile doc/Makefile
159                 lib/Makefile lib/Autom4te/Makefile lib/autoscan/Makefile
160                 lib/m4sugar/Makefile
161                 lib/autoconf/Makefile lib/autotest/Makefile
162                 bin/Makefile])
163
164AC_OUTPUT
165# Report the state of this version of Autoconf if this is a beta.
166m4_bmatch(m4_defn([AC_PACKAGE_VERSION]),  [[a-z]],
167[    cat <<EOF
168
169You are about to use an experimental version of Autoconf.  Be sure to
170read the relevant mailing lists, most importantly <autoconf@gnu.org>.
171
172Below you will find information on the status of this version of Autoconf.
173
174
175EOF
176    sed -n '/^\* Status/,$p' $srcdir/BUGS
177])
178