매뉴얼 페이지 생성 및 설치를 방지하는 방법은 무엇입니까?

매뉴얼 페이지 생성 및 설치를 방지하는 방법은 무엇입니까?

컨텍스트: Windows의 CygWin에서 OpenLDAP를 컴파일하고 있습니다.

나는 매뉴얼 페이지(그리고 아마도 다른 문서, 나는 컴파일을 완료하는 데 집중하고 있습니다)에 관심이 없기 때문에 그것들을 온라인으로 얻을 수 있기 때문에 구성 및/또는 make가 해당 세대(또는 적어도 해당 세대)를 건너뛰도록 어떻게 알릴 수 있습니까? ) 설치하다)?

답변1

실행하기 전에 변수 에서 제거 하려면 프로젝트 루트에서 편집하세요 ./configure. 이로 인해 빌드 및 설치 중에 하위 디렉터리의 모든 내용이 무시 됩니다 .Makefile.indocSUBDIRSdoc

sed -i '/SUBDIRS/s/doc//' Makefile.in

답변2

make 파일을 보면 시작 부분에 공백이 없는 일련의 규칙이 표시되어야 합니다. 여러분에게 익숙한 규칙은 install일반적으로 make 파일의 맨 아래에 배치되지만 다른 규칙도 더 많이 있는 경우가 많습니다. 매뉴얼 페이지 소스 파일(보통 한 자리 파일 확장자를 가짐) 또는 특정 문서 디렉토리를 참조하는 규칙을 찾으십시오. 일단 찾으면 세 가지 옵션이 있습니다. 1) 해당 명령을 제거하여 빈 규칙으로 만들거나(즉, 뒤에 공백으로 시작하는 줄), 2) 이에 대한 참조를 제거합니다(예: 다른 규칙 참조). 이름이 있는 규칙을 검색하거나 3) 해당 규칙을 적용하지 않는 기존 설치 규칙을 찾습니다.

실제 makefile에서 발췌한 내용을 사용하여 예를 들어 보겠습니다.

default: all

all: lisp info

info:
    cd doc && $(MAKE) EMACS="$(EMACS)"

install: install-lisp install-info

install-lisp: lisp
    @$(SHELL) $(srcdir)/mkinstalldirs "$(DESTDIR)$(lispdir)";\

install-info: info
    @echo "cd doc && $(MAKE) EMACS=\"$(EMACS)\" 

dist: Makefile foo.elc
    $(MAKE) tarball \

clean:
    -rm -rf $(PACKAGE)* ;\

distclean: clean
    -rm -f config.log config.status config.cache Makefile 

위의 예에서 다음 줄을 제거 info:하여 install-info:빈 규칙으로 만들거나 규칙 install-info에서 install단어(로 시작하는 줄 install:) 를 제거하는 것이 더 좋습니다.

이제 세 번째(가장 좋은) 옵션에 대해 예제 파일을 다시 살펴보세요. 명령이 있다는 것을 알 install-lisp수 있습니다. 문서 설치를 제외한 모든 작업을 수행하는 것을 볼 수 있습니다. install두 명령 명령의 유일한 작업이기 때문입니다. 따라서 이 예에서는 실제로 make install아무것도 변경할 필요가 없으며 make install-lisp. make 파일도 비슷한 옵션을 제공할 수 있습니다. 확인해 보지 않고서는 알 수 없습니다.

마지막으로 하기 싫으면 어떻게 하나요 make install? 아마도 당신은 그냥 평범한 쇼를 하고 싶을 수도 있습니다 make. 이렇게 하려면 default;라는 규칙을 찾으세요. 이는 make특정 명령 없이 호출될 때 사용되는 규칙이 됩니다 . 내 예에서는 default규칙이 이라는 또 다른 규칙을 가리키고 해당 규칙이 및 이라는 all두 가지 다른 규칙을 호출하는 것을 볼 수 있습니다 . 예제를 붙여넣을 때 간결성을 위해 대부분의 줄을 잘라서 규칙의 텍스트 는 여기에 없지만 명령이 아닌 명령을 사용하려는 것이 분명하므로 그냥 실행하면 됩니다 .lispinfolispinfomake lisp

관련 정보