将自动工具与README.md一起使用

时间:2013-02-21 22:44:21

标签: c github autotools

我正在为GitHub上托管的库使用autotools。我想使用README

,而不是使用普通的README.md文本文件

运行automake时,出现以下错误

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

是否可以告诉autotools不检查README

4 个答案:

答案 0 :(得分:27)

只需将foreign选项传递给automake即可。这告诉它您的软件不符合典型的gnu标准,因此省略README不是错误。通常,这是在configure.ac

中完成的
AM_INIT_AUTOMAKE([foreign])

但也可以通过在Makefile.am中分配AUTOMAKE_OPTIONS来完成:

AUTOMAKE_OPTIONS = foreign

答案 1 :(得分:7)

我们正在使用

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

从markdown README.md生成文本README

答案 2 :(得分:4)

为什么要求它在您已经拥有README文件时不要查找?它恰好采用降价格式并保存为README.md。如果您希望自己的README文件与README.md文件相同,为什么不链接到它?

从命令行:

ln -s README.md README

这样,您可以保留README.md文件,并且您使用的任何工具仍然可以使用标准命名约定。顺便说一句,autotools很可能允许您为自述文件指定自定义路径。

答案 3 :(得分:2)

简单解决方案,基于pn fceller的回答:唯一需要的是READMEmakefile.am的构建规则。这条规则甚至可以是空的。所以只需将以下行添加到makefile.am

README: README.md

总而言之,现在automake不再抱怨了,您也不需要将项目声明为foreign

不需要,但我更喜欢更完整的规则,我添加到makefile.am

README: README.md
    pandoc -f markdown -t plain --wrap=none $< -o $@

CLEANFILES = README

但即使使用此规则,除非您明确调用README,否则不会构建make README