| #!/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) |