PPC uImage build not reporting correctly

2005-05-11 Thread Sam Ravnborg
 
  Looks ok - but I do not see why use of $(shell ...) did not work out.
 
 As I understand it, the $(shell ...) construct doesn't work in the case 
 cited above because make evaluates/expands the $(shell ...) stuff while it 
 is parsing the makefile and building the command list--i.e. before it has 
 issued any commands to build anything.  What seems to be desired in this 
 case is a file-existence test which runs inline with respect to the 
 preceding commands.  The use of $(shell ...) inside a command 
 subverts/preempts that natural sequence.  I think. :-)

That explains it - thanks!

Sam



PPC uImage build not reporting correctly

2005-05-10 Thread Sam Ravnborg
On Mon, May 09, 2005 at 10:19:01AM -0500, Kumar Gala wrote:
 
 On May 6, 2005, at 6:22 PM, cpclark at xmission.com wrote:
 
 On Fri, 6 May 2005, Kumar Gala wrote:
   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)
 
 Couldn't you eliminate the ($shell ..) construct altogether, like 
 this?:
 
 $(obj)/uImage: $(obj)/vmlinux.gz
 ??? $(Q)rm -f $@
  ??? $(call if_changed,uimage)
 ??? @echo -n '? Image: $@'
  ??? @if [ -f $@ ]; then echo 'is ready' ; else echo 'not made'; fi
 
 Yes, and this seems to actually work.
 
 Sam, does this look reasonable to you.  If so I will work up a patch.
Looks ok - but I do not see why use of $(shell ...) did not work out.
Please bring your working version forward.

Sam



PPC uImage build not reporting correctly

2005-05-10 Thread [EMAIL PROTECTED]
On Tue, 10 May 2005, Sam Ravnborg wrote:

 On Mon, May 09, 2005 at 10:19:01AM -0500, Kumar Gala wrote:
  
  On May 6, 2005, at 6:22 PM, cpclark at xmission.com wrote:
  
  On Fri, 6 May 2005, Kumar Gala wrote:
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)
  
  Couldn't you eliminate the ($shell ..) construct altogether, like this?:
  
  $(obj)/uImage: $(obj)/vmlinux.gz
  $(Q)rm -f $@
  $(call if_changed,uimage)
  @echo -n '? Image: $@'
  @if [ -f $@ ]; then echo 'is ready' ; else echo 'not made'; fi
  
  Yes, and this seems to actually work.
  
  Sam, does this look reasonable to you.  If so I will work up a patch.

 Looks ok - but I do not see why use of $(shell ...) did not work out.

As I understand it, the $(shell ...) construct doesn't work in the case 
cited above because make evaluates/expands the $(shell ...) stuff while it 
is parsing the makefile and building the command list--i.e. before it has 
issued any commands to build anything.  What seems to be desired in this 
case is a file-existence test which runs inline with respect to the 
preceding commands.  The use of $(shell ...) inside a command 
subverts/preempts that natural sequence.  I think. :-)

Chris



PPC uImage build not reporting correctly

2005-05-10 Thread Stephen Warren
From: [EMAIL PROTECTED]
[mailto:linux-kernel-owner at vger.kernel.org] On Behalf Of Sam Ravnborg
 On Mon, May 09, 2005 at 10:19:01AM -0500, Kumar Gala wrote:
  On May 6, 2005, at 6:22 PM, cpclark at xmission.com wrote:
   Couldn't you eliminate the ($shell ..) construct altogether, like 
   this?:
  
   $(obj)/uImage: $(obj)/vmlinux.gz
   ??? $(Q)rm -f $@
   ??? $(call if_changed,uimage)
   ??? @echo -n '? Image: $@'
   ??? @if [ -f $@ ]; then echo 'is ready' ; else echo 'not
made'; fi
  
  Yes, and this seems to actually work.
  
  Sam, does this look reasonable to you.  If so I will work up a
patch.

 Looks ok - but I do not see why use of $(shell ...) did not work out.
 Please bring your working version forward.
 
It's because both any $(xxx) in the command will be expanded prior to
the command being executed (command meaning all lines in the complete
command script for the target in question - not on a line-by-line
basis).

Thus, the original $(wildcard), and also the $(shell) above are
evaluated/expanded by gmake prior to running any of the the rm -rf,
if_changed, and echo commands, and hence run before the uImage file
is created, and hence always think that it doesn't exist.

The only solution is to get the shell to do the evaluation of whether
uImage exists - that way, the evaluation is guaranteed to happen after
the uImage is (hopefully) created.

-- 
Stephen Warren, Software Engineer, NVIDIA, Fort Collins, CO
swarren at nvidia.comhttp://www.nvidia.com/
swarren at wwwdotorg.org http://www.wwwdotorg.org/pgp.html



PPC uImage build not reporting correctly

2005-05-09 Thread Kumar Gala

On May 6, 2005, at 6:22 PM, cpclark at xmission.com wrote:

 On Fri, 6 May 2005, Kumar Gala wrote:
   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)

 Couldn't you eliminate the ($shell ..) construct altogether, like 
 this?:

 $(obj)/uImage: $(obj)/vmlinux.gz
 ??? $(Q)rm -f $@
  ??? $(call if_changed,uimage)
 ??? @echo -n '? Image: $@'
  ??? @if [ -f $@ ]; then echo 'is ready' ; else echo 'not made'; fi

Yes, and this seems to actually work.

Sam, does this look reasonable to you.  If so I will work up a patch.

thanks

- kumar




PPC uImage build not reporting correctly

2005-05-07 Thread Sam Ravnborg
 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: 0x
 Entry Point:  0x
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.

   Sam





PPC uImage build not reporting correctly

2005-05-06 Thread Kumar Gala
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: 0x
Entry Point:  0x
   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?

- kumar 




PPC uImage build not reporting correctly

2005-05-06 Thread Kumar Gala

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: 0x
   Entry Point:? 0x
  ??? 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