Make

如何在 Makefile 中正確定義 sysconfdir?

  • October 18, 2020

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/etcor /etc)?我還應該sysconfdir在命令行中覆蓋嗎?

或者,也許我應該創建一個prefixroot變數,在其中剝離尾隨/usr並使用它而不是$(prefix)用於不在的目錄/usr

或者也許創建一個符號連結$(prefix)/etc->$(prefix:/usr=)/etc如果prefix包含尾隨/usr

是的,您應該覆蓋sysconfdir

make prefix=/usr sysconfdir=/etc

引用自:https://unix.stackexchange.com/questions/615081