매뉴얼 페이지를 어떻게 설치해야 합니까?

매뉴얼 페이지를 어떻게 설치해야 합니까?

/usr/local사용자 정의 유틸리티를 배포할 때 일반적으로 기본적으로 바이너리를 설치하는 makefile을 작성합니다.

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

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

로컬 바이너리에 대한 경로는 플랫폼 전체에서 상당히 표준이지만, 사람 경로는 그렇지 않습니다.

  • 리눅스: /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는 완벽하지는 않지만 일반적으로 바퀴를 재발명하는 것보다 낫습니다.

관련 정보