toolchain: report missing ports at once

Previously, ports that were needed for a scenario and that were not
prepared or outdated, triggered one assertion each during the second
build stage. The commit slots a mechanism in ahead that gathers all
these ports during the first build stage and reports them in form of a
list before the second build stage is entered.  This list can be used
directly as argument for tool/ports/prepare_port to prepare respectively
update the ports. If, however, this mechanism is not available, for
example because a target is build without the first build stage, the old
assertion still prevents the target from running into troubles with a
missing port.

Fixes #1872
This commit is contained in:
Martin Stein
2016-02-04 12:20:03 +01:00
committed by Christian Helmuth
parent 992a5ec1ae
commit ff10687a6c
9 changed files with 72 additions and 10 deletions

View File

@@ -6,6 +6,12 @@
# userland (L4re) that comes with Fiasco.OC.
#
#
# We do this also in the first build stage to ensure that the kernel
# port, if missing, is added to the missing-ports list of this stage.
#
FOC_CONTRIB_DIR := $(call select_from_ports,foc)/src/kernel/foc
#
# Execute the rules in this file only at the second build stage when we know
# about the complete build settings, e.g., the 'CROSS_DEV_PREFIX'.
@@ -26,8 +32,6 @@ $(BUILD_BASE_DIR)/include/%:
$(VERBOSE)mkdir -p $(dir $@)
$(VERBOSE)ln -sf $(L4_BUILD_DIR)/include/$* $@
FOC_CONTRIB_DIR := $(call select_from_ports,foc)/src/kernel/foc
#
# Create L4 build directory
#