diff options
author | Jan-Marek Glogowski <glogow@fbihome.de> | 2020-05-05 12:29:36 +0000 |
---|---|---|
committer | Jan-Marek Glogowski <glogow@fbihome.de> | 2020-05-05 12:29:36 +0000 |
commit | 80f07d6746e572c508082b4da92c08b56953092e (patch) | |
tree | 0e73b5a3f48e307d5c7837f7d409d99e2470ae1e /manifest.mn | |
parent | 77559593f704b95bcbd14776f6dbf63b293b3b7c (diff) | |
download | nss-hg-80f07d6746e572c508082b4da92c08b56953092e.tar.gz |
Bug 290526 Drop double-colon usage and add directory depends r=rrelyea
Double-colon rule behaviour isn't really compatible with parallel
build. This gets rid of all of them, so we can codify the
directory dependencies.
This leaves just three problems, which aren't really fixable with
the current build system without completely replacing it:
* everything depends on nsinstall
* everything depends on installed headers
* ckfw child directories depend on the build parent libs
This is handled by the prepare_build target.
Overall this allows most if the build to run in parallel.
P.S. the release_md:: has to stay :-(
P.P.S. no clue, why freebl must use libs: instead of using the
TARGETS and .PHONY variables
Differential Revision: https://phabricator.services.mozilla.com/D69023
Diffstat (limited to 'manifest.mn')
-rw-r--r-- | manifest.mn | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/manifest.mn b/manifest.mn index 500a5ad64..4cd1ea5ee 100644 --- a/manifest.mn +++ b/manifest.mn @@ -11,3 +11,24 @@ IMPORTS = nspr20/v4.8 \ RELEASE = nss DIRS = coreconf lib cmd cpputil gtests + +lib: coreconf +cmd: lib +cpputil: lib +gtests: cmd cpputil + +HAVE_ALL_TARGET := 1 + +prepare_build: + # no real way to encode these in any sensible way + $(MAKE) -C coreconf/nsinstall program + $(MAKE) export + # pre-build child dir -> parent dir dependencies + # ckfw/builtins -> ckfw + IGNORE_DIRS=1 $(MAKE) -C lib/ckfw libs + # ckfw/builtins/testlib -> ckfw/builtins + base + $(MAKE) -C lib/base libs + IGNORE_DIRS=1 $(MAKE) -C lib/ckfw/builtins libs + +all: prepare_build + $(MAKE) libs |