On May 6, 2005, at 4:45 PM, Sam Ravnborg wrote: > > Sam, > > > > Tom pointed me at you to look at a makefile issue with > > arch/ppc/boot/images/Makefile.? When I do the following: > > > > $ make uImage > >??? CHK???? include/linux/version.h > > make[1]: `arch/ppc/kernel/asm-offsets.s' is up to date. > >??? CHK???? include/linux/compile.h > >??? CHK???? usr/initramfs_list > >??? UIMAGE? arch/ppc/boot/images/uImage > > Image Name:?? Linux-2.6.12-rc3 > > Created:????? Fri May? 6 10:19:28 2005 > > Image Type:?? PowerPC Linux Kernel Image (gzip compressed) > > Data Size:??? 993322 Bytes = 970.04 kB = 0.95 MB > > Load Address: 0x00000000 > > Entry Point:? 0x00000000 > >??? Image: arch/ppc/boot/images/uImage not made > > > > The issue is that the file arch/ppc/boot/images/uImage does exit > (the > > 'not made' is not correct). > > > > $(obj)/uImage: $(obj)/vmlinux.gz > >????????? $(Q)rm -f $@ > >????????? $(call if_changed,uimage) > >????????? @echo '? Image: $@' $(if $(wildcard $@),'is ready','not > made') > > > > It seems the $(wildcard $@) expands at the start of the rule.? Any > > ideas? > > It probarly uses the build-in cache in make - and I see no easy way to > tell make not to use the cache in this case. > Could you try to replace "$(wildcard $@)" with something like: > $(shell if -f $@ echo Y; fi) > > Untested - I'm not on a Linux box right now.
I tried the following w/o success: $(obj)/uImage: $(obj)/vmlinux.gz $(Q)rm -f $@ $(call if_changed,uimage) @echo ' Image: $@' $(shell if [ -f $@ ]; then echo 'is ready'; else echo 'not made'; fi) - kumar