From 1ba1b2299beecf86939dd6189463b008af6dd95e Mon Sep 17 00:00:00 2001 From: hanzhijian Date: Mon, 6 Jul 2026 10:11:19 +0800 Subject: [PATCH] apps: fix distclean for partial builds and residual .kconfig files The current distclean implementation has two issues: 1. Application.mk does not remove .kconfig on distclean, so stale config fragments from earlier builds can pollute subsequent ones. 2. Several external-library Makefiles (lame, libshvc, libulut) run "make -C distclean" without checking whether the subdirectory exists. When the library was never downloaded (common in CI partial-build environments), distclean fails with "No such file or directory". Fix: - Application.mk: add $(call DELFILE, .kconfig) to the distclean target so that .kconfig is cleaned along with .built, .depend, etc. - audioutils/lame/Makefile: guard the distclean recipe with "if [ -d $(DST_PATH) ]; then ...; fi" and use $(MAKE) instead of bare make. - netutils/libshvc/Makefile, netutils/libulut/Makefile: same directory-existence guard for their distclean recipes. - crypto/wolfssl/Makefile: change "distclean:" to "distclean::" (double-colon) so it does not override the distclean:: rule inherited from Application.mk. Signed-off-by: hanzhijian --- Application.mk | 1 + audioutils/lame/Makefile | 2 +- crypto/wolfssl/Makefile | 2 +- netutils/libshvc/Makefile | 2 +- netutils/libulut/Makefile | 2 +- 5 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Application.mk b/Application.mk index e993006441d..1b6eab63eab 100644 --- a/Application.mk +++ b/Application.mk @@ -393,6 +393,7 @@ clean:: $(call CLEANAROBJS) $(call CLEAN) distclean:: clean + $(call DELFILE, .kconfig) $(call DELFILE, Make.dep) $(call DELFILE, .depend) diff --git a/audioutils/lame/Makefile b/audioutils/lame/Makefile index 99526d63b50..ccbe4cf2148 100644 --- a/audioutils/lame/Makefile +++ b/audioutils/lame/Makefile @@ -102,6 +102,6 @@ ifneq ($(PREFIX),) endif distclean:: - $(Q)cd $(DST_PATH) && make distclean + $(Q)if [ -d $(DST_PATH) ]; then cd $(DST_PATH) && $(MAKE) distclean; fi include $(APPDIR)/Application.mk diff --git a/crypto/wolfssl/Makefile b/crypto/wolfssl/Makefile index 77bc546a520..90b0f63904c 100644 --- a/crypto/wolfssl/Makefile +++ b/crypto/wolfssl/Makefile @@ -168,7 +168,7 @@ distclean:: $(call DELDIR, $(WOLFSSL_UNPACKNAME)) $(call DELDIR, $(WOLFSSL_EXAMPLESNAME)) else -distclean: +distclean:: $(call DELDIR, $(WOLFSSL_UNPACKNAME)) endif diff --git a/netutils/libshvc/Makefile b/netutils/libshvc/Makefile index 3db2a49cb46..af2669c889d 100644 --- a/netutils/libshvc/Makefile +++ b/netutils/libshvc/Makefile @@ -82,7 +82,7 @@ ifeq ($(wildcard $(SHVDIR)/.git),) $(eval $(call RUN_OMK_MAKE, context, default-config include-pass)) distclean:: - make -C $(SHVDIR) distclean + if [ -d $(SHVDIR) ]; then make -C $(SHVDIR) distclean; fi $(call DELDIR, $(SHVDIR)) $(call DELFILE, $(SHV_LIBS4C_TARGZ)) endif diff --git a/netutils/libulut/Makefile b/netutils/libulut/Makefile index d3bdb498fe0..6582158f269 100644 --- a/netutils/libulut/Makefile +++ b/netutils/libulut/Makefile @@ -82,7 +82,7 @@ ifeq ($(wildcard $(ULUTDIR)/.git),) $(eval $(call RUN_OMK_MAKE, context, default-config include-pass)) distclean:: - make -C $(ULUTDIR) distclean + if [ -d $(ULUTDIR) ]; then make -C $(ULUTDIR) distclean; fi $(call DELDIR, $(ULUTDIR)) $(call DELFILE, $(ULUT_TARGZ)) endif