From 89f81d638c2e7b67ef0bf2b3c390b28dbf1509ac Mon Sep 17 00:00:00 2001 From: Nicola Fontana Date: Thu, 22 Jul 2021 17:22:09 +0200 Subject: [PATCH] Fix make clean Commit 82399a923960 assumes you can override `make clean` on the fact that prerequisites of the same target are merged. This is true but unfortunately defining a `clean` target prevents automake from generating its own one, hence the default clean actions are not performed. This can be easily seen by inspecting the generated `Makefile`. Solve this issue by manually chaining up the default action. --- Makefile.kbuild | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Makefile.kbuild b/Makefile.kbuild index a419b939..79515ed2 100644 --- a/Makefile.kbuild +++ b/Makefile.kbuild @@ -13,15 +13,14 @@ modules_install: $(KBUILD) modules_install -# Call Kbuild clean *before* automake `clean` (see #5 for the rationale) -# by adding `kbuild-clean` to the clean prerequisites. Having targets -# with the same name will result in merging the prerequisites, i.e.: -# ``` -# # Equivalent to 'clean: prerequisite1 prerequisite2' -# clean: prerequisite1 -# clean: prerequisite2 -# ``` +# Override default `clean` target to call Kbuild clean *before* automake +# `clean` (see #5 for the rationale). clean: kbuild-clean + @if test -z "$(SUBDIRS)"; then \ + $(MAKE) $(AM_MAKEFLAGS) clean-am ; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) clean-recursive ; \ + fi kbuild-clean: $(KBUILD) clean