컨텍스트: Windows의 CygWin에서 OpenLDAP를 컴파일하고 있습니다.
나는 매뉴얼 페이지(그리고 아마도 다른 문서, 나는 컴파일을 완료하는 데 집중하고 있습니다)에 관심이 없기 때문에 그것들을 온라인으로 얻을 수 있기 때문에 구성 및/또는 make가 해당 세대(또는 적어도 해당 세대)를 건너뛰도록 어떻게 알릴 수 있습니까? ) 설치하다)?
답변1
실행하기 전에 변수 에서 제거 하려면 프로젝트 루트에서 편집하세요 ./configure
. 이로 인해 빌드 및 설치 중에 하위 디렉터리의 모든 내용이 무시 됩니다 .Makefile.in
doc
SUBDIRS
doc
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
두 가지 다른 규칙을 호출하는 것을 볼 수 있습니다 . 예제를 붙여넣을 때 간결성을 위해 대부분의 줄을 잘라서 규칙의 텍스트 는 여기에 없지만 명령이 아닌 명령을 사용하려는 것이 분명하므로 그냥 실행하면 됩니다 .lisp
info
lisp
info
make lisp