在 Makefile.am 中我们有:
bin_PROGRAMS = sample
sample_SOURCES = main.cpp
sampleconfdir = $(sysconfdir)/sample
sampleconf_DATA = sample.cfg
每当我使用安装应用程序时make install
,文件sample.cfg就会被覆盖。如果文件已经存在,如何告诉 automake 跳过复制?
答案1
软件安装示例配置并让用户复制和修改此配置以用于实际安装是相当常见的。我所说的“用户”是指任何人安装软件,无论是本地管理员(root)在系统范围内安装软件,还是非特权用户在其$HOME
某处安装软件。
例如,可以安装示例配置文件
- in 或 under
sysconfdir
,但具有修改后的文件名(例如带有后缀.example
)。 - 是一个单独的
examples
目录docdir
。
然后,该INSTALL
文档将指导用户复制和修改这些示例以满足他们的需要。
这样做的好处是安装新版本软件的用户将获得配置文件的最新示例。然后,如果需要,他们可以根据新文件更新其实际配置。
避免安装新的配置文件,以及不是安装示例时,当配置的语法或其任何设置发生更改时,用户可能会处于困惑状态,因为他们不知道文件应该是什么样子(除非实用程序手册中明确提到了这一点)升级说明)。