1# -*- Autoconf -*- 2# Process this file with autoconf to produce a configure script. 3 4# Copyright (C) 1992-1995, 1999-2012 Free Software Foundation, Inc. 5 6# This program is free software: you can redistribute it and/or modify 7# it under the terms of the GNU General Public License as published by 8# the Free Software Foundation, either version 3 of the License, or 9# (at your option) any later version. 10# 11# This program is distributed in the hope that it will be useful, 12# but WITHOUT ANY WARRANTY; without even the implied warranty of 13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14# GNU General Public License for more details. 15# 16# You should have received a copy of the GNU General Public License 17# along with this program. If not, see <http://www.gnu.org/licenses/>. 18 19# We need AC_CONFIG_TESTDIR, AC_PROG_SED, AC_PROG_GREP. 20AC_PREREQ([2.60]) 21 22AC_INIT([GNU Autoconf], 23 m4_esyscmd([build-aux/git-version-gen .tarball-version]), 24 [bug-autoconf@gnu.org]) 25AC_CONFIG_SRCDIR([lib/autoconf/autoconf.m4]) 26 27AC_CONFIG_AUX_DIR([build-aux]) 28 29AM_INIT_AUTOMAKE([1.11 dist-xz readme-alpha no-texinfo.tex std-options]) 30 31AB_INIT 32 33# We use `/bin/sh -n script' to check that there are no syntax errors 34# in the scripts. Although incredible, there are /bin/sh that go into 35# endless loops with `-n', e.g., SunOS's: 36# 37# $ uname -a 38# SunOS ondine 4.1.3 2 sun4m unknown 39# $ cat endless.sh 40# while false 41# do 42# : 43# done 44# exit 0 45# $ time sh endless.sh 46# sh endless.sh 0,02s user 0,03s system 78% cpu 0,064 total 47# $ time sh -nx endless.sh 48# ^Csh -nx endless.sh 3,67s user 0,03s system 63% cpu 5,868 total 49# 50# Also, some implementations of /bin/sh (e.g., Solaris 8) are soooo slow 51# that they are unusable on large scripts like our testsuite. 52 53# So before using `/bin/sh -n' to check our scripts, we first check 54# that `/bin/sh -n' is known to not have these problems. 55 56AC_CACHE_CHECK([whether /bin/sh -n is known to work], [ac_cv_sh_n_works], 57[if ( 58 unset BASH_VERSION ZSH_VERSION 59 /bin/sh -c ' 60 test -n "${BASH_VERSION+set}" || # Bash 61 test -n "${KSH_VERSION+set}" || # pdksh 62 test -n "${ZSH_VERSION+set}" || # zsh 63 test -n "${.sh.version}" # ksh93; put this last since its syntax is dodgy 64 ' 65 ) 2>/dev/null 66then ac_cv_sh_n_works=yes 67else ac_cv_sh_n_works=no 68fi 69]) 70AC_SUBST([ac_cv_sh_n_works]) 71 72AC_MSG_CHECKING([for characters that cannot appear in file names]) 73AC_CACHE_VAL([ac_cv_unsupported_fs_chars], 74[ac_cv_unsupported_fs_chars= 75for c in '\\' \" '<' '>' '*' '?' '|' 76do 77 touch "conftest.t${c}t" 2>/dev/null 78 test -f "conftest.t${c}t" && rm -f "conftest.t${c}t" && continue 79 # $c cannot be used in a file name. 80 ac_cv_unsupported_fs_chars=$ac_cv_unsupported_fs_chars$c 81done 82]) 83if test -n "$ac_cv_unsupported_fs_chars"; then 84 AC_MSG_RESULT([$ac_cv_unsupported_fs_chars]) 85else 86 AC_MSG_RESULT([none]) 87fi 88 89AC_SUBST([ac_cv_unsupported_fs_chars]) 90 91AC_CACHE_CHECK([whether directories can have trailing spaces], 92 [ac_cv_dir_trailing_space], 93[rm -rf 'conftest.d ' && mkdir 'conftest.d ' && touch 'conftest.d /tfile' 2>/dev/null 94stat=$? 95rm -rf 'conftest.d ' 96case $stat$? in #( 97 00) ac_cv_dir_trailing_space=yes ;; #( 98 *) ac_cv_dir_trailing_space=no ;; 99esac 100]) 101AC_SUBST([ac_cv_dir_trailing_space]) 102 103# Initialize the test suite. 104AC_CONFIG_TESTDIR([tests]) 105AC_CONFIG_FILES([tests/Makefile tests/atlocal]) 106AC_PATH_PROG([EXPR], [expr]) 107 108 109## ---- ## 110## M4. ## 111## ---- ## 112 113# We use an absolute name for GNU m4 so even if users have another m4 first in 114# their path, the installer can configure with a path that has GNU m4 115# on it and get that path embedded in the installed autoconf and 116# autoheader scripts. 117AC_PROG_GNU_M4 118 119## ----------- ## 120## Man pages. ## 121## ----------- ## 122 123AC_CONFIG_FILES([man/Makefile]) 124AM_MISSING_PROG([HELP2MAN], [help2man]) 125 126 127## ------ ## 128## Perl. ## 129## ------ ## 130 131# We use an absolute name for perl so the #! line in autoscan will work. 132AC_PATH_PROG([PERL], [perl], [no]) 133AC_SUBST([PERL])dnl 134if test "$PERL" = no; then 135 AC_MSG_ERROR([perl is not found]) 136fi 137$PERL -e 'require 5.006;' || { 138 AC_MSG_ERROR([Perl 5.006 or better is required]) 139} 140 141# Find out whether the system supports flock 142# Note this test does not try to find out whether it works with this 143# particular file system. It merely avoids us running flock on systems 144# where that bails out. 145AC_CACHE_CHECK([whether $PERL Fcntl::flock is implemented], 146 [ac_cv_perl_flock_implemented], 147 [echo lock me > conftest.fil 148 if $PERL -e 'use Fcntl ":flock"; flock("conftest.fil", LOCK_EX); 1;'; then 149 ac_cv_perl_flock_implemented=yes 150 else 151 ac_cv_perl_flock_implemented=no 152 fi 153 rm -f conftest.fil 154 ]) 155AC_SUBST([PERL_FLOCK], [$ac_cv_perl_flock_implemented]) 156 157 158## ------- ## 159## Emacs. ## 160## ------- ## 161 162AC_CONFIG_FILES([lib/emacs/Makefile]) 163TEST_EMACS=$EMACS 164test x"$TEST_EMACS" = xt && TEST_EMACS= 165AC_CHECK_PROGS([TEST_EMACS], [emacs xemacs], [no]) 166 167# autoconf-mode.el and autotest-mode.el do not work with older version of 168# Emacs (i.e. 18.x.x). During byte-compilation, Emacs complains: 169# "Variable (broken nil) seen on pass 2 of byte compiler but not pass 1" 170# We detect this problem here. 171AS_IF([test "$TEST_EMACS" != no], 172 [AC_CACHE_CHECK([whether $TEST_EMACS is sufficiently recent], 173 [ac_cv_prog_emacs_ok], 174 [# Note: The quoted "EOF" is intentional. It protects the ` in the text. 175 cat >conftest.el << "EOF" 176 (defvar broken) 177 (defun broken-mode () (setq broken-defaults `(broken nil))) 178EOF 179 AS_IF([AC_RUN_LOG( 180 [$TEST_EMACS -batch -q -f batch-byte-compile conftest.el 1>&2])], 181 [ac_cv_prog_emacs_ok=yes], [ac_cv_prog_emacs_ok=no]) 182 rm -f conftest.el conftest.elc]) 183 AS_IF([test $ac_cv_prog_emacs_ok = no], [TEST_EMACS=no])]) 184 185AC_SUBST([EMACS], [$TEST_EMACS]) 186 187AM_PATH_LISPDIR 188 189 190## ------------ ## 191## Grep & sed. ## 192## ------------ ## 193AC_PROG_GREP 194AC_PROG_EGREP 195AC_PROG_SED 196 197 198## ----- ## 199## Make. ## 200## ----- ## 201AC_PROG_MAKE_CASE_SENSITIVE 202 203 204## ------------ ## 205## Conclusion. ## 206## ------------ ## 207 208dnl Allow maintainer rules under GNU make even in VPATH builds. This does 209dnl not work in autoconf 2.61 or earlier, but we don't want to require 210dnl unreleased autoconf during bootstrap, hence the version test. 211dnl TODO remove the version check once we depend on autoconf 2.62. 212dnl Meanwhile, we must use a shell variable so that we bypass automake's 213dnl attempts to remove the sole copy of GNUmakefile in a non-VPATH build 214dnl during 'make distclean'. 215dnl TODO avoid the shell variable once automake is fixed. 216GNUmakefile=GNUmakefile 217m4_if(m4_version_compare([2.61a.100], 218 m4_defn([m4_PACKAGE_VERSION])), [1], [], 219 [AC_CONFIG_LINKS([$GNUmakefile:$GNUmakefile], [], 220 [GNUmakefile=$GNUmakefile])]) 221 222AC_CONFIG_FILES([Makefile doc/Makefile 223 lib/Makefile lib/Autom4te/Makefile lib/autoscan/Makefile 224 lib/m4sugar/Makefile 225 lib/autoconf/Makefile lib/autotest/Makefile 226 bin/Makefile]) 227 228AC_OUTPUT 229# Report the state of this version of Autoconf if this is a beta. 230m4_bmatch(m4_defn([AC_PACKAGE_VERSION]), [[-a-z]], 231[ cat <<EOF 232 233You are about to use an experimental version of Autoconf. Be sure to 234read the relevant mailing lists, most importantly <autoconf@gnu.org>. 235 236Below you will find information on the status of this version of Autoconf. 237 238EOF 239 sed -n '/^\* Status/,$p' $srcdir/BUGS 240echo 241])dnl 242