summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/battlemap/Makefile')
-rw-r--r--src/battlemap/Makefile87
1 files changed, 40 insertions, 47 deletions
diff --git a/src/battlemap/Makefile b/src/battlemap/Makefile
index c5bb150..4eca95a 100644
--- a/src/battlemap/Makefile
+++ b/src/battlemap/Makefile
@@ -1,15 +1,18 @@
-## Directories
-SRC_DIR ?= src
-BIN_DIR ?= ebin
-CONF_DIR ?= conf
-INCLUDE_DIR ?= include
-UNUSED_WWW_DIR ?= www
-
+################################################################################
+## CONFIG ######################################################################
+################################################################################
YAWS_CONF ?= $(CONF_DIR)/yaws.conf
YAWS_API_HEADER ?= /my/src/yaws/include/yaws_api.hrl
DIALYZER_PLT_FILE ?= tacticians-server.plt
+## Main Directories
+SRC_DIR ?= src
+CONF_DIR ?= conf
+#### Optional Dirs
+BIN_DIR ?= ebin
+INCLUDE_DIR ?= include
+
## Binaries
YAWS ?= yaws
ERLC ?= erlc
@@ -17,56 +20,46 @@ ERLC_OPTS ?=
DIALYZER ?= dialyzer
################################################################################
+## MAKEFILE MAGIC ##############################################################
+################################################################################
+OPTIONAL_DIRS = $(BIN_DIR) $(INCLUDE_DIR)
REQUIRED_HEADERS = $(INCLUDE_DIR)/yaws_api.hrl
-SRC_FILES = $(wildcard $(SRC_DIR)/*.erl)
-MODULES = $(patsubst %.erl,%,$(SRC_FILES))
-SUB_DIRS = $(filter-out $(MODULES),$(sort $(dir $(wildcard $(SRC_DIR)/*/))))
-BIN_FILES = $(patsubst $(SRC_DIR)/%.erl,$(BIN_DIR)/%.beam,$(SRC_FILES))
+################################################################################
+## SANITY CHECKS ###############################################################
+################################################################################
+YAWS_API_HEADER ?= /my/src/yaws/include/yaws_api.hrl
+DIALYZER_PLT_FILE ?= tacticians-server.plt
+
+## Main Directories
+SRC_DIR ?= src
+CONF_DIR ?= conf
-export
################################################################################
-all:
- for subdir in $(SUB_DIRS) ; do \
- echo "Building dir $$subdir" ; \
- $(MAKE) build SRC_DIR=$$subdir || exit 1;\
- done
+## INCLUDES ####################################################################
+################################################################################
+main_target: all
-debug: $(DIALYZER_PLT_FILE)
- $(MAKE) build_debug
- $(DIALYZER) --check_plt --plt $(DIALYZER_PLT_FILE)
- $(DIALYZER) --get_warnings $(SRC_DIR)/*.erl $(SRC_DIR)/*/*.erl \
- --src --plt $(DIALYZER_PLT_FILE)
+include ${CURDIR}/mk/debug.mk
+include ${CURDIR}/mk/erlang.mk
+include ${CURDIR}/mk/preprocessor.mk
+include ${CURDIR}/mk/yaws.mk
+################################################################################
+## TARGET RULES ################################################################
+################################################################################
+all: build
-build_debug:
- $(MAKE) clean
- $(MAKE) ERLC_OPTS=+debug_info
+debug: debug_run
-build: $(BIN_DIR) $(REQUIRED_HEADERS) $(BIN_FILES)
+build: $(PREPROCESSOR_RESULT) $(ERLANG_RESULT)
-run: all $(UNUSED_WWW_DIR)
- $(YAWS) --conf $(YAWS_CONF)
+run: yaws_run
clean:
rm -rf $(BIN_DIR)/*
-$(DIALYZER_PLT_FILE):
- $(DIALYZER) --build_plt --apps erts kernel stdlib jiffy --output_plt $@
- $(MAKE) build_debug
- $(DIALYZER) --add_to_plt --plt $@ -r $(BIN_DIR)
-
-$(INCLUDE_DIR)/yaws_api.hrl: $(YAWS_API_HEADER) $(INCLUDE_DIR)
- cp $< $@
-
-$(BIN_DIR):
- mkdir -p $@
-
-$(UNUSED_WWW_DIR):
- mkdir -p $@
-
-$(INCLUDE_DIR):
+################################################################################
+## INTERNAL RULES ##############################################################
+################################################################################
+$(OPTIONAL_DIRS): %:
mkdir -p $@
-
-.SECONDEXPANSION:
-$(BIN_FILES): $(BIN_DIR)/%.beam : $(SRC_DIR)/%.erl $$(wildcard $$(SRC_DIR)/%/.)
- $(ERLC) $(ERLC_OPTS) -o $(BIN_DIR) $<