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