2013-02-21 26 views
20

我使用autotools託管在GitHub上的庫。而不是使用普通的README文本文件,我想使用README.md使用自動工具與README.md

當運行automake,我收到以下錯誤

Makefile.am: required file `./README' not found 

是否可以告訴自動工具不檢查README

回答

27

只需將foreign選項傳遞給automake即可。這告訴它你的軟件不符合典型的GNU標準,因此省略README不是錯誤。通常,這是在做configure.ac

AM_INIT_AUTOMAKE([foreign]) 

,但它也可以通過在Makefile.am分配AUTOMAKE_OPTIONS完成:

AUTOMAKE_OPTIONS = foreign 
+1

太棒了,謝謝。請注意,其他人需要在更改'configure.ac'後運行'autoreconf'。 – 2013-02-22 00:01:46

4

爲什麼要求在已經有README文件時不要查找自己的README文件?它恰好處於降價格式並保存爲README.md。如果您希望自述文件與您的README.md文件相同,爲何不鏈接到它?

在命令行:

ln -s README.md README 

這樣,你要保持你的README.md文件並使用仍然能夠使用標準的命名約定工作的任何工具。順便說一句,autotools很可能允許您爲自述指定一個自定義路徑。

+4

我當然不想要這個。這只是令人困惑。 – 2013-02-21 23:54:24

7

我們使用

README: README.md 
     fgrep -v "[Build Status]" $< \ 
       | markdown \ 
       | html2text -style pretty -nobs \ 
       | sed -e 's:&gt;:>:g' \ 
       > [email protected] 

用於生成文本自述文件README.md

+0

謝謝!但爲什麼這麼複雜?不會 自述文件:README.md cat $ < > $ @。tmp 嗎? :) – Ax3l 2016-07-27 16:39:55

0

簡單解決方案,基於pn fceller的回答:唯一需要的是README的構建規則,其格式爲makefile.am。這條規則甚至可以是空的。所以只需添加下面一行到你的makefile.am

README: README.md 

這一切,現在的automake不抱怨了,而且你不需要申報項目爲foreign

這是不需要的,但我更喜歡一個更完整的規則,我添加到makefile.am

README: README.md 
    pandoc -f markdown -t plain --wrap=none $< -o [email protected] 

CLEANFILES = README 

不過,即使這個規則,README未建,除非你明確要求make README