summaryrefslogtreecommitdiff
blob: d27de1baf6251a0d3ef33b9ab37d051d01162160 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
################################################################################
## CONFIG ######################################################################
################################################################################
CONFIG_FILE ?= ${CURDIR}/module.conf
YAWS_CONFIG_TEMPLATE ?=

################################################################################
## MAKEFILE MAGIC ##############################################################
################################################################################
PREPROCESSOR_FILES = $(shell find ${CURDIR} -name "*.m4")
PREPROCESSED_FILES = $(patsubst %.m4,%,$(PREPROCESSOR_FILES))

MAKEFILE_TO_M4 = \
	--define=__MAKEFILE_MODULE_NAME=$(MODULE_NAME) \
	--define=__MAKEFILE_MODULE_PORT=$(MODULE_PORT) \
	--define=__MAKEFILE_BIN_DIR=$(BIN_DIR) \
	--define=__MAKEFILE_INCLUDE_DIR=$(INCLUDE_DIR) \
	--define=__MAKEFILE_LOG_DIR=$(LOG_DIR) \
	--define=__MAKEFILE_WWW_DIR=$(WWW_DIR)

################################################################################
## SANITY CHECKS ###############################################################
################################################################################
ifeq ($(wildcard $(CONFIG_FILE)),)
$(error "Missing CONFIG_FILE ($(CONFIG_FILE)).")
endif

ifeq ($(wildcard $(YAWS_CONFIG_TEMPLATE)),)
$(error "Missing YAWS_CONFIG_TEMPLATE ($(YAWS_CONFIG_TEMPLATE)).")
endif

################################################################################
## TARGET RULES ################################################################
################################################################################
PREPROCESSOR_RESULT = $(PREPROCESSED_FILES) yaws.conf

################################################################################
## INTERNAL RULES ##############################################################
################################################################################
$(PREPROCESSED_FILES): %: $(CONFIG_FILE) %.m4
	m4 -P $^ > $@

yaws.conf: $(CONFIG_FILE) $(YAWS_CONFIG_TEMPLATE)
	m4 -P $(MAKEFILE_TO_M4) $^ > $@