packages/libs/pcre/Makefile
Christian Lachner 6c40db7e9f pcre: Add JIT-support for select architectures
- This commit adds a config-option for JIT in libpcre(1).

  According to research published on
  https://rust-leipzig.github.io/regex/2017/03/28/comparison-of-regex-engines/
  this should give a 10x performance increase on JIT operations
  which can be desireable for high performance Apache mod_rewrite
  or haproxy reqrep operations.

  This option is available on all officially supported architecutres
  which are listed on https://pcre.org/original/doc/html/pcrejit.html#SEC3.
  Furthermore, it is enabled by default on the following
  architectures: arm, i686, x86_64.

Signed-off-by: Christian Lachner <gladiac@gmail.com>
2019-11-22 09:08:33 +01:00

108 lines
2.7 KiB
Makefile

#
# Copyright (C) 2006-2015 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=pcre
PKG_VERSION:=8.43
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=@SF/$(PKG_NAME)
PKG_HASH:=91e762520003013834ac1adb4a938d53b22a216341c061b0cf05603b290faf6b
PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENCE
PKG_CPE_ID:=cpe:/a:pcre:pcre
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
PKG_CONFIG_DEPENDS:=\
CONFIG_PACKAGE_libpcrecpp \
CONFIG_PCRE_JIT_ENABLED
include $(INCLUDE_DIR)/uclibc++.mk
include $(INCLUDE_DIR)/package.mk
define Package/libpcre/default
SECTION:=libs
CATEGORY:=Libraries
URL:=https://www.pcre.org/
endef
define Package/libpcre/config
source "$(SOURCE)/Config.in"
endef
define Package/libpcre
$(call Package/libpcre/default)
TITLE:=A Perl Compatible Regular Expression library
endef
define Package/libpcre16
$(call Package/libpcre/default)
TITLE:=A Perl Compatible Regular Expression library (16bit support)
endef
define Package/libpcrecpp
$(call Package/libpcre/default)
TITLE:=C++ wrapper for Perl Compatible Regular Expression library
DEPENDS:=+libpcre $(CXX_DEPENDS)
endef
TARGET_CFLAGS += $(FPIC)
CONFIGURE_ARGS += \
--enable-utf8 \
--enable-unicode-properties \
--enable-pcre16 \
$(if $(CONFIG_PCRE_JIT_ENABLED),--enable-jit,--disable-jit) \
--with-match-limit-recursion=16000 \
$(if $(CONFIG_PACKAGE_libpcrecpp),--enable,--disable)-cpp
MAKE_FLAGS += \
CFLAGS="$(TARGET_CFLAGS)"
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/pcre-config $(1)/usr/bin/
$(INSTALL_DIR) $(2)/bin
$(LN) $(STAGING_DIR)/usr/bin/pcre-config $(2)/bin
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/pcre*.h $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libpcre*.{a,so*} $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libpcre*.pc $(1)/usr/lib/pkgconfig/
endef
define Package/libpcre/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libpcre{,posix}.so.* $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libpcre.so $(1)/usr/lib/
endef
define Package/libpcre16/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libpcre16.so* $(1)/usr/lib/
endef
define Package/libpcrecpp/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libpcrecpp.so.* $(1)/usr/lib/
endef
$(eval $(call BuildPackage,libpcre))
$(eval $(call BuildPackage,libpcre16))
$(eval $(call BuildPackage,libpcrecpp))