Skip to content
This repository was archived by the owner on Nov 17, 2020. It is now read-only.

Commit 2efa4c9

Browse files
committed
Update erlang.mk
1 parent 26fb399 commit 2efa4c9

File tree

1 file changed

+64
-128
lines changed

1 file changed

+64
-128
lines changed

erlang.mk

Lines changed: 64 additions & 128 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
ERLANG_MK_FILENAME := $(realpath $(lastword $(MAKEFILE_LIST)))
1818

19-
ERLANG_MK_VERSION = 2.0.0-pre.2-142-g05c522f
19+
ERLANG_MK_VERSION = 2.0.0-pre.2-144-g647ffd1
2020

2121
# Core configuration.
2222

@@ -110,8 +110,8 @@ help::
110110
" all Run deps, app and rel targets in that order" \
111111
" app Compile the project" \
112112
" deps Fetch dependencies (if needed) and compile them" \
113-
" fetch-deps Fetch dependencies (if needed) without compiling them" \
114-
" list-deps Fetch dependencies (if needed) and list them" \
113+
" fetch-deps Fetch dependencies recursively (if needed) without compiling them" \
114+
" list-deps List dependencies recursively on stdout" \
115115
" search q=... Search for a package in the built-in index" \
116116
" rel Build a release for this project, if applicable" \
117117
" docs Build the documentation for this project" \
@@ -4696,11 +4696,11 @@ endif
46964696
# Forward-declare variables used in core/deps-tools.mk. This is required
46974697
# in case plugins use them.
46984698

4699-
ERLANG_MK_RECURSIVE_DEPS_LIST = $(ERLANG_MK_TMP)/list-deps.log
4700-
ERLANG_MK_RECURSIVE_DOC_DEPS_LIST = $(ERLANG_MK_TMP)/list-doc-deps.log
4701-
ERLANG_MK_RECURSIVE_REL_DEPS_LIST = $(ERLANG_MK_TMP)/list-rel-deps.log
4702-
ERLANG_MK_RECURSIVE_TEST_DEPS_LIST = $(ERLANG_MK_TMP)/list-test-deps.log
4703-
ERLANG_MK_RECURSIVE_SHELL_DEPS_LIST = $(ERLANG_MK_TMP)/list-shell-deps.log
4699+
ERLANG_MK_RECURSIVE_DEPS_LIST = $(ERLANG_MK_TMP)/recursive-deps-list.log
4700+
ERLANG_MK_RECURSIVE_DOC_DEPS_LIST = $(ERLANG_MK_TMP)/recursive-doc-deps-list.log
4701+
ERLANG_MK_RECURSIVE_REL_DEPS_LIST = $(ERLANG_MK_TMP)/recursive-rel-deps-list.log
4702+
ERLANG_MK_RECURSIVE_TEST_DEPS_LIST = $(ERLANG_MK_TMP)/recursive-test-deps-list.log
4703+
ERLANG_MK_RECURSIVE_SHELL_DEPS_LIST = $(ERLANG_MK_TMP)/recursive-shell-deps-list.log
47044704

47054705
# External plugins.
47064706

@@ -6632,171 +6632,107 @@ endif
66326632
endif # ifneq ($(COVER_REPORT_DIR),)
66336633

66346634
# Copyright (c) 2013-2015, Loïc Hoguin <essen@ninenines.eu>
6635-
# Copyright (c) 2015, Jean-Sébastien Pédron <jean-sebastien@rabbitmq.com>
6635+
# Copyright (c) 2015-2016, Jean-Sébastien Pédron <jean-sebastien@rabbitmq.com>
66366636
# This file is part of erlang.mk and subject to the terms of the ISC License.
66376637

6638-
# Fetch dependencies (without building them).
6638+
# Fetch dependencies recursively (without building them).
66396639

66406640
.PHONY: fetch-deps fetch-doc-deps fetch-rel-deps fetch-test-deps \
66416641
fetch-shell-deps
66426642

