From: David Carlier Date: Tue, 16 Feb 2021 11:37:45 +0000 (+0000) Subject: BUILD/MEDIUM: da Adding pcre2 support. X-Git-Tag: v2.4-dev9~25 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=019dbd788425f4904430257877b05f7ecc897872;p=thirdparty%2Fhaproxy.git BUILD/MEDIUM: da Adding pcre2 support. The DeviceAtlas Detection API now supports also the pcre2 library, and some users wish to have exclusively this version in their environment. Also, there is no longer new development happening in the legacy pcre(1) counterpart. Simple check in the build process as the mutual exclusivity check between the two are already taking care of early on. Moving the check to the part only when we build haproxy + the API from source as the other case the API is already built with the chosen regex library separately. --- diff --git a/Makefile b/Makefile index a21f738e86..d5c3f4c4e6 100644 --- a/Makefile +++ b/Makefile @@ -616,9 +616,6 @@ OPTIONS_OBJS += src/hlua.o src/hlua_fcn.o endif ifneq ($(USE_DEVICEATLAS),) -ifeq ($(USE_PCRE),) -$(error the DeviceAtlas module needs the PCRE library in order to compile) -endif # Use DEVICEATLAS_SRC and possibly DEVICEATLAS_INC and DEVICEATLAS_LIB to force path # to DeviceAtlas headers and libraries if needed. DEVICEATLAS_SRC = @@ -627,6 +624,14 @@ DEVICEATLAS_LIB = $(DEVICEATLAS_SRC) ifeq ($(DEVICEATLAS_SRC),) OPTIONS_LDFLAGS += -lda else +ifeq ($(USE_PCRE),) +ifeq ($(USE_PCRE2),) +$(error the DeviceAtlas module needs the PCRE or the PCRE2 library in order to compile) +endif +endif +ifneq ($(USE_PCRE2),) +OPTIONS_CFLAGS += -DDA_REGEX_HDR=\"dac_pcre2.c\" -DDA_REGEX_TAG=2 +endif OPTIONS_OBJS += $(DEVICEATLAS_LIB)/json.o OPTIONS_OBJS += $(DEVICEATLAS_LIB)/dac.o endif diff --git a/doc/DeviceAtlas-device-detection.txt b/doc/DeviceAtlas-device-detection.txt index 2358c5cc6e..ccafaa0b1d 100644 --- a/doc/DeviceAtlas-device-detection.txt +++ b/doc/DeviceAtlas-device-detection.txt @@ -2,10 +2,10 @@ DeviceAtlas Device Detection ---------------------------- In order to add DeviceAtlas Device Detection support, you would need to download -the API source code from https://deviceatlas.com/deviceatlas-haproxy-module and -once extracted : +the API source code from https://deviceatlas.com/deviceatlas-haproxy-module. +The build supports the USE_PCRE and USE_PCRE2 options. Once extracted : - $ make TARGET= USE_PCRE=1 USE_DEVICEATLAS=1 DEVICEATLAS_SRC= + $ make TARGET= USE_PCRE (or USE_PCRE2=1) USE_DEVICEATLAS=1 DEVICEATLAS_SRC= Optionally DEVICEATLAS_INC and DEVICEATLAS_LIB may be set to override the path to the include files and libraries respectively if they're not in the source