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

Jas*_*els 23 c github autotools

我正在为GitHub上托管的库使用autotools.README我想使用而不是使用普通的文本文件README.md.

运行时automake,我收到以下错误

Makefile.am: required file `./README' not found
Run Code Online (Sandbox Code Playgroud)

是否有可能告诉autotools不检查README

Wil*_*ell 29

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

AM_INIT_AUTOMAKE([foreign])
Run Code Online (Sandbox Code Playgroud)

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

AUTOMAKE_OPTIONS = foreign
Run Code Online (Sandbox Code Playgroud)


fce*_*ler 7

我们正在使用

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

从markdown README.md生成文本README


Mar*_*lin 6

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

README: README.md
Run Code Online (Sandbox Code Playgroud)

就是这样,现在 automake 不再抱怨了,您也不需要将您的项目声明为foreign.

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

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

CLEANFILES = README
Run Code Online (Sandbox Code Playgroud)

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


dea*_*eau 5

如果已经拥有一个自述文件,为什么要不要查找它呢?它恰好是markdown格式并保存为README.md。如果您希望自述文件与README.md文件相同,为什么不链接至该文件?

在命令行中:

ln -s README.md README
Run Code Online (Sandbox Code Playgroud)

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

  • 我当然不想要这个。只是令人困惑。 (4认同)