6643+
.PHONY: $(ERLANG_MK_RECURSIVE_DEPS_LIST) \
6644+
$(ERLANG_MK_RECURSIVE_DOC_DEPS_LIST) \
6645+
$(ERLANG_MK_RECURSIVE_REL_DEPS_LIST) \
6646+
$(ERLANG_MK_RECURSIVE_TEST_DEPS_LIST) \
6647+
$(ERLANG_MK_RECURSIVE_SHELL_DEPS_LIST)
6648+
6649+
fetch-deps: $(ERLANG_MK_RECURSIVE_DEPS_LIST)
6650+
fetch-doc-deps: $(ERLANG_MK_RECURSIVE_DOC_DEPS_LIST)
6651+
fetch-rel-deps: $(ERLANG_MK_RECURSIVE_REL_DEPS_LIST)
6652+
fetch-test-deps: $(ERLANG_MK_RECURSIVE_TEST_DEPS_LIST)
6653+
fetch-shell-deps: $(ERLANG_MK_RECURSIVE_SHELL_DEPS_LIST)
6654+
66436655
ifneq ($(SKIP_DEPS),)
6644-
fetch-deps fetch-doc-deps fetch-rel-deps fetch-test-deps fetch-shell-deps:
6645-
@:
6656+
$(ERLANG_MK_RECURSIVE_DEPS_LIST) \
6657+
$(ERLANG_MK_RECURSIVE_DOC_DEPS_LIST) \
6658+
$(ERLANG_MK_RECURSIVE_REL_DEPS_LIST) \
6659+
$(ERLANG_MK_RECURSIVE_TEST_DEPS_LIST) \
6660+
$(ERLANG_MK_RECURSIVE_SHELL_DEPS_LIST):
6661+
$(verbose) :> $@
66466662
else
66476663
# By default, we fetch "normal" dependencies. They are also included no
66486664
# matter the type of requested dependencies.
66496665
#
66506666
# $(ALL_DEPS_DIRS) includes $(BUILD_DEPS).
6651-
fetch-deps: $(ALL_DEPS_DIRS)
6652-
fetch-doc-deps: $(ALL_DEPS_DIRS) $(ALL_DOC_DEPS_DIRS)
6653-
fetch-rel-deps: $(ALL_DEPS_DIRS) $(ALL_REL_DEPS_DIRS)
6654-
fetch-test-deps: $(ALL_DEPS_DIRS) $(ALL_TEST_DEPS_DIRS)
6655-
fetch-shell-deps: $(ALL_DEPS_DIRS) $(ALL_SHELL_DEPS_DIRS)
6667+
6668+
$(ERLANG_MK_RECURSIVE_DEPS_LIST): $(ALL_DEPS_DIRS)
6669+
$(ERLANG_MK_RECURSIVE_DOC_DEPS_LIST): $(ALL_DEPS_DIRS) $(ALL_DOC_DEPS_DIRS)
6670+
$(ERLANG_MK_RECURSIVE_REL_DEPS_LIST): $(ALL_DEPS_DIRS) $(ALL_REL_DEPS_DIRS)
6671+
$(ERLANG_MK_RECURSIVE_TEST_DEPS_LIST): $(ALL_DEPS_DIRS) $(ALL_TEST_DEPS_DIRS)
6672+
$(ERLANG_MK_RECURSIVE_SHELL_DEPS_LIST): $(ALL_DEPS_DIRS) $(ALL_SHELL_DEPS_DIRS)
66566673

