At 2004-05-25T15:44:51+01:00, Matthew Seaman wrote:
> > Is there an analogue in BSD `make' of the `call' function in `gmake':
> > $(call VARIABLE,PARAM,PARAM,...)?
>
> Not as such. You can however use the '!=' operator to assign a value
> to a variable based on the output of some external command:
>
> RATIO != sh -c 'echo $$(( $a / $b ))'
Hi Matthew,
Thanks for your reply. After writing to the list yesterday, I read
make(1) carefully, and found what I wanted, namely the shell command
for creating `dir1' in this example `Makefile':
### Makefile
## Create directory FOO if it does not exist.
create_dir = if test ! -d foo ; then rm -f foo ; mkdir foo ; fi
dir1: src1
$(create_dir:S/foo/$@/g)
dir2: src2
$(create_dir:foo=$@)
### Makefile ends here
However, I don't understand something. The command for `dir1' works
perfectly well:
% make dir1
if test ! -d dir1 ; then rm -f dir1 ; mkdir dir1 ; fi
(`dir1' created)
OTOH, the command for `dir2' does not work --- `make' is not expanding
the local variable `@':
% make dir2
if test ! -d $@ ; then rm -f $@ ; mkdir $@ ; fi
(`dir2' not created)
Can someone tell me why this is happening?
Thanks,
Raghavendra.
--
N. Raghavendra <[EMAIL PROTECTED]> | See mail headers for contact
Harish-Chandra Research Institute | and OpenPGP details.
_______________________________________________
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"