summaryrefslogblamecommitdiff
path: root/c/wasi-http/0.2.0/shared.mk
blob: 35f26a637b9de968ab83acf12780e15c6aefd630 (plain) (tree)
1
2
3
4
5
6
7
8
9

                                   






                                                           

                       

              
 






                                                                                                                                                                                      

                                                                        






                                                                                   
                                                                                                                                            


                                               
WIT_DIR = ../../wit/wasi-http/0.2.0

# 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

ADAPTOR_TYPE ?= reactor

WIT_BINDGEN ?=
WASM_TOOLS  ?=

CC      = clang
CFLAGS  = -Wall -Wextra --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:
	$(WIT_BINDGEN) c $(WIT_DIR) --autodrop-borrows yes --world proxy
	$(WIT_BINDGEN) markdown $(WIT_DIR) --world proxy

.PHONY:
module.wasm: bindgen
	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ proxy.c proxy_component_type.o component.c

.PHONY:
component.wasm: module.wasm
	$(WASM_TOOLS)  component new module.wasm --adapt ../../adaptors/26.0.1/wasi_snapshot_preview1.$(ADAPTOR_TYPE).wasm -o component.wasm

clean:
	rm -f component.wasm module.wasm proxy*