66576674
# Allow to use fetch-deps and $(DEP_TYPES) to fetch multiple types of
66586675
# dependencies with a single target.
66596676
ifneq ($(filter doc,$(DEP_TYPES)),)
6660-
fetch-deps: $(ALL_DOC_DEPS_DIRS)
6677+
$(ERLANG_MK_RECURSIVE_DEPS_LIST): $(ALL_DOC_DEPS_DIRS)
66616678
endif
66626679
ifneq ($(filter rel,$(DEP_TYPES)),)
6663-
fetch-deps: $(ALL_REL_DEPS_DIRS)
6680+
$(ERLANG_MK_RECURSIVE_DEPS_LIST): $(ALL_REL_DEPS_DIRS)
66646681
endif
66656682
ifneq ($(filter test,$(DEP_TYPES)),)
6666-
fetch-deps: $(ALL_TEST_DEPS_DIRS)
6683+
$(ERLANG_MK_RECURSIVE_DEPS_LIST): $(ALL_TEST_DEPS_DIRS)
66676684
endif
66686685
ifneq ($(filter shell,$(DEP_TYPES)),)
6669-
fetch-deps: $(ALL_SHELL_DEPS_DIRS)
6686+
$(ERLANG_MK_RECURSIVE_DEPS_LIST): $(ALL_SHELL_DEPS_DIRS)
66706687
endif
66716688

6672-
fetch-deps fetch-doc-deps fetch-rel-deps fetch-test-deps fetch-shell-deps:
6689+
ERLANG_MK_RECURSIVE_TMP_LIST := $(abspath $(ERLANG_MK_TMP)/recursive-tmp-deps.log)
6690+
6691+
$(ERLANG_MK_RECURSIVE_DEPS_LIST) \
6692+
$(ERLANG_MK_RECURSIVE_DOC_DEPS_LIST) \
6693+
$(ERLANG_MK_RECURSIVE_REL_DEPS_LIST) \
6694+
$(ERLANG_MK_RECURSIVE_TEST_DEPS_LIST) \
6695+
$(ERLANG_MK_RECURSIVE_SHELL_DEPS_LIST):
6696+
ifeq ($(IS_APP)$(IS_DEP),)
6697+
$(verbose) mkdir -p $(ERLANG_MK_TMP)
6698+
$(verbose) rm -f $(ERLANG_MK_RECURSIVE_TMP_LIST)
6699+
endif
66736700
ifndef IS_APP
66746701
$(verbose) for dep in $(ALL_APPS_DIRS) ; do \
6675-
$(MAKE) -C $$dep $@ IS_APP=1 || exit $$?; \
6702+
$(MAKE) -C $$dep $@ \
6703+
IS_APP=1 \
6704+
ERLANG_MK_RECURSIVE_TMP_LIST=$(ERLANG_MK_RECURSIVE_TMP_LIST) \
6705+
|| exit $$?; \
66766706
done
66776707
endif
6678-
ifneq ($(IS_DEP),1)
6679-
$(verbose) rm -f $(ERLANG_MK_TMP)/$@.log
6680-
endif
6681-
$(verbose) mkdir -p $(ERLANG_MK_TMP)
66826708
$(verbose) for dep in $^ ; do \
6683-
if ! grep -qs ^$$dep$$ $(ERLANG_MK_TMP)/$@.log; then \
6684-
echo $$dep >> $(ERLANG_MK_TMP)/$@.log; \
6709+
if ! grep -qs ^$$dep$$ $(ERLANG_MK_RECURSIVE_TMP_LIST); then \
6710+
echo $$dep >> $(ERLANG_MK_RECURSIVE_TMP_LIST); \
66856711
if grep -qs -E "^[[:blank:]]*include[[:blank:]]+(erlang\.mk|.*/erlang\.mk)$$" \
66866712
$$dep/GNUmakefile $$dep/makefile $$dep/Makefile; then \
6687-
$(MAKE) -C $$dep fetch-deps IS_DEP=1 || exit $$?; \
6713+
$(MAKE) -C $$dep fetch-deps \
6714+
IS_DEP=1 \
6715+
ERLANG_MK_RECURSIVE_TMP_LIST=$(ERLANG_MK_RECURSIVE_TMP_LIST) \
6716+
|| exit $$?; \
66886717
fi \
66896718
fi \
66906719
done
6720+
ifeq ($(IS_APP)$(IS_DEP),)
6721+
$(verbose) sort < $(ERLANG_MK_RECURSIVE_TMP_LIST) | uniq > $@
6722+
$(verbose) rm $(ERLANG_MK_RECURSIVE_TMP_LIST)
6723+
endif
66916724
endif # ifneq ($(SKIP_DEPS),)
66926725

