123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241 |
- # -*- Autoconf -*-
- # Process this file with autoconf to produce a configure script.
- # Copyright (C) 1992-1995, 1999-2012 Free Software Foundation, Inc.
- # This program is free software: you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
- # the Free Software Foundation, either version 3 of the License, or
- # (at your option) any later version.
- #
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program. If not, see <http://www.gnu.org/licenses/>.
- # We need AC_CONFIG_TESTDIR, AC_PROG_SED, AC_PROG_GREP.
- AC_PREREQ([2.60])
- AC_INIT([GNU Autoconf],
- m4_esyscmd([build-aux/git-version-gen .tarball-version]),
- [bug-autoconf@gnu.org])
- AC_CONFIG_SRCDIR([lib/autoconf/autoconf.m4])
- AC_CONFIG_AUX_DIR([build-aux])
- AM_INIT_AUTOMAKE([1.11 dist-xz readme-alpha no-texinfo.tex std-options])
- AB_INIT
- # We use `/bin/sh -n script' to check that there are no syntax errors
- # in the scripts. Although incredible, there are /bin/sh that go into
- # endless loops with `-n', e.g., SunOS's:
- #
- # $ uname -a
- # SunOS ondine 4.1.3 2 sun4m unknown
- # $ cat endless.sh
- # while false
- # do
- # :
- # done
- # exit 0
- # $ time sh endless.sh
- # sh endless.sh 0,02s user 0,03s system 78% cpu 0,064 total
- # $ time sh -nx endless.sh
- # ^Csh -nx endless.sh 3,67s user 0,03s system 63% cpu 5,868 total
- #
- # Also, some implementations of /bin/sh (e.g., Solaris 8) are soooo slow
- # that they are unusable on large scripts like our testsuite.
- # So before using `/bin/sh -n' to check our scripts, we first check
- # that `/bin/sh -n' is known to not have these problems.
- AC_CACHE_CHECK([whether /bin/sh -n is known to work], [ac_cv_sh_n_works],
- [if (
- unset BASH_VERSION ZSH_VERSION
- /bin/sh -c '
- test -n "${BASH_VERSION+set}" || # Bash
- test -n "${KSH_VERSION+set}" || # pdksh
- test -n "${ZSH_VERSION+set}" || # zsh
- test -n "${.sh.version}" # ksh93; put this last since its syntax is dodgy
- '
- ) 2>/dev/null
- then ac_cv_sh_n_works=yes
- else ac_cv_sh_n_works=no
- fi
- ])
- AC_SUBST([ac_cv_sh_n_works])
- AC_MSG_CHECKING([for characters that cannot appear in file names])
- AC_CACHE_VAL([ac_cv_unsupported_fs_chars],
- [ac_cv_unsupported_fs_chars=
- for c in '\\' \" '<' '>' '*' '?' '|'
- do
- touch "conftest.t${c}t" 2>/dev/null
- test -f "conftest.t${c}t" && rm -f "conftest.t${c}t" && continue
- # $c cannot be used in a file name.
- ac_cv_unsupported_fs_chars=$ac_cv_unsupported_fs_chars$c
- done
- ])
- if test -n "$ac_cv_unsupported_fs_chars"; then
- AC_MSG_RESULT([$ac_cv_unsupported_fs_chars])
- else
- AC_MSG_RESULT([none])
- fi
- AC_SUBST([ac_cv_unsupported_fs_chars])
- AC_CACHE_CHECK([whether directories can have trailing spaces],
- [ac_cv_dir_trailing_space],
- [rm -rf 'conftest.d ' && mkdir 'conftest.d ' && touch 'conftest.d /tfile' 2>/dev/null
- stat=$?
- rm -rf 'conftest.d '
- case $stat$? in #(
- 00) ac_cv_dir_trailing_space=yes ;; #(
- *) ac_cv_dir_trailing_space=no ;;
- esac
- ])
- AC_SUBST([ac_cv_dir_trailing_space])
- # Initialize the test suite.
- AC_CONFIG_TESTDIR([tests])
- AC_CONFIG_FILES([tests/Makefile tests/atlocal])
- AC_PATH_PROG([EXPR], [expr])
- ## ---- ##
- ## M4. ##
- ## ---- ##
- # We use an absolute name for GNU m4 so even if users have another m4 first in
- # their path, the installer can configure with a path that has GNU m4
- # on it and get that path embedded in the installed autoconf and
- # autoheader scripts.
- AC_PROG_GNU_M4
- ## ----------- ##
- ## Man pages. ##
- ## ----------- ##
- AC_CONFIG_FILES([man/Makefile])
- AM_MISSING_PROG([HELP2MAN], [help2man])
- ## ------ ##
- ## Perl. ##
- ## ------ ##
- # We use an absolute name for perl so the #! line in autoscan will work.
- AC_PATH_PROG([PERL], [perl], [no])
- AC_SUBST([PERL])dnl
- if test "$PERL" = no; then
- AC_MSG_ERROR([perl is not found])
- fi
- $PERL -e 'require 5.006;' || {
- AC_MSG_ERROR([Perl 5.006 or better is required])
- }
- # Find out whether the system supports flock
- # Note this test does not try to find out whether it works with this
- # particular file system. It merely avoids us running flock on systems
- # where that bails out.
- AC_CACHE_CHECK([whether $PERL Fcntl::flock is implemented],
- [ac_cv_perl_flock_implemented],
- [echo lock me > conftest.fil
- if $PERL -e 'use Fcntl ":flock"; flock("conftest.fil", LOCK_EX); 1;'; then
- ac_cv_perl_flock_implemented=yes
- else
- ac_cv_perl_flock_implemented=no
- fi
- rm -f conftest.fil
- ])
- AC_SUBST([PERL_FLOCK], [$ac_cv_perl_flock_implemented])
- ## ------- ##
- ## Emacs. ##
- ## ------- ##
- AC_CONFIG_FILES([lib/emacs/Makefile])
- TEST_EMACS=$EMACS
- test x"$TEST_EMACS" = xt && TEST_EMACS=
- AC_CHECK_PROGS([TEST_EMACS], [emacs xemacs], [no])
- # autoconf-mode.el and autotest-mode.el do not work with older version of
- # Emacs (i.e. 18.x.x). During byte-compilation, Emacs complains:
- # "Variable (broken nil) seen on pass 2 of byte compiler but not pass 1"
- # We detect this problem here.
- AS_IF([test "$TEST_EMACS" != no],
- [AC_CACHE_CHECK([whether $TEST_EMACS is sufficiently recent],
- [ac_cv_prog_emacs_ok],
- [# Note: The quoted "EOF" is intentional. It protects the ` in the text.
- cat >conftest.el << "EOF"
- (defvar broken)
- (defun broken-mode () (setq broken-defaults `(broken nil)))
- EOF
- AS_IF([AC_RUN_LOG(
- [$TEST_EMACS -batch -q -f batch-byte-compile conftest.el 1>&2])],
- [ac_cv_prog_emacs_ok=yes], [ac_cv_prog_emacs_ok=no])
- rm -f conftest.el conftest.elc])
- AS_IF([test $ac_cv_prog_emacs_ok = no], [TEST_EMACS=no])])
- AC_SUBST([EMACS], [$TEST_EMACS])
- AM_PATH_LISPDIR
- ## ------------ ##
- ## Grep & sed. ##
- ## ------------ ##
- AC_PROG_GREP
- AC_PROG_EGREP
- AC_PROG_SED
- ## ----- ##
- ## Make. ##
- ## ----- ##
- AC_PROG_MAKE_CASE_SENSITIVE
- ## ------------ ##
- ## Conclusion. ##
- ## ------------ ##
- dnl Allow maintainer rules under GNU make even in VPATH builds. This does
- dnl not work in autoconf 2.61 or earlier, but we don't want to require
- dnl unreleased autoconf during bootstrap, hence the version test.
- dnl TODO remove the version check once we depend on autoconf 2.62.
- dnl Meanwhile, we must use a shell variable so that we bypass automake's
- dnl attempts to remove the sole copy of GNUmakefile in a non-VPATH build
- dnl during 'make distclean'.
- dnl TODO avoid the shell variable once automake is fixed.
- GNUmakefile=GNUmakefile
- m4_if(m4_version_compare([2.61a.100],
- m4_defn([m4_PACKAGE_VERSION])), [1], [],
- [AC_CONFIG_LINKS([$GNUmakefile:$GNUmakefile], [],
- [GNUmakefile=$GNUmakefile])])
- AC_CONFIG_FILES([Makefile doc/Makefile
- lib/Makefile lib/Autom4te/Makefile lib/autoscan/Makefile
- lib/m4sugar/Makefile
- lib/autoconf/Makefile lib/autotest/Makefile
- bin/Makefile])
- AC_OUTPUT
- # Report the state of this version of Autoconf if this is a beta.
- m4_bmatch(m4_defn([AC_PACKAGE_VERSION]), [[-a-z]],
- [ cat <<EOF
- You are about to use an experimental version of Autoconf. Be sure to
- read the relevant mailing lists, most importantly <autoconf@gnu.org>.
- Below you will find information on the status of this version of Autoconf.
- EOF
- sed -n '/^\* Status/,$p' $srcdir/BUGS
- echo
- ])dnl
|