File 0001-Build-with-system-liblz4.patch of Package lz4b
From b206dd3bb605d8ac739598fe8e1e4d594ace9853 Mon Sep 17 00:00:00 2001 From: Led <ledest@gmail.com> Date: Mon, 2 Jun 2025 13:00:40 +0300 Subject: [PATCH 1/2] Build with system liblz4 --- c_src/Makefile | 34 ++++++++-------------------------- 1 file changed, 8 insertions(+), 26 deletions(-) diff --git a/c_src/Makefile b/c_src/Makefile index 9907659..88e88b4 100644 --- a/c_src/Makefile +++ b/c_src/Makefile @@ -3,8 +3,7 @@ CURDIR := $(shell pwd) BASEDIR := $(abspath $(CURDIR)/..) -PROJECT ?= $(notdir $(BASEDIR)) -PROJECT := $(strip $(PROJECT)) +PROJECT = lz4b ERTS_INCLUDE_DIR ?= $(shell erl -noshell -eval "io:format(\"~ts/erts-~ts/include/\", [code:root_dir(), erlang:system_info(version)]), erlang:halt().") ERL_INTERFACE_INCLUDE_DIR ?= $(shell erl -noshell -eval "io:format(\"~ts\", [code:lib_dir(erl_interface, include)]), erlang:halt().") @@ -13,36 +12,26 @@ ERL_INTERFACE_LIB_DIR ?= $(shell erl -noshell -eval "io:format(\"~ts\", [code:li C_SRC_DIR = $(CURDIR) C_SRC_OUTPUT ?= $(CURDIR)/../priv/$(PROJECT)_nif.so - -LZ4 ?= lz4 -LZ4_VSN ?= 1.10.0 -LZ4_SRC ?= $(LZ4)-$(LZ4_VSN) -LZ4_SRC_TAR ?= v$(LZ4_VSN).tar.gz -LZ4_SRC_PACKAGE_LINK ?= https://github.com/lz4/lz4/archive/$(LZ4_SRC_TAR) -LZ4_OBJS := $(LZ4_SRC)/lib/*.o # System type and C compiler/flags. UNAME_SYS := $(shell uname -s) ifeq ($(UNAME_SYS), Darwin) SYS_ARCH := $(shell uname -m) CC ?= cc - CFLAGS ?= -O3 -std=c99 -arch $(SYS_ARCH) -finline-functions -Wall -Wmissing-prototypes - CXXFLAGS ?= -O3 -arch $(SYS_ARCH) -finline-functions -Wall + CFLAGS ?= -O2 -std=c99 -arch $(SYS_ARCH) -Wall -Wmissing-prototypes LDFLAGS ?= -arch $(SYS_ARCH) -flat_namespace -undefined suppress else ifeq ($(UNAME_SYS), FreeBSD) CC ?= cc - CFLAGS ?= -O3 -std=c99 -finline-functions -Wall -Wmissing-prototypes - CXXFLAGS ?= -O3 -finline-functions -Wall + CFLAGS ?= -O2 -std=c99 -Wall -Wmissing-prototypes else ifeq ($(UNAME_SYS), Linux) CC ?= gcc - CFLAGS ?= -O3 -std=c99 -finline-functions -Wall -Wmissing-prototypes - CXXFLAGS ?= -O3 -finline-functions -Wall + CFLAGS ?= -O2 -std=c99 -Wall -Wmissing-prototypes endif -CFLAGS += -fPIC -I $(ERTS_INCLUDE_DIR) -I $(ERL_INTERFACE_INCLUDE_DIR) -I$(C_SRC_DIR)/$(LZ4_SRC)/lib/ +CFLAGS += -fPIC -I $(ERTS_INCLUDE_DIR) -I $(ERL_INTERFACE_INCLUDE_DIR) CXXFLAGS += -fPIC -I $(ERTS_INCLUDE_DIR) -I $(ERL_INTERFACE_INCLUDE_DIR) -LDLIBS += -L $(ERL_INTERFACE_LIB_DIR) -lei +LDLIBS += -L $(ERL_INTERFACE_LIB_DIR) -lei -llz4 LDFLAGS += -shared # Verbosity. @@ -62,14 +51,9 @@ OBJECTS = $(addsuffix .o, $(basename $(SOURCES))) COMPILE_C = $(c_verbose) $(CC) $(CFLAGS) $(CPPFLAGS) -c COMPILE_CPP = $(cpp_verbose) $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -$(C_SRC_OUTPUT): $(LZ4_SRC) $(OBJECTS) +$(C_SRC_OUTPUT): $(OBJECTS) @mkdir -p $(BASEDIR)/priv/ - $(link_verbose) $(CC) $(LZ4_OBJS) $(OBJECTS) $(LDFLAGS) $(LDLIBS) -o $(C_SRC_OUTPUT) - -$(LZ4_SRC): - curl -L -f -o $(LZ4_SRC_TAR) $(LZ4_SRC_PACKAGE_LINK) - tar zxf $(LZ4_SRC_TAR) - $(MAKE) CFLAGS='-O3 -fPIC' -C $(LZ4_SRC) BUILD_STATIC=yes + $(link_verbose) $(CC) $(OBJECTS) $(LDFLAGS) $(LDLIBS) -o $(C_SRC_OUTPUT) %.o: %.c $(COMPILE_C) $(OUTPUT_OPTION) $< @@ -85,5 +69,3 @@ $(LZ4_SRC): clean: @rm -f $(C_SRC_OUTPUT) $(OBJECTS) - @rm -f $(LZ4_SRC_TAR) - @rm -rf $(LZ4_SRC) -- 2.43.0