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 <subdir> 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 <hanzhijian@zepp.com>
This commit is contained in:
hanzhijian 2026-07-06 10:11:19 +08:00 committed by Xiang Xiao
parent cb7097a4e7
commit 81accb0832
5 changed files with 5 additions and 4 deletions

View file

@ -393,6 +393,7 @@ clean::
$(call CLEANAROBJS)
$(call CLEAN)
distclean:: clean
$(call DELFILE, .kconfig)
$(call DELFILE, Make.dep)
$(call DELFILE, .depend)

View file

@ -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

View file

@ -168,7 +168,7 @@ distclean::
$(call DELDIR, $(WOLFSSL_UNPACKNAME))
$(call DELDIR, $(WOLFSSL_EXAMPLESNAME))
else
distclean:
distclean::
$(call DELDIR, $(WOLFSSL_UNPACKNAME))
endif

View file

@ -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

View file

@ -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