Build: Fix parallel build
authorEvan Lloyd <evan.lloyd@arm.com>
Fri, 7 Apr 2017 15:58:57 +0000 (16:58 +0100)
committerEvan Lloyd <evan.lloyd@arm.com>
Tue, 2 May 2017 17:27:05 +0000 (18:27 +0100)
commit6ba7d274e25276143c3855dfa1a087f292141a63
treecf907c249c53c3b64dada4b96ff54dd1c14b99f9
parent7fa3214e18ad640208eaf6c8d6111ec53f3894aa
Build: Fix parallel build

2 problems were found, but are in one change to avoid submitting a patch
that might fail to build. The problems were:
1.  The macro MAKE_PREREQ_DIR has a minor bug, in that it is capable of
    generating recursive dependencies.
2.  The inclusion of BUILD_DIR in TEMP_OBJ_DIRS left no explicit
    dependency, BUILD_DIR might not exist when subdirectories are
    created by a thread on another CPU.

This fix corrects these with the following changes:
1.  MAKE_PREREQ_DIR does nothing for a direct self dependency.
2.  BUILD_DIR is built using MAKE_PREREQ_DIR.
3.  BUILD_DIR is an explicit prerequisite of all OBJ_DIRS.

Change-Id: I938cddea4a006df225c02a47b9cf759212f27fb7

Signed-off-by: Evan Lloyd <evan.lloyd@arm.com>
make_helpers/build_macros.mk
make_helpers/unix.mk
make_helpers/windows.mk