我們使用automake
& autoconf
來構建我們的多軟件包軟件。我想知道如何用例如輸出來填充一個變量。 shell腳本一次並重新使用,例如對於需要include目錄僅評估automake變量一次
INCLUDES := -I`some-ext-config --incdir`
使用的:=
代替=
這裏使這個變量填寫一次,以便將some-ext-config
只被調用一次(據我所知這是來自普通make
)。當然INCLUDES
是AM_CPPFLAGS
的折舊表弟,但是我是否會使用那個表示腳本,因此每個編譯都會調用shell腳本。
使用INCLUDES
而不是AM_CPPFLAGS
對我來說是一個可接受的解決方案(雖然我想可能存在可移植性問題),但我沒有解決方案。 LDFLAGS了libtool的庫
libmylib_la_LDFLAGS := `some-ext-config --ldflags` # will always be evaluated
裏面是什麼automake
一般的解決辦法,如果我要確保這些外部工具不能調用多次?我想遠離在configure.ac
中使用明顯的AC_SUBST
,因爲我們必須確保我們的軟件包可以從子目錄(在那裏有一些configure.ac
)和從頂級遞歸make和configure.ac
那裏生成,不需要太多瞭解不同的子項目。
嗯,我寫了,我想遠離將它放到'configure.ac'中出於某些外部原因。 – 2012-03-11 22:48:54
@honk:那麼您將不得不解決這些外部原因(例如使用'AC_CONFIG_SUBDIRS')或放棄編寫便攜式Makefiles。 – adl 2012-03-12 07:30:26
外部原因是我們希望能夠在頂層Makefile.am文件中爲子目錄Makefile添加AC_OUTPUT,但不需要在每個子目錄中調用configure,只要我們的構建)。我們只需要可移植到GNU make,我是否正確理解沒有辦法只填充一次這些automake變量? – 2012-03-12 12:11:05