From 53ebe51f1c8f346869894e227a8f182511b51fb0 Mon Sep 17 00:00:00 2001 From: Stefan Hajnoczi Date: Tue, 16 Apr 2019 15:44:45 +0100 Subject: [PATCH] build: fix race between 'clean' and generated files When a parallel build is invoked using "make -j4" there is a race between EXTRA_DEPS ('clean') and generating files: CPU1 CPU2 ---- ---- create cli/generated-config.go rm cli/generated-config.go go build -> error: generated-config.go doesn't exist! Previous commits ensured that targets relying on version information like VERSION and COMMIT declare appropriate dependencies. Therefore make is now able to detect changes and rebuild targets as needed. It is no longer necessary to abuse the clean target to force a rebuild. Fixes: #1540 Signed-off-by: Stefan Hajnoczi --- Makefile | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/Makefile b/Makefile index e68912f6f4..32b4f1d3cc 100644 --- a/Makefile +++ b/Makefile @@ -69,8 +69,6 @@ BINLIBEXECLIST += $(NETMON_TARGET) DESTDIR := / -installing = $(findstring install,$(MAKECMDGOALS)) - ifeq ($(PREFIX),) PREFIX := /usr EXEC_PREFIX := $(PREFIX)/local @@ -85,12 +83,6 @@ FCBINDIR := $(PREFIXDEPS)/bin SYSCONFDIR := /etc LOCALSTATEDIR := /var -ifeq (,$(installing)) - # Force a rebuild to ensure version details are correct - # (but only for a non-install build phase). - EXTRA_DEPS = clean -endif - LIBEXECDIR := $(PREFIXDEPS)/libexec SHAREDIR := $(PREFIX)/share DEFAULTSDIR := $(SHAREDIR)/defaults @@ -400,7 +392,7 @@ endef GENERATED_FILES += $(CLI_DIR)/config-generated.go -$(TARGET_OUTPUT): $(EXTRA_DEPS) $(SOURCES) $(GENERATED_FILES) $(MAKEFILE_LIST) | show-summary +$(TARGET_OUTPUT): $(SOURCES) $(GENERATED_FILES) $(MAKEFILE_LIST) | show-summary $(QUIET_BUILD)(cd $(CLI_DIR) && go build $(BUILDFLAGS) -o $@ .) $(SHIMV2_OUTPUT):