summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2019-01-03 18:52:45 +0100
committernsensfel <SpamShield0@noot-noot.org>2019-01-03 18:52:45 +0100
commitc6336feed0e96854a9cc9952ad541a25589c15e1 (patch)
tree879bb0d785b132aa16e5749cd1a56f16ae741bab /Makefile
parent71c2f729208cecb039e2bd753a50b55c2788f2d0 (diff)
...
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile27
1 files changed, 17 insertions, 10 deletions
diff --git a/Makefile b/Makefile
index 82a5c0b..77ba3c8 100644
--- a/Makefile
+++ b/Makefile
@@ -21,7 +21,7 @@ ERLC ?= erlc
ERLC_OPTS ?=
ERL ?= erl
-ERL_OPTS ?= -connect_all false -pa $(BIN_DIR)
+ERL_OPTS ?= -connect_all false -pa `find $(BIN_DIR) -type d`
YAWS ?= yaws
YAWS_OPTS ?= $(ERL_NAME_VS_SNAME) query_node -erlarg "$(ERL_OPTS)"
@@ -33,6 +33,7 @@ M4 ?= m4
M4_OPTS ?=
## Filenames
+DIALYZER_BASE_PLT_FILE ?= base.plt
DIALYZER_PLT_FILE ?= tacticians-server.plt
YAWS_CONFIG_FILE ?= $(CONFIG_DIR)/yaws.conf
@@ -50,8 +51,12 @@ PREPROCESSABLE_FILES = $(shell find -L ${CURDIR} -name "*.m4")
PREPROCESSED_FILES = $(patsubst %.m4,%,$(PREPROCESSABLE_FILES))
## Erlang
-ERL_SRC_FILES = $(shell find -L $(SRC_DIR) -name "*.erl")
-ERL_BIN_FILES = $(patsubst %.erl,$(BIN_DIR)/%.beam,$(notdir $(ERL_SRC_FILES)))
+PREPROCESSED_ERL_SRC_FILES = $(filter %.erl,$(PREPROCESSED_FILES))
+CURRENT_ERL_SRC_FILES = $(shell find -L $(SRC_DIR) -name "*.erl")
+ERL_SRC_FILES = \
+ $(filter-out $(PREPROCESSED_ERL_SRC_FILES),$(CURRENT_ERL_SRC_FILES)) \
+ $(PREPROCESSED_ERL_SRC_FILES)
+ERL_BIN_FILES = $(patsubst $(SRC_DIR)%.erl,$(BIN_DIR)/%.beam,$(ERL_SRC_FILES))
## Yaws
REQUIRED_HEADERS = $(INCLUDE_DIR)/yaws_api.hrl
@@ -126,17 +131,19 @@ debug_rebuild:
$(MAKE) clean
$(MAKE) ERLC_OPTS="$(ERLC_OPTS) +debug_info"
-ifeq ($(wildcard $(DIALYZER_PLT_FILE)),)
-debug_run:
+$(DIALYZER_BASE_PLT_FILE):
$(DIALYZER_EXEC) --build_plt --apps erts kernel stdlib crypto jiffy mnesia \
- --output_plt $(DIALYZER_PLT_FILE)
+ --output_plt $@
+ifeq ($(wildcard $(DIALYZER_PLT_FILE)),)
+debug_run: $(DIALYZER_BASE_PLT_FILE)
$(MAKE) debug_rebuild
+ cp $< $(DIALYZER_PLT_FILE)
$(DIALYZER_EXEC) --add_to_plt --plt $(DIALYZER_PLT_FILE) -r $(BIN_DIR)
else
debug_run:
$(MAKE) debug_rebuild
$(DIALYZER_EXEC) --check_plt --plt $(DIALYZER_PLT_FILE)
- $(DIALYZER_EXEC) --get_warnings $(ERL_SRC_FILES) \
+ $(DIALYZER_EXEC) --get_warnings $(ERL_SRC_FILES) $(PREPROCESSED_ERL_SRC_FILES)\
--src --plt $(DIALYZER_PLT_FILE)
endif
@@ -146,9 +153,9 @@ $(PREPROCESSED_FILES): %: %.m4 .PHONY
$(OPTIONAL_DIRS): %:
mkdir -p $@
-.SECONDEXPANSION:
-$(ERL_BIN_FILES): $(BIN_DIR)/%.beam: $$(shell find -L $(SRC_DIR) -name "%.erl")
- $(ERLC_EXEC) -o $(BIN_DIR) $<
+$(ERL_BIN_FILES): $(BIN_DIR)/%.beam: $(SRC_DIR)/%.erl
+ mkdir -p $(dir $@)
+ $(ERLC_EXEC) -o $(dir $@) $<
.PHONY: