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/etcsysconfdir

prefixrootまたは、末尾を削除し、その変数がないディレクトリの代わりに/usr使用する変数を作成する必要がありますか?$(prefix)/usr

または、シンボリックリンクを作成することができます$(prefix)/etc- >末尾が含まれている$(prefix:/usr=)/etc場合?prefix/usr

答え1

はい、次を上書きする必要がありますsysconfdir

make prefix=/usr sysconfdir=/etc

関連情報