66936726
# List dependencies recursively.
66946727

66956728
.PHONY: list-deps list-doc-deps list-rel-deps list-test-deps \
66966729
list-shell-deps
66976730

6698-
ifneq ($(SKIP_DEPS),)
6699-
$(ERLANG_MK_RECURSIVE_DEPS_LIST) \
6700-
$(ERLANG_MK_RECURSIVE_DOC_DEPS_LIST) \
6701-
$(ERLANG_MK_RECURSIVE_REL_DEPS_LIST) \
6702-
$(ERLANG_MK_RECURSIVE_TEST_DEPS_LIST) \
6703-
$(ERLANG_MK_RECURSIVE_SHELL_DEPS_LIST):
6704-
$(verbose) :> $@
6705-
else
6706-
LIST_DIRS = $(ALL_DEPS_DIRS)
6707-
LIST_DEPS = $(BUILD_DEPS) $(DEPS)
6708-
6709-
$(ERLANG_MK_RECURSIVE_DEPS_LIST): fetch-deps
6710-
6711-
ifneq ($(IS_DEP),1)
6712-
$(ERLANG_MK_RECURSIVE_DOC_DEPS_LIST): LIST_DIRS += $(ALL_DOC_DEPS_DIRS)
6713-
$(ERLANG_MK_RECURSIVE_DOC_DEPS_LIST): LIST_DEPS += $(DOC_DEPS)
6714-
$(ERLANG_MK_RECURSIVE_DOC_DEPS_LIST): fetch-doc-deps
6715-
else
6716-
$(ERLANG_MK_RECURSIVE_DOC_DEPS_LIST): fetch-deps
6717-
endif
6718-
6719-
ifneq ($(IS_DEP),1)
6720-
$(ERLANG_MK_RECURSIVE_REL_DEPS_LIST): LIST_DIRS += $(ALL_REL_DEPS_DIRS)
6721-
$(ERLANG_MK_RECURSIVE_REL_DEPS_LIST): LIST_DEPS += $(REL_DEPS)
6722-
$(ERLANG_MK_RECURSIVE_REL_DEPS_LIST): fetch-rel-deps
6723-
else
6724-
$(ERLANG_MK_RECURSIVE_REL_DEPS_LIST): fetch-deps
6725-
endif
6726-
6727-
ifneq ($(IS_DEP),1)
6728-
$(ERLANG_MK_RECURSIVE_TEST_DEPS_LIST): LIST_DIRS += $(ALL_TEST_DEPS_DIRS)
6729-
$(ERLANG_MK_RECURSIVE_TEST_DEPS_LIST): LIST_DEPS += $(TEST_DEPS)
6730-
$(ERLANG_MK_RECURSIVE_TEST_DEPS_LIST): fetch-test-deps
6731-
else
6732-
$(ERLANG_MK_RECURSIVE_TEST_DEPS_LIST): fetch-deps
6733-
endif
6734-
6735-
ifneq ($(IS_DEP),1)
6736-
$(ERLANG_MK_RECURSIVE_SHELL_DEPS_LIST): LIST_DIRS += $(ALL_SHELL_DEPS_DIRS)
6737-
$(ERLANG_MK_RECURSIVE_SHELL_DEPS_LIST): LIST_DEPS += $(SHELL_DEPS)
6738-
$(ERLANG_MK_RECURSIVE_SHELL_DEPS_LIST): fetch-shell-deps
6739-
else
6740-
$(ERLANG_MK_RECURSIVE_SHELL_DEPS_LIST): fetch-deps
6741-
endif
6742-
6743-
$(ERLANG_MK_RECURSIVE_DEPS_LIST) \
6744-
$(ERLANG_MK_RECURSIVE_DOC_DEPS_LIST) \
6745-
$(ERLANG_MK_RECURSIVE_REL_DEPS_LIST) \
6746-
$(ERLANG_MK_RECURSIVE_TEST_DEPS_LIST) \
6747-
$(ERLANG_MK_RECURSIVE_SHELL_DEPS_LIST):
6748-
ifneq ($(IS_DEP),1)
6749-
$(verbose) rm -f $@.orig
6750-
endif
6751-
ifndef IS_APP
6752-
$(verbose) for app in $(filter-out $(CURDIR),$(ALL_APPS_DIRS)); do \
6753-
$(MAKE) -C "$$app" --no-print-directory $@ IS_APP=1 || :; \
6754-
done
6755-
endif
6756-
$(verbose) for dep in $(filter-out $(CURDIR),$(LIST_DIRS)); do \
6757-
if grep -qs -E "^[[:blank:]]*include[[:blank:]]+(erlang\.mk|.*/erlang\.mk)$$" \
6758-
$$dep/GNUmakefile $$dep/makefile $$dep/Makefile; then \
6759-
$(MAKE) -C "$$dep" --no-print-directory $@ IS_DEP=1; \
6760-
fi; \
6761-
done
6762-
$(verbose) for dep in $(LIST_DEPS); do \
6763-
echo $(DEPS_DIR)/$$dep; \
6764-
done >> $@.orig
6765-
ifndef IS_APP
6766-
ifneq ($(IS_DEP),1)
6767-
$(verbose) sort < $@.orig | uniq > $@
6768-
$(verbose) rm -f $@.orig
6769-
endif
6770-
endif
6771-
endif # ifneq ($(SKIP_DEPS),)
6772-
6773-
ifneq ($(SKIP_DEPS),)
6774-
list-deps list-doc-deps list-rel-deps list-test-deps list-shell-deps:
6775-
@:
6776-
else
67776731
list-deps: $(ERLANG_MK_RECURSIVE_DEPS_LIST)
67786732
list-doc-deps: $(ERLANG_MK_RECURSIVE_DOC_DEPS_LIST)
67796733
list-rel-deps: $(ERLANG_MK_RECURSIVE_REL_DEPS_LIST)
67806734
list-test-deps: $(ERLANG_MK_RECURSIVE_TEST_DEPS_LIST)
67816735
list-shell-deps: $(ERLANG_MK_RECURSIVE_SHELL_DEPS_LIST)
67826736

