应该如何安装手册页?

应该如何安装手册页?

/usr/local分发自定义实用程序时,我通常会编写一个默认安装二进制文件的 makefile

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

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

本地二进制文件的路径在不同平台上是相当标准的,但 man 路径却不是

  • Linux:/usr/local/share/man/usr/local/man
  • 苹果系统 -/usr/local/share/man
  • BSD:/usr/local/man

有没有一种可移植的方式来编写这个makefile?期望用户在安装之前将 MANPREFIX 设置为正确的路径似乎不合理。

编辑:

BSD make 支持使用 指定 shell 命令!=,可用于测试路径是否存在

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

这是一个GNU make 的新功能,所以它可能还不能移植。这适用于 GNU make,但不适用于 BSD make:

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

答案1

教科书的答案是使用自动配置。在每个平台上找到正确的安装目录是其工作的一部分。

Autoconf 并不完美,但它通常比重新发明轮子要好。

相关内容