mc/m4.include/mc-check-search-type.m4
Andrew Borodin 49624e473b Ticket #4450: support PCRE2 in the search engine.
* m4.include/ax_path_lib_pcre.m4: replace by recent version from GNU
Autoconf Archive.
  * m4.include/ax_check_pcre2.m4: get grom GNU Autoconf Archive.
  * m4.include/mc-check-search-type.m4: support both PCRE versions.
  * */*/Makefile.am: remove @CHECK_CFLAGS@ and @PCRE_LIBS@ ads they are
added via AX_PATH_LIB_PCRE and AX_CHECK_PCRE2.
  * lib/search.h, lib/search/: add support of PCRE2. Thanks broly <gagan@hotmail.com>
for the initial patch.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2023-03-25 10:07:41 +03:00

65 lines
1.5 KiB
Plaintext

dnl @synopsis mc_CHECK_SEARCH_TYPE
dnl
dnl Check search type in mc. Currently used glib-regexp or pcre
dnl
dnl @author Slava Zanko <slavazanko@gmail.com>
dnl @author Andrew Borodin <aborodin@vmail.ru>
dnl @version 2023-03-22
dnl @license GPL
dnl @copyright Free Software Foundation, Inc.
AC_DEFUN([mc_CHECK_SEARCH_TYPE_PCRE],[
AX_PATH_LIB_PCRE
if test x"${PCRE_LIBS}" = x; then
AC_MSG_ERROR([$1])
fi
SEARCH_TYPE="pcre"
])
AC_DEFUN([mc_CHECK_SEARCH_TYPE_PCRE2],[
AX_CHECK_PCRE2([8], [], [:])
if test $pcre2_cv_libpcre2 = yes; then
SEARCH_TYPE="pcre2"
else
dnl pcre2 not found -- try pcre
AC_MSG_WARN([Cannot find pcre2 library, trying pcre one...])
mc_CHECK_SEARCH_TYPE_PCRE([$1])
fi
])
AC_DEFUN([mc_CHECK_SEARCH_TYPE],[
AC_ARG_WITH([search-engine],
AS_HELP_STRING([--with-search-engine=type],
[Select low-level search engine @<:@glib|pcre|pcre2@:>@])
)
case x$with_search_engine in
xglib)
SEARCH_TYPE="glib-regexp"
;;
xpcre)
mc_CHECK_SEARCH_TYPE_PCRE([Cannot find pcre library])
;;
xpcre2)
mc_CHECK_SEARCH_TYPE_PCRE2([Neither pcre2 nor pcre library found!])
;;
x)
SEARCH_TYPE="glib-regexp"
;;
*)
AC_MSG_ERROR([Value of the search-engine is incorrect])
;;
esac
if test x"$SEARCH_TYPE" = x"glib-regexp"; then
AC_DEFINE(SEARCH_TYPE_GLIB, 1, [Define to select 'glib-regexp' search type])
else
AC_DEFINE(SEARCH_TYPE_PCRE, 1, [Define to select 'pcre2' or 'pcre' search type])
fi
])