[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: lex rule doesn't work when enabling C++ scanner with GNU Flex

From: Dale E Martin
Subject: Re: lex rule doesn't work when enabling C++ scanner with GNU Flex
Date: Mon, 5 Jul 2004 13:40:27 -0400
User-agent: Mutt/1.5.4i


>       $(LEXCOMPILE) $<
>       sed '/^#/ s|$(LEX_OUTPUT_ROOT)\.c|$@|' $(LEX_OUTPUT_ROOT).c >$@
>       rm -f $(LEX_OUTPUT_ROOT).c
> This rule assumes that $(LEX) will always generate a file with a `.c'
> extension.  This assumption doesn't hold for GNU flex C++ scanners that
> are enabled by specifying the "%option c++" option in the GNU flex input
> file or by using the "-+" command line option.  In those cases, the
> generated scanner will have a ".cc" extension.  For example:
>       $ make
>       flex   lexer.ll
>       sed '/^#/ s|lex.yy\.c||' lex.yy.c >
>       sed: can't read lex.yy.c: No such file or directory
>       make: *** [] Error 2
> `lex.yy.c' doesn't exist, but '' does exist.

I have seen this problem as well.
> Would it be possible for Automake to tweak the lex rule if "%option c++"
> is found in the lex source/input file, or if the "-+" flag is found in
> the $(AM_LFLAGS) make variable?

The documentation indicates that this feature is supposed to already exist
(I assume that this behaviour is a regression of some sort.)  In fact, I
assumed it would also turn on the "-+" flag for me given the way it
currently reads.  As it stands I had to supply my own rules for running

Take care,
Dale E. Martin, Clifton Labs, Inc.
Senior Computer Engineer
pgp key available

reply via email to

[Prev in Thread] Current Thread [Next in Thread]