summaryrefslogtreecommitdiffhomepage
path: root/pkg/contrib/src/wasmtime/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/contrib/src/wasmtime/Makefile')
-rw-r--r--pkg/contrib/src/wasmtime/Makefile30
1 files changed, 30 insertions, 0 deletions
diff --git a/pkg/contrib/src/wasmtime/Makefile b/pkg/contrib/src/wasmtime/Makefile
new file mode 100644
index 00000000..11797fee
--- /dev/null
+++ b/pkg/contrib/src/wasmtime/Makefile
@@ -0,0 +1,30 @@
+# wasmtime
+
+include $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/version
+WASMTIME_URL := https://github.com/bytecodealliance/wasmtime/releases/download/v$(WASMTIME_VERSION)/wasmtime-v$(WASMTIME_VERSION)-src.tar.gz
+
+PKGS += wasmtime
+
+ifeq ($(shell which cargo >/dev/null 2>&1 || echo FAIL),)
+CARGO = cargo
+else
+CARGO = $(error Cargo (Rust package manager) not found)
+endif
+
+ifeq ($(shell uname -s),Linux)
+WASMTIME_ARGS=-Clink-arg=-Wl,-soname,libwasmtime.so
+endif
+
+$(TARBALLS)/wasmtime-v$(WASMTIME_VERSION)-src.tar.gz:
+ $(call download_pkg,$(WASMTIME_URL),wasmtime)
+
+.sum-wasmtime: wasmtime-v$(WASMTIME_VERSION)-src.tar.gz
+
+wasmtime: wasmtime-v$(WASMTIME_VERSION)-src.tar.gz .sum-wasmtime
+ $(UNPACK)
+ $(MOVE)
+
+.wasmtime: wasmtime
+ cd $< && $(CARGO) rustc --release -p wasmtime-c-api -- $(WASMTIME_ARGS)
+ cp $</crates/c-api/wasm-c-api/include/wasm.h $</crates/c-api/include/
+ touch $@