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