autoconf/configure.ac

230 lines
6.6 KiB
Plaintext
Raw Normal View History

# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
# Copyright (C) 1992-1995, 1999-2013 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/>.
AC_PREREQ([2.62])
AC_INIT([GNU Autoconf],
m4_esyscmd([build-aux/git-version-gen .tarball-version]),
[bug-autoconf@gnu.org])
AC_CONFIG_SRCDIR([lib/autoconf/autoconf.m4])
Rework to use more-modern build style. Many files are renamed; all uses of their names were changed. * .x-sc_trailing_blank: Renamed from .x-sc_trailing_blank. * .x-sc_useless_cpp_parens: New file. * build-aux/config.guess: Renamed from config/config.guess. Update. * build-aux/config.sub: Renamed from config/config.sub. Update. * build-aux/elisp-comp: Renamed from config/elisp-comp. * build-aux/install-sh: Renamed from config/install-sh. Update. * build-aux/mdate-sh: Renamed from config/mdate-sh. * build-aux/missing: Renamed from config/missing. * build-aux/texinfo.tex: Renamed from config/texinfo.tex. Update. * build-aux/vc-list-files: Renamed from config/vc-list-files. * config/Makefile.am: Removed. * config/mkinstalldirs: Removed. * config/move-if-change: Removed. * m4/m4.m4: Renamed from config/m4.m4. Add (C) to copyright notice. * Makefile.am (SUBDIRS): Remove config. (ACLOCAL_AMFLAGS): Include from m4, not config. (EXTRA_DIST): Add config/announce-gen, config/prev-version.txt. (WGET, WGETFLAGS): New macros, since Makefile.maint no longer does this. (autom4te-update): Rewrite with a loop. Get from gnulib, not automake. Fail if there's an error. * Makefile.cfg (move_if_change): Remove. (wget_files): Remove. (cvs_executable_files): New macro. (cvs_files): Use it. Remove mkinstalldirs. Add fdl.texi. (executable-update): Use $(cvs_executable_files). (local-checks-to-skip): Remove. * Makefile.maint: Merge from coreutils, plus add our own changes (gzip_rsyncable): New macro. (GZIP_ENV): Use it. (CVS_LIST): Use build-aux/vc-list-files. (VERSION_REGEXP): New macro. (local-checks-available): Add patch-check, $(syntax-check-rules), check-AUTHORS. (syntax-check-rules): Compute dynamically. (sc_cast_of_x_alloc_return_value): Work even if no source files. (sc_cast_of_alloca_return_value): Likewise. (sc_prohibit_atoi_atof): Simplify regexp. (sc_no_if_have_config_h, sc_require_config_h): (sc_prohibit_assert_without_use, (sc_obsolete_symbols): Check for O_NDELAY. (sc_texi_notab): Remove. (sc-changelog): Don't make an exception for '----' lines. (.re-list): Remove, so we don't have a junk file behind. (sc_system_h_headers): Remove the need for .re-list. (sc_the_the): New rule. (sc_tight_scope): Simplify. (sc_trailing_space): Renamed from sc_trailing_blank. (longopt_re): New macro. (sc_two_space_separator_in_usage): New rule. (sc_unmarked_diagnostics): Look at all files under CVS. (sc_useless_cpp_parens, patch-check, check-AUTHORS): New rules. (news-date-check, changelog-check): Version is OK. (po-check): Look for lib files even if not in CVS. (copyright-check): Use $() not ``. (maintainer-distcheck): Do not depend on changelog-check. (my-distcheck): Depend on $(release_archive_dir)/$(prev-tgz). Also check for -Wpointer-arith. (WGET, WGETFLAGS, tgz-md5, tgz-sha1, bz2-md5, bz2-sha1): (xdelta-md5, xdelta-sha1, tgz-size, bz2-size, xd-size, rel-check): Remove. (announcement): Add --gpg-key-id arg. (cvs-sv): Remove. (move_if_change): Just use mv. (local_updates: Remove wget-update, po-update. (po_repo, do-po-update, po-update, wget_files, get-targets): Remove. (config.guess-url_prefix, config.sub-url_prefix): Remove. (ansi2knr.c-url_prefix, texinfo.tex-url_prefix): (standards.texi-url_prefix, make-stds.texi-url_prefix, target, url): ($(get-targets)): Remove. (cvs_files): Remove missing, mkinstalldirs, ansi2knr.c. (gnulib_repo): Renamed from automake_repo. Get from gnulib now. (cvs-update): Get from gnulib. (emut_upload_commands): gnupload is in build-aux now. (alpha beta major): Add changelog-check. Check version. * configure.ac (AC_CONFIG_AUX_DIR): Renamed from config to build-aux. (AC_CONFIG_FILES): Remove. * bin/autoconf.as: Add spaces to avoid distcheck warning. * config/announce-gen: Sync from coreutils. * doc/make-stds.texi: Sync from gnulib. * doc/standards.texi: Likewise. * man/Makefile.am: Adjust for config -> build-aux renaming. * tests/Makefile.am: Prefer $(FOO) to @FOO@. * tests/local.at: Adjust from config -> build-aux renaming. * tests/tools.at: Likewise. * tests/torture.at: Likewise.
2006-08-25 06:56:47 +08:00
AC_CONFIG_AUX_DIR([build-aux])
AM_INIT_AUTOMAKE([1.11 dist-xz readme-alpha no-texinfo.tex std-options])
1994-10-19 08:29:57 +08:00
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.
2002-03-08 21:10:19 +08:00
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])
2002-03-08 21:10:19 +08:00
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. ##
## ------- ##
2002-03-08 21:10:19 +08:00
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
2005-06-22 20:13:59 +08:00
## ------------ ##
## Grep & sed. ##
## ------------ ##
AC_PROG_GREP
2005-06-22 20:13:59 +08:00
AC_PROG_EGREP
AC_PROG_SED
## ----- ##
## Make. ##
## ----- ##
AC_PROG_MAKE_CASE_SENSITIVE
## ------------ ##
## Conclusion. ##
## ------------ ##
dnl Allow maintainer rules under GNU make even in VPATH builds.
AC_CONFIG_LINKS([GNUmakefile:GNUmakefile])
AC_CONFIG_FILES([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