mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Oleg Verych <olecom@flower.upol.cz>
To: linux-kernel@vger.kernel.org
Cc: kbuild-devel@lists.sourceforge.net
Subject: Re: [patch, rfc] kbuild: implement checksrc without building Cources	 (was Re: CHECK without C compile?)
Date: Tue, 24 Oct 2006 19:43:40 +0000 (UTC)	[thread overview]
Message-ID: <slrnejsrjq.93p.olecom@flower.upol.cz> (raw)
In-Reply-To: <slrnejscd5.93p.olecom@flower.upol.cz>

On 2006-10-24, Oleg Verych wrote:
> On 2006-10-23, Randy Dunlap wrote:
>> Hi Sam,
>
* It seems*
>
> +     $(call if_changed_rule,cc_o_c) || \
> +     { echo $(@:.o=.ko); echo $@; } > $(MODVERDIR)/$(@F:.o=.mod)

This doesn't work, use ifs instead. Updated.
I have no idea what to do with generated sources and headers.
One may be: check target `if_changed' to be %.c or %.h and let it be
built.
____
From: Oleg Verych <olecom@flower.upol.cz>
Subject: [patch, rfc] kbuild: implement checksrc without building Cources

  Implementation of configured source chacking without actual building.

Cc: Randy Dunlap <rdunlap@xenotime.net>
Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Oleg Verych <olecom@flower.upol.cz>
---

  Configured sources means, some config target must be run already.
  After that
  ,-<shell>
  | make prepare
  | make C=something_not_0,1,2 _target_
  `--
  should run _target_ with checking and without building.

-o--=O`C  /. .\
 #oo'L O      o
<___=E M    ^--

 scripts/Kbuild.include |    6 +++---
 scripts/Makefile.build |   25 ++++++++++++++++---------
 2 files changed, 19 insertions(+), 12 deletions(-)

Index: linux-2.6.19-rc3/scripts/Kbuild.include
===================================================================
--- linux-2.6.19-rc3.orig/scripts/Kbuild.include	2006-10-24 18:45:36.708292246 +0000
+++ linux-2.6.19-rc3/scripts/Kbuild.include	2006-10-24 19:11:29.552783811 +0000
@@ -153,7 +153,7 @@
 if_changed = $(if $(strip $(any-prereq) $(arg-check)),                       \
 	@set -e;                                                             \
 	$(echo-cmd) $(cmd_$(1));                                             \
-	echo 'cmd_$@ := $(make-cmd)' > $(dot-target).cmd)
+	echo 'cmd_$@ := $(make-cmd)' > $(dot-target).cmd ;)
 
 # execute the command and also postprocess generated .d dependencies
 # file
@@ -162,14 +162,14 @@
 	$(echo-cmd) $(cmd_$(1));                                             \
 	scripts/basic/fixdep $(depfile) $@ '$(make-cmd)' > $(dot-target).tmp;\
 	rm -f $(depfile);                                                    \
-	mv -f $(dot-target).tmp $(dot-target).cmd)
+	mv -f $(dot-target).tmp $(dot-target).cmd ;)
 
 # Usage: $(call if_changed_rule,foo)
 # will check if $(cmd_foo) changed, or any of the prequisites changed,
 # and if so will execute $(rule_foo)
 if_changed_rule = $(if $(strip $(any-prereq) $(arg-check) ),                 \
 	@set -e;                                                             \
-	$(rule_$(1)))
+	$(rule_$(1)) ;)
 
 ###
 # why - tell why a a target got build
Index: linux-2.6.19-rc3/scripts/Makefile.build
===================================================================
--- linux-2.6.19-rc3.orig/scripts/Makefile.build	2006-10-24 18:45:36.720292930 +0000
+++ linux-2.6.19-rc3/scripts/Makefile.build	2006-10-24 19:25:50.977873629 +0000
@@ -87,12 +87,17 @@
 
 # Linus' kernel sanity checking tool
 ifneq ($(KBUILD_CHECKSRC),0)
-  ifeq ($(KBUILD_CHECKSRC),2)
-    quiet_cmd_force_checksrc = CHECK   $<
-          cmd_force_checksrc = $(CHECK) $(CHECKFLAGS) $(c_flags) $< ;
-  else
+  ifeq ($(KBUILD_CHECKSRC),1)
       quiet_cmd_checksrc     = CHECK   $<
             cmd_checksrc     = $(CHECK) $(CHECKFLAGS) $(c_flags) $< ;
+  else
+    quiet_cmd_force_checksrc = CHECK   $<
+          cmd_force_checksrc = $(CHECK) $(CHECKFLAGS) $(c_flags) $< ;
+    ifneq ($(KBUILD_CHECKSRC),2)
+      if_changed      =#
+      if_changed_dep  =#
+      if_changed_rule =#
+    endif
   endif
 endif
 
@@ -204,11 +209,11 @@
 	$(call if_changed_rule,cc_o_c)
 
 # Single-part modules are special since we need to mark them in $(MODVERDIR)
-
 $(single-used-m): %.o: %.c FORCE
 	$(call cmd,force_checksrc)
-	$(call if_changed_rule,cc_o_c)
-	@{ echo $(@:.o=.ko); echo $@; } > $(MODVERDIR)/$(@F:.o=.mod)
+	$(if $(if_changed_rule), \
+	  $(call if_changed_rule,cc_o_c) \
+	  { echo $(@:.o=.ko); echo $@; } > $(MODVERDIR)/$(@F:.o=.mod))
 
 quiet_cmd_cc_lst_c = MKLST   $@
       cmd_cc_lst_c = $(CC) $(c_flags) -g -c -o $*.o $< && \
@@ -310,8 +315,10 @@
 	$(call if_changed,link_multi-y)
 
 $(multi-used-m) : %.o: $(multi-objs-m) FORCE
-	$(call if_changed,link_multi-m)
-	@{ echo $(@:.o=.ko); echo $(link_multi_deps); } > $(MODVERDIR)/$(@F:.o=.mod)
+	$(if $(if_changed), \
+	  $(call if_changed,link_multi-m) \
+	  { echo $(@:.o=.ko); \
+	    echo $(link_multi_deps); } > $(MODVERDIR)/$(@F:.o=.mod))
 
 targets += $(multi-used-y) $(multi-used-m)
 


  reply	other threads:[~2006-10-24 19:44 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-10-23 22:35 CHECK without C compile? Randy Dunlap
2006-10-24 15:24 ` [patch, rfc] kbuild: implement checksrc without building Cources (was Re: CHECK without C compile?) Oleg Verych
2006-10-24 19:43   ` Oleg Verych [this message]
2006-10-24 20:45     ` Randy Dunlap
2006-10-26 13:07       ` Re:[patch, rfc] kbuild: implement checksrc without building Cources Oleg Verych
2007-02-01 15:04         ` [patch, " Oleg Verych

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=slrnejsrjq.93p.olecom@flower.upol.cz \
    --to=olecom@flower.upol.cz \
    --cc=kbuild-devel@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®