summaryrefslogtreecommitdiff
path: root/manifest.mn
diff options
context:
space:
mode:
authorJan-Marek Glogowski <glogow@fbihome.de>2020-05-05 12:29:36 +0000
committerJan-Marek Glogowski <glogow@fbihome.de>2020-05-05 12:29:36 +0000
commit80f07d6746e572c508082b4da92c08b56953092e (patch)
tree0e73b5a3f48e307d5c7837f7d409d99e2470ae1e /manifest.mn
parent77559593f704b95bcbd14776f6dbf63b293b3b7c (diff)
downloadnss-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.mn21
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