mirror of
git://git.sv.gnu.org/autoconf
synced 2025-02-17 14:01:27 +08:00
Following the practice set by various other GNU projects, we start to automatically generate the ChangeLog file from the git commit messages. This will avoid duplication (as the ChangeLog entries were always inserted both in the git commit message and in the version-controlled ChangeLog file), and potential problems with spurious merge conflicts (which, although greatly mitigated by Bruno Haible's `git-merge-changelog' helper program, have never been completely solved). * ChangeLog: Moved ... * ChangeLog.3: ... to this. * build-aux/gitlog-to-changelog: New script, synced from gnulib. * cfg.mk (gnulib-update): Also sync gitlog-to-changelog. * Makefile.am (gen-ChangeLog): New .PHONY rule, generate the ChangeLog for distribution. (dist-hook): Depend on it. ($(srcdir)/ChangeLog): New dummy rule, to pacify automake "gnu" strictness. Creates a dummy ChangeLog, that will be overridden by the proper one at distribution time. (gen_start_date): New variable, the date starting from which the git log entries are to be copied in the generated ChangeLog. (EXTRA_DIST): Add ChangeLog.3 and gitlog-to-changelog. * configure.ac (AC_CONFIG_SRCDIR): Use 'lib/autoconf/autoconf.m4' instead of 'ChangeLog' as the sentinel file. * .gitignore: Add ChangeLog.
243 lines
7.2 KiB
Plaintext
243 lines
7.2 KiB
Plaintext
# -*- 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-bzip2 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.005_03;' || {
|
|
AC_MSG_ERROR([Perl 5.005_03 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
|