mirror of
https://github.com/extism/extism.git
synced 2026-01-09 13:57:55 -05:00
This includes three fixes: * link static library by absolute path (should fix static linking on Mac/ with `lld`) * link static library with `-framework Security` on Mac * link `libpthread` , this should be a no-op on systems with modern libc, but should fix static linking on systems with glibc pre 2.34 see https://developers.redhat.com/articles/2021/12/17/why-glibc-234-removed-libpthread and error http://www.cpantesters.org/cpan/report/669fdfc8-25a4-11ef-9502-51fb6d8775ea --------- Co-authored-by: zach <zachshipko@gmail.com> Co-authored-by: zach <zach@dylibso.com>
66 lines
1.9 KiB
Makefile
66 lines
1.9 KiB
Makefile
DEST?=/usr/local
|
|
SOEXT=so
|
|
AEXT=a
|
|
FEATURES?=default
|
|
DEFAULT_FEATURES?=yes
|
|
RUST_TARGET?=
|
|
EXTRA_LIBS=
|
|
|
|
UNAME := $(shell uname -s)
|
|
ifeq ($(UNAME),Darwin)
|
|
SOEXT=dylib
|
|
EXTRA_LIBS=-framework Security
|
|
endif
|
|
|
|
ifeq ($(DEFAULT_FEATURES),no)
|
|
ifeq ($(FEATURES),default)
|
|
FEATURE_FLAGS=--no-default-features
|
|
else
|
|
FEATURE_FLAGS=--features $(FEATURES) --no-default-features
|
|
endif
|
|
else
|
|
FEATURE_FLAGS=--features $(FEATURES)
|
|
endif
|
|
|
|
ifeq ($(RUST_TARGET),)
|
|
TARGET_FLAGS=
|
|
else
|
|
TARGET_FLAGS=--target $(RUST_TARGET)
|
|
endif
|
|
|
|
build:
|
|
cargo build --release $(FEATURE_FLAGS) --manifest-path libextism/Cargo.toml $(TARGET_FLAGS)
|
|
sed -e "s%@CMAKE_INSTALL_PREFIX@%$(DEST)%" libextism/extism.pc.in > libextism/extism.pc
|
|
sed -e "s%@CMAKE_INSTALL_PREFIX@%$(DEST)%" \
|
|
-e "s%Libs: %Libs: $(EXTRA_LIBS) %" libextism/extism-static.pc.in > libextism/extism-static.pc
|
|
|
|
bench:
|
|
@(cargo criterion $(TARGET_FLAGS) || echo 'For nicer output use cargo-criterion: `cargo install cargo-criterion` - using `cargo bench`') && cargo bench $(TARGET_FLAGS)
|
|
|
|
.PHONY: kernel
|
|
kernel:
|
|
cd kernel && bash build.sh
|
|
|
|
lint:
|
|
cargo clippy --release --no-deps --manifest-path runtime/Cargo.toml $(TARGET_FLAGS)
|
|
|
|
debug:
|
|
RUSTFLAGS=-g RUST_TARGET=$(RUST_TARGET) $(MAKE) build
|
|
|
|
install:
|
|
echo $(RUST_TARGET)
|
|
mkdir -p $(DEST)/lib $(DEST)/include $(DEST)/lib/pkgconfig
|
|
install runtime/extism.h $(DEST)/include/extism.h
|
|
if [ -f target/$(RUST_TARGET)/release/libextism.$(SOEXT) ]; then \
|
|
install target/$(RUST_TARGET)/release/libextism.$(SOEXT) $(DEST)/lib/libextism.$(SOEXT); \
|
|
fi
|
|
install target/$(RUST_TARGET)/release/libextism.$(AEXT) $(DEST)/lib/libextism.$(AEXT)
|
|
install libextism/extism.pc $(DEST)/lib/pkgconfig/extism.pc
|
|
install libextism/extism-static.pc $(DEST)/lib/pkgconfig/extism-static.pc
|
|
|
|
uninstall:
|
|
rm -f $(DEST)/include/extism.h $(DEST)/lib/libextism.$(SOEXT) $(DEST)/lib/libextism.$(AEXT) \
|
|
$(DEST)/lib/pkgconfig/extism*.pc
|
|
|
|
|