Merge branch 'yacc-work' into yl-work-for-master
[platform/upstream/automake.git] / configure.ac
1 # Process this file with autoconf to produce a configure script.
2
3 # Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
4 # 2004, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software
5 # Foundation, Inc.
6 #
7 # This program is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 2, or (at your option)
10 # any later version.
11 #
12 # This program is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 # GNU General Public License for more details.
16 #
17 # You should have received a copy of the GNU General Public License
18 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
19
20 AC_PREREQ([2.68])
21 AC_INIT([GNU Automake], [1.11a], [bug-automake@gnu.org])
22
23 AC_CONFIG_SRCDIR([automake.in])
24 AC_CONFIG_AUX_DIR([lib])
25
26 AM_SILENT_RULES([yes])
27
28 AC_CANONICAL_HOST
29 AC_CANONICAL_BUILD
30
31 # Save the AUTOCONF setting before AM_INIT_AUTOMAKE overrides it; this
32 # way we can run Autoconf tests from configure (or from the test
33 # suite) without being bothered by `missing'.  Likewise for autom4te,
34 # autoreconf, autoheader, and autoupdate.
35 AC_SUBST([am_AUTOCONF], ["${AUTOCONF-autoconf}"])
36 AC_SUBST([am_AUTOM4TE], ["${AUTOM4TE-autom4te}"])
37 AC_SUBST([am_AUTORECONF], ["${AUTORECONF-autoreconf}"])
38 AC_SUBST([am_AUTOHEADER], ["${AUTOHEADER-autoheader}"])
39 AC_SUBST([am_AUTOUPDATE], ["${AUTOUPDATE-autoupdate}"])
40
41 dnl We call AC_PROG_CC in an unusual way, and only for use in our
42 dnl testsuite, so also use `no-dependencies' and `no-define' among
43 dnl the automake options to avoid bloating and potential problems.
44 AM_INIT_AUTOMAKE([1.10a dist-xz filename-length-max=99 color-tests
45                   parallel-tests silent-rules no-define no-dependencies])
46
47 # The API version is the base version.  We must guarantee
48 # compatibility for all releases with the same API version.
49 # Our current rule is that:
50 # * All releases, including the prereleases, in an X.Y series
51 #   are compatible.  So 1.5.1c is compatible with 1.5.
52 # * Prereleases on the trunk are all incompatible -- 1.5b and 1.5c
53 #   aren't the same.
54 APIVERSION=`echo "$VERSION" | sed -e 's/^\([[0-9]]*\.[[0-9]]*[[a-z]]*\).*$/\1/'`
55 AC_SUBST([APIVERSION])
56
57 AC_SUBST([pkgvdatadir], ["\${datadir}/$PACKAGE-$APIVERSION"])
58 AC_SUBST([scriptdir], ["\${pkgvdatadir}"])
59 AC_SUBST([amdir], ["\${pkgvdatadir}/am"])
60 AC_SUBST([automake_acdir], ["\${datadir}/aclocal-$APIVERSION"])
61 AC_SUBST([system_acdir], ["\${datadir}/aclocal"])
62
63 # $AUTOMAKE and $ACLOCAL are always run after a `cd $top_srcdir',
64 # hence `.' is really what we want for perllibdir, libdir, and acdir.
65 ACLOCAL="perllibdir=\"`pwd`/lib$PATH_SEPARATOR./lib\" \"`pwd`/aclocal\" --acdir=m4 -I m4"
66 AUTOMAKE="perllibdir=\"`pwd`/lib$PATH_SEPARATOR./lib\" \"`pwd`/automake\" --libdir=lib"
67
68 AC_PATH_PROG([PERL], [perl])
69 if test -z "$PERL"; then
70    AC_MSG_ERROR([perl not found])
71 fi
72 # Save details about the selected perl interpreter in config.log.
73 AM_RUN_LOG([$PERL --version])
74 $PERL -e 'require 5.006;' || {
75    AC_MSG_ERROR(
76 [perl 5.6 or better is required; perl 5.8.2 or better
77 is recommended.  If you have several perl versions
78 installed, select the one Automake should use using
79   ./configure PERL=/path/to/perl])
80 }
81
82 # We require ithreads support, and version 5.7.2 for CLONE.
83 AC_CACHE_CHECK([whether $PERL supports ithreads], [am_cv_prog_PERL_ithreads],
84 [if $PERL -e '
85     require 5.007_002;
86     use Config;
87     if ($Config{useithreads})
88       {
89         require threads;
90         import threads;
91         require Thread::Queue;
92         import Thread::Queue;
93         exit 0;
94       }
95     exit 1;' >&AS_MESSAGE_LOG_FD 2>&1
96 then
97   am_cv_prog_PERL_ithreads=yes
98 else
99   am_cv_prog_PERL_ithreads=no
100 fi])
101 if test $am_cv_prog_PERL_ithreads = yes; then
102   PERL_THREADS=1;
103 else
104   PERL_THREADS=0;
105 fi
106 AC_SUBST([PERL_THREADS])
107
108 # The test suite will skip some tests if tex is absent.
109 AC_CHECK_PROG([TEX], [tex], [tex])
110 # Save details about the selected TeX program in config.log.
111 # Redirect input from /dev/null, as TeX might otherwise hang waiting
112 # for input from the terminal.
113 AM_RUN_LOG([$TEX --version </dev/null])
114
115 # The test suite will skip some tests if no lex or yacc program is
116 # available.
117 # We don't use AC_PROG_LEX nor AC_PROG_YACC here because:
118 #  1. we don't want flex (resp. bison) to be preferred to system lex
119 #     (resp. system yacc);
120 #  2. we don't want $LEX (resp. $YACC) to be defined to ':' (resp. 'yacc')
121 #     by default;
122 #  3. we prefer not to have the variables YFLAGS, LEX_OUTPUT_ROOT and
123 #     LEXLIB to be calculated and/or AC_SUBST'd;
124 #  4. we prefer that the YACC and LEX variables are not reported in the
125 #     configure help screen.
126 AC_CHECK_PROGS([YACC], [yacc byacc 'bison -y'], [false])
127 AC_CHECK_PROGS([LEX], [lex flex], [false])
128 # We don't want YACC and LEX defined as make variables, otherwise the
129 # values determined at configure time will override those from the
130 # environment, even in the make-spawned testcases.
131 AM_SUBST_NOTMAKE([YACC])
132 AM_SUBST_NOTMAKE([LEX])
133
134 # Generate man pages.
135 AM_MISSING_PROG([HELP2MAN], [help2man])
136
137 # Test for Autoconf.  We run Autoconf in a subdirectory to ease
138 # deletion of any files created (such as those added to
139 # autom4te.cache).  We used to perform only the last of the three
140 # following tests, but some users were unable to figure out that their
141 # installation was broken since --version appeared to work.
142
143 required_autoconf_version=2.62
144 AC_CACHE_CHECK([whether autoconf is installed], [am_cv_autoconf_installed],
145 [if AM_RUN_LOG([$am_AUTOCONF --version]);
146 then
147   am_cv_autoconf_installed=yes
148 else
149   am_cv_autoconf_installed=no
150 fi])
151 if test "$am_cv_autoconf_installed" = no; then
152   AC_MSG_ERROR([Autoconf $required_autoconf_version or better is required.
153     Please make sure it is installed and in your PATH.])
154 fi
155
156 AC_CACHE_CHECK([whether autoconf works], [am_cv_autoconf_works],
157 [mkdir conftest
158 echo 'AC''_INIT' > conftest/conftest.ac
159 if AM_RUN_LOG([cd conftest && $am_AUTOCONF -o /dev/null conftest.ac]);
160 then
161   am_cv_autoconf_works=yes
162 else
163   am_cv_autoconf_works=no
164 fi
165 rm -rf conftest])
166 if test "$am_cv_autoconf_works" = no; then
167   AC_MSG_ERROR([The installed version of autoconf does not work.
168     Please check config.log for error messages before this one.])
169 fi
170
171 AC_CACHE_CHECK([whether autoconf is recent enough], [am_cv_autoconf_version],
172 [mkdir conftest
173 dnl Creative quoting required to avoid spurious expansion of AC_PREREQ macro
174 echo 'AC'"_PREREQ([[$required_autoconf_version]])" > conftest/conftest.ac
175 if AM_RUN_LOG([cd conftest && $am_AUTOCONF -o /dev/null conftest.ac]);
176 then
177   am_cv_autoconf_version=yes
178 else
179   am_cv_autoconf_version=no
180 fi
181 rm -rf conftest])
182 if test "$am_cv_autoconf_version" = no; then
183   AC_MSG_ERROR([Autoconf $required_autoconf_version or better is required.])
184 fi
185
186 # Test for ln.  We need use it to install the versioned binaries.
187 AC_MSG_CHECKING([whether ln works])
188 AC_CACHE_VAL([am_cv_prog_ln], [
189 rm -f conftest conftest.file
190 : >conftest.file
191 if ln conftest.file conftest 2>/dev/null; then
192   am_cv_prog_ln=ln
193 else
194   am_cv_prog_ln='cp -p'
195 fi
196 rm -f conftest conftest.file])
197 AC_SUBST([LN], [$am_cv_prog_ln])
198 result=no
199 test "x$am_cv_prog_ln" = xln && result=yes
200 AC_MSG_RESULT([$result])
201
202 # The amount we should wait after modifying files depends on the platform.
203 # On Windows '95, '98 and ME, files modifications have 2-seconds
204 # granularity and can be up to 3 seconds in the future w.r.t. the
205 # system clock.  When it is important to ensure one file is older
206 # than another we wait at least 5 seconds between creations.
207 case $build in
208   *-pc-msdosdjgpp) MODIFICATION_DELAY=5;;
209   *)               MODIFICATION_DELAY=2;;
210 esac
211 AC_SUBST([MODIFICATION_DELAY])
212
213 # Test for things needed by the test suite.
214 AC_PROG_EGREP
215 AC_PROG_FGREP
216
217 AC_CACHE_CHECK([whether $SHELL has working 'set -e' with exit trap],
218 [am_cv_sh_errexit_works],
219 [if $SHELL -ec "trap 'exit \$?' 0; (exit 77); exit 77"; test $? = 77
220 then
221   am_cv_sh_errexit_works=yes
222 else
223   am_cv_sh_errexit_works=no
224 fi
225 ])
226 if test $am_cv_sh_errexit_works = no; then
227   AC_MSG_WARN([`${MAKE-make} check' will leave leftover directories tests/*.dir])
228   AC_MSG_WARN([you can clean them up manually using `${MAKE-make} clean' or])
229   AC_MSG_WARN([`cd tests && ${MAKE-make} clean-local-check'])
230   dnl restore font-lock: `
231 fi
232 AC_SUBST([sh_errexit_works], [$am_cv_sh_errexit_works])
233
234
235 ###########################################################################
236
237 # Look for C, C++ and fortran compilers to be used in the testsuite.
238
239 dnl We don't want to abort our configuration script if no C compiler is
240 dnl available, as such a compiler is only required to run part of the
241 dnl testsuite, not to build or install Automake.  Ditto for C++, Fortran
242 dnl and Fortran 77 compilers.  Unfortunately, autoconf does not offer an
243 dnl easy way to obtain this behaviour, so we'll need a few hacks.
244
245 dnl We want the body of this macro to expand as a single shell statement,
246 dnl thus we wrap it into { ... } brackets.
247 AC_DEFUN([_AM_WRAP_MSG_ERROR], [ {
248   AC_MSG_WARN([$1])
249   am__failed=yes
250   break
251 } ])
252
253 AC_DEFUN([_AM_COMPILER_CAN_FAIL], [
254   m4_pushdef([AC_MSG_FAILURE], m4_defn([_AM_WRAP_MSG_ERROR]))
255   m4_pushdef([AC_MSG_ERROR],   m4_defn([_AM_WRAP_MSG_ERROR]))
256   am__failed=no
257   while :; do
258      $1
259      break
260   done
261   AS_IF([test $am__failed = yes], [$2])
262   # We have to clear these cache variables, so that future checks on
263   # compilers for different languages won't be confused.
264   unset ac_cv_objext ac_cv_exeext
265   # We also need to meddle with the autoconf internals to ensure that
266   # checks to find object and executable extensions will be run anew.
267   # FIXME: In the long run, the better thing to do would be to fix
268   # FIXME: autoconf instead ...
269   m4_undefine([m4_provide(_AC_COMPILER_OBJEXT)])
270   m4_undefine([m4_provide(_AC_COMPILER_EXEEXT)])
271   m4_popdef([AC_MSG_FAILURE])
272   m4_popdef([AC_MSG_ERROR])
273 ])
274
275 # Prefer generic compilers to GNU ones when possible.  This will ensure
276 # more testsuite coverage "in the wild".
277 # Note that we don't look for the MSVC C/C++ compiler here.  This is
278 # deliberate; for more discussion an rationale, see:
279 # <http://lists.gnu.org/archive/html/automake-patches/2012-01/msg00130.html>
280
281 # C compiler.
282 _AM_COMPILER_CAN_FAIL([AC_PROG_CC([cc gcc])], [CC=false])
283 AS_IF([test x"$GCC" = x"yes"], [am_CC_is_GNU=yes], [am_CC_is_GNU=no])
284
285 # The list of C++ compilers here has been copied, pasted and edited
286 # from `lib/autoconf/c.m4:AC_PROG_CXX' in the Autoconf distribution.
287 # Keep it in sync, or better again, find out a way to avoid this code
288 # duplication.
289 _AM_COMPILER_CAN_FAIL([AC_PROG_CXX(dnl
290   [aCC CC FCC KCC RCC xlC_r xlC c++ cxx cc++ gpp g++])],
291   [CXX=false])
292 AS_IF([test x"$GXX" = x"yes"], [am_CXX_is_GNU=yes], [am_CXX_is_GNU=no])
293
294 # The lists of Fortran compilers here has been copied, pasted and edited
295 # from file `lib/autoconf/fortran.m4' in the Autoconf distribution.
296 # Keep it in sync, or better again, find out a way to avoid this code
297 # duplication.
298
299 _AM_COMPILER_CAN_FAIL([AC_PROG_FC(dnl
300   [xlf95 f95 fort ifort ifc efc pgfortran pgf95 lf95 ftn nagfor] dnl
301   [xlf90 f90 pgf90 pghpf epcf90 g95 gfortran])],
302   [FC=false])
303 # FIXME this won't work as expected until we can assume autoconf 2.69 :-(
304 AS_IF([test x"$GFC" = x"yes"], [am_FC_is_GNU=yes], [am_FC_is_GNU=no])
305
306 _AM_COMPILER_CAN_FAIL([AC_PROG_F77(dnl
307   [xlf f77 frt pgf77 cf77 fort77 fl32 af77 g77 gfortran])],
308   [F77=false])
309 AS_IF([test x"$G77" = x"yes"], [am_F77_is_GNU=yes], [am_F77_is_GNU=no])
310
311 # Some tests will need the GNU compilers.  Searching for them here would
312 # be overkill, since our testsuite already handles their search and setup
313 # pretty well.  However, in case the compilers detected above at configure
314 # time are not the GNU ones, we cannot use the values of CFLAGS, CXXFLAGS,
315 # FCFLAGS and FFLAGS detected for them with the GNU compilers too, since
316 # it's likely they won't be compatible.  So we allow the user to define
317 # variants of this variables for the GNU compilers separately.
318
319 test $am_CC_is_GNU = yes && GNU_CFLAGS=${GNU_CFLAGS-$CFLAGS}
320 AC_ARG_VAR([GNU_CFLAGS], [GNU C compiler flags])
321
322 test $am_CXX_is_GNU = yes && GNU_CXXFLAGS=${GNU_CXXFLAGS-$CXXFLAGS}
323 AC_ARG_VAR([GNU_CXXFLAGS], [GNU C++ compiler flags])
324
325 test $am_F77_is_GNU = yes && GNU_FCFLAGS=${GNU_FCFLAGS-$FCFLAGS}
326 AC_ARG_VAR([GNU_FCFLAGS], [GNU Fortran compiler flags])
327
328 test $am_FC_is_GNU = yes && GNU_FFLAGS=${GNU_FFLAGS-$FFLAGS}
329 AC_ARG_VAR([GNU_FFLAGS], [GNU Fortran 77 compiler flags])
330
331 # If we have been able to find at least a working compiler above, we
332 # know what the object and executable extensions for this platform are.
333 OBJEXT=${ac_cv_objext-UNKNOWN}
334 EXEEXT=${ac_cv_exeext-UNKNOWN}
335 AC_SUBST([OBJEXT])
336 AC_SUBST([EXEEXT])
337
338 ###########################################################################
339
340 AC_CONFIG_FILES([
341   Makefile
342   contrib/Makefile
343   doc/Makefile
344   lib/Automake/Makefile
345   lib/Makefile
346   lib/am/Makefile
347   m4/Makefile
348   tests/Makefile
349 ])
350 AC_CONFIG_LINKS([GNUmakefile:GNUmakefile])
351 AC_CONFIG_LINKS([tests/defs:tests/defs])
352 AC_CONFIG_FILES([tests/aclocal-${APIVERSION}:tests/aclocal.in],
353                 [chmod +x tests/aclocal-${APIVERSION}],
354                 [APIVERSION=$APIVERSION])
355 AC_CONFIG_FILES([tests/automake-${APIVERSION}:tests/automake.in],
356                 [chmod +x tests/automake-${APIVERSION}])
357
358 AC_OUTPUT
359
360 # Inform the user if this version of automake is a beta release or
361 # a development snapshot.
362 # According to HACKING, the version of a development snapshot should
363 # end with an "odd" letter (a, c, ...), the version of a test release
364 # should end wit an "even" letter (b, d, ...).
365
366 am_stable_version_rx='[[1-9]\.[0-9]+(\.[0-9]+)?]'
367 am_beta_version_rx="[$am_stable_version_rx[bdfhjlnprtvxz]]"
368
369 am_release_type=`AS_ECHO(["$PACKAGE_VERSION"]) | LC_ALL=C awk ["
370   /^$am_stable_version_rx$/ { print \"stable\"; exit(0); }
371   /^$am_beta_version_rx$/ { print \"beta version\"; exit(0); }
372   { print \"development snapshot\"; }"]`
373
374 test "$am_release_type" = stable || cat <<EOF
375
376 WARNING: You are about to use a $am_release_type of automake.
377 WARNING: It might easily suffer from new bugs or regressions.
378 WARNING: You are strongly advised not to use it in production code.
379
380 Please report bugs, problems and feedback to <bug-automake@gnu.org>.
381 EOF
382
383 AS_EXIT([0])