【问题标题】:automake: process a configuration fileautomake:处理一个配置文件
【发布时间】:2014-01-03 00:13:54
【问题描述】:

我想知道如何处理数据模板以便正确安装配置文件 相应地“进行 distcheck”。

例如,我尝试了几种类似的方法,但模板(此处为 rsyslog.conf)最终由“make install”安装,或者它因“make distcheck”而泄漏。

以下内容基于此线程: Install data directory tree with massive number of files using automake

rsyslogdir = $(sysconfdir)/rsyslog.d
dist_rsyslog_DATA = $(name).conf

install-data-hook: rsyslog.conf
    cp rsyslog.conf $(name)$.conf
    sed $(rsyslogdir)$(name).conf -i -e \
        "s!TEMPLATE!$(name)!"

我是否必须像处理源文件一样处理我的模板文件,即使它涉及配置文件?

感谢您的建议。

【问题讨论】:

  • sed 的-i 选项是非标准的。在 Makefile.am 中使用它不是一个好主意。
  • "要么模板最终由 'make install' 安装,要么因 'make distcheck' 而泄露"。选择通过“make install”安装它的版本,你就完成了。但是我认为您是说,当您获得安装的版本时,它也会导致 distcheck 错误,在这种情况下,您需要卸载挂钩来删除文件。

标签: automake rsyslog


【解决方案1】:

所以,我继续我的第一次尝试,它终于奏效了。 谢谢威廉。

EXTRA_DIST = rsyslog.conf

rsyslogdir = $(sysconfdir)/rsyslog.d
dist_rsyslog_DATA = $(name).conf

$(name).conf: rsyslog.conf
    sed rsyslog.conf \
        -e "s!TEMPLATE!$(name)!" \
        > $@

clean-local:
    rm -f $(name).conf

【讨论】:

    猜你喜欢
    • 2015-01-17
    • 2011-11-03
    • 2013-11-07
    • 2017-12-28
    • 2011-08-23
    • 2018-03-05
    • 2010-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多