aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/prelude.mk
diff options
context:
space:
mode:
authorEgor Tensin <egor@tensin.name>2026-10-14 18:20:35 +0500
committerEgor Tensin <egor@tensin.name>2026-10-14 18:23:27 +0500
commite871d2c6805e8e7e1bdb6f83d29fc0307d4395d7 (patch)
treebf639e1ccd6548d5e8953c6f2ef8d559dadf13c4 /prelude.mk
parenttest: migrate to test-harness (diff)
downloadvk-scripts-e871d2c6805e8e7e1bdb6f83d29fc0307d4395d7.tar.gz
vk-scripts-e871d2c6805e8e7e1bdb6f83d29fc0307d4395d7.zip
allow running Docker tests locally
Diffstat (limited to 'prelude.mk')
-rw-r--r--prelude.mk29
1 files changed, 29 insertions, 0 deletions
diff --git a/prelude.mk b/prelude.mk
new file mode 100644
index 0000000..e0862a5
--- /dev/null
+++ b/prelude.mk
@@ -0,0 +1,29 @@
+# Please see https://tensin.name/blog/notes/makefile.html
+
+MAKEFLAGS += --no-builtin-rules --no-builtin-variables --warn-undefined-variables
+unexport MAKEFLAGS
+.DEFAULT_GOAL := all
+.DELETE_ON_ERROR:
+.SUFFIXES:
+SHELL := bash
+.SHELLFLAGS := -eu -o pipefail -c
+
+escape = $(subst ','\'',$(1))
+
+define noexpand
+ifeq ($$(origin $(1)),environment)
+ $(1) := $$(value $(1))
+endif
+ifeq ($$(origin $(1)),environment override)
+ $(1) := $$(value $(1))
+endif
+ifeq ($$(origin $(1)),command line)
+ override $(1) := $$(value $(1))
+endif
+endef
+
+# A helper target to force execution of pattern rules (works like .PHONY for
+# them): https://www.gnu.org/software/make/manual/html_node/Phony-Targets.html
+#
+.PHONY: DO
+DO: