2010-01-23 37 views
4

我試圖編輯一個配置腳本,它將執行這段代碼,如果它在Automake版本x.xx之上,並且如果不是,它會執行一段不同的碼。在配置腳本中檢查automake/autoconf版本

所以,我需要的版本是1.10或以上,那麼當它是這種情況我想這樣做:

m4_rename_force([glibcxx_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]) 

而且,否則:

m4_rename([glibcxx_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]) 

所以我會承擔它看起來像這樣(在configure.in):

if test GET_AUTOMAKE_VERSION >= 1.10; then 
    m4_rename_force([glibcxx_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]) 
else 
    m4_rename([glibcxx_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]) 
fi 

另外,我應該檢查autoconf的Ø r automake版本?可能都是?

回答

1

對於測試autoconf版本,我認爲這樣的事情會工作。

m4_version_prereq (1.10, 
    m4_rename_force([glibcxx_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]), 
    m4_rename([glibcxx_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]) 
) 

我不知道如何爲automake做同樣的事情。

+0

似乎不起作用。沒有語法錯誤或任何東西,但它給了我通常會得到的錯誤,如果只是使用m4_rename。 –

4

在配置時檢查automake版本沒有任何意義。配置腳本在automake之後運行很久,並且可能運行在完全未安裝automake的盒子上。編寫你的configure.ac(不是configure.in)來使用現代automake。運行autoconf生成配置腳本的開發人員需要安裝現代automake。調用配置腳本的用戶根本不需要安裝任何自動工具。