summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile9
-rw-r--r--conf/yaws.conf.m4 (renamed from conf/yaws.conf)18
-rw-r--r--src/battlemap/Makefile3
-rw-r--r--src/battlemap/mk/preprocessor.mk18
-rw-r--r--src/battlemap/module.conf9
5 files changed, 43 insertions, 14 deletions
diff --git a/Makefile b/Makefile
index d9ae18f..f7f311c 100644
--- a/Makefile
+++ b/Makefile
@@ -2,13 +2,14 @@
## CONFIG ######################################################################
################################################################################
MODULES ?= battlemap
+MODULES_DIR ?= ${CURDIR}/src
-SRC_DIR ?= ${CURDIR}/src
-
+YAWS_CONFIG_TEMPLATE ?= ${CURDIR}/conf/yaws.conf.m4
+YAWS_API_HEADER ?= /my/src/yaws/include/yaws_api.hrl
################################################################################
## MAKEFILE MAGIC ##############################################################
################################################################################
-MODULES_SRC = $(addprefix $(SRC_DIR)/,$(MODULES))
+MODULES_SRC = $(addprefix $(MODULES_DIR)/,$(MODULES))
################################################################################
## SANITY CHECKS ###############################################################
@@ -23,6 +24,8 @@ endif
################################################################################
## TARGET RULES ################################################################
################################################################################
+export
+
all:
for module in $(MODULES_SRC) ; do \
$(MAKE) -C $$module all; \
diff --git a/conf/yaws.conf b/conf/yaws.conf.m4
index 6127741..8a68f0b 100644
--- a/conf/yaws.conf
+++ b/conf/yaws.conf.m4
@@ -4,17 +4,17 @@
# This is the directory where all logfiles for
# all virtual servers will be written.
-logdir = /my/src/yaws/_inst/var/log/yaws
+logdir = __MODULE_LOG_DIR
# These are the paths to directories where additional
# beam code can be placed. The daemon will add these
# directories to its search path.
-ebin_dir = /my/src/tacticians-server/ebin
+ebin_dir = __MODULE_BIN_DIR
# This is a directory where application specific .hrl
# files can be placed. Application-specific .yaws code can
# then include these .hrl files.
-include_dir = /my/src/yaws/_inst/lib/yaws/examples/include
+include_dir = __MODULE_INCLUDE_DIR
# Set this to an integer value to control
# max number of connections from clients into the server.
@@ -106,10 +106,10 @@ keepalive_timeout = 30000
# in this case, but an explicit IP can be given as well.
<server *>
- port = 8000
- listen = 0.0.0.0
- docroot = /my/src/tacticians-server/www/
- auth_log = true
- appmods = character_turn load_state
- start_mod = handler
+ port = 8000
+ listen = 0.0.0.0
+ docroot = __MODULE_WWW_DIR
+ auth_log = true
+ appmods = __MODULE_APP_MODS
+ start_mod = handler
</server>
diff --git a/src/battlemap/Makefile b/src/battlemap/Makefile
index 4eca95a..8c7d206 100644
--- a/src/battlemap/Makefile
+++ b/src/battlemap/Makefile
@@ -44,6 +44,7 @@ include ${CURDIR}/mk/debug.mk
include ${CURDIR}/mk/erlang.mk
include ${CURDIR}/mk/preprocessor.mk
include ${CURDIR}/mk/yaws.mk
+
################################################################################
## TARGET RULES ################################################################
################################################################################
@@ -56,7 +57,7 @@ build: $(PREPROCESSOR_RESULT) $(ERLANG_RESULT)
run: yaws_run
clean:
- rm -rf $(BIN_DIR)/*
+ rm -rf $(PREPROCESSOR_RESULT) $(ERLANG_RESULT)
################################################################################
## INTERNAL RULES ##############################################################
diff --git a/src/battlemap/mk/preprocessor.mk b/src/battlemap/mk/preprocessor.mk
index 2b332a4..d27de1b 100644
--- a/src/battlemap/mk/preprocessor.mk
+++ b/src/battlemap/mk/preprocessor.mk
@@ -2,6 +2,7 @@
## CONFIG ######################################################################
################################################################################
CONFIG_FILE ?= ${CURDIR}/module.conf
+YAWS_CONFIG_TEMPLATE ?=
################################################################################
## MAKEFILE MAGIC ##############################################################
@@ -9,6 +10,14 @@ CONFIG_FILE ?= ${CURDIR}/module.conf
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 ###############################################################
################################################################################
@@ -16,13 +25,20 @@ 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)
+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) $^ > $@
diff --git a/src/battlemap/module.conf b/src/battlemap/module.conf
index e69de29..8c2a2b6 100644
--- a/src/battlemap/module.conf
+++ b/src/battlemap/module.conf
@@ -0,0 +1,9 @@
+m4_define(`__MODULE_NAME', `__MAKEFILE_MODULE_NAME')m4_dnl
+m4_define(`__MODULE_PORT', `__MAKEFILE_MODULE_PORT')m4_dnl
+m4_dnl
+m4_define(`__MODULE_BIN_DIR', `__MAKEFILE_BIN_DIR')m4_dnl
+m4_define(`__MODULE_INCLUDE_DIR', `__MAKEFILE_INCLUDE_DIR')m4_dnl
+m4_define(`__MODULE_LOG_DIR', `__MAKEFILE_LOG_DIR')m4_dnl
+m4_define(`__MODULE_WWW_DIR', `__MAKEFILE_WWW_DIR')m4_dnl
+m4_dnl
+m4_define(`__MODULE_APP_MODS', `character_turn load_state')m4_dnl