【问题标题】:Use autotools with README.md使用带有 README.md 的自动工具
【发布时间】:2013-02-21 22:44:20
【问题描述】:

我正在为托管在 GitHub 上的库使用自动工具。我不想使用普通的README 文本文件,而是使用README.md

运行automake时,出现以下错误

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

是否可以告诉 autotools 不要检查 README

【问题讨论】:

    标签: c github autotools


    【解决方案1】:

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

    AM_INIT_AUTOMAKE([foreign])
    

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

    AUTOMAKE_OPTIONS = foreign
    

    【讨论】:

    • 太棒了,谢谢。其他人请注意,更改configure.ac后需要运行autoreconf
    【解决方案2】:

    我们正在使用

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

    从 markdown README.md 生成一个文本 README

    【讨论】:

    • 谢谢!但为什么这么复杂? README: README.md cat $ $@.tmp 不行吗? :)
    【解决方案3】:

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

    README: README.md
    

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

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

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

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

    【讨论】:

      【解决方案4】:

      既然你已经有了一个 README 文件,为什么还要让它不去寻找你的 README 文件呢?它恰好是降价格式并保存为 README.md。如果您希望您的 README 文件与您的 README.md 文件相同,为什么不链接到它?

      从命令行:

      ln -s README.md README
      

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

      【讨论】:

        猜你喜欢
        • 2013-06-08
        • 1970-01-01
        • 1970-01-01
        • 2018-06-21
        • 1970-01-01
        • 1970-01-01
        • 2015-07-04
        • 2016-06-26
        • 1970-01-01
        相关资源
        最近更新 更多