On Nov 20, 2007, at 4:01 PM, Bakul Shah wrote:

Don't laugh but I am trying to use identical mkfiles on
FreeBSD & plan9 for some programs and it seems this is
impossible.

Consider a simple mkfile like this:

all:
        for (i in a b c)
                echo $i

9 mk fails with
Syntax error: Bad for loop variable
mk:    ...  : exit status=exit(2)

On rereading the p9p mk man page I discover MKSHELL.  So next
I add MKSHELL=... line at top of the above mkfile and now it
works.  Since I want most mkfiles to be portable, I add this
line in a mkfile included with < but it uses its own copy of
MKSHELL.  So then I tried

MKSHELL=$PLAN9/bin/rc 9 mk

but that doesn't help either.  Change mkfile to this now

MKSHELL=$PLAN9/bin/rc
FOO=fum
all:
        for (i in a b c)
                echo $i $MKSHELL $FOO

But echo shows "a sh fum" etc. which is rather surprising.

Rather than try this hard to please sh users, would it make
sense to just use rc?  After all this is *plan9* mk!  To be
nice mk can pay attention to MKSHELL env. variable but that's
about it.  Even as a non-unix-hater I'd be perfectly happy
with that!

-- bakul

/sys/doc/mk.ps: read section 5 on variables. It might help :-)

Reply via email to