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