github.com/stealthrocket/wzprof@v0.2.1-0.20230830205924-5fa86be5e5b3/Makefile (about)

     1  .PHONY: all clean test testdata wasi-libc
     2  
     3  testdata.c.src = $(wildcard testdata/c/*.c)
     4  testdata.c.wasm = $(testdata.c.src:.c=.wasm)
     5  
     6  testdata.go.src = $(wildcard testdata/go/*.go)
     7  testdata.go.wasm = $(testdata.go.src:.go=.wasm)
     8  
     9  testdata.tinygo.src = $(wildcard testdata/tinygo/*.go)
    10  testdata.tinygo.wasm = $(testdata.tinygo.src:.go=.wasm)
    11  
    12  testdata.wat.src = $(wildcard testdata/wat/*.go)
    13  testdata.wat.wasm = $(testdata.wat.src:.wat=.wasm)
    14  
    15  testdata.files = \
    16  	$(testdata.c.wasm) \
    17  	$(testdata.go.wasm) \
    18  	$(testdata.tinygo.wasm) \
    19  	$(testdata.wat.wasm)
    20  
    21  python.files = .python/python.wasm .python/python311.zip
    22  
    23  all: test
    24  
    25  clean:
    26  	rm -f $(testdata.files) $(python.files)
    27  
    28  test: testdata
    29  	go test ./...
    30  
    31  testdata: wasi-libc python $(testdata.files)
    32  
    33  testdata/.sysroot:
    34  	mkdir -p testdata/.sysroot
    35  
    36  testdata/.wasi-libc: testdata/.wasi-libc/.git
    37  
    38  testdata/.wasi-libc/.git: .gitmodules
    39  	git submodule update --init --recursive -- testdata/.wasi-libc
    40  
    41  testdata/.sysroot/lib/wasm32-wasi/libc.a: testdata/.wasi-libc
    42  	make -j4 -C testdata/.wasi-libc install INSTALL_DIR=../.sysroot
    43  
    44  testdata/c/%.c: wasi-libc
    45  testdata/c/%.wasm: testdata/c/%.c
    46  	clang $< -o $@ -Wall -g -Os -target wasm32-unknown-wasi --sysroot testdata/.sysroot
    47  
    48  testdata/go/%.wasm: testdata/go/%.go
    49  	GOARCH=wasm GOOS=wasip1 gotip build -o $@ $<
    50  
    51  testdata/tinygo/%.wasm: testdata/tinygo/%.go
    52  	tinygo build -target=wasi -o $@ $<
    53  
    54  testdata/wat/%.wasm: testdata/wat/%.wat
    55  	wat2wasm -o $@ $<
    56  
    57  wasi-libc: testdata/.sysroot/lib/wasm32-wasi/libc.a
    58  
    59  python: $(python.files)
    60  
    61  .python/python.wasm:
    62  	mkdir -p $(dir $@)
    63  	curl -fsSL https://timecraft.s3.amazonaws.com/python-vanilla/main/python.wasm -o $@
    64  
    65  .python/python311.zip:
    66  	mkdir -p $(dir $@)
    67  	curl -fsSL https://timecraft.s3.amazonaws.com/python-vanilla/main/python311.zip -o $@
    68  
    69  .gitmodules:
    70  	git submodule add --name wasi-libc -- \
    71  		'https://github.com/WebAssembly/wasi-libc' testdata/.wasi-libc