All of lore.kernel.org
 help / color / mirror / Atom feed
* [KBUILD] allow any PHONY in if_changed_dep
@ 2006-07-01  9:16 Milton Miller
  2006-07-01  9:39 ` Sam Ravnborg
  2006-07-01 23:46 ` [0/5][POWERPC] boot: create zImage.kexec #2 Milton Miller
  0 siblings, 2 replies; 10+ messages in thread
From: Milton Miller @ 2006-07-01  9:16 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: linux-kernel

While all the if_changed family filter $(PHONY) from the list of newer
files, if_changed_dep was only filtering FORCE from the list of all
dependents.  This resulted in forced recompile every time.

Signed-off-by: Milton Miller <miltonm@bga.com>

--- 

Sam,

I have been working on some cleanups in arch/powerpc/boot/Makefile,
switching to if_changed and friends.  There are rules to copy headers
from the kernel environment to the boot environment, applying slight
cleanups.

Currently a subset of the c files depend on the headers, and there is
a manual dependency on the headers.  I was trying to get if_changed_dep
to depend only on the headers actually used, but copy all needed headers
before compiling any C files in the zImage code.  

Does the following patch look ok to you?   It removes all PHONY targets
from the list of all dependents, not just FORCE.  I'm thinking the clause
is to catch files haven't been generated and therefore are not newer but
are still required.  If you want to build every time you can just call cmd.

milton

Two excerpts from the proposed makefile follow:

> -$(addprefix $(obj)/,$(zlib) main.o): $(addprefix $(obj)/,$(zliblinuxheader)) $(addprefix $(obj)/,$(zlibheader))
> -#$(addprefix $(obj)/,main.o): $(addprefix $(obj)/,zlib.h)
> +linuxheader := zlib.h zconf.h zutil.h
> 
> [ $(obj-boot): %.o: %.c ]
>
> +$(obj-boot):  COPYHEADERS
> +COPYHEADERS:	$(addprefix $(obj)/,$(linuxheader) $(zlibheader))
> +PHONY	+= COPYHEADERS


Index: kernel/scripts/Kbuild.include
===================================================================
--- kernel.orig/scripts/Kbuild.include	2006-07-01 00:58:38.926249877 -0500
+++ kernel/scripts/Kbuild.include	2006-07-01 01:02:00.909937514 -0500
@@ -131,7 +131,7 @@ if_changed = $(if $(strip $(filter-out $
 # execute the command and also postprocess generated .d dependencies
 # file
 if_changed_dep = $(if $(strip $(filter-out $(PHONY),$?)  \
-		$(filter-out FORCE $(wildcard $^),$^)    \
+		$(filter-out $(PHONY) $(wildcard $^),$^)    \
 	$(call arg-check, $(cmd_$(1)), $(cmd_$@)) ),     \
 	@set -e; \
 	$(echo-cmd) $(cmd_$(1)); \

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2006-07-07 10:35 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-07-01  9:16 [KBUILD] allow any PHONY in if_changed_dep Milton Miller
2006-07-01  9:39 ` Sam Ravnborg
2006-07-01 23:36   ` Milton Miller
2006-07-01 23:46 ` [0/5][POWERPC] boot: create zImage.kexec #2 Milton Miller
2006-07-01 23:46   ` [1/5][POWERPC] boot: prepare for zImage.kexec Milton Miller
2006-07-07 10:35     ` Paul Mackerras
2006-07-01 23:46   ` [2/5][POWERPC] boot: Add kexec callable zImage wrapper Milton Miller
2006-07-01 23:46   ` [3/5][POWERPC] boot: use more Kbuild rules Milton Miller
2006-07-01 23:46   ` [4/5][POWERPC] boot: Makefile and linker scripts for zImage.kexec Milton Miller
2006-07-01 23:47   ` [5/5][POWERPC] boot: generate lds file from lds.S Milton Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.