Проблема:
У меня есть проект, который я портирую с Solaris / Lex / Yacc на Linux / Flex / Bison + Autotools.
Я сталкиваюсь со следующей проблемой, и мне интересно, если кто-нибудь там знает, как обойти это. Учитывая цель, как это (только необходимые детали включены):
bin_PROGRAMS=my_prog
my_prog_YFLAGS=-d
my_prog_SOURCES=\
main.cpp \
parser.ypp \
scanner.lpp
Automake генерирует следующие исходные файлы из lpp и ypp:
- scanner.lpp -> scanner.cpp (согласно инструкции Automake)
- parser.ypp -> my_prog -parser.cpp и my_prog -parser.h (почему?)
Попытки решения:
Использование параметров bison -b и -o для изменения имен выходных файлов. Проблема в том, что automake принимает выходные имена по умолчанию (parser.tab.c) и перемещает файлы с помощью скрипта. Если я изменю имена выходных файлов с помощью bison, сборка завершится неудачно, когда automake попытается переименовать файлы, которых там нет.
Есть какая-то опция или что-то, чего мне не хватает?