diff mbox series

kbuild: move .SECONDARY special target to Kbuild.include

Message ID 1543624035-4479-1-git-send-email-yamada.masahiro@socionext.com
State Accepted
Commit 8e9b61b293d98f878cf1e6d1ae164e41c0219959
Headers show
Series kbuild: move .SECONDARY special target to Kbuild.include | expand

Commit Message

Masahiro Yamada Dec. 1, 2018, 12:27 a.m. UTC
In commit 54a702f70589 ("kbuild: mark $(targets) as .SECONDARY and
remove .PRECIOUS markers"), I missed one important feature of the
.SECONDARY target:

  .SECONDARY with no prerequisites causes all targets to be treated
   as secondary.

Kbuild's policy is, "Do not delete any intermediate files."
So, just move it to scripts/Kbuild.include, with no prerequisites.

Note:
If an intermediate file is generated by $(call if_changed,...), you
still need to add it to "targets" so its .*.cmd file is included.

The arm/arm64 crypto files are generated by $(call cmd,shipped),
so they do not need to be added to "targets", but need to be added
to "clean-files" so "make clean" can properly clean them away.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

---

 arch/arm/crypto/Makefile   | 2 +-
 arch/arm64/crypto/Makefile | 2 +-
 scripts/Kbuild.include     | 3 +++
 scripts/Makefile.build     | 4 ----
 4 files changed, 5 insertions(+), 6 deletions(-)

-- 
2.7.4

Comments

Masahiro Yamada Dec. 8, 2018, 6:54 a.m. UTC | #1
On Sat, Dec 1, 2018 at 9:29 AM Masahiro Yamada
<yamada.masahiro@socionext.com> wrote:
>

> In commit 54a702f70589 ("kbuild: mark $(targets) as .SECONDARY and

> remove .PRECIOUS markers"), I missed one important feature of the

> .SECONDARY target:

>

>   .SECONDARY with no prerequisites causes all targets to be treated

>    as secondary.

>

> Kbuild's policy is, "Do not delete any intermediate files."

> So, just move it to scripts/Kbuild.include, with no prerequisites.

>

> Note:

> If an intermediate file is generated by $(call if_changed,...), you

> still need to add it to "targets" so its .*.cmd file is included.

>

> The arm/arm64 crypto files are generated by $(call cmd,shipped),

> so they do not need to be added to "targets", but need to be added

> to "clean-files" so "make clean" can properly clean them away.

>

> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

> ---



Applied to linux-kbuild.



>  arch/arm/crypto/Makefile   | 2 +-

>  arch/arm64/crypto/Makefile | 2 +-

>  scripts/Kbuild.include     | 3 +++

>  scripts/Makefile.build     | 4 ----

>  4 files changed, 5 insertions(+), 6 deletions(-)

>

> diff --git a/arch/arm/crypto/Makefile b/arch/arm/crypto/Makefile

> index bd5bcee..89f88ab 100644

> --- a/arch/arm/crypto/Makefile

> +++ b/arch/arm/crypto/Makefile

> @@ -65,4 +65,4 @@ $(src)/sha512-core.S_shipped: $(src)/sha512-armv4.pl

>         $(call cmd,perl)

>  endif

>

> -targets += sha256-core.S sha512-core.S

> +clean-files += sha256-core.S sha512-core.S

> diff --git a/arch/arm64/crypto/Makefile b/arch/arm64/crypto/Makefile

> index f476fed..860d931 100644

> --- a/arch/arm64/crypto/Makefile

> +++ b/arch/arm64/crypto/Makefile

> @@ -75,4 +75,4 @@ $(src)/sha512-core.S_shipped: $(src)/sha512-armv8.pl

>         $(call cmd,perlasm)

>  endif

>

> -targets += sha256-core.S sha512-core.S

> +clean-files += sha256-core.S sha512-core.S

> diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include

> index bb01555..0454916 100644

> --- a/scripts/Kbuild.include

> +++ b/scripts/Kbuild.include

> @@ -393,3 +393,6 @@ endef

>

>  # delete partially updated (i.e. corrupted) files on error

>  .DELETE_ON_ERROR:

> +

> +# do not delete intermediate files automatically

> +.SECONDARY:

> diff --git a/scripts/Makefile.build b/scripts/Makefile.build

> index a8e7ba9..604096a 100644

> --- a/scripts/Makefile.build

> +++ b/scripts/Makefile.build

> @@ -546,8 +546,4 @@ $(shell mkdir -p $(obj-dirs))

>  endif

>  endif

>

> -# Some files contained in $(targets) are intermediate artifacts.

> -# We never want them to be removed automatically.

> -.SECONDARY: $(targets)

> -

>  .PHONY: $(PHONY)

> --

> 2.7.4

>



-- 
Best Regards
Masahiro Yamada
diff mbox series

Patch

diff --git a/arch/arm/crypto/Makefile b/arch/arm/crypto/Makefile
index bd5bcee..89f88ab 100644
--- a/arch/arm/crypto/Makefile
+++ b/arch/arm/crypto/Makefile
@@ -65,4 +65,4 @@  $(src)/sha512-core.S_shipped: $(src)/sha512-armv4.pl
 	$(call cmd,perl)
 endif
 
-targets += sha256-core.S sha512-core.S
+clean-files += sha256-core.S sha512-core.S
diff --git a/arch/arm64/crypto/Makefile b/arch/arm64/crypto/Makefile
index f476fed..860d931 100644
--- a/arch/arm64/crypto/Makefile
+++ b/arch/arm64/crypto/Makefile
@@ -75,4 +75,4 @@  $(src)/sha512-core.S_shipped: $(src)/sha512-armv8.pl
 	$(call cmd,perlasm)
 endif
 
-targets += sha256-core.S sha512-core.S
+clean-files += sha256-core.S sha512-core.S
diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
index bb01555..0454916 100644
--- a/scripts/Kbuild.include
+++ b/scripts/Kbuild.include
@@ -393,3 +393,6 @@  endef
 
 # delete partially updated (i.e. corrupted) files on error
 .DELETE_ON_ERROR:
+
+# do not delete intermediate files automatically
+.SECONDARY:
diff --git a/scripts/Makefile.build b/scripts/Makefile.build
index a8e7ba9..604096a 100644
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
@@ -546,8 +546,4 @@  $(shell mkdir -p $(obj-dirs))
 endif
 endif
 
-# Some files contained in $(targets) are intermediate artifacts.
-# We never want them to be removed automatically.
-.SECONDARY: $(targets)
-
 .PHONY: $(PHONY)