2012-04-15 22 views
1

我有一個腳本可以生成前面未知數字和名稱的C++源文件,然後需要將它們編譯到一個庫中。到目前爲止,我在Makefile中做一個簡單的(殼)for循環:使用automake構建的源代碼數量未知

compile: 
     for f in `ls -1 *.cpp` ; do g++ -c ... 
     ... 

會有目錄中沒有其他的C++源代碼,所以我只是編譯一切的存在。

現在我想將我的構建系統更改爲autoconf/automake,我想知道這樣做的「正確」方式是什麼。我發現的教程僅涵蓋了知道將生成的源的數量和名稱的情況。

是否有,例如,訪問編譯器名稱和autoconf/automake爲我放置的所有標誌,以便我可以將它們插入到我自己的編譯命令中?

在此先感謝。

回答

2

我會改變腳本生成一個Makefile.am顯式列出所有這些文件。

+0

,但我已經有一個Makefile.am這是負責運行該腳本並生成源。該腳本依賴於其他輸入文件,並且需要在其更改時重新運行。 (我想我應該提到這一點。) – 2012-04-16 18:04:02

0

所以,你有這樣的:

FOO_SCRIPT=script.sh 
libfoo_la_SOURCES=foo.cpp bar.cpp baz.cpp 

foo.cpp : foo.input 
     $(FOO_SCRIPT) $< 

bar.cpp baz.cpp : bar.input 
     $(FOO_SCRIPT) $< 
0
SRC= $(wildcard *.cpp) 
OBJ= $(SRC:.cpp=.o) 
[...] 
target: $(OBJ)