2013-08-01 15 views
0

根據Automake版本的不同,我希望在我的AM_INIT_AUTOMAKE中的AM_INIT_AUTOMAKE中選擇性省略某些標誌,具體取決於Automake版本。有沒有辦法做到這一點?如何在configure.ac中處理Automake的多個版本

我處理的具體問題是,Automake的1.12引入了一些便攜性相關的警告(-Wextra-portability-Wportability),我想停用(因爲我用-Wall-Werror所以我不能只是忽略不相干警告):

AM_INIT_AUTOMAKE([-Wall -Werror -Wno-extra-portability -Wno-portability gnu foreign]) 

這工作正常Automake的1.12,但早期版本的Automake的錯誤,因爲他們不知道這些標誌。如果我們使用Automake> = 1.12運行,是否有辦法只包含這些標誌?

我嘗試使用m4_version_compare但沒有工作(再加上我不認爲這真的連有意義的使用,因爲它會檢查Autoconf的版本,而不是Automake的版本...)

Here「 SA解決這一涉及autogen.sh修補configure.ac類似的問題,我想避免...

+0

您可以將最新的automake組件與自包含的構建系統的包一起分發 - 這是autotools的要點:automake [--foreign] --add-missing --force-missing --copy ' –

回答

2

簡單的答案是否定的,你不能做乾淨,在automake的。如果你想要類似的東西,你必須在引導腳本(autogen.sh)中修補configure.ac

更容易,只需要automake 1.12。

的問題是,要比較automake的版本號(寫configuream__api_version)是M4sugar層提供。如果沒有這些信息,就很難修復以前版本的automake。

編輯:我想到了不用修補configure.ac使用autogen.sh做同樣的事情的方式不同的方式,但最終的結果是一樣的。 make dist tarball將仍然有一個基於構建tarball的人的automake版本的automake選項。但實際上,這與僅設置具有選項的automake版本沒有什麼不同。

相關問題