aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Golle <daniel@makrotopia.org>2020-08-13 11:27:39 +0100
committerDaniel Golle <daniel@makrotopia.org>2020-08-13 11:28:28 +0100
commite16b84df15c1eac7b389fb715c9d00969acf3b30 (patch)
treeed87edc9705d0bae9493b0172953ad2fe46e27f3
parent962e73c1a42ec1ef7cc6ba7574204688f90d64a0 (diff)
downloadupstream-e16b84df15c1eac7b389fb715c9d00969acf3b30.tar.gz
upstream-e16b84df15c1eac7b389fb715c9d00969acf3b30.tar.bz2
upstream-e16b84df15c1eac7b389fb715c9d00969acf3b30.zip
pcre: import from packages feeds
libselinux require pcre, import to to core so it can build without packages feeds. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
-rw-r--r--package/libs/pcre/Config.in11
-rw-r--r--package/libs/pcre/Makefile119
2 files changed, 130 insertions, 0 deletions
diff --git a/package/libs/pcre/Config.in b/package/libs/pcre/Config.in
new file mode 100644
index 0000000000..15e75fc753
--- /dev/null
+++ b/package/libs/pcre/Config.in
@@ -0,0 +1,11 @@
+config PCRE_JIT_ENABLED
+ bool
+ depends on PACKAGE_libpcre && (arm || i386 || i686 || x86_64 || mips || mipsel || powerpc || sparc)
+ default y if (arm || i686 || x86_64)
+ prompt "Enable JIT compiler support"
+ help
+ Enable JIT (Just-In-Time) compiler support.
+
+ Enabling this option can give an about 10x performance increase on JIT operations. It can be desireable for e.g. high performance Apache mod_rewrite or HA-Proxy reqrep operations.
+
+ However, JIT should _only_ be enabled on architectures that are supported. Enabling JIT on unsupported platforms will result in a compilation failure. A list of supported architectures can be found here: https://pcre.org/original/doc/html/pcrejit.html#SEC3 .
diff --git a/package/libs/pcre/Makefile b/package/libs/pcre/Makefile
new file mode 100644
index 0000000000..b638c876da
--- /dev/null
+++ b/package/libs/pcre/Makefile
@@ -0,0 +1,119 @@
+#
+# 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.44
+PKG_RELEASE:=2
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE_URL:=@SF/$(PKG_NAME)
+PKG_HASH:=19108658b23b3ec5058edc9f66ac545ea19f9537234be1ec62b714c84399366d
+
+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_INSTALL:=1
+PKG_BUILD_PARALLEL:=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/libpcre32
+ $(call Package/libpcre/default)
+ TITLE:=A Perl Compatible Regular Expression library (32bit 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 \
+ --enable-pcre32 \
+ $(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/libpcre32/install
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpcre32.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,libpcre32))
+$(eval $(call BuildPackage,libpcrecpp))