Hi, The rule for generating a file with a C++ source extension from a lex ".ll" file isn't correct for the case when someone enables C++ scanner support in GNU Flex. For example, specifying a file "lexer.ll" in the "foo_SOURCES" variable of a given program "foo" causes the following rule to be generated:
.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. 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? Thanks, -Ossama -- Ossama Othman <ossama @ dre . vanderbilt . edu> 1024D/F7A394A8 - 84ED AA0B 1203 99E4 1068 70E6 5EB7 5E71 F7A3 94A8