From 550b42345a0235f3bc888778c6cc3a34f6a2919c Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Tue, 4 Dec 2018 21:31:54 +1100 Subject: Don't build project folders in parallel. --- .drone.yml | 4 ++-- Bootloaders/makefile | 17 +++-------------- Demos/Device/ClassDriver/makefile | 17 +++-------------- Demos/Device/LowLevel/makefile | 17 +++-------------- Demos/DualRole/ClassDriver/makefile | 17 +++-------------- Demos/Host/ClassDriver/makefile | 17 +++-------------- Demos/Host/LowLevel/makefile | 17 +++-------------- Projects/XPLAINBridge/makefile | 2 +- Projects/makefile | 17 +++-------------- 9 files changed, 24 insertions(+), 101 deletions(-) diff --git a/.drone.yml b/.drone.yml index 8d6793976..ba140e301 100644 --- a/.drone.yml +++ b/.drone.yml @@ -2,10 +2,10 @@ kind: pipeline name: default steps: -- name: Build +- name: Projects image: abcminiuser/docker-avr8-toolchain commands: - - make --quiet all + - make -j --quiet all - name: Bootloaders image: abcminiuser/docker-avr8-toolchain diff --git a/Bootloaders/makefile b/Bootloaders/makefile index 33e1396fd..1942df61c 100644 --- a/Bootloaders/makefile +++ b/Bootloaders/makefile @@ -22,20 +22,9 @@ ifeq ($(MAKELEVEL), 10) $(error EMERGENCY ABORT: INFINITE RECURSION DETECTED) endif -# Need to special-case building without a per-project object directory -ifeq ($(OBJDIR),) - # If no target specified, force "clean all" and disallow parallel build - ifeq ($(MAKECMDGOALS),) - MAKECMDGOALS := clean all - .NOTPARALLEL: - endif - - # If one of the targets is to build, force "clean" beforehand and disallow parallel build - ifneq ($(findstring all, $(MAKECMDGOALS)),) - MAKECMDGOALS := clean $(MAKECMDGOALS) - .NOTPARALLEL: - endif -endif +# Build each directory sequentially, even if we are building using multiple +# cores within each project +.NOTPARALLEL: %: $(PROJECT_DIRECTORIES) @echo . > /dev/null diff --git a/Demos/Device/ClassDriver/makefile b/Demos/Device/ClassDriver/makefile index 77ed7069e..e582bd790 100644 --- a/Demos/Device/ClassDriver/makefile +++ b/Demos/Device/ClassDriver/makefile @@ -22,20 +22,9 @@ ifeq ($(MAKELEVEL), 10) $(error EMERGENCY ABORT: INFINITE RECURSION DETECTED) endif -# Need to special-case building without a per-project object directory -ifeq ($(OBJDIR),) - # If no target specified, force "clean all" and disallow parallel build - ifeq ($(MAKECMDGOALS),) - MAKECMDGOALS := clean all - .NOTPARALLEL: - endif - - # If one of the targets is to build, force "clean" beforehand and disallow parallel build - ifneq ($(findstring all, $(MAKECMDGOALS)),) - MAKECMDGOALS := clean $(MAKECMDGOALS) - .NOTPARALLEL: - endif -endif +# Build each directory sequentially, even if we are building using multiple +# cores within each project +.NOTPARALLEL: %: $(PROJECT_DIRECTORIES) @echo . > /dev/null diff --git a/Demos/Device/LowLevel/makefile b/Demos/Device/LowLevel/makefile index 77ed7069e..e582bd790 100644 --- a/Demos/Device/LowLevel/makefile +++ b/Demos/Device/LowLevel/makefile @@ -22,20 +22,9 @@ ifeq ($(MAKELEVEL), 10) $(error EMERGENCY ABORT: INFINITE RECURSION DETECTED) endif -# Need to special-case building without a per-project object directory -ifeq ($(OBJDIR),) - # If no target specified, force "clean all" and disallow parallel build - ifeq ($(MAKECMDGOALS),) - MAKECMDGOALS := clean all - .NOTPARALLEL: - endif - - # If one of the targets is to build, force "clean" beforehand and disallow parallel build - ifneq ($(findstring all, $(MAKECMDGOALS)),) - MAKECMDGOALS := clean $(MAKECMDGOALS) - .NOTPARALLEL: - endif -endif +# Build each directory sequentially, even if we are building using multiple +# cores within each project +.NOTPARALLEL: %: $(PROJECT_DIRECTORIES) @echo . > /dev/null diff --git a/Demos/DualRole/ClassDriver/makefile b/Demos/DualRole/ClassDriver/makefile index b33ecf28b..b8e5e2a34 100644 --- a/Demos/DualRole/ClassDriver/makefile +++ b/Demos/DualRole/ClassDriver/makefile @@ -22,20 +22,9 @@ ifeq ($(MAKELEVEL), 10) $(error EMERGENCY ABORT: INFINITE RECURSION DETECTED) endif -# Need to special-case building without a per-project object directory -ifeq ($(OBJDIR),) - # If no target specified, force "clean all" and disallow parallel build - ifeq ($(MAKECMDGOALS),) - MAKECMDGOALS := clean all - .NOTPARALLEL: - endif - - # If one of the targets is to build, force "clean" beforehand and disallow parallel build - ifneq ($(findstring all, $(MAKECMDGOALS)),) - MAKECMDGOALS := clean $(MAKECMDGOALS) - .NOTPARALLEL: - endif -endif +# Build each directory sequentially, even if we are building using multiple +# cores within each project +.NOTPARALLEL: %: $(PROJECT_DIRECTORIES) @echo . > /dev/null diff --git a/Demos/Host/ClassDriver/makefile b/Demos/Host/ClassDriver/makefile index bbe50239f..566baed42 100644 --- a/Demos/Host/ClassDriver/makefile +++ b/Demos/Host/ClassDriver/makefile @@ -22,20 +22,9 @@ ifeq ($(MAKELEVEL), 10) $(error EMERGENCY ABORT: INFINITE RECURSION DETECTED) endif -# Need to special-case building without a per-project object directory -ifeq ($(OBJDIR),) - # If no target specified, force "clean all" and disallow parallel build - ifeq ($(MAKECMDGOALS),) - MAKECMDGOALS := clean all - .NOTPARALLEL: - endif - - # If one of the targets is to build, force "clean" beforehand and disallow parallel build - ifneq ($(findstring all, $(MAKECMDGOALS)),) - MAKECMDGOALS := clean $(MAKECMDGOALS) - .NOTPARALLEL: - endif -endif +# Build each directory sequentially, even if we are building using multiple +# cores within each project +.NOTPARALLEL: %: $(PROJECT_DIRECTORIES) @echo . > /dev/null diff --git a/Demos/Host/LowLevel/makefile b/Demos/Host/LowLevel/makefile index bbe50239f..566baed42 100644 --- a/Demos/Host/LowLevel/makefile +++ b/Demos/Host/LowLevel/makefile @@ -22,20 +22,9 @@ ifeq ($(MAKELEVEL), 10) $(error EMERGENCY ABORT: INFINITE RECURSION DETECTED) endif -# Need to special-case building without a per-project object directory -ifeq ($(OBJDIR),) - # If no target specified, force "clean all" and disallow parallel build - ifeq ($(MAKECMDGOALS),) - MAKECMDGOALS := clean all - .NOTPARALLEL: - endif - - # If one of the targets is to build, force "clean" beforehand and disallow parallel build - ifneq ($(findstring all, $(MAKECMDGOALS)),) - MAKECMDGOALS := clean $(MAKECMDGOALS) - .NOTPARALLEL: - endif -endif +# Build each directory sequentially, even if we are building using multiple +# cores within each project +.NOTPARALLEL: %: $(PROJECT_DIRECTORIES) @echo . > /dev/null diff --git a/Projects/XPLAINBridge/makefile b/Projects/XPLAINBridge/makefile index 92344e585..0bcf77729 100644 --- a/Projects/XPLAINBridge/makefile +++ b/Projects/XPLAINBridge/makefile @@ -36,7 +36,7 @@ all: # identical OBJDIR directory, we need to enforce the use of this project's object file # directory as the one where the build object files are to be stored, by giving it a # path relative to the current folder. -OBJDIR := ./obj +OBJDIR := ./xpb-obj # Include LUFA-specific DMBS extension modules DMBS_LUFA_PATH ?= $(LUFA_PATH)/Build/LUFA diff --git a/Projects/makefile b/Projects/makefile index 992dff860..3f5cd5719 100644 --- a/Projects/makefile +++ b/Projects/makefile @@ -22,20 +22,9 @@ ifeq ($(MAKELEVEL), 10) $(error EMERGENCY ABORT: INFINITE RECURSION DETECTED) endif -# Need to special-case building without a per-project object directory -ifeq ($(OBJDIR),) - # If no target specified, force "clean all" and disallow parallel build - ifeq ($(MAKECMDGOALS),) - MAKECMDGOALS := clean all - .NOTPARALLEL: - endif - - # If one of the targets is to build, force "clean" beforehand and disallow parallel build - ifneq ($(findstring all, $(MAKECMDGOALS)),) - MAKECMDGOALS := clean $(MAKECMDGOALS) - .NOTPARALLEL: - endif -endif +# Build each directory sequentially, even if we are building using multiple +# cores within each project +.NOTPARALLEL: %: $(PROJECT_DIRECTORIES) @echo . > /dev/null -- cgit v1.2.3