[U-Boot] make clean problem

Jerry Van Baren gerald.vanbaren at ge.com
Wed Oct 8 20:08:46 CEST 2008


Wolfgang Denk wrote:
> Dear "Eugene O'Brien",
> 
> In message <8B3930FEA8618C44B48EB06B5D33A06E01CCE207 at satmail.Advantech.ca> you wrote:
>> @rm -f $(obj)tools/env/{fw_printenv,fw_setenv}
>>
>> The reason is (after scratching my head for a few hours) that on my
>> platform BASH is not the default shell. I am using Ubuntu and /bin/sh is
>> linked to dash (see https://wiki.ubuntu.com/DashAsBinSh for details). As
>> I am not an expert on shells, my guess is that the above construct is a
>> "bashism" and not compliant to /bin/sh.
> 
> Good catch...
> 
>> There are two trivial solutions to this problem:
>>
>> (a) Add a line SHELL=/bin/bash somewhere in top level Makefile
>> (b) Write out each individual file's path name separately in the @rm
>> command line.
> 
> I think the above way to abbreviate long lists  of  file  names  that
> have a long common partis pretty useful to keep the code readable, so
> I tend to prefer solution (a).
> 
> But let's see what other people say...

I *LIKE* bash, so I too like (a).

Having said that, and with the disclaimer that I'm not sure it is an 
improvement, I believe the following line is a "make-ism" equivalent to 
the bash-ism (untested):

@rm -f $(foreach file, fw_printenv fw_setenv, $(obj)tools/env/$(file))

> Best regards,
> 
> Wolfgang Denk

Ditto,
gvb


More information about the U-Boot mailing list