From 9228d1c066cf3a2cd01288bed3646e53638705b6 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Wed, 18 Jan 2017 14:27:04 +0100 Subject: [PATCH] build: introduce extra targets that contain only proper dependencies This can be used to check if targets like prepare or compile are up to date Signed-off-by: Felix Fietkau --- include/depends.mk | 6 ++++++ include/host-build.mk | 8 ++++---- include/package-ipkg.mk | 4 ++-- include/package.mk | 11 ++++++----- rules.mk | 9 +++++---- 5 files changed, 23 insertions(+), 15 deletions(-) diff --git a/include/depends.mk b/include/depends.mk index 293409d8b7..c26c8e547e 100644 --- a/include/depends.mk +++ b/include/depends.mk @@ -20,6 +20,7 @@ define rdep .SILENT: $(2)_check $(2): $(2)_check + check-depends: $(2)_check ifneq ($(wildcard $(2)),) $(2)_check:: @@ -46,3 +47,8 @@ endif endef +ifeq ($(filter .%,$(MAKECMDGOALS)),$(if $(MAKECMDGOALS),$(MAKECMDGOALS),x)) + define rdep + $(2): $(2)_check + endef +endif diff --git a/include/host-build.mk b/include/host-build.mk index 0bd386781d..c38f8cfeb7 100644 --- a/include/host-build.mk +++ b/include/host-build.mk @@ -175,10 +175,10 @@ ifndef DUMP ) endif - host-prepare: $(HOST_STAMP_PREPARED) - host-configure: $(HOST_STAMP_CONFIGURED) - host-compile: $(HOST_STAMP_BUILT) $(if $(STAMP_BUILT),$(HOST_STAMP_INSTALLED)) - host-install: $(HOST_STAMP_INSTALLED) + .host-prepare: $(HOST_STAMP_PREPARED) + .host-configure: $(HOST_STAMP_CONFIGURED) + .host-compile: $(HOST_STAMP_BUILT) $(if $(STAMP_BUILT),$(HOST_STAMP_INSTALLED)) + .host-install: $(HOST_STAMP_INSTALLED) host-clean: FORCE $(call Host/Clean) $(call Host/Uninstall) diff --git a/include/package-ipkg.mk b/include/package-ipkg.mk index e168eb390f..8727b4ec30 100644 --- a/include/package-ipkg.mk +++ b/include/package-ipkg.mk @@ -106,9 +106,9 @@ ifeq ($(DUMP),) ifdef do_install ifneq ($(CONFIG_PACKAGE_$(1))$(DEVELOPER),) IPKGS += $(1) - compile: $$(IPKG_$(1)) $(PKG_INFO_DIR)/$(1).provides $(STAGING_DIR_ROOT)/stamp/.$(1)_installed + .compile: $$(IPKG_$(1)) $(PKG_INFO_DIR)/$(1).provides $(STAGING_DIR_ROOT)/stamp/.$(1)_installed ifneq ($(ABI_VERSION),) - compile: $(PKG_INFO_DIR)/$(1).version + .compile: $(PKG_INFO_DIR)/$(1).version endif else $(if $(CONFIG_PACKAGE_$(1)),$$(info WARNING: skipping $(1) -- package not selected)) diff --git a/include/package.mk b/include/package.mk index 62e538c594..37cea1448d 100644 --- a/include/package.mk +++ b/include/package.mk @@ -204,13 +204,13 @@ define Build/CoreTargets touch $$@ ifdef Build/InstallDev - compile: $(STAMP_INSTALLED) + .compile: $(STAMP_INSTALLED) endif - prepare: $(STAMP_PREPARED) - configure: $(STAMP_CONFIGURED) - dist: $(STAMP_CONFIGURED) - distcheck: $(STAMP_CONFIGURED) + .prepare: $(STAMP_PREPARED) + .configure: $(STAMP_CONFIGURED) + .dist: $(STAMP_CONFIGURED) + .distcheck: $(STAMP_CONFIGURED) endef define Build/DefaultTargets @@ -289,6 +289,7 @@ $(PACKAGE_DIR): mkdir -p $@ compile: prepare-package-install +.install: .compile install: compile clean: FORCE diff --git a/rules.mk b/rules.mk index e54acc9858..b42e19e218 100644 --- a/rules.mk +++ b/rules.mk @@ -101,12 +101,13 @@ ifdef CONFIG_MIPS64_ABI endif endif -DEFAULT_SUBDIR_TARGETS:=clean download prepare compile install update refresh prereq dist distcheck configure check +DEFAULT_SUBDIR_TARGETS:=clean download prepare compile install update refresh prereq dist distcheck configure check check-depends define DefaultTargets -$(foreach t,$(DEFAULT_SUBDIR_TARGETS), - $(t): - .PHONY: $(t) +$(foreach t,$(DEFAULT_SUBDIR_TARGETS) $(1), + .$(t): + $(t): .$(t) + .PHONY: $(t) .$(t) ) endef