Como as páginas man devem ser instaladas?

7

Ao distribuir um utilitário personalizado, normalmente gravarei um makefile que instala binários em /usr/local por padrão

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

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

O caminho para os binários locais é bastante padrão em diferentes plataformas, mas o caminho do homem não é

  • Linux: /usr/local/share/man ou /usr/local/man
  • MacOS - /usr/local/share/man
  • BSD: /usr/local/man

Existe uma maneira portátil de escrever este makefile? Não parece razoável esperar que os usuários definam MANPREFIX para o caminho correto antes de instalar.

EDITAR:

O BSD faz a designação de suporte de um comando shell usando != , que pode ser usado para testar se existe um caminho

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

Este é um novo novo recurso para o GNU make , então é provável que não portátil ainda. Isso funciona no GNU make, mas não no BSD make:

MANPREFIX ?= $(shell [ -d ${PREFIX}/share/man ] && echo ${PREFIX}/share/man || echo ${PREFIX}/man)
    
por eradman 09.04.2013 / 05:39

1 resposta

4

A resposta do livro didático é usar autoconf . Encontrar os diretórios de instalação corretos em todas as plataformas é parte de seu trabalho.

Autoconf não é perfeito, mas muitas vezes é melhor do que reinventar a roda.

    
por 10.04.2013 / 02:52

Tags