summaryrefslogtreecommitdiff
path: root/mk
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2018-04-10 13:36:23 +0200
committernsensfel <SpamShield0@noot-noot.org>2018-04-10 13:36:23 +0200
commitd997d578d7317545e60569bd2e8d2924cdee33ae (patch)
treed52a0eccdb27b6b48d3ff408d710faa5a5a22313 /mk
parent6378db62860f3679146f00566331a2d5e1aaeac7 (diff)
Separates makefile logics.
Diffstat (limited to 'mk')
-rw-r--r--mk/preprocessor.mk28
1 files changed, 28 insertions, 0 deletions
diff --git a/mk/preprocessor.mk b/mk/preprocessor.mk
new file mode 100644
index 0000000..e503702
--- /dev/null
+++ b/mk/preprocessor.mk
@@ -0,0 +1,28 @@
+################################################################################
+## CONFIG ######################################################################
+################################################################################
+CONFIG_FILE ?= ${CURDIR}/conf/constants.conf
+
+################################################################################
+## MAKEFILE MAGIC ##############################################################
+################################################################################
+PREPROCESSOR_FILES = $(shell find ${CURDIR} -name "*.m4")
+PREPROCESSED_FILES = $(patsubst %.m4,%,$(PREPROCESSOR_FILES))
+
+################################################################################
+## SANITY CHECKS ###############################################################
+################################################################################
+ifeq ($(wildcard $(CONFIG_FILE)),)
+$(error "Missing CONFIG_FILE ($(CONFIG_FILE)), use the example to make one.")
+endif
+
+################################################################################
+## TARGET RULES ################################################################
+################################################################################
+PREPROCESSOR_RESULT = $(PREPROCESSED_FILES)
+
+################################################################################
+## INTERNAL RULES ##############################################################
+################################################################################
+$(PREPROCESSED_FILES): %: $(CONFIG_FILE) %.m4
+ m4 $^ > $@