|
@@ -227,21 +227,12 @@ ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)
|
|
|
-include $(BR2_CONFIG)
|
|
|
endif
|
|
|
|
|
|
-# Parallel execution of this Makefile is disabled because it changes
|
|
|
-# the packages building order, that can be a problem for two reasons:
|
|
|
-# - If a package has an unspecified optional dependency and that
|
|
|
-# dependency is present when the package is built, it is used,
|
|
|
-# otherwise it isn't (but compilation happily proceeds) so the end
|
|
|
-# result will differ if the order is swapped due to parallel
|
|
|
-# building.
|
|
|
-# - Also changing the building order can be a problem if two packages
|
|
|
-# manipulate the same file in the target directory.
|
|
|
-#
|
|
|
-# Taking into account the above considerations, if you still want to execute
|
|
|
-# this top-level Makefile in parallel comment the ".NOTPARALLEL" line and
|
|
|
-# use the -j<jobs> option when building, e.g:
|
|
|
-# make -j$((`getconf _NPROCESSORS_ONLN`+1))
|
|
|
+ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),)
|
|
|
+# Disable top-level parallel build if per-package directories is not
|
|
|
+# used. Indeed, per-package directories is necessary to guarantee
|
|
|
+# determinism and reproducibility with top-level parallel build.
|
|
|
.NOTPARALLEL:
|
|
|
+endif
|
|
|
|
|
|
# timezone and locale may affect build output
|
|
|
ifeq ($(BR2_REPRODUCIBLE),y)
|