如何在Makefile中正确定义sysconfdir?

如何在Makefile中正确定义sysconfdir?

https://www.gnu.org/software/make/manual/html_node/Directory-Variables.html

它表明你应该写这样的东西:

prefix=/usr/local
exec_prefix=$(prefix)
bindir=$(exec_prefix)/bin
sysconfdir=$(prefix)/etc

那么当你使用make prefix="/usr"它时就会正确产生bindir=/usr/bin.

但这样也会产生sysconfdir=/usr/etc错误。

我应该如何sysconfdir正确定义(以便得到/usr/local/etc/etc)?我还应该sysconfdir在命令行中覆盖吗?

或者也许我应该创建一个prefixroot变量,在其中删除尾随/usr并使用它而不是$(prefix)不在中的目录/usr

或者也许创建一个符号链接$(prefix)/etc->$(prefix:/usr=)/etc如果prefix包含尾随/usr

答案1

是的,你应该覆盖sysconfdir

make prefix=/usr sysconfdir=/etc

相关内容