From 791964a0ea73e391a228878e854ab2b713886763 Mon Sep 17 00:00:00 2001 From: Martin Vierula Date: Thu, 10 Nov 2022 07:50:52 -0800 Subject: [PATCH] During configure, do not check for pcre if pcre2 specified --- CHANGES | 2 + build/pcre.m4 | 147 ++++++++++++++++++++++++++------------------------ 2 files changed, 78 insertions(+), 71 deletions(-) diff --git a/CHANGES b/CHANGES index be01f7377e..ad8b6f2ee7 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,8 @@ v3.x.y - YYYY-MMM-DD (to be released) ------------------------------------- + - During configure, do not check for pcre if pcre2 specified + [Issue #2750 - @dvershinin, @martinhsv] - Use pkg-config to find libxml2 first [Issue #2714 - @hughmcmaster] - Fix two rule-reload memory leak issues diff --git a/build/pcre.m4 b/build/pcre.m4 index f6c9ae1846..c222993b9d 100644 --- a/build/pcre.m4 +++ b/build/pcre.m4 @@ -21,88 +21,93 @@ AC_ARG_WITH( [test_paths="${with_pcre}"], [test_paths="/usr/local/libpcre /usr/local/pcre /usr/local /opt/libpcre /opt/pcre /opt /usr /opt/local"]) -AC_MSG_CHECKING([for libpcre config script]) +if test "x${with_pcre2}" != "x" && test "x${with_pcre2}" != "xno"; then + AC_MSG_NOTICE([pcre2 specified; omitting check for pcre]) +else -for x in ${test_paths}; do - dnl # Determine if the script was specified and use it directly - if test ! -d "$x" -a -e "$x"; then - PCRE_CONFIG=$x - pcre_path="no" - break - fi + AC_MSG_CHECKING([for libpcre config script]) - dnl # Try known config script names/locations - for PCRE_CONFIG in pcre-config; do - if test -e "${x}/bin/${PCRE_CONFIG}"; then - pcre_path="${x}/bin" + for x in ${test_paths}; do + dnl # Determine if the script was specified and use it directly + if test ! -d "$x" -a -e "$x"; then + PCRE_CONFIG=$x + pcre_path="no" break - elif test -e "${x}/${PCRE_CONFIG}"; then - pcre_path="${x}" + fi + + dnl # Try known config script names/locations + for PCRE_CONFIG in pcre-config; do + if test -e "${x}/bin/${PCRE_CONFIG}"; then + pcre_path="${x}/bin" + break + elif test -e "${x}/${PCRE_CONFIG}"; then + pcre_path="${x}" + break + else + pcre_path="" + fi + done + if test -n "$pcre_path"; then break - else - pcre_path="" fi done - if test -n "$pcre_path"; then - break - fi -done -if test -n "${pcre_path}"; then - if test "${pcre_path}" != "no"; then - PCRE_CONFIG="${pcre_path}/${PCRE_CONFIG}" + if test -n "${pcre_path}"; then + if test "${pcre_path}" != "no"; then + PCRE_CONFIG="${pcre_path}/${PCRE_CONFIG}" + fi + AC_MSG_RESULT([${PCRE_CONFIG}]) + PCRE_VERSION="`${PCRE_CONFIG} --version`" + if test ! -z "${PCRE_VERSION}"; then AC_MSG_NOTICE(pcre VERSION: $PCRE_VERSION); fi + PCRE_CFLAGS="`${PCRE_CONFIG} --cflags`" + if test ! -z "${PCRE_CFLAGS}"; then AC_MSG_NOTICE(pcre CFLAGS: $PCRE_CFLAGS); fi + PCRE_LDADD="`${PCRE_CONFIG} --libs`" + if test ! -z "${PCRE_LDADD}"; then AC_MSG_NOTICE(pcre LDADD: $PCRE_LDADD); fi + PCRE_LD_PATH="/`${PCRE_CONFIG} --libs | cut -d'/' -f2,3,4,5,6 | cut -d ' ' -f1`" + if test ! -z "${PCRE_LD_PATH}"; then AC_MSG_NOTICE(pcre PCRE_LD_PATH: $PCRE_LD_PATH); fi + else + AC_MSG_RESULT([no]) fi - AC_MSG_RESULT([${PCRE_CONFIG}]) - PCRE_VERSION="`${PCRE_CONFIG} --version`" - if test ! -z "${PCRE_VERSION}"; then AC_MSG_NOTICE(pcre VERSION: $PCRE_VERSION); fi - PCRE_CFLAGS="`${PCRE_CONFIG} --cflags`" - if test ! -z "${PCRE_CFLAGS}"; then AC_MSG_NOTICE(pcre CFLAGS: $PCRE_CFLAGS); fi - PCRE_LDADD="`${PCRE_CONFIG} --libs`" - if test ! -z "${PCRE_LDADD}"; then AC_MSG_NOTICE(pcre LDADD: $PCRE_LDADD); fi - PCRE_LD_PATH="/`${PCRE_CONFIG} --libs | cut -d'/' -f2,3,4,5,6 | cut -d ' ' -f1`" - if test ! -z "${PCRE_LD_PATH}"; then AC_MSG_NOTICE(pcre PCRE_LD_PATH: $PCRE_LD_PATH); fi -else - AC_MSG_RESULT([no]) -fi -if test -n "${PCRE_VERSION}"; then - AC_MSG_CHECKING(for PCRE JIT) - save_CFLAGS=$CFLAGS - save_LDFLAGS=$LDFLAGS - save_LIBS=$LIBS - CFLAGS="${PCRE_CFLAGS} ${CFLAGS}" - LDFLAGS="${PCRE_LDADD} ${LDFLAGS}" - LIBS="${PCRE_LDADD} ${LIBS}" - AC_TRY_LINK([ #include ], - [ pcre_jit_exec(NULL, NULL, NULL, 0, 0, 0, NULL, 0, NULL); ], - [ pcre_jit_available=yes ], [:] - ) + if test -n "${PCRE_VERSION}"; then + AC_MSG_CHECKING(for PCRE JIT) + save_CFLAGS=$CFLAGS + save_LDFLAGS=$LDFLAGS + save_LIBS=$LIBS + CFLAGS="${PCRE_CFLAGS} ${CFLAGS}" + LDFLAGS="${PCRE_LDADD} ${LDFLAGS}" + LIBS="${PCRE_LDADD} ${LIBS}" + AC_TRY_LINK([ #include ], + [ pcre_jit_exec(NULL, NULL, NULL, 0, 0, 0, NULL, 0, NULL); ], + [ pcre_jit_available=yes ], [:] + ) - if test "x$pcre_jit_available" = "xyes"; then - AC_MSG_RESULT(yes) - PCRE_CFLAGS="${PCRE_CFLAGS} -DPCRE_HAVE_JIT" - else - AC_MSG_RESULT(no) + if test "x$pcre_jit_available" = "xyes"; then + AC_MSG_RESULT(yes) + PCRE_CFLAGS="${PCRE_CFLAGS} -DPCRE_HAVE_JIT" + else + AC_MSG_RESULT(no) + fi + CFLAGS=$save_CFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS fi - CFLAGS=$save_CFLAGS - LDFLAGS=$save_LDFLAGS - LIBS=$save_LIBS -fi -AC_SUBST(PCRE_CONFIG) -AC_SUBST(PCRE_VERSION) -AC_SUBST(PCRE_CPPFLAGS) -AC_SUBST(PCRE_CFLAGS) -AC_SUBST(PCRE_LDFLAGS) -AC_SUBST(PCRE_LDADD) -AC_SUBST(PCRE_LD_PATH) + AC_SUBST(PCRE_CONFIG) + AC_SUBST(PCRE_VERSION) + AC_SUBST(PCRE_CPPFLAGS) + AC_SUBST(PCRE_CFLAGS) + AC_SUBST(PCRE_LDFLAGS) + AC_SUBST(PCRE_LDADD) + AC_SUBST(PCRE_LD_PATH) -if test -z "${PCRE_VERSION}"; then - AC_MSG_NOTICE([*** pcre library not found.]) - ifelse([$2], , AC_MSG_ERROR([pcre library is required]), $2) -else - AC_MSG_NOTICE([using pcre v${PCRE_VERSION}]) - ifelse([$1], , , $1) - PCRE_LDADD="${PCRE_LDADD} -lpcre" -fi + if test -z "${PCRE_VERSION}"; then + AC_MSG_NOTICE([*** pcre library not found.]) + ifelse([$2], , AC_MSG_ERROR([pcre library is required]), $2) + else + AC_MSG_NOTICE([using pcre v${PCRE_VERSION}]) + ifelse([$1], , , $1) + PCRE_LDADD="${PCRE_LDADD} -lpcre" + fi +fi ])