6783-
# Allow to use fetch-deps and $(DEP_TYPES) to fetch multiple types of
6784-
# dependencies with a single target.
6785-
ifneq ($(IS_DEP),1)
6786-
ifneq ($(filter doc,$(DEP_TYPES)),)
6787-
list-deps: $(ERLANG_MK_RECURSIVE_DOC_DEPS_LIST)
6788-
endif
6789-
ifneq ($(filter rel,$(DEP_TYPES)),)
6790-
list-deps: $(ERLANG_MK_RECURSIVE_REL_DEPS_LIST)
6791-
endif
6792-
ifneq ($(filter test,$(DEP_TYPES)),)
6793-
list-deps: $(ERLANG_MK_RECURSIVE_TEST_DEPS_LIST)
6794-
endif
6795-
ifneq ($(filter shell,$(DEP_TYPES)),)
6796-
list-deps: $(ERLANG_MK_RECURSIVE_SHELL_DEPS_LIST)
6797-
endif
6798-
endif
6799-
68006737
list-deps list-doc-deps list-rel-deps list-test-deps list-shell-deps:
6801-
$(verbose) cat $^ | sort | uniq
6802-
endif # ifneq ($(SKIP_DEPS),)
6738+
$(verbose) cat $^

0 commit comments

Comments
 (0)