summaryrefslogtreecommitdiff
path: root/c/wasi-http/0.2.0/download-test/Makefile
diff options
context:
space:
mode:
authorAndrew Clayton <a.clayton@nginx.com>2024-09-05 17:29:51 +0100
committerAndrew Clayton <a.clayton@nginx.com>2024-09-05 19:30:15 +0100
commit7d0de8d48e202e32bb2879f706a47a3477cd8e2e (patch)
tree5a8667be12cf8a84e5e639e33ff8c97d756ead75 /c/wasi-http/0.2.0/download-test/Makefile
parentd2517348a45064245e5f114fbdaee7c6c970b1b2 (diff)
downloadproject_blackbird-7d0de8d48e202e32bb2879f706a47a3477cd8e2e.tar.gz
project_blackbird-7d0de8d48e202e32bb2879f706a47a3477cd8e2e.tar.bz2
w-h/0.2.0: Add an example of a file download
This also shows an example of (at least the best I could figure out) how to send an error 4xx/5xx response back. Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
Diffstat (limited to '')
-rw-r--r--c/wasi-http/0.2.0/download-test/Makefile29
1 files changed, 29 insertions, 0 deletions
diff --git a/c/wasi-http/0.2.0/download-test/Makefile b/c/wasi-http/0.2.0/download-test/Makefile
new file mode 100644
index 0000000..f9e3bfe
--- /dev/null
+++ b/c/wasi-http/0.2.0/download-test/Makefile
@@ -0,0 +1,29 @@
+# Look for wasi-sysroot in some common places, falling back
+# to provided WASI_SYSROOT
+ifneq ("$(wildcard /usr/wasm32-wasi)", "")
+ # Fedora
+ WASI_SYSROOT ?= /usr/wasm32-wasi
+endif
+
+export WASI_SYSROOT
+
+CC = clang
+CFLAGS = -Wall -Wextra -g --target=wasm32-wasi --sysroot=$(WASI_SYSROOT)
+LDFLAGS = -Wl,--no-entry,--export=__heap_base,--export=__data_end,--export=malloc,--export=free,--stack-first,-z,stack-size=$$((8*1024*1024)) -mexec-model=reactor --rtlib=compiler-rt
+
+all: component.wasm
+
+bindgen:
+ /home/andrew/src/c/wasm/git/wit-bindgen/target/release/wit-bindgen c /home/andrew/src/c/wasm/git/wasi-http/wit --autodrop-borrows yes --world wasi:http/proxy
+ /home/andrew/src/c/wasm/git/wit-bindgen/target/release/wit-bindgen markdown /home/andrew/src/c/wasm/git/wasi-http/wit --world wasi:http/proxy
+
+.PHONY:
+module.wasm: bindgen
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ proxy.c proxy_component_type.o component.c
+
+.PHONY:
+component.wasm: module.wasm
+ /home/andrew/src/c/wasm/git/wasm-tools/target/release/wasm-tools component new module.wasm --adapt ../../adaptors/24.0.0/wasi_snapshot_preview1.reactor.wasm -o component.wasm
+
+clean:
+ rm -f component.wasm module.wasm proxy*