aboutsummaryrefslogtreecommitdiff
path: root/common.mk
diff options
context:
space:
mode:
authorlonkaars <loek@pipeframe.xyz>2022-10-04 17:10:08 +0200
committerlonkaars <loek@pipeframe.xyz>2022-10-04 17:10:08 +0200
commit8531a023f0a3db50897ea77f38a5d59909a97825 (patch)
treed317a69c0bb844b86b4a0a2f16651adc20482144 /common.mk
parentdf4e9faf60be8039af715c60a1fd7b21da8b99c5 (diff)
makefile build instead of janky shell scripts
Diffstat (limited to 'common.mk')
-rw-r--r--common.mk29
1 files changed, 29 insertions, 0 deletions
diff --git a/common.mk b/common.mk
new file mode 100644
index 0000000..8a0327d
--- /dev/null
+++ b/common.mk
@@ -0,0 +1,29 @@
+RM = rm -f
+MYSQL = mysql -Hu root mysql
+M4 = m4
+
+RESET_SQL += reset.sql
+QUERY_SQL += $(wildcard q*.sql)
+TESTS_SQL += $(wildcard t*.sql)
+
+TESTS_MD = $(patsubst %.sql,%.md, $(TESTS_SQL))
+
+.PHONY: $(TARGET).m4 $(TESTS_SQL) .tmp.sql clean reset
+
+all: $(TARGET).md
+
+.tmp.sql: $(RESET_SQL) $(QUERY_SQL)
+ cat $(RESET_SQL) $(QUERY_SQL) > .tmp.sql
+
+reset: .tmp.sql
+ $(MYSQL) < .tmp.sql
+
+%.md: %.sql reset
+ $(MYSQL) < $< &> $@
+
+$(TARGET).md: $(TESTS_MD) $(TARGET).m4
+ $(M4) $(TARGET).m4 > $(TARGET).md
+
+clean:
+ $(RM) $(wildcard *.md) .tmp.sql
+