diff mbox series

[v3,2/2] include/Makefile: Fix cleaning targets

Message ID 20250409-fix_make_clean-v3-2-a33a84b2be05@suse.com
State Needs Review / ACK
Headers show
Series configure: Tidy up removal of generated artifacts | expand

Checks

Context Check Description
acer/ubuntu_bionic_gcc fail failure
acer/debian_stable_s390x-linux-gnu-gcc_s390x success success
acer/debian_stable_aarch64-linux-gnu-gcc_arm64 success success
acer/debian_stable_powerpc64le-linux-gnu-gcc_ppc64el success success
acer/ubuntu_jammy_gcc success success
acer/debian_stable_gcc success success
acer/alpine_latest_gcc success success
acer/debian_stable_gcc success success
acer/fedora_latest_clang success success
acer/debian_testing_clang success success
acer/debian_testing_gcc success success
acer/debian_oldstable_gcc success success
acer/debian_oldstable_clang success success
acer/opensuse_leap_latest_gcc success success

Commit Message

Ricardo B. Marlière April 9, 2025, 4:36 p.m. UTC
From: Ricardo B. Marlière <rbm@suse.com>

Add ac-clean target as dependency of ac-maintainer-clean and add missing
files to the removal list. This way the project top level Makefile cleaning
targets can make use of it. Also, add "compile" to the AUTOMAKE_FILES
list.

Cc: Andrea Cervesato <andrea.cervesato@suse.com>
Fixes: 817d8095fbfe ("Rename linux_syscall_numbers.h to lapi/syscalls.h")
Reviewed-by: Petr Vorel <pvorel@suse.cz>
Signed-off-by: Ricardo B. Marlière <rbm@suse.com>
---

NOTE: The "compile" file is added during the autotools target:
$ make autotools
<snip>
configure.ac:26: installing './compile'
configure.ac:24: installing './config.guess'
configure.ac:24: installing './config.sub'
configure.ac:7: installing './install-sh'
configure.ac:7: installing './missing'
<snip>
---
 include/Makefile       |  4 ++--
 include/mk/automake.mk | 10 ++++------
 2 files changed, 6 insertions(+), 8 deletions(-)

Comments

Petr Vorel April 23, 2025, 7:29 a.m. UTC | #1
Hi Ricardo,

[ Cc Joerg, who touched build system in the past. ]

> Add ac-clean target as dependency of ac-maintainer-clean and add missing
> files to the removal list. This way the project top level Makefile cleaning
> targets can make use of it. Also, add "compile" to the AUTOMAKE_FILES
> list.

nit: You also remove stamp-h1 from AUTOMAKE_FILES. Why? Did I suggest that?
It's created by configure (e.g. not automake), but I considered AUTOMAKE_FILES
holding files created by autotools.

> Cc: Andrea Cervesato <andrea.cervesato@suse.com>
FYI: we usually don't keep Cc: in the commit message (git format-patch --cc ...
or git send-email --cc ... has the same effect - sending mail, but don't
preserve it). Of course it can stay. I personally see more value with adding
Link: tag to patch in lore (for these who want/need to dig in history).

> Fixes: 817d8095fbfe ("Rename linux_syscall_numbers.h to lapi/syscalls.h")
> Reviewed-by: Petr Vorel <pvorel@suse.cz>
> Signed-off-by: Ricardo B. Marlière <rbm@suse.com>
> ---

> NOTE: The "compile" file is added during the autotools target:
> $ make autotools
> <snip>
> configure.ac:26: installing './compile'
> configure.ac:24: installing './config.guess'
> configure.ac:24: installing './config.sub'
> configure.ac:7: installing './install-sh'
> configure.ac:7: installing './missing'
> <snip>
> ---
>  include/Makefile       |  4 ++--
>  include/mk/automake.mk | 10 ++++------
>  2 files changed, 6 insertions(+), 8 deletions(-)

