From 0624b9920ea537f399c87f6a1ab2f0bc714b3a47 Mon Sep 17 00:00:00 2001 From: nsensfel Date: Tue, 10 Apr 2018 14:35:46 +0200 Subject: Cleaning up the module's makefiles... --- src/battlemap/Makefile | 87 +++++++++++++++++++++++--------------------------- 1 file changed, 40 insertions(+), 47 deletions(-) (limited to 'src/battlemap/Makefile') 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) $< -- cgit v1.2.3-70-g09d2