diff options
| author | Linus Torvalds <torvalds@home.transmeta.com> | 2003-05-07 08:12:58 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2003-05-07 08:12:58 -0700 |
| commit | 8c2b313a0e3db75a83e976a119414fa29c560eaa (patch) | |
| tree | 3b19736171a73b696f4170dea3c8c1d4d1030dac | |
| parent | c270c6447ba900499a571291248cfa23af424a9c (diff) | |
Support a "checking" mode for kernel builds, that runs a
user-supplied source checker on all C files before compiling
them.
I'll release the actual checker once I've cleaned it up a
bit more (yay, all the copyright paperwork completed!)
| -rw-r--r-- | Makefile | 15 | ||||
| -rw-r--r-- | scripts/Makefile.build | 21 |
2 files changed, 32 insertions, 4 deletions
@@ -90,7 +90,7 @@ ifneq ($(filter all,$(MAKECMDGOALS)),) KBUILD_MODULES := 1 endif -export KBUILD_MODULES KBUILD_BUILTIN KBUILD_VERBOSE +export KBUILD_MODULES KBUILD_BUILTIN KBUILD_VERBOSE KBUILD_CHECKSRC # Beautify output # --------------------------------------------------------------------------- @@ -118,6 +118,16 @@ ifndef KBUILD_VERBOSE KBUILD_VERBOSE = 1 endif +ifdef C + ifeq ("$(origin C)", "command line") + KBUILD_CHECKSRC = $(C) + endif +endif +ifndef KBUILD_CHECKSRC + KBUILD_CHECKSRC = 0 +endif + + MAKEFLAGS += --no-print-directory # For maximum performance (+ possibly random breakage, uncomment @@ -172,6 +182,7 @@ GENKSYMS = scripts/genksyms/genksyms DEPMOD = /sbin/depmod KALLSYMS = scripts/kallsyms PERL = perl +CHECK = /home/torvalds/parser/check MODFLAGS = -DMODULE CFLAGS_MODULE = $(MODFLAGS) AFLAGS_MODULE = $(MODFLAGS) @@ -189,7 +200,7 @@ AFLAGS := -D__ASSEMBLY__ $(CPPFLAGS) export VERSION PATCHLEVEL SUBLEVEL EXTRAVERSION KERNELRELEASE ARCH \ CONFIG_SHELL TOPDIR HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC \ CPP AR NM STRIP OBJCOPY OBJDUMP MAKE AWK GENKSYMS PERL UTS_MACHINE \ - HOSTCXX HOSTCXXFLAGS LDFLAGS_BLOB LDFLAGS_MODULE + HOSTCXX HOSTCXXFLAGS LDFLAGS_BLOB LDFLAGS_MODULE CHECK export CPPFLAGS NOSTDINC_FLAGS OBJCOPYFLAGS LDFLAGS export CFLAGS CFLAGS_KERNEL CFLAGS_MODULE diff --git a/scripts/Makefile.build b/scripts/Makefile.build index 4f3f9e3346a9..21d1a162b519 100644 --- a/scripts/Makefile.build +++ b/scripts/Makefile.build @@ -66,6 +66,12 @@ __build: $(if $(KBUILD_BUILTIN),$(O_TARGET) $(L_TARGET) $(extra-y)) \ $(subdir-ym) $(always) @: +# Linus's kernel sanity checking tool +ifneq ($(KBUILD_CHECKSRC),0) +quiet_cmd_checksrc = CHECK $< + cmd_checksrc = $(CHECK) $(CFLAGS) $< ; +endif + # Module versioning # --------------------------------------------------------------------------- @@ -91,6 +97,8 @@ quiet_cmd_vcc_o_c = CC $(quiet_modtag) $@ cmd_vcc_o_c = $(CC) $(c_flags) -c -o $(@D)/.tmp_$(@F) $< define rule_vcc_o_c + $(if $($(quiet)cmd_checksrc),echo ' $($(quiet)cmd_checksrc)';) \ + $(cmd_checksrc) \ $(if $($(quiet)cmd_vcc_o_c),echo ' $($(quiet)cmd_vcc_o_c)';) \ $(cmd_vcc_o_c); \ \ @@ -158,6 +166,15 @@ cmd_cc_i_c = $(CPP) $(c_flags) -o $@ $< quiet_cmd_cc_o_c = CC $(quiet_modtag) $@ cmd_cc_o_c = $(CC) $(c_flags) -c -o $@ $< +define rule_cc_o_c + $(if $($(quiet)cmd_checksrc),echo ' $($(quiet)cmd_checksrc)';) \ + $(cmd_checksrc) \ + $(if $($(quiet)cmd_cc_o_c),echo ' $($(quiet)cmd_cc_o_c)';) \ + $(cmd_cc_o_c); \ + scripts/fixdep $(depfile) $@ '$(cmd_cc_o_c)' > $(@D)/.$(@F).tmp; \ + rm -f $(depfile); \ + mv -f $(@D)/.$(@F).tmp $(@D)/.$(@F).cmd +endef # Built-in and composite module parts @@ -165,7 +182,7 @@ cmd_cc_o_c = $(CC) $(c_flags) -c -o $@ $< ifdef CONFIG_MODVERSIONS $(call if_changed_rule,vcc_o_c) else - $(call if_changed_dep,cc_o_c) + $(call if_changed_rule,cc_o_c) endif # Single-part modules are special since we need to mark them in $(MODVERDIR) @@ -174,7 +191,7 @@ $(single-used-m): %.o: %.c FORCE ifdef CONFIG_MODVERSIONS $(call if_changed_rule,vcc_o_c) else - $(call if_changed_dep,cc_o_c) + $(call if_changed_rule,cc_o_c) endif $(touch-module) |
