haproxy: fix build with pcre2

Add a patch to customize path to pcre-config or pcre2-config instead of
messing with PCREDIR, PCRE2DIR and PCRE2_LDFLAGS variables

Fixes:
 - http://autobuild.buildroot.net/results/490bc87b43074623d2338cfd2acb77d5de0abaa6

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
Fabrice Fontaine 2018-09-28 19:34:19 +02:00 committed by Peter Korsgaard
parent 1d39d1df19
commit 2ee1be2d49
2 changed files with 58 additions and 13 deletions

View file

@ -0,0 +1,56 @@
From f3dcdf6c9ffea4d9b89dca9706a48c44bd76c470 Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date: Fri, 28 Sep 2018 19:21:26 +0200
Subject: [PATCH] Allow configuration of pcre-config path
Add PCRE_CONFIGDIR variable to allow the user to configure path of
pcre-config or pcre-config2 instead of using the one in his path.
This is particular useful when cross-compiling.
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
Makefile | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/Makefile b/Makefile
index 382f944f..7c31f1ba 100644
--- a/Makefile
+++ b/Makefile
@@ -78,6 +78,7 @@
# Other variables :
# DLMALLOC_SRC : build with dlmalloc, indicate the location of dlmalloc.c.
# DLMALLOC_THRES : should match PAGE_SIZE on every platform (default: 4096).
+# PCRE_CONFIGDIR : force the path to pcre-config or pcre-config2
# PCREDIR : force the path to libpcre.
# PCRE_LIB : force the lib path to libpcre (defaults to $PCREDIR/lib).
# PCRE_INC : force the include path to libpcre ($PCREDIR/inc)
@@ -734,7 +735,7 @@ endif
# Forcing PCREDIR to an empty string will let the compiler use the default
# locations.
-PCREDIR := $(shell pcre-config --prefix 2>/dev/null || echo /usr/local)
+PCREDIR := $(shell $(PCRE_CONFIGDIR)pcre-config --prefix 2>/dev/null || echo /usr/local)
ifneq ($(PCREDIR),)
PCRE_INC := $(PCREDIR)/include
PCRE_LIB := $(PCREDIR)/lib
@@ -759,7 +760,7 @@ endif
endif
ifneq ($(USE_PCRE2)$(USE_STATIC_PCRE2)$(USE_PCRE2_JIT),)
-PCRE2DIR := $(shell pcre2-config --prefix 2>/dev/null || echo /usr/local)
+PCRE2DIR := $(shell $(PCRE_CONFIGDIR)pcre2-config --prefix 2>/dev/null || echo /usr/local)
ifneq ($(PCRE2DIR),)
PCRE2_INC := $(PCRE2DIR)/include
PCRE2_LIB := $(PCRE2DIR)/lib
@@ -777,7 +778,7 @@ endif
endif
-PCRE2_LDFLAGS := $(shell pcre2-config --libs$(PCRE2_WIDTH) 2>/dev/null || echo -L/usr/local/lib -lpcre2-$(PCRE2_WIDTH))
+PCRE2_LDFLAGS := $(shell $(PCRE_CONFIGDIR)pcre2-config --libs$(PCRE2_WIDTH) 2>/dev/null || echo -L/usr/local/lib -lpcre2-$(PCRE2_WIDTH))
ifeq ($(PCRE2_LDFLAGS),)
$(error libpcre2-$(PCRE2_WIDTH) not found)
--
2.17.1

View file

@ -37,26 +37,15 @@ endif
endif
# pcre and pcre2 can't be enabled at the same time so prefer pcre2
# Set PCRE2_DIR as haproxy will otherwise try to use pcre2-config and
# will default to /usr/local
ifeq ($(BR2_PACKAGE_PCRE2),y)
HAPROXY_DEPENDENCIES += pcre2
HAPROXY_MAKE_OPTS += \
PCRE2DIR=$(STAGING_DIR)/usr \
PCRE_CONFIGDIR=$(STAGING_DIR)/usr/bin/ \
USE_PCRE2=1
# Again, set manually PCRE2_LDFLAGS or default will contain -L/usr/local
ifeq ($(BR2_PACKAGE_PCRE2_32),y)
HAPROXY_MAKE_OPTS += PCRE2_LDFLAGS=-lpcre2-32
else ifeq ($(BR2_PACKAGE_PCRE2_16),y)
HAPROXY_MAKE_OPTS += PCRE2_LDFLAGS=-lpcre2-16
else
HAPROXY_MAKE_OPTS += PCRE2_LDFLAGS=-lpcre2-8
endif
else ifeq ($(BR2_PACKAGE_PCRE),y)
HAPROXY_DEPENDENCIES += pcre
HAPROXY_MAKE_OPTS += \
PCREDIR=$(STAGING_DIR)/usr \
PCRE_CONFIGDIR=$(STAGING_DIR)/usr/bin/ \
USE_PCRE=1
endif