Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/zabbix/zabbix.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/m4
diff options
context:
space:
mode:
authorJurijs Klopovskis <jurijs.klopovskis@zabbix.com>2021-11-23 13:14:14 +0300
committerJurijs Klopovskis <jurijs.klopovskis@zabbix.com>2021-11-23 14:38:32 +0300
commit18917f919a68abc863a5c79ba88c0cb156255fdc (patch)
tree224c9b290bcc207e18c8f6787cfbc07e646bc40b /m4
parent5f0b2ab49b5cdc3f072d0f604c1d0d0033d1766b (diff)
.......... [ZBXNEXT-4922] got pcre2.m4 working
Diffstat (limited to 'm4')
-rw-r--r--m4/pcre2.m4167
1 files changed, 167 insertions, 0 deletions
diff --git a/m4/pcre2.m4 b/m4/pcre2.m4
new file mode 100644
index 00000000000..fa3d5a2c02d
--- /dev/null
+++ b/m4/pcre2.m4
@@ -0,0 +1,167 @@
+# LIBPCRE2_CHECK_CONFIG ([DEFAULT-ACTION])
+# ----------------------------------------------------------
+#
+# Checks for pcre2.
+#
+# This macro #defines HAVE_PCRE2_H if required header files are
+# found, and sets @LIBPCRE2_LDFLAGS@ and @LIBPCRE2_CFLAGS@ to the necessary
+# values.
+#
+# This macro is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+AC_DEFUN([LIBPCRE2_TRY_LINK],
+[
+AC_TRY_LINK(
+[
+#define PCRE2_CODE_UNIT_WIDTH 8
+#include <pcre2.h>
+],
+[
+ int error = 0;
+ PCRE2_SIZE error_offset = 0;
+ pcre2_code *regexp = pcre2_compile("test", PCRE2_ZERO_TERMINATED, PCRE2_UTF, &error, &error_offset, NULL);
+ pcre2_code_free(regexp);
+],
+found_libpcre2="yes")
+])dnl
+
+AC_DEFUN([LIBPCRE2_CHECK_CONFIG],
+[
+ AC_ARG_WITH([libpcre2],[
+If you want to specify libpcre2 installation directories:
+AC_HELP_STRING([--with-libpcre2@<:@=DIR@:>@], [use libpcre2 from given base install directory (DIR), default is to search through a number of common places for the libpcre2 files.])],
+ [
+ if test "$withval" = "yes"; then
+ if test -f /usr/local/include/pcre2.h; then
+ withval="/usr/local"
+ else
+ withval="/usr"
+ fi
+ else
+ _libpcre2_dir_lib="$withval/lib"
+ fi
+ _libpcre2_dir="$withval"
+ test "x$withval" = "xyes" && withval=/usr
+ LIBPCRE2_CFLAGS="-I$withval/include"
+ LIBPCRE2_LDFLAGS="-L$withval/lib"
+ _libpcre2_dir_set="yes"
+ ]
+ )
+
+ AC_ARG_WITH([libpcre2-include],
+ AC_HELP_STRING([--with-libpcre2-include@<:@=DIR@:>@],
+ [use libpcre2 include headers from given path.]
+ ),
+ [
+ LIBPCRE2_CFLAGS="-I$withval"
+ _libpcre2_dir_set="yes"
+ ]
+ )
+
+ AC_ARG_WITH([libpcre2-lib],
+ AC_HELP_STRING([--with-libpcre2-lib@<:@=DIR@:>@],
+ [use libpcre2 libraries from given path.]
+ ),
+ [
+ _libpcre2_dir="$withval"
+ _libpcre2_dir_lib="$withval"
+ LIBPCRE2_LDFLAGS="-L$withval"
+ _libpcre2_dir_set="yes"
+ ]
+ )
+
+ if test "x$enable_static_libs" = "xyes"; then
+ AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+ PKG_PROG_PKG_CONFIG()
+ test -z "$PKG_CONFIG" -a -z "$_libpcre2_dir_lib" && AC_MSG_ERROR([Not found pkg-config library])
+ m4_pattern_allow([^PKG_CONFIG_LIBDIR$])
+ fi
+
+ AC_MSG_CHECKING(for libpcre2 support)
+
+ LIBPCRE2_LIBS="-lpcre2-8"
+
+ if test "x$enable_static" = "xyes"; then
+ LIBPCRE2_LIBS=" $LIBPCRE2_LIBS -lpthread"
+ elif test "x$enable_static_libs" = "xyes" -a -z "$PKG_CONFIG"; then
+ LIBPCRE2_LIBS="$_libpcre2_dir_lib/libpcre2.a"
+ elif test "x$enable_static_libs" = "xyes"; then
+
+ test "x$static_linking_support" = "xno" -a -z "$_libpcre2_dir_lib" && AC_MSG_ERROR(["Compiler not support statically linked libs from default folders"])
+
+ if test -z "$_libpcre2_dir_lib"; then
+ PKG_CHECK_EXISTS(libpcre2,[
+ LIBPCRE2_LIBS=`$PKG_CONFIG --static --libs libpcre2`
+ ],[
+ AC_MSG_ERROR([Not found libpcre2 package])
+ ])
+ else
+ AC_RUN_LOG([PKG_CONFIG_LIBDIR="$_libpcre2_dir_lib/pkgconfig" $PKG_CONFIG --exists --print-errors libpcre2]) || AC_MSG_ERROR(["Not found libpcre2 package in $_libpcre2_dir/lib/pkgconfig"])
+ LIBPCRE2_LIBS=`PKG_CONFIG_LIBDIR="$_libpcre2_dir_lib/pkgconfig" $PKG_CONFIG --static --libs libpcre2`
+ test -z "$LIBPCRE2_LIBS" && LIBPCRE2_LIBS=`PKG_CONFIG_LIBDIR="$_libpcre2_dir_lib/pkgconfig" $PKG_CONFIG --libs libpcre2`
+ fi
+
+ if test "x$static_linking_support" = "xno"; then
+ LIBPCRE2_LIBS=`echo "$LIBPCRE2_LIBS"|sed "s|-lpcre2-8|$_libpcre2_dir_lib/libpcre2.a|g"`
+ else
+ LIBPCRE2_LIBS=`echo "$LIBPCRE2_LIBS"|sed "s/-lpcre2-8/${static_linking_support}static -lpcre2-8 ${static_linking_support}dynamic/g"`
+ fi
+ fi
+
+ if test -n "$_libpcre2_dir_set" -o -f /usr/include/pcre2.h; then
+ found_libpcre2="yes"
+ elif test -f /usr/local/include/pcre2.h; then
+ LIBPCRE2_CFLAGS="-I/usr/local/include"
+ LIBPCRE2_LDFLAGS="-L/usr/local/lib"
+ found_libpcre2="yes"
+ elif test -f /usr/pkg/include/pcre2.h; then
+ LIBPCRE2_CFLAGS="-I/usr/pkg/include"
+ LIBPCRE2_LDFLAGS="-L/usr/pkg/lib"
+ LIBPCRE2_LDFLAGS="$LIBPCRE2_LDFLAGS -Wl,-R/usr/pkg/lib"
+ found_libpcre2="yes"
+ elif test -f /opt/csw/include/pcre2.h; then
+ LIBPCRE2_CFLAGS="-I/opt/csw/include"
+ LIBPCRE2_LDFLAGS="-L/opt/csw/lib"
+ if $(echo "$CFLAGS"|grep -q -- "-m64") ; then
+ LIBPCRE2_LDFLAGS="$LIBPCRE2_LDFLAGS/64 -Wl,-R/opt/csw/lib/64"
+ else
+ LIBPCRE2_LDFLAGS="$LIBPCRE2_LDFLAGS -Wl,-R/opt/csw/lib"
+ fi
+ found_libpcre2="yes"
+ else
+ found_libpcre2="no"
+ AC_MSG_RESULT(no)
+ fi
+
+ if test "x$found_libpcre2" = "xyes"; then
+ am_save_CFLAGS="$CFLAGS"
+ am_save_LDFLAGS="$LDFLAGS"
+ am_save_LIBS="$LIBS"
+
+ CFLAGS="$CFLAGS $LIBPCRE2_CFLAGS"
+ LDFLAGS="$LDFLAGS $LIBPCRE2_LDFLAGS"
+ LIBS="$LIBS $LIBPCRE2_LIBS"
+
+ found_libpcre2="no"
+ LIBPCRE2_TRY_LINK([no])
+
+ CFLAGS="$am_save_CFLAGS"
+ LDFLAGS="$am_save_LDFLAGS"
+ LIBS="$am_save_LIBS"
+ fi
+
+ if test "x$found_libpcre2" = "xyes"; then
+ AC_DEFINE([HAVE_PCRE2_H], 1, [Define to 1 if you have the 'libpcre2' library (-lpcre2-8)])
+ AC_MSG_RESULT(yes)
+ else
+ LIBPCRE2_CFLAGS=""
+ LIBPCRE2_LDFLAGS=""
+ LIBPCRE2_LIBS=""
+ fi
+
+ AC_SUBST(LIBPCRE2_CFLAGS)
+ AC_SUBST(LIBPCRE2_LDFLAGS)
+ AC_SUBST(LIBPCRE2_LIBS)
+])dnl