On Thu, 29 Aug 2002, Melvin Smith wrote:

> I can live with the warning, as long as it compiles under traditional
> lex and flex. Don't waste too much effort polishing imcc since it will be
> getting a new interface eventually and might even be rewritten to self-host
> on Parrot at some point. (Hey I'm dreaming BIG)

This is all very good.  For the moment, however, it'd be nice if we
could make the barrier to running languages/perl6 as low as possible,
which means making imcc build as portably as possible.  I'm also using
this as an excuse to learn a bit about Parrot's Configure mechanism.

Alas, I've hit another snag, this one having to do with the way makefiles
are generated.

By default, traditional yacc puts its output files in y.tab.[ch].  Thus
my imcc/Makefile currently has

        $(YACC) -d -v imcc.y
        mv y.tab.c imcparser.c
        mv y.tab.h imcparser.h

That's no problem, and works with YACC='yacc', 'bison -y', or 'byacc'.
However, the intermediate filename 'y.tab.c' isn't necessarily portable,
if I remember my Windows and VMS lore correctly.  However, those platforms
probably have bison, which understands the simpler -o imcparser.c output
option.

Thus what I'd really like to do here is generate two different makefile
fragments, depending on whether or not the user is using bison or (yacc or
byacc). With the current substitution-driven makefile.in system, it's not
obvious to me how best to do that.  Anyone have any suggestions?

-- 
    Andy Dougherty              [EMAIL PROTECTED]
    Dept. of Physics
    Lafayette College, Easton PA 18042

Reply via email to