From a57c4eabae4e137346dd2d53e699e2b5625202ba Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Mon, 4 Jun 2012 15:38:05 +0000 Subject: Add emergency aborts to the recursive makefiles to prevent system failures due to infinite recursion if something happens while building the project lists. --- Bootloaders/makefile | 7 +++++++ Demos/Device/ClassDriver/makefile | 7 +++++++ Demos/Device/LowLevel/makefile | 7 +++++++ Demos/DualRole/ClassDriver/makefile | 8 +++++++- Demos/Host/ClassDriver/makefile | 7 +++++++ Demos/Host/LowLevel/makefile | 7 +++++++ Projects/makefile | 7 +++++++ 7 files changed, 49 insertions(+), 1 deletion(-) diff --git a/Bootloaders/makefile b/Bootloaders/makefile index 94147ead0..56db65808 100644 --- a/Bootloaders/makefile +++ b/Bootloaders/makefile @@ -15,6 +15,13 @@ PROJECT_DIRECTORIES = $(shell ls -d *) +# This makefile is potentially infinitely recursive if something really bad +# happens when determining the set of project directories - hard-abort if +# more than 10 levels deep to avoid angry emails. +ifeq ($(MAKELEVEL), 10) + $(error EMERGENCY ABORT: INFINITE RECURSION DETECTED) +endif + all: @$(foreach PROJECT, $(PROJECT_DIRECTORIES), $(MAKE) -s -C $(PROJECT) clean all;) diff --git a/Demos/Device/ClassDriver/makefile b/Demos/Device/ClassDriver/makefile index cfa776a72..99e7c24a1 100644 --- a/Demos/Device/ClassDriver/makefile +++ b/Demos/Device/ClassDriver/makefile @@ -15,6 +15,13 @@ PROJECT_DIRECTORIES = $(shell ls -d */) +# This makefile is potentially infinitely recursive if something really bad +# happens when determining the set of project directories - hard-abort if +# more than 10 levels deep to avoid angry emails. +ifeq ($(MAKELEVEL), 10) + $(error EMERGENCY ABORT: INFINITE RECURSION DETECTED) +endif + all: @$(foreach PROJECT, $(PROJECT_DIRECTORIES), $(MAKE) -s -C $(PROJECT) clean all;) diff --git a/Demos/Device/LowLevel/makefile b/Demos/Device/LowLevel/makefile index 4673bfe57..639b25303 100644 --- a/Demos/Device/LowLevel/makefile +++ b/Demos/Device/LowLevel/makefile @@ -15,6 +15,13 @@ PROJECT_DIRECTORIES = $(shell ls -d *) +# This makefile is potentially infinitely recursive if something really bad +# happens when determining the set of project directories - hard-abort if +# more than 10 levels deep to avoid angry emails. +ifeq ($(MAKELEVEL), 10) + $(error EMERGENCY ABORT: INFINITE RECURSION DETECTED) +endif + all: @$(foreach PROJECT, $(PROJECT_DIRECTORIES), $(MAKE) -s -C $(PROJECT) clean all;) diff --git a/Demos/DualRole/ClassDriver/makefile b/Demos/DualRole/ClassDriver/makefile index 06552493e..ecc49ec89 100644 --- a/Demos/DualRole/ClassDriver/makefile +++ b/Demos/DualRole/ClassDriver/makefile @@ -15,10 +15,16 @@ PROJECT_DIRECTORIES = $(shell ls -d *) +# This makefile is potentially infinitely recursive if something really bad +# happens when determining the set of project directories - hard-abort if +# more than 10 levels deep to avoid angry emails. +ifeq ($(MAKELEVEL), 10) + $(error EMERGENCY ABORT: INFINITE RECURSION DETECTED) +endif + all: @$(foreach PROJECT, $(PROJECT_DIRECTORIES), $(MAKE) -s -C $(PROJECT) clean all;) %: @$(foreach PROJECT, $(PROJECT_DIRECTORIES), $(MAKE) -s -C $(PROJECT) $@;) - diff --git a/Demos/Host/ClassDriver/makefile b/Demos/Host/ClassDriver/makefile index 5c532f1a0..25cfedf1a 100644 --- a/Demos/Host/ClassDriver/makefile +++ b/Demos/Host/ClassDriver/makefile @@ -15,6 +15,13 @@ PROJECT_DIRECTORIES = $(shell ls -d *) +# This makefile is potentially infinitely recursive if something really bad +# happens when determining the set of project directories - hard-abort if +# more than 10 levels deep to avoid angry emails. +ifeq ($(MAKELEVEL), 10) + $(error EMERGENCY ABORT: INFINITE RECURSION DETECTED) +endif + all: @$(foreach PROJECT, $(PROJECT_DIRECTORIES), $(MAKE) -s -C $(PROJECT) clean all;) diff --git a/Demos/Host/LowLevel/makefile b/Demos/Host/LowLevel/makefile index 5c532f1a0..25cfedf1a 100644 --- a/Demos/Host/LowLevel/makefile +++ b/Demos/Host/LowLevel/makefile @@ -15,6 +15,13 @@ PROJECT_DIRECTORIES = $(shell ls -d *) +# This makefile is potentially infinitely recursive if something really bad +# happens when determining the set of project directories - hard-abort if +# more than 10 levels deep to avoid angry emails. +ifeq ($(MAKELEVEL), 10) + $(error EMERGENCY ABORT: INFINITE RECURSION DETECTED) +endif + all: @$(foreach PROJECT, $(PROJECT_DIRECTORIES), $(MAKE) -s -C $(PROJECT) clean all;) diff --git a/Projects/makefile b/Projects/makefile index 50ce7ad6d..94deb0ed3 100644 --- a/Projects/makefile +++ b/Projects/makefile @@ -15,6 +15,13 @@ PROJECT_DIRECTORIES = $(shell ls -d *) +# This makefile is potentially infinitely recursive if something really bad +# happens when determining the set of project directories - hard-abort if +# more than 10 levels deep to avoid angry emails. +ifeq ($(MAKELEVEL), 10) + $(error EMERGENCY ABORT: INFINITE RECURSION DETECTED) +endif + all: @$(foreach PROJECT, $(PROJECT_DIRECTORIES), $(MAKE) -s -C $(PROJECT) clean all;) -- cgit v1.2.3