build: skip download for host build with AUTOREMOVE if already compiled
authorChristian Marangi <ansuelsmth@gmail.com>
Fri, 11 Nov 2022 15:40:45 +0000 (16:40 +0100)
committerChristian Marangi <ansuelsmth@gmail.com>
Mon, 23 Jan 2023 18:18:06 +0000 (19:18 +0100)
Packages in general use 4 check to trigger a recompile:
- timestamp for the build_dir
- timestamp for the staging stamp dir
- depends hash for the build_dir prepared file
- presence of package archieve in dl

If host tools are prebuilt and shipped in a container or manually
installed from an archieve, it would be ideal to skip including the
package archieve and just provide the build_dir prepared files and the
staging stamp file (and the actualy prebuilt tools).

Add some logic to skip dl download for host tools if AUTOREMOVE is
selected and checks for the presence of staging dir stamp file and build
dir stamp file.

If one of these requirements are not met, the package is redownloaded
and rebuilt.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
include/host-build.mk

index 22fcc31f15c7586a52f208509a8ae2949f33b71a..2cc1ec5842f6e55761a41e359dd3adf43bf7af7b 100644 (file)
@@ -206,5 +206,9 @@ endif
 
 define HostBuild
   $(HostBuild/Core)
 
 define HostBuild
   $(HostBuild/Core)
-  $(if $(if $(PKG_HOST_ONLY),,$(if $(and $(filter host-%,$(MAKECMDGOALS)),$(PKG_SKIP_DOWNLOAD)),,$(STAMP_PREPARED))),,$(if $(strip $(PKG_SOURCE_URL)),$(call Download,default)))
+  $(if $(if $(PKG_HOST_ONLY),,$(if $(and $(filter host-%,$(MAKECMDGOALS)),$(PKG_SKIP_DOWNLOAD)),,$(STAMP_PREPARED))),,
+       $(if $(and $(CONFIG_AUTOREMOVE), $(wildcard $(HOST_STAMP_INSTALLED), $(wildcard $(HOST_STAMP_BUILT)))),,
+               $(if $(strip $(PKG_SOURCE_URL)),$(call Download,default))
+       )
+  )
 endef
 endef