> diff --git a/include/Makefile b/include/Makefile
> index 25e96df9b8cdd7d1d7e6f19925bf2160d682f0d9..6b31b046e452e71afb5097cc3fadf8af01282629 100644
> --- a/include/Makefile
> +++ b/include/Makefile
> @@ -18,8 +18,8 @@ MAKE_TARGETS		:=
>  distclean:: clean ac-distclean
>  maintainer-clean:: distclean ac-maintainer-clean
>  ac-clean ac-distclean::
> -	$(RM) -f config.h
> -ac-maintainer-clean::
> +	$(RM) -f config.h lapi/syscalls.h stamp-h1
> +ac-maintainer-clean:: ac-clean
>  	$(RM) -f config.h.in

>  vpath %.h $(abs_srcdir)
> diff --git a/include/mk/automake.mk b/include/mk/automake.mk
> index 3df3b4ba99ca865caa89388999e53cbc500615dc..3b248ac9575a613c695de7ec22c427d4e97da39f 100644
> --- a/include/mk/automake.mk
> +++ b/include/mk/automake.mk
> @@ -45,7 +45,7 @@ m4/ltp-version.m4: VERSION
>  	sed -n '1{s:LTP-:m4_define([LTP_VERSION],[:;s:$$:]):;p;q}' $< > $@

>  .PHONY: automake
> -AUTOMAKE_FILES := config.guess config.sub install-sh missing stamp-h1
> +AUTOMAKE_FILES := compile config.guess config.sub install-sh missing
>  automake: aclocal $(AUTOMAKE_FILES)
>  $(AUTOMAKE_FILES): m4/Makefile.in
>  m4/Makefile.in: m4/Makefile.am aclocal.m4
> @@ -55,19 +55,17 @@ m4/Makefile.in: m4/Makefile.am aclocal.m4
>  ac-clean::
>  	$(RM) -rf autom4te.cache
>  	$(RM) -f config.log config.status
> -	$(RM) -f include/config.h include/stamp-h1
>  	$(RM) -f m4/Makefile m4/ltp-version.m4
> -	for d in $(AUTOCONFED_SUBDIRS); do \
> +	for d in $(AUTOCONFED_SUBDIRS) include; do \
nit: Wouldn't be better to have another variable which would be used in for loops?

CLEAN_SUBDIRS = $(AUTOCONFED_SUBDIRS) include

>  	    $(MAKE) -C "$(top_srcdir)/$$d" $@; \
>  	done

