sqlite/ext/wasm/SQLTester/GNUmakefile
stephan e621556724 Add a UI, of sorts, to the JS SQLTester.
FossilOrigin-Name: 249e82b9917ea47c56ee1cbd3345a977d335fd3fc0d67a1ef157813ef4571c7c
2023-08-30 11:54:43 +00:00

56 lines
1.4 KiB
Makefile

#!/this/is/make
#
# This makefile compiles SQLTester test files into something
# we can readily import into JavaScript.
all:
SHELL := $(shell which bash 2>/dev/null)
MAKEFILE := $(lastword $(MAKEFILE_LIST))
CLEAN_FILES :=
DISTCLEAN_FILES := ./--dummy-- *~
test-list.mjs := test-list.mjs
test-list.mjs.gz := $(test-list.mjs).gz
CLEAN_FILES += $(test-list.mjs)
tests.dir := $(firstword $(wildcard tests ../../jni/src/tests))
$(info test script dir=$(tests.dir))
tests.all := $(wildcard $(tests.dir)/*.test)
bin.touint8array := ./touint8array
$(bin.touint8array): $(bin.touint8array).c $(MAKEFILE)
$(CC) -o $@ $<
CLEAN_FILES += $(bin.touint8array)
ifneq (,$(tests.all))
$(test-list.mjs): $(bin.touint8array) $(tests.all) $(MAKEFILE)
@{\
echo 'export default ['; \
sep=''; \
for f in $(sort $(tests.all)); do \
echo -en $$sep'{"name": "'$${f##*/}'", "content":'; \
$(bin.touint8array) < $$f; \
echo -n '}'; \
sep=',\n'; \
done; \
echo '];'; \
} > $@
@echo "Created $@"
$(test-list.mjs.gz): $(test-list.mjs)
gzip -c $< > $@
CLEAN_FILES += $(test-list.mjs.gz)
all: $(test-list.mjs.gz)
else
@echo "Cannot build $(test-list.mjs) for lack of input test files."; \
echo "Symlink ./tests to a directory containing SQLTester-format "; \
echo "test scripts named *.test, then try again"; \
exit 1
endif
.PHONY: clean distclean
clean:
-rm -f $(CLEAN_FILES)
distclean: clean
-rm -f $(DISTCLEAN_FILES)