マニュアルページのインストール方法は?

マニュアルページのインストール方法は?

/usr/localカスタムユーティリティを展開するときは、通常、デフォルトでバイナリをインストールするmakefileを作成します。

PREFIX ?= /usr/local
MANPREFIX ?= ${PREFIX}/man

install:
    install utility ${PREFIX}/bin/
    install utility.1 ${MANPREFIX}/man1/

ローカルバイナリへのパスはプラットフォーム全体でかなり標準ですが、人のパスはそうではありません。

  • Linux:/usr/local/share/manまたは/usr/local/man
  • アップルシステム -/usr/local/share/man
  • BSD:/usr/local/man

このmakefileを書く移植可能な方法はありますか?ユーザーがインストール前にMANPREFIXを正しいパスに設定することを期待するのは無理のようです。

編集する:

!=BSD makeは、パスが存在するかどうかをテストするために使用できる指定されたシェルコマンドの使用をサポートします。

SHARE != [ -d ${PREFIX}/share/man ] && echo /share || true
MANPREFIX ?= ${PREFIX}${SHARE}/man

これはGNUの新機能したがって、まだ移植可能ではない可能性があります。これはGNU makeでは機能しますが、BSD makeでは機能しません。

MANPREFIX ?= $(shell [ -d ${PREFIX}/share/man ] && echo ${PREFIX}/share/man || echo ${PREFIX}/man)

答え1

教科書の答えは次のとおりです。自動設定。各プラットフォームで正しいインストールディレクトリを見つけることはタスクの一部です。

Autoconfは完璧ではありませんが、通常は車輪を再発明するよりも優れています。

関連情報