git: b16f47812788 - main - devel/libac: Add libac g20190308
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 07 Mar 2022 18:15:52 UTC
The branch main has been updated by sunpoet:
URL: https://cgit.FreeBSD.org/ports/commit/?id=b16f478127888cd34bf49b4db4537015432cef48
commit b16f478127888cd34bf49b4db4537015432cef48
Author: Po-Chuan Hsieh <sunpoet@FreeBSD.org>
AuthorDate: 2022-03-07 17:46:36 +0000
Commit: Po-Chuan Hsieh <sunpoet@FreeBSD.org>
CommitDate: 2022-03-07 18:10:49 +0000
devel/libac: Add libac g20190308
This port is the C++ implementation of the Aho-Corasick (AC) string matching
algorithm.
The upstream began with pure Lua implementation and realize the performance is
not satisfactory. So they switch to C/C++ implementation.
There are two shared objects provided by this package: libac.so and
ahocorasick.so The former is a regular shared object which can be directly used
by C/C++ application, or by Lua via FFI; and the later is a Lua module.
WWW: https://github.com/cloudflare/lua-aho-corasick
---
devel/Makefile | 1 +
devel/libac/Makefile | 27 +++++++++++++
devel/libac/distinfo | 3 ++
devel/libac/files/patch-Makefile | 84 ++++++++++++++++++++++++++++++++++++++++
devel/libac/pkg-descr | 11 ++++++
5 files changed, 126 insertions(+)
diff --git a/devel/Makefile b/devel/Makefile
index 4c82798904cb..9425dafd70f5 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -1142,6 +1142,7 @@
SUBDIR += libIDL
SUBDIR += libPropList
SUBDIR += libabigail
+ SUBDIR += libac
SUBDIR += libafterbase
SUBDIR += liballium
SUBDIR += libantlr3c
diff --git a/devel/libac/Makefile b/devel/libac/Makefile
new file mode 100644
index 000000000000..4da94966dfa0
--- /dev/null
+++ b/devel/libac/Makefile
@@ -0,0 +1,27 @@
+# Created by: Po-Chuan Hsieh <sunpoet@FreeBSD.org>
+
+PORTNAME= libac
+PORTVERSION= g20190308
+CATEGORIES= devel
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= C++ implementation of the Aho-Corasick (AC) string matching algorithm
+
+LICENSE= BSD3CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+USES= gmake
+
+PLIST_FILES= lib/libac.a \
+ lib/libac.so
+
+USE_GITHUB= yes
+GH_ACCOUNT= cloudflare
+GH_PROJECT= lua-aho-corasick
+GH_TAGNAME= ca6043c
+
+do-install:
+ ${INSTALL_DATA} ${WRKSRC}/libac.a ${STAGEDIR}${PREFIX}/lib/libac.a
+ ${INSTALL_LIB} ${WRKSRC}/libac.so ${STAGEDIR}${PREFIX}/lib/libac.so
+
+.include <bsd.port.mk>
diff --git a/devel/libac/distinfo b/devel/libac/distinfo
new file mode 100644
index 000000000000..49c5e80f8000
--- /dev/null
+++ b/devel/libac/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1646057840
+SHA256 (cloudflare-lua-aho-corasick-g20190308-ca6043c_GH0.tar.gz) = 20d3238f1be3b3df866adf0c9943b82517130c1cde80cd6fb2ab3ffc1bc73265
+SIZE (cloudflare-lua-aho-corasick-g20190308-ca6043c_GH0.tar.gz) = 26262
diff --git a/devel/libac/files/patch-Makefile b/devel/libac/files/patch-Makefile
new file mode 100644
index 000000000000..7e93ed796a8c
--- /dev/null
+++ b/devel/libac/files/patch-Makefile
@@ -0,0 +1,84 @@
+--- Makefile.orig 2019-03-08 12:57:59 UTC
++++ Makefile
+@@ -13,7 +13,6 @@ endif
+ #############################################################################
+ #
+ C_SO_NAME = libac.$(SO_EXT)
+-LUA_SO_NAME = ahocorasick.$(SO_EXT)
+ AR_NAME = libac.a
+
+ #############################################################################
+@@ -22,10 +21,7 @@ AR_NAME = libac.a
+ #
+ #############################################################################
+ PREFIX ?= /usr/local
+-LUA_VERSION := 5.1
+-LUA_INCLUDE_DIR := $(PREFIX)/include/lua$(LUA_VERSION)
+-SO_TARGET_DIR := $(PREFIX)/lib/lua/$(LUA_VERSION)
+-LUA_TARGET_DIR := $(PREFIX)/share/lua/$(LUA_VERSION)
++SO_TARGET_DIR := $(PREFIX)/lib
+
+ # Available directives:
+ # -DDEBUG : Turn on debugging support
+@@ -57,7 +53,6 @@ AR_FLAGS = cru
+ #
+ SRC_COMMON := ac_fast.cxx ac_slow.cxx
+ LIBAC_SO_SRC := $(SRC_COMMON) ac.cxx # source for libac.so
+-LUA_SO_SRC := $(SRC_COMMON) ac_lua.cxx # source for ahocorasick.so
+ LIBAC_A_SRC := $(LIBAC_SO_SRC) # source for libac.a
+
+ #############################################################################
+@@ -67,10 +62,9 @@ LIBAC_A_SRC := $(LIBAC_SO_SRC) # source for l
+ #############################################################################
+ #
+ .PHONY = all clean test benchmark prepare
+-all : $(C_SO_NAME) $(LUA_SO_NAME) $(AR_NAME)
++all : $(C_SO_NAME) $(AR_NAME)
+
+ -include c_so_dep.txt
+--include lua_so_dep.txt
+ -include ar_dep.txt
+
+ BUILD_SO_DIR := build_so
+@@ -80,28 +74,19 @@ $(BUILD_SO_DIR) :; mkdir $@
+ $(BUILD_AR_DIR) :; mkdir $@
+
+ $(BUILD_SO_DIR)/%.o : %.cxx | $(BUILD_SO_DIR)
+- $(CXX) $< -c $(SO_CXXFLAGS) -I$(LUA_INCLUDE_DIR) -MMD -o $@
++ $(CXX) $< -c $(SO_CXXFLAGS) -MMD -o $@
+
+ $(BUILD_AR_DIR)/%.o : %.cxx | $(BUILD_AR_DIR)
+- $(CXX) $< -c $(AR_CXXFLAGS) -I$(LUA_INCLUDE_DIR) -MMD -o $@
++ $(CXX) $< -c $(AR_CXXFLAGS) -MMD -o $@
+
+ ifneq ($(OS), Darwin)
+ $(C_SO_NAME) : $(addprefix $(BUILD_SO_DIR)/, ${LIBAC_SO_SRC:.cxx=.o})
+ $(CXX) $+ -shared -Wl,-soname=$(C_SO_NAME) $(SO_LFLAGS) -o $@
+ cat $(addprefix $(BUILD_SO_DIR)/, ${LIBAC_SO_SRC:.cxx=.d}) > c_so_dep.txt
+-
+-$(LUA_SO_NAME) : $(addprefix $(BUILD_SO_DIR)/, ${LUA_SO_SRC:.cxx=.o})
+- $(CXX) $+ -shared -Wl,-soname=$(LUA_SO_NAME) $(SO_LFLAGS) -o $@
+- cat $(addprefix $(BUILD_SO_DIR)/, ${LUA_SO_SRC:.cxx=.d}) > lua_so_dep.txt
+-
+ else
+ $(C_SO_NAME) : $(addprefix $(BUILD_SO_DIR)/, ${LIBAC_SO_SRC:.cxx=.o})
+ $(CXX) $+ -shared $(SO_LFLAGS) -o $@
+ cat $(addprefix $(BUILD_SO_DIR)/, ${LIBAC_SO_SRC:.cxx=.d}) > c_so_dep.txt
+-
+-$(LUA_SO_NAME) : $(addprefix $(BUILD_SO_DIR)/, ${LUA_SO_SRC:.cxx=.o})
+- $(CXX) $+ -shared $(SO_LFLAGS) -o $@ -Wl,-undefined,dynamic_lookup
+- cat $(addprefix $(BUILD_SO_DIR)/, ${LUA_SO_SRC:.cxx=.d}) > lua_so_dep.txt
+ endif
+
+ $(AR_NAME) : $(addprefix $(BUILD_AR_DIR)/, ${LIBAC_A_SRC:.cxx=.o})
+@@ -115,9 +100,7 @@ $(AR_NAME) : $(addprefix $(BUILD_AR_DIR)/, ${LIBAC_A_S
+ #############################################################################
+ #
+ test : $(C_SO_NAME)
+- $(MAKE) -C tests && \
+- luajit tests/lua_test.lua && \
+- luajit tests/load_ac_test.lua
++ $(MAKE) -C tests &&
+
+ benchmark: $(C_SO_NAME)
+ $(MAKE) benchmark -C tests
diff --git a/devel/libac/pkg-descr b/devel/libac/pkg-descr
new file mode 100644
index 000000000000..8384e6d377cf
--- /dev/null
+++ b/devel/libac/pkg-descr
@@ -0,0 +1,11 @@
+This port is the C++ implementation of the Aho-Corasick (AC) string matching
+algorithm.
+
+The upstream began with pure Lua implementation and realize the performance is
+not satisfactory. So they switch to C/C++ implementation.
+
+There are two shared objects provided by this package: libac.so and
+ahocorasick.so The former is a regular shared object which can be directly used
+by C/C++ application, or by Lua via FFI; and the later is a Lua module.
+
+WWW: https://github.com/cloudflare/lua-aho-corasick