>  ac-distclean:: ac-clean
>  ac-maintainer-clean:: ac-distclean
> -	for d in $(AUTOCONFED_SUBDIRS); do \
> +	for d in $(AUTOCONFED_SUBDIRS) include; do \
>  	    $(MAKE) -C "$(top_srcdir)/$$d" $@; \
>  	done
>  	$(RM) -f aclocal.m4 configure $(AUTOMAKE_FILES) m4/Makefile.in
> -	$(RM) -f include/*config.h.in

>  # Don't include config.h, or make will (rightfully) whine about overriding
>  # rules.
> @@ -82,7 +80,7 @@ AUTOGENERATED_FILES	= \
>  			m4/Makefile

>  distclean:: %: clean ac-distclean
> -	for d in $(AUTOCONFED_SUBDIRS); do \
> +	for d in $(AUTOCONFED_SUBDIRS) include; do \
>  	    $(MAKE) -C "$(top_srcdir)/$$d" $@; \
>  	done
>  	$(RM) -f $(AUTOGENERATED_FILES)
Ricardo B. Marlière April 24, 2025, 3:24 p.m. UTC | #2
Hello Petr!

On Wed Apr 23, 2025 at 4:29 AM -03, Petr Vorel wrote:
> Hi Ricardo,
>
> [ Cc Joerg, who touched build system in the past. ]
>
>> Add ac-clean target as dependency of ac-maintainer-clean and add missing
>> files to the removal list. This way the project top level Makefile cleaning
>> targets can make use of it. Also, add "compile" to the AUTOMAKE_FILES
>> list.
>
> nit: You also remove stamp-h1 from AUTOMAKE_FILES. Why? Did I suggest that?
> It's created by configure (e.g. not automake), but I considered AUTOMAKE_FILES
> holding files created by autotools.
>

Indeed, from my local testing the only stamp-h1 created by configure is
in include/ directory, which is why I added it to include/Makefile. Is
the top-level stamp-h1 still created somehow, e.g. using an older
version of automake? I didn't check.

>> Cc: Andrea Cervesato <andrea.cervesato@suse.com>
> FYI: we usually don't keep Cc: in the commit message (git format-patch --cc ...
> or git send-email --cc ... has the same effect - sending mail, but don't
> preserve it). Of course it can stay. I personally see more value with adding
> Link: tag to patch in lore (for these who want/need to dig in history).
>

When working on a series like this, you can tag individual commits so
that `b4` takes care of sending it to the relevant parties. Adding it to
the cover letter will send the whole series to them. But I guess we
don't need that tag anyway due to low traffic in LTP ML. I'll drop it.

>> Fixes: 817d8095fbfe ("Rename linux_syscall_numbers.h to lapi/syscalls.h")
>> Reviewed-by: Petr Vorel <pvorel@suse.cz>
>> Signed-off-by: Ricardo B. Marlière <rbm@suse.com>
>> ---
>
>> NOTE: The "compile" file is added during the autotools target:
>> $ make autotools
>> <snip>
>> configure.ac:26: installing './compile'
>> configure.ac:24: installing './config.guess'
>> configure.ac:24: installing './config.sub'
>> configure.ac:7: installing './install-sh'
>> configure.ac:7: installing './missing'
>> <snip>
>> ---
>>  include/Makefile       |  4 ++--
>>  include/mk/automake.mk | 10 ++++------
>>  2 files changed, 6 insertions(+), 8 deletions(-)
>
>> diff --git a/include/Makefile b/include/Makefile
>> index 25e96df9b8cdd7d1d7e6f19925bf2160d682f0d9..6b31b046e452e71afb5097cc3fadf8af01282629 100644
>> --- a/include/Makefile
>> +++ b/include/Makefile
>> @@ -18,8 +18,8 @@ MAKE_TARGETS		:=
>>  distclean:: clean ac-distclean
>>  maintainer-clean:: distclean ac-maintainer-clean
>>  ac-clean ac-distclean::
>> -	$(RM) -f config.h
>> -ac-maintainer-clean::
>> +	$(RM) -f config.h lapi/syscalls.h stamp-h1
>> +ac-maintainer-clean:: ac-clean
>>  	$(RM) -f config.h.in
>
>>  vpath %.h $(abs_srcdir)
>> diff --git a/include/mk/automake.mk b/include/mk/automake.mk
>> index 3df3b4ba99ca865caa89388999e53cbc500615dc..3b248ac9575a613c695de7ec22c427d4e97da39f 100644
>> --- a/include/mk/automake.mk
>> +++ b/include/mk/automake.mk
>> @@ -45,7 +45,7 @@ m4/ltp-version.m4: VERSION
>>  	sed -n '1{s:LTP-:m4_define([LTP_VERSION],[:;s:$$:]):;p;q}' $< > $@
>
>>  .PHONY: automake
>> -AUTOMAKE_FILES := config.guess config.sub install-sh missing stamp-h1
>> +AUTOMAKE_FILES := compile config.guess config.sub install-sh missing
>>  automake: aclocal $(AUTOMAKE_FILES)
>>  $(AUTOMAKE_FILES): m4/Makefile.in
>>  m4/Makefile.in: m4/Makefile.am aclocal.m4
>> @@ -55,19 +55,17 @@ m4/Makefile.in: m4/Makefile.am aclocal.m4
>>  ac-clean::
>>  	$(RM) -rf autom4te.cache
>>  	$(RM) -f config.log config.status
>> -	$(RM) -f include/config.h include/stamp-h1
>>  	$(RM) -f m4/Makefile m4/ltp-version.m4
>> -	for d in $(AUTOCONFED_SUBDIRS); do \
>> +	for d in $(AUTOCONFED_SUBDIRS) include; do \
> nit: Wouldn't be better to have another variable which would be used in for loops?
>
> CLEAN_SUBDIRS = $(AUTOCONFED_SUBDIRS) include
>

Agreed.

>>  	    $(MAKE) -C "$(top_srcdir)/$$d" $@; \
>>  	done
>
>>  ac-distclean:: ac-clean
>>  ac-maintainer-clean:: ac-distclean
>> -	for d in $(AUTOCONFED_SUBDIRS); do \
>> +	for d in $(AUTOCONFED_SUBDIRS) include; do \
>>  	    $(MAKE) -C "$(top_srcdir)/$$d" $@; \
>>  	done
>>  	$(RM) -f aclocal.m4 configure $(AUTOMAKE_FILES) m4/Makefile.in
>> -	$(RM) -f include/*config.h.in
>
>>  # Don't include config.h, or make will (rightfully) whine about overriding
>>  # rules.
>> @@ -82,7 +80,7 @@ AUTOGENERATED_FILES	= \
>>  			m4/Makefile
>
>>  distclean:: %: clean ac-distclean
>> -	for d in $(AUTOCONFED_SUBDIRS); do \
>> +	for d in $(AUTOCONFED_SUBDIRS) include; do \
>>  	    $(MAKE) -C "$(top_srcdir)/$$d" $@; \
>>  	done
>>  	$(RM) -f $(AUTOGENERATED_FILES)
diff mbox series

Patch

diff --git a/include/Makefile b/include/Makefile
index 25e96df9b8cdd7d1d7e6f19925bf2160d682f0d9..6b31b046e452e71afb5097cc3fadf8af01282629 100644
--- a/include/Makefile
+++ b/include/Makefile
@@ -18,8 +18,8 @@  MAKE_TARGETS		:=
 distclean:: clean ac-distclean
 maintainer-clean:: distclean ac-maintainer-clean
 ac-clean ac-distclean::
-	$(RM) -f config.h
-ac-maintainer-clean::
+	$(RM) -f config.h lapi/syscalls.h stamp-h1
+ac-maintainer-clean:: ac-clean
 	$(RM) -f config.h.in
 
 vpath %.h $(abs_srcdir)
diff --git a/include/mk/automake.mk b/include/mk/automake.mk
index 3df3b4ba99ca865caa89388999e53cbc500615dc..3b248ac9575a613c695de7ec22c427d4e97da39f 100644
--- a/include/mk/automake.mk
+++ b/include/mk/automake.mk
@@ -45,7 +45,7 @@  m4/ltp-version.m4: VERSION
 	sed -n '1{s:LTP-:m4_define([LTP_VERSION],[:;s:$$:]):;p;q}' $< > $@
 
 .PHONY: automake
-AUTOMAKE_FILES := config.guess config.sub install-sh missing stamp-h1
+AUTOMAKE_FILES := compile config.guess config.sub install-sh missing
 automake: aclocal $(AUTOMAKE_FILES)
 $(AUTOMAKE_FILES): m4/Makefile.in
 m4/Makefile.in: m4/Makefile.am aclocal.m4
@@ -55,19 +55,17 @@  m4/Makefile.in: m4/Makefile.am aclocal.m4
 ac-clean::
 	$(RM) -rf autom4te.cache
 	$(RM) -f config.log config.status
-	$(RM) -f include/config.h include/stamp-h1
 	$(RM) -f m4/Makefile m4/ltp-version.m4
-	for d in $(AUTOCONFED_SUBDIRS); do \
+	for d in $(AUTOCONFED_SUBDIRS) include; do \
 	    $(MAKE) -C "$(top_srcdir)/$$d" $@; \
 	done
 
 ac-distclean:: ac-clean
 ac-maintainer-clean:: ac-distclean
-	for d in $(AUTOCONFED_SUBDIRS); do \
+	for d in $(AUTOCONFED_SUBDIRS) include; do \
 	    $(MAKE) -C "$(top_srcdir)/$$d" $@; \
 	done
 	$(RM) -f aclocal.m4 configure $(AUTOMAKE_FILES) m4/Makefile.in
-	$(RM) -f include/*config.h.in
 
 # Don't include config.h, or make will (rightfully) whine about overriding
 # rules.
@@ -82,7 +80,7 @@  AUTOGENERATED_FILES	= \
 			m4/Makefile
 
 distclean:: %: clean ac-distclean
-	for d in $(AUTOCONFED_SUBDIRS); do \
+	for d in $(AUTOCONFED_SUBDIRS) include; do \
 	    $(MAKE) -C "$(top_srcdir)/$$d" $@; \
 	done
 	$(RM) -f $(AUTOGENERATED_FILES)