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, <[email protected]> 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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]