summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac241
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