summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/subdir.mk3
-rw-r--r--include/verbose.mk10
-rw-r--r--package/Makefile3
3 files changed, 12 insertions, 4 deletions
diff --git a/include/subdir.mk b/include/subdir.mk
index d62df7efa..3097ea418 100644
--- a/include/subdir.mk
+++ b/include/subdir.mk
@@ -28,7 +28,8 @@ define subdir
$(call warn,$(1),d,BD $(1)/$(bd))
$(foreach target,$(SUBTARGETS),
$(call warn_eval,$(1)/$(bd),t,T,$(1)/$(bd)/$(target): $(if $(QUILT),,$($(1)/$(bd)/$(target)) $(call $(1)//$(target),$(1)/$(bd))))
- +$$(MAKE) -j1 -C $(1)/$(bd) $(target)
+ +$$(MAKE) -j1 -C $(1)/$(bd) $(target) $(if $(findstring $(bd),$($(1)/builddirs-ignore-$(target))), || $(call MESSAGE, ERROR: $(1)/$(bd) failed to build.))
+
$$(if $(call debug,$(1)/$(bd),v),,.SILENT: $(1)/$(bd)/$(target))
# legacy targets
diff --git a/include/verbose.mk b/include/verbose.mk
index 36e59904e..fed83d6fb 100644
--- a/include/verbose.mk
+++ b/include/verbose.mk
@@ -25,11 +25,11 @@ ifeq ($(IS_TTY),1)
_N:=\\033[m
endif
-define MESSAGE
+ifneq ($(KBUILD_VERBOSE),99)
+ define MESSAGE
printf "$(_Y)%s$(_N)\n" "$(1)" >&3
-endef
+ endef
-ifneq ($(KBUILD_VERBOSE),99)
ifeq ($(QUIET),1)
ifneq ($(CURDIR),$(TOPDIR))
_DIR:=$(patsubst $(TOPDIR)/%,%,${CURDIR})
@@ -48,4 +48,8 @@ ifneq ($(KBUILD_VERBOSE),99)
endif
.SILENT: $(MAKECMDGOALS)
+else
+ define MESSAGE
+ printf "%s\n" "$(1)"
+ endef
endif
diff --git a/package/Makefile b/package/Makefile
index e618a90b6..a1f20b0b1 100644
--- a/package/Makefile
+++ b/package/Makefile
@@ -17,6 +17,9 @@ else
$(curdir)/builddirs-prereq:=. $(sort $(prereq-y) $(prereq-m))
$(curdir)/builddirs-install:=. $(sort $(package-y))
endif
+ifneq ($(IGNORE_ERRORS),)
+ $(curdir)/builddirs-ignore-compile:= $(if $(filter m y, $(IGNORE_ERRORS)),$(foreach m,$(IGNORE_ERRORS),$(package-$(m))),$(package-m))
+endif
$(curdir)/install:=$(curdir)/install-cleanup