summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac571
1 files changed, 0 insertions, 571 deletions
diff --git a/configure.ac b/configure.ac
deleted file mode 100644
index 20d486d5c099..000000000000
--- a/configure.ac
+++ /dev/null
@@ -1,571 +0,0 @@
-dnl Process this file with autoconf to produce a configure script.
-AC_INIT(TRE, 0.8.0, [tre-general@lists.laurikari.net])
-AC_CONFIG_SRCDIR([lib/regcomp.c])
-AC_CONFIG_AUX_DIR(utils)
-AC_CANONICAL_TARGET
-AM_INIT_AUTOMAKE(1.9.0)
-AC_PREREQ(2.59)
-AM_GNU_GETTEXT_VERSION(0.17)
-
-dnl Checks for programs.
-AC_PROG_CC
-AC_PROG_CPP
-AC_PROG_INSTALL
-AM_PROG_CC_C_O
-
-tre_version_1=`echo $PACKAGE_VERSION | cut -d . -f 1`
-tre_version_2=`echo $PACKAGE_VERSION | cut -d . -f 2`
-tre_version_3=`echo $PACKAGE_VERSION | cut -d . -f 3`
-tre_version=$tre_version_1.$tre_version_2.$tre_version_3
-AC_DEFINE_UNQUOTED(TRE_VERSION, "$tre_version", [ TRE version string. ])
-AC_DEFINE_UNQUOTED(TRE_VERSION_1, $tre_version_1, [ TRE version level 1. ])
-AC_DEFINE_UNQUOTED(TRE_VERSION_2, $tre_version_2, [ TRE version level 2. ])
-AC_DEFINE_UNQUOTED(TRE_VERSION_3, $tre_version_3, [ TRE version level 3. ])
-AC_SUBST(TRE_VERSION, $tre_version)
-
-dnl Options
-AC_ARG_ENABLE(profile,
- AC_HELP_STRING([--enable-profile],
- [enable profiling with gprof @<:@default=disabled@:>@]),
- [ tre_profile="$enableval" ],
- [ tre_profile="no" ])
-
-AC_ARG_ENABLE(debug,
- AC_HELP_STRING(
- [--enable-debug],
- [enable development-time debugging @<:@default=disabled@:>@]),
- [ tre_debug="$enableval" ],
- [ tre_debug="no" ])
-if test "$tre_debug" = "yes"; then
- AM_CONDITIONAL(TRE_DEBUG, true)
- AC_DEFINE(TRE_DEBUG, 1,
- [ Define if you want TRE to print debug messages to stdout. ])
-else
- AM_CONDITIONAL(TRE_DEBUG, false)
- AC_DEFINE(NDEBUG, 1, [ Define if you want to disable debug assertions. ])
-fi
-
-if test "$tre_profile" = "yes"; then
- CFLAGS="$CFLAGS -pg"
- AM_CONDITIONAL(TRE_PROFILE, true)
-else
- AM_CONDITIONAL(TRE_PROFILE, false)
-fi
-
-AC_ARG_ENABLE(warnings,
- AC_HELP_STRING(
- [--disable-warnings],
- [disable C compiler warning messages @<:@default=enabled@:>@]),
- [ tre_cc_warnings="$enableval" ],
- [ tre_cc_warnings="yes" ])
-if test "$tre_cc_warnings" = "yes"; then
- VL_PROG_CC_WARNINGS()
-fi
-
-AC_ARG_ENABLE(approx,
- AC_HELP_STRING(
- [--disable-approx],
- [disable the approximate matching functionality @<:@default=enabled@:>@]),
- [ tre_approx="$enableval" ],
- [ tre_approx="yes" ])
-if test "$tre_approx" = "yes"; then
- AC_DEFINE(TRE_APPROX, 1,
- [ Define if you want to enable approximate matching functionality. ])
- AM_CONDITIONAL(TRE_APPROX, true)
-else
- AM_CONDITIONAL(TRE_APPROX, false)
-fi
-
-if test "$tre_approx" = "yes"; then
- AC_ARG_ENABLE(agrep,
- AC_HELP_STRING([--disable-agrep],
- [Do not build and install the agrep tool @<:@default=install@:>@]),
- [ tre_agrep="$enableval" ],
- [ tre_agrep="yes" ])
-else
- tre_agrep="no (requires approximate matching)"
-fi
-
-if test "$tre_agrep" = "yes"; then
- AM_CONDITIONAL(TRE_AGREP, true)
-else
- AM_CONDITIONAL(TRE_AGREP, false)
-fi
-
-
-dnl Checks for compiler characteristics.
-AC_C_CONST
-AC_C_INLINE
-
-dnl Checks for headers, functions, types, and macros
-AC_DEFINE(_GNU_SOURCE, 1, [ Define to enable GNU extensions in glibc ])
-AC_HEADER_STDC
-
-AC_ARG_WITH(alloca,
- AC_HELP_STRING(
- [--without-alloca],
- [don't use alloca @<:@default=use@:>@]),
- [ tre_use_alloca="$withval" ],
- [ tre_use_alloca="yes" ])
-if test "$tre_use_alloca" = "yes"; then
- ALLOCA=""
- AC_FUNC_ALLOCA
- if test -z "$ALLOCA"; then
- # alloca() works.
- AC_DEFINE(TRE_USE_ALLOCA, 1,
- [ Define if you want TRE to use alloca() instead of malloc() when
- allocating memory needed for regexec operations. ])
- fi
-fi
-
-AC_ARG_ENABLE(system-abi,
- AC_HELP_STRING(
- [--enable-system-abi],
- [try to make TRE compatible with the system \
-regex ABI @<:@default=disabled@:>@]),
- [ tre_system_abi="$enableval" ],
- [ tre_system_abi="no" ])
-
-# If we are building a version compatible with the system ABI, we need to
-# find an absolute path to the system regex.h (so it can be included from
-# TRE regex.h using `#include "/path/to/regex.h"'). Then we need to
-# find a field in the system defined regex_t struct where a pointer to
-# the compiled regex object can be stored.
-
-if test "$tre_system_abi" = "yes"; then
- # Check that there is a system regex.h to begin with. We may need
- # to include sys/types.h before regex.h, so check for that first.
- AC_CHECK_HEADERS([sys/types.h])
- AC_CHECK_HEADERS([regex.h], [],
- [ tre_system_abi="no (regex.h not found)" ],
- [#if HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-])
-fi
-
-if test "$tre_system_abi" = "yes"; then
- # Find out where system regex.h is. This is done by running the C
- # preprocessor and grepping its output, hopefully getting a full
- # path to regex.h.
- AC_MSG_CHECKING([path to system regex.h])
- echo '#include <regex.h>' > conftest.c
- tre_system_regex_h=`$CPP conftest.c \
- | grep '^#[a-z]* [0-9]* "\(.*regex.h\)"' \
- | head -1 \
- | sed 's/^#[a-z]* [0-9]* \"\(.*\)\".*/\1/'`
- rm -f conftest.c
- if test -n "$tre_system_regex_h" && test -f "$tre_system_regex_h"; then
- AC_MSG_RESULT($tre_system_regex_h)
- else
- AC_MSG_RESULT(unknown)
- tre_system_abi="no (could determine path to systeg regex.h)"
- fi
-fi
-
-if test "$tre_system_abi" = "yes"; then
- # Find a field in the system regex_t struct where we can store a pointer.
- # This is done by trying several names that are known to work on different
- # systems.
- AC_MSG_CHECKING([for a usable field for a pointer in regex_t])
- tre_regex_t_field=""
- for field in buffer re_comp __re_comp __reg_expression \
- re_g "re_pad@<:@0@:>@"; do
- if test -z "$tre_regex_t_field"; then
- AC_COMPILE_IFELSE(
- [ AC_LANG_PROGRAM([
-#include <sys/types.h>
-#include <regex.h>
- ],
- [
- regex_t foo;
- void *bar = foo.$field;
- foo.$field = bar;
- ])],
- [ AC_MSG_RESULT($field)
- tre_regex_t_field="$field" ])
- fi
- done
- if test -z "$tre_regex_t_field"; then
- AC_MSG_RESULT(no)
- tre_system_abi="no (unknown regex_t contents, report to \
-$PACKAGE_BUGREPORT)"
- fi
-fi
-
-if test "$tre_system_abi" = "yes"; then
- # So far, so good. Now check if we can redefine the system regex
- # functions. For example, the system headers may define the
- # standard functions as static wrapper functions (like on IRIX)
- # which prevents redefining them later.
-
- # IRIX has some macro magic which we need to turn off.
- AC_DEFINE(_REGCOMP_INTERNAL, 1, [ Define on IRIX ])
- AC_MSG_CHECKING([if POSIX regex functions can be redefined])
- AC_COMPILE_IFELSE(
- [ AC_LANG_PROGRAM([
-#include <sys/types.h>
-#include <regex.h>
-
-int
-regcomp(regex_t *preg, const char *regex, int cflags)
-{
- return 0;
-}
-void
-regfree(regex_t *preg)
-{
- return;
-}
-int
-regexec(const regex_t *preg, const char *str,
- size_t nmatch, regmatch_t pmatch@<:@@:>@, int eflags)
-{
- return 0;
-}
-size_t
-regerror(int errcode, const regex_t *preg, char *errbuf,
- size_t errbuf_size)
-{
- return 0;
-}
- ])],
- [ AC_MSG_RESULT(yes)
- tre_system_abi="yes" ],
- [ AC_MSG_RESULT(no)
- tre_system_abi="no (unable to redefine system functions)" ])
-fi
-
-if test "$tre_system_abi" = "yes"; then
- # Great, everything seems to be OK for ABI compatibility. Just check
- # some additional types that may or may not be defined, and set up
- # variables to enable ABI compatibility in regex.h.
-
- AC_CHECK_TYPES([reg_errcode_t],,,[
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif /* HAVE_SYS_TYPES_H */
-#ifdef HAVE_REGEX_H
-#include <regex.h>
-#endif /* HAVE_REGEX_H */
- ])
-
- AC_DEFINE(TRE_USE_SYSTEM_REGEX_H, 1,
- [ Define to include the system regex.h from TRE regex.h ])
- AC_DEFINE_UNQUOTED(TRE_SYSTEM_REGEX_H_PATH, "$tre_system_regex_h",
- [ Define to the absolute path to the system regex.h ])
- AC_DEFINE_UNQUOTED(TRE_REGEX_T_FIELD, $tre_regex_t_field,
- [ Define to a field in the regex_t struct where TRE should store a
- pointer to the internal tre_tnfa_t structure ])
-else
- AC_DEFINE(TRE_REGEX_T_FIELD, value)
-fi
-
-AC_CHECK_FUNCS([isascii isblank])
-
-AC_CHECK_HEADERS([getopt.h])
-AC_CHECK_FUNCS([getopt_long],,
- [ # FreeBSD has a "gnugetopt" library.
- AC_CHECK_LIB([gnugetopt], [getopt_long],
- [ AC_DEFINE([HAVE_GETOPT_LONG]) ]) ])
-
-dnl Check whether wide character support should be enabled.
-AC_ARG_ENABLE(wchar,
- AC_HELP_STRING(
- [--disable-wchar],
- [disable the wide character (wchar_t) support @<:@default=detect@:>@]),
- [ tre_enable_wchar="$enableval" ],
- [ tre_enable_wchar="detect" ])
-
-dnl Check whether libutf8 location has been given.
-AC_ARG_WITH(libutf8,
- AC_HELP_STRING(
- [--with-libutf8@<:@=DIR@:>@],
- [search for libutf8 from DIR/include and DIR/lib])
-AC_HELP_STRING(
- [--without-libutf8],
- [do not use libutf8 @<:@default=use if needed@:>@]),
- [ if test "$with_val" = "no"; then
- tre_libutf8="no"
- else
- tre_libutf8="yes"
- tre_libutf8_dirs="$with_libutf8"
- tre_libutf8_libs="-lutf8"
- fi ],
- [ tre_libutf8="detect"
- tre_libutf8_dirs="none /usr /usr/local"
- tre_libutf8_libs="none -lutf8" ])
-
-
-if test "$tre_enable_wchar" != "no"; then
-
- dnl Wide character support is requested. Check if we need libutf8.
- old_libs="$LIBS"
- old_ldflags="$LDFLAGS"
- old_cppflags="$CPPFLAGS"
- if test "$tre_libutf8" != "no"; then
- AC_MSG_CHECKING([for libutf8])
- found="no"
- dnl Go through directories in $tre_libutf8_dirs for CPPFLAGS and LDFLAGS.
- for try_dir in $tre_libutf8_dirs; do
- if test "$try_dir" = "none"; then
- LDFLAGS="$old_ldflags"
- CPPFLAGS="$old_cppflags"
- else
- LDFLAGS="$old_ldflags -L$try_dir/lib"
- CPPFLAGS="$old_cppflags -I$try_dir/include"
- fi
- dnl Go through libs in $tre_libutf8_libs.
- for try_lib in $tre_libutf8_libs; do
- if test "$try_lib" = "none"; then
- LIBS="$old_libs"
- else
- LIBS="$try_lib $old_libs"
- fi
- dnl Check if mbrtowc or utf8_mbrtowc is available with the current
- dnl CPPFLAGS, LDFLAGS, and LIBS.
- AC_LINK_IFELSE([AC_LANG_CALL([],[mbrtowc])],[found="yes"])
- if test "$found" = "yes"; then
- break;
- fi
- AC_LINK_IFELSE([AC_LANG_CALL([],[utf8_mbrtowc])],[found="yes"])
- if test "$found" = "yes"; then
- break;
- fi
- done
- if test "$found" = "yes"; then
- break;
- fi
- done
-
- dnl Report results.
- if test "$found" = "yes"; then
- if test "$LIBS" = "$old_libs"; then
- AC_MSG_RESULT([not needed])
- tre_libutf8="no"
- else
- AC_MSG_RESULT([using from $try_dir/{lib,include}])
- tre_libutf8="yes"
- fi
- else
- LIBS="$old_libs"
- LDFLAGS="$old_ldflags"
- CPPFLAGS="$old_cppflags"
- if test "$tre_libutf8" = "detect"; then
- AC_MSG_RESULT([no])
- tre_libutf8="no"
- else
- # Fail if libutf8 was requested but was not found.
- AC_MSG_ERROR([not found])
- fi
- fi
- fi
-
- if test "$tre_libutf8" = "yes"; then
- dnl We do need libutf8, use the libutf8 headers.
- tre_wchar="yes"
- AC_CHECK_HEADERS([libutf8.h])
- else
- dnl Use the POSIX headers.
- AC_CHECK_HEADERS([wchar.h wctype.h])
- fi
-
-else
- tre_wchar_reason="disabled with --disable-wchar"
- tre_wchar="no ($tre_wchar_reason)"
-fi
-
-
-tre_includes="
-#ifdef HAVE_WCHAR_H
-#include <wchar.h>
-#endif /* HAVE_WCHAR_H */
-#ifdef HAVE_WCTYPE_H
-#include <wctype.h>
-#endif /* HAVE_WCTYPE_H */
-#ifdef HAVE_LIBUTF8_H
-#include <libutf8.h>
-#endif /* HAVE_LIBUTF8_H */
-"
-
-if test "$tre_enable_wchar" != "no"; then
- dnl We need wchar_t and WCHAR_MAX
- AC_CHECK_TYPES([wchar_t],
- [ tre_wchar="yes"
- AX_DECL_WCHAR_MAX ],
- [ tre_wchar_reason="wchar_t type not found"
- tre_wchar="no ($tre_wchar_reason)" ],
- [ $tre_includes ])
-
- if test "$tre_wchar" = "yes"; then
- dnl We need wint_t
- AC_CHECK_TYPES([wint_t],,
- [ tre_wchar_reason="wint_t type not found"
- tre_wchar="no ($tre_wchar_reason)" ],
- [ $tre_includes ])
- fi
-
- if test "$tre_wchar" = "yes"; then
- dnl We may need mbstate_t
- AC_CHECK_TYPES([mbstate_t],,,[ $tre_includes ])
- fi
-
- if test "$tre_wchar" = "yes"; then
- dnl We need either wcsrtombs (preferred) or wcstombs
- found="no"
- AX_CHECK_FUNCS_COMP([wcsrtombs wcstombs],[found="yes"; break],,
- [$tre_includes])
- if test "$found" = "no"; then
- tre_wchar_reason="no wcsrtombs or wcstombs found"
- tre_wchar="no ($tre_wchar_reason)"
- fi
- fi
-
- if test "$tre_wchar" = "yes"; then
- dnl We need all these
- AX_CHECK_FUNCS_COMP([iswlower iswupper towlower towupper wcschr \
- wcscpy wcslen wcsncpy],
- [ tre_wchar="yes" ],
- [ tre_wchar_reason="$ac_func not found"
- tre_wchar="no ($tre_wchar_reason)"
- break ],
- [ $tre_includes ])
- fi
-fi
-
-case $host in
- *-mingw*)
- dnl wcsrtombs and wcstombs don't seem to work at all on MinGW.
- if test "$tre_libutf8" != "yes"; then
- tre_wchar_reason="Not supported on MinGW"
- tre_wchar="no ($tre_wchar_reason)"
- fi
- ;;
-esac
-
-# Fail if wide character support was specifically requested but is
-# not supported on this system.
-if test "$tre_enable_wchar" = "yes"; then
- if test "$tre_wchar" != "yes"; then
- AC_MSG_ERROR([Cannot enable wide character support: $tre_wchar_reason])
- fi
-fi
-
-if test "$tre_wchar" = "yes"; then
- AC_DEFINE(TRE_WCHAR, 1,
- [ Define to enable wide character (wchar_t) support. ])
-
- dnl We make use of these if they exist.
- AX_CHECK_FUNCS_COMP([wctype iswctype],,,[$tre_includes])
- AX_CHECK_FUNCS_COMP([iswascii iswblank],,,[$tre_includes])
-fi
-
-dnl Check for multibyte character set support
-AC_ARG_ENABLE(multibyte,
- AC_HELP_STRING(
- [--disable-multibyte],
- [disable multibyte character set support @<:@default=detect@:>@]),
- [ tre_enable_multibyte="$enableval" ],
- [ tre_enable_multibyte="detect" ])
-
-dnl Wide character support is required for multibyte character set support
-if test "$tre_wchar" != "yes"; then
- if test "$tre_enable_multibyte" = "yes"; then
- AC_MSG_ERROR([Cannot enable multibyte character support because wide \
-character support is not enabled ($tre_wchar_reason)])
- fi
-fi
-
-if test "$tre_enable_multibyte" != "no"; then
- if test "$tre_wchar" != "yes"; then
- tre_multibyte="no (requires wide character support)"
- else
- found="no"
- dnl We need either mbrtowc (preferred) or mbtowc
- AX_CHECK_FUNCS_COMP([mbrtowc mbtowc],[found="yes"; break],,[$tre_includes])
- if test "$found" = "no"; then
- tre_mbs_reason="no mbrtowc or mbtowc found"
- tre_multibyte="no ($tre_mbs_reason)"
- else
- tre_multibyte="yes"
- fi
- fi
-else
- tre_multibyte="no (disabled with --disable-multibyte)"
-fi
-
-# Fail if multibyte character set support was specifically requested but
-# is not supported on this system.
-if test "$tre_enable_multibyte" = "yes"; then
- if test "$tre_multibyte" != "yes"; then
- AC_MSG_ERROR([Cannot enable multibyte character set support: \
-$tre_mbs_reason])
- fi
-fi
-
-if test "$tre_multibyte" = "yes"; then
- AM_CONDITIONAL(TRE_MULTIBYTE, true)
- AC_DEFINE(TRE_MULTIBYTE, 1,
- [ Define to enable multibyte character set support. ])
-else
- AM_CONDITIONAL(TRE_MULTIBYTE, false)
-fi
-
-AC_SYS_LARGEFILE
-
-AM_GNU_GETTEXT([external])
-AC_LIBTOOL_TAGS([])
-AC_LIBTOOL_WIN32_DLL
-AM_DISABLE_STATIC
-AC_PROG_LIBTOOL
-
-dnl Output files
-AC_CONFIG_HEADERS([config.h lib/tre-config.h])
-AC_CONFIG_FILES([
-Makefile
-doc/Makefile
-doc/agrep.1
-lib/Makefile
-m4/Makefile
-po/Makefile.in
-src/Makefile
-tests/Makefile
-tests/agrep/Makefile
-tre.pc
-tre.spec
-utils/Makefile
-])
-AC_OUTPUT
-
-
-dnl Print configuration summary
-
-cat <<EOF
-
-
-Configuration summary
-=====================
-
-TRE is now configured as follows:
-
-* Compilation environment
-
- CC = $CC
- CFLAGS = $CFLAGS
- CPP = $CPP
- CPPFLAGS = $CPPFLAGS
- LD = $LD
- LDFLAGS = $LDFLAGS
- LIBS = $LIBS
- Use alloca(): $tre_use_alloca
-
-* TRE options
-
- Development-time debugging: $tre_debug
- System regex ABI compatibility: $tre_system_abi
- Wide character (wchar_t) support: $tre_wchar
- Multibyte character set support: $tre_multibyte
- Approximate matching support: $tre_approx
- Build and install agrep: $tre_agrep
-
-EOF