From c6336feed0e96854a9cc9952ad541a25589c15e1 Mon Sep 17 00:00:00 2001 From: nsensfel Date: Thu, 3 Jan 2019 18:52:45 +0100 Subject: ... --- Makefile | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) (limited to 'Makefile') 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: -- cgit v1.2.3-70-g09d2