Blame configure.ac

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