41 lines
949 B
Makefile
41 lines
949 B
Makefile
WIT_BINDGEN ?= wit-bindgen
|
|
CC_WASI ?= wasm32-wasip2-clang
|
|
AR_LLVM ?= llvm-ar
|
|
INSTALL_PREFIX ?= install
|
|
|
|
CFLAGS ?= -Oz
|
|
|
|
WIT_FILES := $(wildcard wit/v0.1/*.wit)
|
|
HEADERS := pumpkin_api.h gen/plugin.h
|
|
OBJS := build/pumpkin_api.o build/plugin.o gen/plugin_component_type.o
|
|
|
|
.PHONY: all clean install
|
|
|
|
all: build/libpumpkin-api.a
|
|
|
|
gen: $(WIT_FILES)
|
|
$(WIT_BINDGEN) c --out-dir gen wit/v0.1
|
|
|
|
gen/plugin.c: gen
|
|
gen/plugin.h: gen
|
|
gen/plugin_component_type.o: gen
|
|
|
|
build/pumpkin_api.o: pumpkin_api.c $(HEADERS) | build
|
|
$(CC_WASI) $(CFLAGS) -I. -Igen -c $< -o $@
|
|
build/plugin.o: gen/plugin.c $(HEADERS) | build
|
|
$(CC_WASI) $(CFLAGS) -I. -Igen -c $< -o $@
|
|
|
|
build/libpumpkin-api.a: $(OBJS) | build
|
|
$(AR_LLVM) rcs $@ $^
|
|
|
|
build:
|
|
mkdir build
|
|
|
|
install: build/libpumpkin-api.a $(HEADERS)
|
|
mkdir -p $(INSTALL_PREFIX)/include $(INSTALL_PREFIX)/lib
|
|
cp $(HEADERS) $(INSTALL_PREFIX)/include/
|
|
cp build/libpumpkin-api.a $(INSTALL_PREFIX)/lib/
|
|
|
|
clean:
|
|
rm -rf build gen
|