Blame configure.ac

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