Лучший способ добавить сгенерированные файлы в дистрибутив?

StackOverflow https://stackoverflow.com/questions/1164189

Вопрос

У меня есть довольно сложный проект (C ++), использующий autoconf / automake, который включает в себя некоторые "сгенерированные" файлы (foo.yy -> foo.cc).Фактические сборки выполняются с использованием "управляющего скрипта" (Gentoo .ebuild для тех, кто знаком с концепцией) на различных платформах.

Теперь одна из целевых платформ должным образом не поддерживает foo.yy -> foo.cc шаг и должна использовать foo.cc файл, созданный в Linux box.

Теперь у меня есть два способа сделать это:

1) Зарегистрируйтесь foo.cc в репозитории проекта и каким-либо образом исправьте configure.in (или что угодно), чтобы включить проверку метки времени в foo.yy / foo.cc , генерируя понятное сообщение об ошибке, если выполняется на рассматриваемом целевом объекте с устаревшим foo.cc;

2) Выполните проверку foo.cc в хранилище управляющих скриптов, установите временные метки для управления скриптами и выдайте сообщение об ошибке.

Я мог бы сделать 2) без проблем, но я не думаю, что это подходящее место для размещения foo.cc.

С другой стороны, я мало что знаю об autoconf / automake и не знал бы, как реализовать проверку метки времени / сообщение об ошибке в configure.in (или где бы то ни было).

Каковы ваши предложения, и знает ли кто-нибудь из присутствующих, как приступить к решению 1)?

Редактировать: Решается с помощью решения 3), настраивая проблемный целевой блок до тех пор, пока он не сможет выполнить foo.yy -> foo.cc сам шаг. Мой проблема решена.

Но я оставлю вопрос открытым - как выполнять проверки временных меток / понятных сообщений об ошибках с помощью autoconf / automake?

Это было полезно?

Решение

Начиная с 8.8 в руководстве Automake:

Промежуточные файлы, созданные ‘yacc’ (или ‘lex’), будут включены в любой выпускаемый дистрибутив.Таким образом, пользователю не нужно иметь ‘yacc’ или ‘lex’.

Это звучит так, как будто проблема, которую вы описываете, не должна существовать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top