123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540 |
- # Process this file with autoconf to produce a configure script.
- # $Id$
- #
- # Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
- # 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.
- #
- # This file is free software; as a special exception the author gives
- # unlimited permission to copy and/or distribute it, with or without
- # modifications, as long as this notice is preserved.
- #
- # This program is distributed in the hope that it will be useful, but
- # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
- # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- #
- AC_INIT([GNU Texinfo], [6.3.90], [bug-texinfo@gnu.org])
- dnl Must come before AM_INIT_AUTOMAKE.
- AC_CONFIG_AUX_DIR([build-aux])
- dnl tar-ustar because we have long filenames for some test files.
- dnl parallel-tests as recommended by stefano.
- AM_INIT_AUTOMAKE([1.14 dist-xz
- info-in-builddir parallel-tests readme-alpha tar-ustar])
- # Where to generate output; srcdir location.
- AC_CONFIG_HEADERS([config.h:config.in])dnl Keep filename to 8.3 for MS-DOS.
- AC_CONFIG_SRCDIR([info/info.c])
- # TexinfoXML DTD (./util/texinfo.dtd) version:
- # manually set this to the next version number rather than
- # $PACKAGE_VERSION, as soon as the DTD is modified, and perhaps put the
- # file on the web, too. Several reasons:
- # 1. To avoid using a DTD from the Internet that wouldn't be in sync;
- # 2. To avoid unnnecessary changes in XML output file headers, in
- # test results for instance.
- # 3. It may be kept as is in case there were no change in the DTD
- # between releases. This is rare, but has happened.
- #
- TEXINFO_DTD_VERSION=6.3dev
- AC_SUBST([TEXINFO_DTD_VERSION])
- # Conditional texi2html support.
- AM_CONDITIONAL([TEXI2HTML],[false])
- # Package date.
- PACKAGE_DATE=`${SHELL} "$srcdir"/build-aux/mdate-sh "$srcdir"/configure.ac`
- AC_SUBST([PACKAGE_DATE])
- # We need Perl
- AC_ARG_VAR([PERL], [The path to the 'perl' executable.])
- AC_PATH_PROG([PERL], [perl])
- if test -z "$PERL"; then
- AC_MSG_ERROR(
- [perl not found; Texinfo requires Perl.
- If you have perl installed somewhere not in PATH,
- specify where it is using
- ./configure PERL=/path/to/perl
- ])
- fi
- # User variables for a Perl XS extension, which may be different, for
- # example if the Perl interpreter being used was compiled with a
- # different compiler. Also in tp/Texinfo/Convert/XSParagraph/configure.ac.
- AC_ARG_VAR([PERL_EXT_CFLAGS], [Compiler flags for a Perl extension])
- AC_ARG_VAR([PERL_EXT_CPPFLAGS], [C preprocessor flags for a Perl extension])
- AC_ARG_VAR([PERL_EXT_LDFLAGS], [Linker flags for a Perl extension])
- AC_ARG_VAR([PERL_EXT_CC], [Compiler for a Perl extension])
- AC_MSG_CHECKING([Perl version and Encode module])
- if $PERL -e "use 5.007_003; use Encode;" > /dev/null 2>&1; then
- perl_version_requirement='yes'
- else
- perl_version_requirement='no'
- fi
- AC_MSG_RESULT($perl_version_requirement)
- if test z"$perl_version_requirement" = 'zno' ; then
- AC_MSG_ERROR([perl >= 5.7.3 with Encode required by Texinfo.])
- fi
- AC_REQUIRE_AUX_FILE([tap-driver.sh])
- AC_PROG_AWK
- # Checks for programs.
- AC_PROG_CC
- # Since we use gnulib: gl_EARLY must be called as soon as possible after
- # the C compiler is checked. The others could be later, but we just
- # keep everything together.
- gl_EARLY
- # Rest of Gnulib.
- gl_INIT
- # help2man to generate man pages.
- AM_MISSING_PROG(HELP2MAN, help2man)
- AC_PROG_INSTALL
- AC_PROG_MAKE_SET
- AC_PROG_LN_S
- AC_PROG_MKDIR_P
- # gettext Makefiles may still need MKINSTALLDIRS.
- MKINSTALLDIRS="\$(top_srcdir)/build-aux/install-sh -d"
- AC_SUBST([MKINSTALLDIRS])
- # check whether diff accepts the -u option (not on HP-UX).
- AC_MSG_CHECKING(whether diff accepts -u)
- diff_accepts_u_option=no
- echo foo >conftest.dtx
- echo foo | diff -u - conftest.dtx >/dev/null 2>&1
- error_status_diff_u=$?
- if test $error_status_diff_u = 0; then
- diff_accepts_u_option=yes
- fi
- AC_MSG_RESULT($diff_accepts_u_option)
- rm -f conftest.dtx
- DIFF_U_OPTION=
- if test "z$diff_accepts_u_option" = 'zyes' ; then
- DIFF_U_OPTION=-u
- fi
- AC_SUBST([DIFF_U_OPTION])
- # check whether diff accepts the -a option (only needed for GNU diff).
- AC_MSG_CHECKING(whether diff accepts -a)
- diff_accepts_a_option=no
- echo foo >conftest.dtx
- echo foo | diff -a - conftest.dtx >/dev/null 2>&1
- error_status_diff_a=$?
- if test $error_status_diff_a = 0; then
- diff_accepts_a_option=yes
- fi
- AC_MSG_RESULT($diff_accepts_a_option)
- rm -f conftest.dtx
- DIFF_A_OPTION=
- if test "z$diff_accepts_a_option" = 'zyes' ; then
- DIFF_A_OPTION=-a
- fi
- AC_SUBST([DIFF_A_OPTION])
- # Needed on sysV68 for sigblock, sigsetmask. But check for it in libc first.
- AC_CHECK_FUNC(sigblock, , [AC_CHECK_LIB(bsd, sigblock)])
- # Checks for header files.
- AC_HEADER_STAT
- AC_HEADER_STDC
- AC_CHECK_HEADERS(fcntl.h io.h limits.h pwd.h string.h strings.h \
- stropts.h termcap.h termio.h termios.h unistd.h \
- sys/fcntl.h sys/file.h sys/ioctl.h sys/stream.h \
- sys/time.h sys/ttold.h sys/wait.h)
- # sys/ptem.h requires sys/stream.h for mblk_t on Solaris.
- AC_CHECK_HEADERS([sys/ptem.h],,,
- [#if HAVE_SYS_STREAM_H
- #include <sys/stream.h>
- #endif
- ])
- AC_SYS_POSIX_TERMIOS
- # Checks for typedefs, structures, and compiler characteristics.
- AC_TYPE_OFF_T
- AC_TYPE_SIGNAL
- AC_C_CONST
- AC_STRUCT_TM
- # Checks for function declarations.
- AC_CHECK_DECLS([memchr, strcoll, strerror])
- # Checks for library functions.
- AC_FUNC_STRCOLL
- AC_FUNC_VPRINTF
- # in theory only pre-sysvr3 systems needed this and it's not likely
- # that anyone compiling new texinfo still has such a thing? we'll see.
- # AC_FUNC_SETVBUF_REVERSED
- AC_CHECK_FUNCS(bzero getcwd memset setlocale setvbuf sigaction sigprocmask \
- sigsetmask strchr posix_openpt)
- AC_REPLACE_FUNCS(memcpy memmove strdup strerror)
- # Used for Info tests
- AM_CONDITIONAL([have_ptys], [test x$ac_cv_func_posix_openpt = xyes])
- # We want to recognize djgpp to avoid the useless warning about no
- # term library.
- AC_CANONICAL_BUILD
- # We need to run some of our own binaries, most notably makedoc, but as
- # long as we have this process, we also use our own makeinfo and
- # install-info.
- #
- # This means that if we are cross compiling, we have to configure the
- # package twice: once with the native compiler (this is done in a
- # subdirectory $native_tools), and once with the cross compiler.
- # The former is invoked automatically here, with --host=$build.
- # $native_tools is also added to SUBDIRS in the main Makefile.am,
- # so that make compiles the native tools first.
- #
- if test "$cross_compiling" = no; then
- native_tools=
- else
- native_tools=tools
- test -d "$native_tools" || mkdir "$native_tools"
- confdir=`(cd "$srcdir";pwd)`
- # Make sure the secondary configure won't fail with
- # "error: source directory already configured".
- rm -f config.status
- AC_MSG_NOTICE([[Doing configure of native tools (${build}).]])
- cd "$native_tools" || exit 1
- # Run secondary configure in alternate environment or
- # it gets the wrong CC etc.
- # env -i gives this build host configure a clean environment;
- # consequently, we have to re-initialize $PATH.
- env -i CC="$BUILD_CC" AR="$BUILD_AR" RANLIB="$BUILD_RANLIB" \
- PATH="$PATH" \
- tools_only=1 \
- ${confdir}/configure --build=${build} --host=${build} \
- --disable-rpath --disable-nls
- cd .. || exit 1
- AC_MSG_NOTICE([[Continuing with main configure (${host}).]])
- fi
- AC_SUBST(native_tools)
- AM_CONDITIONAL(TOOLS_ONLY, [[test "x$tools_only" = x1]])
- # Some GNU/Linux systems (e.g., SuSE 4.3, 1996) don't have curses, but
- # rather ncurses. So we check for it.
- TERMLIBS=
- # Check for termlib before termcap because Solaris termcap needs libucb.
- TERMLIB_VARIANTS="tinfo ncurses curses termlib termcap terminfo"
- for termlib in ${TERMLIB_VARIANTS}; do
- AC_CHECK_LIB(${termlib}, tgetent,
- [TERMLIBS="${TERMLIBS} -l${termlib}"; break])
- done
- have_termlib=yes
- # don't bother warning on djgpp and MinGW, they don't have a term library,
- # and port each termcap-needing program separately according to the needs.
- if test -z "$TERMLIBS" \
- && echo "$build" | grep -v djgpp | grep -v mingw >/dev/null; then
- AC_MSG_WARN([info needs a terminal library, one of: ${TERMLIB_VARIANTS}])
- have_termlib=no
- fi
- # Checks for variables.
- # HP-UX 9 (at least) needs -lncurses which defines termcap variables PC etc.
- AC_MSG_CHECKING(for library with termcap variables)
- AC_CACHE_VAL(ac_cv_var_ospeed,
- [oldLIBS=$LIBS
- for trylib in $termlib ${TERMLIB_VARIANTS}; do
- if test "x$trylib" != "x$termlib"; then
- LIBS="$oldLIBS -l$termlib -l$trylib"
- else
- LIBS="$oldLIBS -l$termlib"
- fi
- AC_LINK_IFELSE([AC_LANG_PROGRAM([], [[#ifdef HAVE_NCURSES_TERMCAP_H
- #include <ncurses/termcap.h>
- #else
- #ifdef HAVE_TERMCAP_H
- #include <termcap.h>
- #else
- #undef PC
- char *BC;
- char **UP;
- char PC;
- short ospeed;
- #endif
- #endif
- /* Make sure all variables actually exist. AIX 4.3 has ospeed but no BC.
- --Andreas Ley <andy@rz.uni-karlsruhe.de> 24 Aug 2000. */
- BC++;
- UP++;
- PC++;
- return ospeed != 0;
- ]])], [ac_cv_var_ospeed=$trylib; break])
- done
- LIBS=$oldLIBS
- ])
- AC_MSG_RESULT($ac_cv_var_ospeed)
- if test -n "$ac_cv_var_ospeed" \
- && test "x$termlib" != "x$ac_cv_var_ospeed"; then
- TERMLIBS="${TERMLIBS} -l${ac_cv_var_ospeed}"
- fi
- AC_SUBST(TERMLIBS)#
- AM_CONDITIONAL(HAVE_TERMLIBS, [[test "x$TERMLIBS" != x]])
- # Do not use <ncurses/termcap.h> unless we're linking with ncurses.
- # Must come after the termlib tests.
- if test "x$termlib" = xncurses; then
- # Use AC_CHECK_HEADERS so the HAVE_*_H symbol gets defined.
- AC_CHECK_HEADERS(ncurses/termcap.h)
- fi
- # For teTeX and TeX Live.
- AC_CANONICAL_HOST
- AC_ARG_ENABLE([multiplatform],
- [AS_HELP_STRING([--enable-multiplatform],
- [put executables into bin/PLATFORM and libraries into lib/PLATFORM])])dnl
- # if enable_multiplatform is set in the environment, use that.
- if test "x$enable_multiplatform" = xyes; then
- test "x$bindir" = 'x${exec_prefix}/bin' && bindir="$bindir/$host"
- test "x$libdir" = 'x${exec_prefix}/lib' && libdir="$libdir/$host"
- fi
- # Taken from the example in
- # http://www.gnu.org/software/automake/manual/html_node/Conditionals.html.
- AC_ARG_ENABLE(install-warnings,
- [ --disable-install-warnings omit make install warnings about TeX files],
- [case "${enableval}" in
- yes) install_warnings=true ;;
- no) install_warnings=false ;;
- *) AC_MSG_ERROR(bad value ${enableval} for --enable-install-warnings) ;;
- esac],
- [install_warnings=true])
- AM_CONDITIONAL(INSTALL_WARNINGS,
- test x"$install_warnings" = xtrue || test x"$install_warnings" = xyes)
- USE_EXTERNAL_EASTASIANWIDTH=no
- AC_ARG_WITH([external-Unicode-EastAsianWidth],
- AC_HELP_STRING([--with-external-Unicode-EastAsianWidth],
- [use external Unicode-EastAsianWidth (default: no)]),
- [if test $withval = 'yes'; then
- USE_EXTERNAL_EASTASIANWIDTH=yes
- fi]
- )
- AC_SUBST([USE_EXTERNAL_EASTASIANWIDTH])
- USE_EXTERNAL_UNIDECODE=no
- AC_ARG_WITH([external-Text-Unidecode],
- AC_HELP_STRING([--with-external-Text-Unidecode],
- [use external Text::Unidecode (default: no)]),
- [if test $withval = 'yes'; then
- USE_EXTERNAL_UNIDECODE=yes
- fi]
- )
- AC_SUBST([USE_UNICODE])
- AC_SUBST([USE_EXTERNAL_UNIDECODE])
- # i18n support. To update to a new version of gettext, run:
- # gettextize -f --po-dir=po --po-dir=po_document
- # See http://gnu.org/s/gnulib/manual/html_node/gettextize-and-autopoint.html.
- AM_GNU_GETTEXT_VERSION([0.19.8])
- AM_GNU_GETTEXT([external])
- USE_EXTERNAL_LIBINTL=no
- AC_ARG_WITH([external-libintl-perl],
- AC_HELP_STRING([--with-external-libintl-perl],
- [use external libintl-perl (default: no)]),
- [if test $withval = 'yes'; then
- USE_EXTERNAL_LIBINTL=yes
- fi]
- )
- AC_SUBST([USE_EXTERNAL_LIBINTL])
- AC_ARG_ENABLE([perl-xs],
- AC_HELP_STRING([--enable-perl-xs],
- [build Perl XS modules for speed (default: check)]),
- [ enable_xs=$enableval],
- [ enable_xs=check])
- # Set xs_srcdir to the path from XSParagraph builddir to srcdir
- case $srcdir in
- .) # We are building in place.
- xs_srcdir=../../.. ;;
- [[\\/]]* | ?:[[\\/]]* ) # Absolute name.
- xs_srcdir=$srcdir/tp ;;
- *) # Relative name.
- xs_srcdir=../../../../$srcdir/tp ;;
- esac
- # Pass on all the options we were given to the subsidiary configure
- # script.
- # Don't use AC_CONFIG_SUBDIRS for this because it isn't done right away,
- # and we need it for the check that follows.
- # We use the _AC_OUTPUT_SUBDIRS internal autoconf macro
- # (in /usr/share/autoconf/autoconf/status.m4) for this in order to
- # pass on the configure command line correctly; for example, adjusting
- # paths. It is done in a subshell to be resilient against failure of the
- # subsidiary configure script, which happens if the C compiler is found
- # not to work.
- #
- save_subdirs=$subdirs
- subdirs=tp/Texinfo/Convert/XSParagraph
- ( _AC_OUTPUT_SUBDIRS ) || enable_xs=no
- subdirs=$save_subdirs
- if test $enable_xs = check; then
- AC_MSG_CHECKING([whether we can build Perl extension (XS) modules])
- AC_MSG_RESULT([])
- enable_xs=no
- (cd tp/Texinfo/Convert/XSParagraph \
- && make clean \
- && make TestXS.la \
- && TEXINFO_XS=debug ; export TEXINFO_XS \
- && ${PERL} -I . \
- -I ${xs_srcdir} \
- -w ${xs_srcdir}/Texinfo/Convert/XSParagraph/fail.pl \
- | grep 'message from XS module') \
- && enable_xs=yes
- AC_MSG_CHECKING([whether we can build Perl extension (XS) modules])
- AC_MSG_RESULT([$enable_xs])
- fi
- AC_SUBST([enable_xs])
- AM_CONDITIONAL([DISABLE_XS], [test "z$enable_xs" = zno])
- if test $enable_xs = yes; then
- AC_CONFIG_SUBDIRS([tp/Texinfo/MiscXS])
- fi
- # Tests.
- AC_CONFIG_FILES([install-info/tests/defs])
- dnl We cannot enable the TeX-related tests, so don't waste time
- dnl configuring them. See contrib/nontests/README.
- dnl AC_CONFIG_FILES([util/tests/defs])
- dnl AC_CHECK_PROGS([HEVEA], [hevea], [])
- dnl AC_CHECK_PROGS([TEX], [tex], [])
- AC_CHECK_PROGS([PROVE], [prove], [])
- tp_tests='no'
- AC_ARG_ENABLE([tp-tests],
- AC_HELP_STRING([--enable-tp-tests],
- [run the parser and converters testsuite (default: detected)]),
- [if test $enableval = 'no'; then
- tp_tests='no'
- else
- tp_tests='yes'
- fi],
- [
- if test "z$PROVE" = 'z'; then
- tp_tests='no'
- elif $PERL -e "use 5.007_003; use Encode; use Test::More; use File::Basename; use File::Copy; use Data::Dumper; use Data::Compare; use Test::Deep; use Storable qw(dclone); use Getopt::Long qw(GetOptions);" > /dev/null 2>&1;
- then
- tp_tests='yes'
- else
- tp_tests='no'
- fi
- ])
- AC_MSG_CHECKING([parser tests requirements])
- AC_MSG_RESULT([$tp_tests])
- AM_CONDITIONAL([TP_TESTS], [test "z$tp_tests" = 'zyes'])
- build_perl_api_texi='no'
- AC_ARG_ENABLE([perl-api-texi-build],
- AC_HELP_STRING([--enable-perl-api-texi-build],
- [build the perl api texinfo files (default: detected)]),
- [if test $enableval = 'no'; then
- build_perl_api_texi='no'
- else
- build_perl_api_texi='yes'
- fi],
- [
- if $PERL -e "use 5.007_003; use Encode; use Pod::Simple::PullParser;" > /dev/null 2>&1;
- then
- build_perl_api_texi='yes'
- else
- build_perl_api_texi='no'
- fi
- ])
- AC_MSG_CHECKING([Perl Texinfo API texinfo documentation build requirements])
- AC_MSG_RESULT([$build_perl_api_texi])
- AM_CONDITIONAL([BUILD_PERL_API_TEXI], [test "z$build_perl_api_texi" = 'zyes'])
- pod_simple_texinfo_tests='no'
- AC_ARG_ENABLE([pod-simple-texinfo-tests],
- AC_HELP_STRING([--enable-pod-simple-texinfo-tests],
- [run the parser and converters testsuite (default: detected)]),
- [if test $enableval = 'no'; then
- pod_simple_texinfo_tests='no'
- else
- pod_simple_texinfo_tests='yes'
- fi],
- [
- if test "z$PROVE" = 'z' ; then
- pod_simple_texinfo_tests='no'
- elif $PERL -e "use 5.007_003; use Encode; use Test::More; use Pod::Simple::PullParser;" > /dev/null 2>&1;
- then
- pod_simple_texinfo_tests='yes'
- else
- pod_simple_texinfo_tests='no'
- fi
- ])
- AC_MSG_CHECKING([Pod::Simple::Texinfo tests requirements])
- AC_MSG_RESULT([$pod_simple_texinfo_tests])
- AM_CONDITIONAL([POD_SIMPLE_TEXINFO_TESTS], [test "z$pod_simple_texinfo_tests" = 'zyes'])
- host_is_windows=no
- case "$host" in
- *-mingw32 | *-mingw64 | *-msdosdjgpp ) host_is_windows=yes ;;
- esac
- AM_CONDITIONAL([HOST_IS_WINDOWS], [test "x$host_is_windows" = "xyes"])
- # The config files to generate.
- AC_CONFIG_FILES([\
- Makefile
- doc/Makefile
- doc/tp_api/Makefile
- gnulib/lib/Makefile
- info/Makefile
- install-info/Makefile
- install-info/tests/Makefile
- man/Makefile
- po/Makefile.in
- po_document/Makefile.in
- util/Makefile
- texindex/Makefile
- tp/Makefile
- tp/Texinfo/ModulePath.pm
- tp/tests/Makefile
- tp/tests/many_input_files/Makefile
- tp/tests/sectioning/Makefile
- tp/tests/coverage/Makefile
- tp/tests/formatting/Makefile
- tp/tests/indices/Makefile
- tp/tests/contents/Makefile
- tp/tests/htmlxref/Makefile
- tp/tests/htmlxref-only_mono/Makefile
- tp/tests/htmlxref-only_split/Makefile
- tp/tests/nested_formats/Makefile
- tp/tests/layout/Makefile
- tp/tests/tex_html/Makefile
- tp/defs
- Pod-Simple-Texinfo/Makefile
- ])
- AC_OUTPUT
- # Summarize warnings to make them more visible.
- if test $have_termlib = no; then
- AC_MSG_WARN([Could not find a terminal library among ${TERMLIB_VARIANTS}])
- AC_MSG_WARN([The programs from \`info' directory will not be built.])
- fi
|