aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2018-05-22 09:18:33 +0200
committerJo-Philipp Wich <jo@mein.io>2018-05-22 09:28:16 +0200
commitff8bde52961d60afb30a113c9ca755e6b1c7cbe6 (patch)
tree3af1d796caf567cb9d3c98881d77764d2e4b64d8
parent8948a78862abd975422d742152408249de6eadcf (diff)
downloadupstream-ff8bde52961d60afb30a113c9ca755e6b1c7cbe6.tar.gz
upstream-ff8bde52961d60afb30a113c9ca755e6b1c7cbe6.tar.bz2
upstream-ff8bde52961d60afb30a113c9ca755e6b1c7cbe6.zip
build: prevent spurious package rebuilds under CONFIG_AUTOREMOVE
When CONFIG_AUTOREMOVE is enabled, the build system touches an additional ".autoremove" stamp file in the cleaned build directory. Since the autoremove stamp file is touched after the compile process completed, it ends up being the most recent file of the package build directory, causing the timestamp.pl check of depends.mk to erroneously declare the ".built" and ".prepared" stamp files as stale, triggering a forced clean-build submake process. Fix the problem by using the ".built" stamp file as modification time reference when touching the ".autoremove" stamp file. Signed-off-by: Jo-Philipp Wich <jo@mein.io> (cherry picked from commit b287c82bed6673648a69be6c1cf84abe8885a3c4)
-rw-r--r--include/package.mk2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/package.mk b/include/package.mk
index 9912c86d6b..2473eecb92 100644
--- a/include/package.mk
+++ b/include/package.mk
@@ -228,7 +228,7 @@ define Build/CoreTargets
ifneq ($(CONFIG_AUTOREMOVE),)
compile:
- -touch $(PKG_BUILD_DIR)/.autoremove 2>/dev/null >/dev/null
+ -touch -r $(PKG_BUILD_DIR)/.built $(PKG_BUILD_DIR)/.autoremove 2>/dev/null >/dev/null
$(FIND) $(PKG_BUILD_DIR) -mindepth 1 -maxdepth 1 -not '(' -type f -and -name '.*' -and -size 0 ')' -and -not -name '.pkgdir' | \
$(XARGS) rm -rf
endif