[L/unstable 03/13] UBUNTU: [Packaging] add -rR MAKEFLAGS to clear implicit rules

Masahiro Yamada masahiro.yamada at canonical.com
Mon Dec 5 08:56:09 UTC 2022


Cancel implicit rules, otherwise GNU Make will try to examine a lot of
internal rules to update makefiles.

Add -rR, as the Kbuild does. [1]

If you want to see what is happening behind the scene:

    $ dpkg-buildpackage --rules-file="debian/rules -d"

[Before]

  Updating makefiles....
   Considering target file 'debian/rules.d/4-checks.mk'.
    Looking for an implicit rule for 'debian/rules.d/4-checks.mk'.
    Trying pattern rule with stem '4-checks.mk'.
    Trying implicit prerequisite 'debian/rules.d/4-checks.mk.o'.
    Trying pattern rule with stem '4-checks.mk'.
    Trying implicit prerequisite 'debian/rules.d/4-checks.mk.c'.
    Trying pattern rule with stem '4-checks.mk'.
    Trying implicit prerequisite 'debian/rules.d/4-checks.mk.cc'.
    Trying pattern rule with stem '4-checks.mk'.
    Trying implicit prerequisite 'debian/rules.d/4-checks.mk.C'.
    Trying pattern rule with stem '4-checks.mk'.
    Trying implicit prerequisite 'debian/rules.d/4-checks.mk.cpp'.
    Trying pattern rule with stem '4-checks.mk'.
    Trying implicit prerequisite 'debian/rules.d/4-checks.mk.p'.
    Trying pattern rule with stem '4-checks.mk'.
    Trying implicit prerequisite 'debian/rules.d/4-checks.mk.f'.

      [  snip a tons of examinations for implicit rules  ]

    No implicit rule found for 'debian/rules.d/4-checks.mk'.
    Finished prerequisites of target file 'debian/rules.d/4-checks.mk'.
   No need to remake target 'debian/rules.d/4-checks.mk'.

[After]

  Updating makefiles....
   Considering target file 'debian/rules.d/4-checks.mk'.
    Looking for an implicit rule for 'debian/rules.d/4-checks.mk'.
    No implicit rule found for 'debian/rules.d/4-checks.mk'.
    Finished prerequisites of target file 'debian/rules.d/4-checks.mk'.

[1]: https://github.com/torvalds/linux/blob/v6.0/Makefile#L41

Signed-off-by: Masahiro Yamada <masahiro.yamada at canonical.com>
---
 debian/rules | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/debian/rules b/debian/rules
index b5358727a901..f2b460354f6c 100755
--- a/debian/rules
+++ b/debian/rules
@@ -7,6 +7,10 @@
 # Copyright (c) 2007 Ben Collins <bcollins at ubuntu.com>
 #
 
+# Do not use make's built-in rules and variables
+# (this increases performance and avoids hard-to-debug behaviour)
+MAKEFLAGS += -rR
+
 DEBIAN=$(shell awk -F= '($$1 == "DEBIAN") { print $$2 }' <debian/debian.env)
 
 # dpkg-buildpackage passes options that are incomptatible
-- 
2.34.1




More information about the kernel-team mailing list