2009-07-22 70 views
0

我有一個非常複雜的(C++)項目使用autoconf/automake,其中包括一些「生成」文件(foo.yy - > foo.cc)。實際構建是在各種平臺上使用「控制腳本」(熟悉這個概念的人員使用Gentoo .ebuild)完成的。將生成的文件添加到分發的最佳方法?

現在,其中一個目標平臺不能正確支持foo.yy - > foo.cc步驟,並且必須使用Linux機器上生成的foo.cc文件。

現在我有兩個途徑去了解這一點:

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做時間戳檢查/可理解的錯誤消息?

回答

0

從Automake的手冊8.8:

通過‘ ’ YACC(或‘ ’法)生成的中間文件將被包括在由任何發行 。這樣用戶不需要 需要‘ yacc ’或‘ lex ’。

這使得它聽起來好像你描述的問題不應該存在。

+0

如果您執行「make dist」,然後將* that *分配給目標並從分發構建包。但是在這種情況下,並不是這樣做的,二進制文件是直接從CVS中構建的... 查看編輯的問題 - 這對我個人來說已經不是問題了。 – DevSolar 2009-07-28 11:56:39

相關問題