author Jan-Marek Glogowski <>
Tue, 05 May 2020 12:29:36 +0000
changeset 15596 f3a0ef69c0569c8512845075a48e796bc08bf636
parent 13433 d20ee6560caf7c8ed6640583791700451fe06921
child 15608 744881490c78fd9a93a1ce742a5b6dcbe104763e
permissions -rw-r--r--
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:

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at
DEPTH      = .

IMPORTS =	nspr20/v4.8 \


DIRS = coreconf lib cmd cpputil gtests

lib: coreconf
cmd: lib
cpputil: lib
gtests: cmd cpputil


	# 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