diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 241 |
1 files changed, 241 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..696e513 --- /dev/null +++ b/configure.ac @@ -0,0 +1,241 @@ +# -*- 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 |