'make clean' improvements
PATCH 1/1 'make clean' improvements
--- Makefile | 25 +++++++++++-------------- 1 files changed, 11 insertions(+), 14 deletions(-)
PATCH 1/1 make clean: improve when no .config present
The 'make clean' recipe is using variables that are not defined without .config file, causing only a partial cleanup when the .config file is accidentally deleted.
This patch moves those variables that do not depend on values from .config outside the BR2_HAVE_DOT_CONFIG check, so that 'make clean' is much more similar with and without .config.
The HOST_DIR (and the derived STAGING_DIR) are determined from BR2_HOST_DIR in .config, so the host directory can still not be cleaned correctly without making assumptions, if no .config is present.
---
Note: we could improve the HOST_DIR cleanup by removing 'output/host' unconditionally, but it's an assumption. Let me know your thoughts on this, it could be fixed in another patch.
Makefile | 23 ++++++++++------------- 1 files changed, 10 insertions(+), 13 deletions(-)
Makefile +10 -13
@@ -193,7 +193,17 @@ BASE_DIR := $(shell mkdir -p $(O) && cd $(if $(BASE_DIR),, $(error output directory "$(O)" does not exist)) BUILD_DIR:=$(BASE_DIR)/build +STAMP_DIR:=$(BASE_DIR)/stamps +BINARIES_DIR:=$(BASE_DIR)/images +TARGET_DIR:=$(BASE_DIR)/target +LEGAL_INFO_DIR=$(BASE_DIR)/legal-info +REDIST_SOURCES_DIR=$(LEGAL_INFO_DIR)/sources +LICENSE_FILES_DIR=$(LEGAL_INFO_DIR)/licenses +LEGAL_MANIFEST_CSV=$(LEGAL_INFO_DIR)/manifest.csv +LEGAL_LICENSES_TXT=$(LEGAL_INFO_DIR)/licenses.txt +LEGAL_WARNINGS=$(LEGAL_INFO_DIR)/.warnings +LEGAL_REPORT=$(LEGAL_INFO_DIR)/README ifeq ($(BR2_HAVE_DOT_CONFIG),y)
@@ -262,21 +272,8 @@ HOST_DIR:=$(call qstrip,$(BR2_HOST_DIR)) # locales to generate GENERATE_LOCALE=$(call qstrip,$(BR2_GENERATE_LOCALE)) -# stamp (dependency) files go here -STAMP_DIR:=$(BASE_DIR)/stamps - -BINARIES_DIR:=$(BASE_DIR)/images -TARGET_DIR:=$(BASE_DIR)/target TARGET_SKELETON=$(TOPDIR)/system/skeleton -LEGAL_INFO_DIR=$(BASE_DIR)/legal-info -REDIST_SOURCES_DIR=$(LEGAL_INFO_DIR)/sources -LICENSE_FILES_DIR=$(LEGAL_INFO_DIR)/licenses -LEGAL_MANIFEST_CSV=$(LEGAL_INFO_DIR)/manifest.csv -LEGAL_LICENSES_TXT=$(LEGAL_INFO_DIR)/licenses.txt -LEGAL_WARNINGS=$(LEGAL_INFO_DIR)/.warnings -LEGAL_REPORT=$(LEGAL_INFO_DIR)/README - # Location of a file giving a big fat warning that output/target # should not be used as the root filesystem. TARGET_DIR_WARNING_FILE=$(TARGET_DIR)/THIS_IS_NOT_YOUR_ROOT_FILESYSTEM
PATCH 1/1 make clean: improve when no .config present
Dear Thomas De Schampheleire,
Quoted 7 lines · Thomas De Schampheleire
The 'make clean' recipe is using variables that are not defined without .config file, causing only a partial cleanup when the .config file is accidentally deleted.
This patch moves those variables that do not depend on values from .config outside the
BR2_HAVE_DOT_CONFIGcheck, so that 'make clean' is much more similar with and without .config.
Yeah, this has bothered me for a while, so I agree with that.
Quoted 10 lines
The
HOST_DIR(and the derivedSTAGING_DIR) are determined fromBR2_HOST_DIRin .config, so the host directory can still not be cleaned correctly without making assumptions, if no .config is present.Signed-off-by Thomas De Schampheleire <[email protected]>---
Note: we could improve theHOST_DIRcleanup by removing 'output/host' unconditionally, but it's an assumption. Let me know your thoughts on this, it could be fixed in another patch.
Hum, yeah, indeed. This means that the contents of output/host are not removed, which is quite annoying. I don't immediately see a solution to this problem, though.
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 1/1 make clean: improve when no .config present
Quoted 19 lines · Thomas Petazzoni
Dear Thomas De Schampheleire,
Quoted 7 lines · Thomas De Schampheleire
The 'make clean' recipe is using variables that are not defined without .config file, causing only a partial cleanup when the .config file is accidentally deleted.
This patch moves those variables that do not depend on values from .config outside the
BR2_HAVE_DOT_CONFIGcheck, so that 'make clean' is much more similar with and without .config.Yeah, this has bothered me for a while, so I agree with that.
Quoted 6 lines
The
HOST_DIR(and the derivedSTAGING_DIR) are determined fromBR2_HOST_DIRin .config, so the host directory can still not be cleaned correctly without making assumptions, if no .config is present.Signed-off-by Thomas De Schampheleire <[email protected]>
Quoted 8 lines
Quoted 4 lines
---
Note: we could improve theHOST_DIRcleanup by removing 'output/host' unconditionally, but it's an assumption. Let me know your thoughts on this, it could be fixed in another patch.Hum, yeah, indeed. This means that the contents of output/host are not removed, which is quite annoying. I don't immediately see a solution to this problem, though.
I would be OK with defining HOST_DIR as $(BASE_DIR)/host before .config
is included. If .config exists, it will be overridden afterwards.
Regards,
Arnout
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
PATCH 1/1 make clean: improve when no .config present
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Arnout" == Arnout Vandecappelle <[email protected]> writes:
Hi,
Quoted 7 lines
Quoted 7 lines
Quoted 3 lines
Note: we could improve the
HOST_DIRcleanup by removing 'output/host' unconditionally, but it's an assumption. Let me know your thoughts on this, it could be fixed in another patch.Hum, yeah, indeed. This means that the contents of output/host are not removed, which is quite annoying. I don't immediately see a solution to this problem, though.
Arnout> I would be OK with defining HOST_DIR as $(BASE_DIR)/host before Arnout> .config is included. If .config exists, it will be overridden Arnout> afterwards.
Yes, that sounds like a plan. The only potential issue is if somebody builds out of tree _AND_ has changed the BR2_HOST_DIR _AND_ runs make clean in a directory where they have an important 'host' subdir.
That's probably all fairly unlikely to be a real issue.
Signature · 1 line
Bye, Peter Korsgaard
PATCH 1/1 make clean: remove redundant removal of STAGING_DIR
In reply to Thomas De SchampheleireSince STAGING_DIR is defined as (package/Makefile.in):
STAGING_SUBDIR = usr/$(GNU_TARGET_NAME)/sysrootSTAGING_DIR = $(HOST_DIR)/$(STAGING_SUBDIR)
removing HOST_DIR will automatically remove STAGING_DIR. This patch updates 'make clean' based on this knowledge.
--- Makefile | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
Makefile +1 -1
@@ -748,7 +748,7 @@ printvars: $(info $V=$($V) ($(value $V))))) clean: - rm -rf $(STAGING_DIR) $(TARGET_DIR) $(BINARIES_DIR) $(HOST_DIR) \ + rm -rf $(TARGET_DIR) $(BINARIES_DIR) $(HOST_DIR) \ $(STAMP_DIR) $(BUILD_DIR) $(BASE_DIR)/staging \ $(LEGAL_INFO_DIR)
PATCH 1/1 make clean: remove redundant removal of STAGING_DIR
Quoted 9 lines · Thomas De Schampheleire
Since
STAGING_DIRis defined as (package/Makefile.in):
STAGING_SUBDIR= usr/$(GNU_TARGET_NAME)/sysrootSTAGING_DIR= $(HOST_DIR)/$(STAGING_SUBDIR)removing
HOST_DIRwill automatically removeSTAGING_DIR. This patch updates 'make clean' based on this knowledge.Signed-off-by Thomas De Schampheleire <[email protected]>
Quoted 18 lines
--- Makefile | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)Makefile +1
-1@@ -748,7 +748,7 @@ printvars: $(info $V=$($V) ($(value $V))))) clean: - rm -rf $(STAGING_DIR) $(TARGET_DIR) $(BINARIES_DIR) $(HOST_DIR) \ + rm -rf $(TARGET_DIR) $(BINARIES_DIR) $(HOST_DIR) \ $(STAMP_DIR) $(BUILD_DIR) $(BASE_DIR)/staging \ $(LEGAL_INFO_DIR)
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
PATCH 1/1 make clean: remove redundant removal of STAGING_DIR
In reply to Thomas De SchampheleireQuoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Thomas" == Thomas De Schampheleire <[email protected]> writes:
Thomas> Since STAGING_DIR is defined as (package/Makefile.in):
Thomas> STAGING_SUBDIR = usr/$(GNU_TARGET_NAME)/sysroot
Thomas> STAGING_DIR = $(HOST_DIR)/$(STAGING_SUBDIR)
Thomas> removing HOST_DIR will automatically remove STAGING_DIR. This Thomas> patch updates 'make clean' based on this knowledge.
Thomas> Signed-off-by: Thomas De Schampheleire <[email protected]>
Committed, thanks.
Signature · 1 line
Bye, Peter Korsgaard