automake
[Top][All Lists]
Advanced

[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

[snip]

> .ll.cc:
>       $(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 lexer.cc
>       flex   lexer.ll
>       sed '/^#/ s|lex.yy\.c|lexer.cc|' lex.yy.c >lexer.cc
>       sed: can't read lex.yy.c: No such file or directory
>       make: *** [lexer.cc] Error 2
> 
> `lex.yy.c' doesn't exist, but 'lex.yy.cc' 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
flex.

Take care,
     Dale
-- 
Dale E. Martin, Clifton Labs, Inc.
Senior Computer Engineer
address@hidden
http://www.cliftonlabs.com
pgp key available




reply via email to

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