Subject: Re: PPC uImage build not reporting correctly

From: Kumar Gala <[email-masked]>
Date: Fri, 6 May 2005 16:57:10 -0500

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