mirror of
https://github.com/open-policy-agent/opa.git
synced 2026-08-27 10:45:08 -06:00
wasm: Improve makefile to use wildcards and pattern substitution
As more built-ins get implemented we will want to split them into separate files. This change just updates the makefile so source files don't have to listed explicitly. This makes it easier to maintain the Makefile because we don't have to audit every single file to make sure it's added correctly. This will also make it easier to do auto deps. Signed-off-by: Torin Sandall <torinsandall@gmail.com>
This commit is contained in:
+22
-116
@@ -5,8 +5,6 @@ WASM_BUILDER_VERSION := 1.0
|
||||
WASM_BUILDER_IMAGE := $(WASM_BUILDER_REPOSITORY):$(WASM_BUILDER_VERSION)
|
||||
WASM_OBJ_DIR := _obj
|
||||
|
||||
$(shell mkdir -p $(WASM_OBJ_DIR))
|
||||
|
||||
CFLAGS := \
|
||||
-O3 \
|
||||
-nostdinc \
|
||||
@@ -40,87 +38,34 @@ test:
|
||||
hack:
|
||||
@$(DOCKER) run -it --rm -v $(CURDIR):/src $(WASM_BUILDER_IMAGE)
|
||||
|
||||
$(WASM_OBJ_DIR)/aggregates.wasm: src/aggregates.c
|
||||
$(shell mkdir -p $(WASM_OBJ_DIR)/src/lib)
|
||||
$(shell mkdir -p $(WASM_OBJ_DIR)/src/libmpdec)
|
||||
$(shell mkdir -p $(WASM_OBJ_DIR)/src)
|
||||
$(shell mkdir -p $(WASM_OBJ_DIR)/tests)
|
||||
|
||||
SRCS := $(wildcard src/*.c)
|
||||
LIB_SRCS := $(wildcard src/lib/*.c)
|
||||
LIB_MPDEC_SRCS := $(wildcard src/libmpdec/*.c)
|
||||
TEST_SRCS := $(wildcard tests/*.c)
|
||||
|
||||
OBJS := $(patsubst %.c, $(WASM_OBJ_DIR)/%.wasm, $(SRCS))
|
||||
LIB_OBJS := $(patsubst %.c, $(WASM_OBJ_DIR)/%.wasm, $(LIB_SRCS))
|
||||
LIB_MPDEC_OBJS := $(patsubst %.c, $(WASM_OBJ_DIR)/%.wasm, $(LIB_MPDEC_SRCS))
|
||||
TEST_OBJS := $(patsubst %.c, $(WASM_OBJ_DIR)/%.wasm, $(TEST_SRCS))
|
||||
|
||||
$(OBJS): $(WASM_OBJ_DIR)/src/%.wasm: src/%.c
|
||||
@$(CC) $(CFLAGS) -c $^ -o $@
|
||||
|
||||
$(WASM_OBJ_DIR)/arithmetic.wasm: src/arithmetic.c
|
||||
$(LIB_OBJS): $(WASM_OBJ_DIR)/src/lib/%.wasm: src/lib/%.c
|
||||
@$(CC) $(CFLAGS) -c $^ -o $@
|
||||
|
||||
$(WASM_OBJ_DIR)/array.wasm: src/array.c
|
||||
$(LIB_MPDEC_OBJS): $(WASM_OBJ_DIR)/src/libmpdec/%.wasm: src/libmpdec/%.c
|
||||
@$(CC) $(CFLAGS) -c $^ -o $@
|
||||
|
||||
$(WASM_OBJ_DIR)/bits-builtins.wasm: src/bits-builtins.c
|
||||
@$(CC) $(CFLAGS) -c $^ -o $@
|
||||
$(TEST_OBJS): $(WASM_OBJ_DIR)/tests/%.wasm: tests/%.c
|
||||
@$(CC) $(CFLAGS) -I src -c $^ -o $@
|
||||
|
||||
$(WASM_OBJ_DIR)/context.wasm: src/context.c
|
||||
@$(CC) $(CFLAGS) -c $^ -o $@
|
||||
|
||||
$(WASM_OBJ_DIR)/json.wasm: src/json.c
|
||||
@$(CC) $(CFLAGS) -c $^ -o $@
|
||||
|
||||
$(WASM_OBJ_DIR)/malloc.wasm: src/malloc.c
|
||||
@$(CC) $(CFLAGS) -c $^ -o $@
|
||||
|
||||
$(WASM_OBJ_DIR)/mpd.wasm: src/mpd.c
|
||||
@$(CC) $(CFLAGS) -c $^ -o $@
|
||||
|
||||
$(WASM_OBJ_DIR)/set.wasm: src/set.c
|
||||
@$(CC) $(CFLAGS) -c $^ -o $@
|
||||
|
||||
$(WASM_OBJ_DIR)/str.wasm: src/str.c
|
||||
@$(CC) $(CFLAGS) -c $^ -o $@
|
||||
|
||||
$(WASM_OBJ_DIR)/types.wasm: src/types.c
|
||||
@$(CC) $(CFLAGS) -c $^ -o $@
|
||||
|
||||
$(WASM_OBJ_DIR)/unicode.wasm: src/unicode.c
|
||||
@$(CC) $(CFLAGS) -c $^ -o $@
|
||||
|
||||
$(WASM_OBJ_DIR)/value.wasm: src/value.c
|
||||
@$(CC) $(CFLAGS) -c $^ -o $@
|
||||
|
||||
$(WASM_OBJ_DIR)/lib-%.wasm: src/lib/%.c
|
||||
@$(CC) $(CFLAGS) -c $^ -o $@
|
||||
|
||||
$(WASM_OBJ_DIR)/libmpdec-%.wasm: src/libmpdec/%.c
|
||||
@$(CC) $(CFLAGS) -c $^ -o $@
|
||||
|
||||
$(WASM_OBJ_DIR)/opa.wasm: \
|
||||
$(WASM_OBJ_DIR)/aggregates.wasm \
|
||||
$(WASM_OBJ_DIR)/arithmetic.wasm \
|
||||
$(WASM_OBJ_DIR)/array.wasm \
|
||||
$(WASM_OBJ_DIR)/bits-builtins.wasm \
|
||||
$(WASM_OBJ_DIR)/context.wasm \
|
||||
$(WASM_OBJ_DIR)/json.wasm \
|
||||
$(WASM_OBJ_DIR)/lib-ctype.wasm \
|
||||
$(WASM_OBJ_DIR)/lib-errno.wasm \
|
||||
$(WASM_OBJ_DIR)/lib-locale.wasm \
|
||||
$(WASM_OBJ_DIR)/lib-math.wasm \
|
||||
$(WASM_OBJ_DIR)/lib-printf.wasm \
|
||||
$(WASM_OBJ_DIR)/lib-stdio.wasm \
|
||||
$(WASM_OBJ_DIR)/lib-stdlib.wasm \
|
||||
$(WASM_OBJ_DIR)/lib-string.wasm \
|
||||
$(WASM_OBJ_DIR)/libmpdec-basearith.wasm \
|
||||
$(WASM_OBJ_DIR)/libmpdec-constants.wasm \
|
||||
$(WASM_OBJ_DIR)/libmpdec-context.wasm \
|
||||
$(WASM_OBJ_DIR)/libmpdec-convolute.wasm \
|
||||
$(WASM_OBJ_DIR)/libmpdec-crt.wasm \
|
||||
$(WASM_OBJ_DIR)/libmpdec-difradix2.wasm \
|
||||
$(WASM_OBJ_DIR)/libmpdec-fnt.wasm \
|
||||
$(WASM_OBJ_DIR)/libmpdec-fourstep.wasm \
|
||||
$(WASM_OBJ_DIR)/libmpdec-io.wasm \
|
||||
$(WASM_OBJ_DIR)/libmpdec-memory.wasm \
|
||||
$(WASM_OBJ_DIR)/libmpdec-mpdecimal.wasm \
|
||||
$(WASM_OBJ_DIR)/libmpdec-numbertheory.wasm \
|
||||
$(WASM_OBJ_DIR)/libmpdec-sixstep.wasm \
|
||||
$(WASM_OBJ_DIR)/libmpdec-transpose.wasm \
|
||||
$(WASM_OBJ_DIR)/malloc.wasm \
|
||||
$(WASM_OBJ_DIR)/mpd.wasm \
|
||||
$(WASM_OBJ_DIR)/str.wasm \
|
||||
$(WASM_OBJ_DIR)/set.wasm \
|
||||
$(WASM_OBJ_DIR)/types.wasm \
|
||||
$(WASM_OBJ_DIR)/unicode.wasm \
|
||||
$(WASM_OBJ_DIR)/value.wasm
|
||||
$(WASM_OBJ_DIR)/opa.wasm: $(OBJS) $(LIB_OBJS) $(LIB_MPDEC_OBJS)
|
||||
@wasm-ld-8 \
|
||||
--allow-undefined-file=src/undefined.symbols \
|
||||
--import-memory \
|
||||
@@ -130,46 +75,7 @@ $(WASM_OBJ_DIR)/opa.wasm: \
|
||||
-o $@
|
||||
@wasm2wat $(WASM_OBJ_DIR)/opa.wasm > $(WASM_OBJ_DIR)/opa.wast
|
||||
|
||||
$(WASM_OBJ_DIR)/test.wasm: tests/test.c
|
||||
@$(CC) $(CFLAGS) -I src -c $^ -o $@
|
||||
|
||||
$(WASM_OBJ_DIR)/opa-test.wasm: \
|
||||
$(WASM_OBJ_DIR)/aggregates.wasm \
|
||||
$(WASM_OBJ_DIR)/arithmetic.wasm \
|
||||
$(WASM_OBJ_DIR)/array.wasm \
|
||||
$(WASM_OBJ_DIR)/bits-builtins.wasm \
|
||||
$(WASM_OBJ_DIR)/context.wasm \
|
||||
$(WASM_OBJ_DIR)/json.wasm \
|
||||
$(WASM_OBJ_DIR)/lib-ctype.wasm \
|
||||
$(WASM_OBJ_DIR)/lib-errno.wasm \
|
||||
$(WASM_OBJ_DIR)/lib-locale.wasm \
|
||||
$(WASM_OBJ_DIR)/lib-math.wasm \
|
||||
$(WASM_OBJ_DIR)/lib-printf.wasm \
|
||||
$(WASM_OBJ_DIR)/lib-stdio.wasm \
|
||||
$(WASM_OBJ_DIR)/lib-stdlib.wasm \
|
||||
$(WASM_OBJ_DIR)/lib-string.wasm \
|
||||
$(WASM_OBJ_DIR)/libmpdec-basearith.wasm \
|
||||
$(WASM_OBJ_DIR)/libmpdec-constants.wasm \
|
||||
$(WASM_OBJ_DIR)/libmpdec-context.wasm \
|
||||
$(WASM_OBJ_DIR)/libmpdec-convolute.wasm \
|
||||
$(WASM_OBJ_DIR)/libmpdec-crt.wasm \
|
||||
$(WASM_OBJ_DIR)/libmpdec-difradix2.wasm \
|
||||
$(WASM_OBJ_DIR)/libmpdec-fnt.wasm \
|
||||
$(WASM_OBJ_DIR)/libmpdec-fourstep.wasm \
|
||||
$(WASM_OBJ_DIR)/libmpdec-io.wasm \
|
||||
$(WASM_OBJ_DIR)/libmpdec-memory.wasm \
|
||||
$(WASM_OBJ_DIR)/libmpdec-mpdecimal.wasm \
|
||||
$(WASM_OBJ_DIR)/libmpdec-numbertheory.wasm \
|
||||
$(WASM_OBJ_DIR)/libmpdec-sixstep.wasm \
|
||||
$(WASM_OBJ_DIR)/libmpdec-transpose.wasm \
|
||||
$(WASM_OBJ_DIR)/malloc.wasm \
|
||||
$(WASM_OBJ_DIR)/mpd.wasm \
|
||||
$(WASM_OBJ_DIR)/str.wasm \
|
||||
$(WASM_OBJ_DIR)/set.wasm \
|
||||
$(WASM_OBJ_DIR)/test.wasm \
|
||||
$(WASM_OBJ_DIR)/types.wasm \
|
||||
$(WASM_OBJ_DIR)/unicode.wasm \
|
||||
$(WASM_OBJ_DIR)/value.wasm
|
||||
$(WASM_OBJ_DIR)/opa-test.wasm: $(OBJS) $(LIB_OBJS) $(LIB_MPDEC_OBJS) $(TEST_OBJS)
|
||||
@cat src/undefined.symbols tests/undefined.symbols > _obj/undefined.symbols
|
||||
@wasm-ld-8 \
|
||||
--allow-undefined-file=_obj/undefined.symbols \
|
||||
|
||||
Reference in New Issue
Block a user