2013-02-23 2 views
0

저는 Makefile을 처음 접했습니다. 나는 make clean의 표준 의미론을 확신 할 수 없다. 다음 중 올바른 것은? `make clean`은 서브 모듈과 써드 파티 패키지를 제거해야합니까?

  • make clean

    저장소에서 다른 파일에서 만들어진 모든 파일을 제거해야합니다. 예를 들어 :

    clean: 
        @rm -rf dist 
    
  • make clean 저장소에 다른 파일에서 만들어진 모든 파일을 제거해야합니다, 또는 어떤 make setup에 의해 추가되었다. 예를 들어 : 서로

    clean: 
        @rm -rf dist 
        @rm -rf node_modules # remove npm packages installed by `setup` 
    

건물 하나의 파일은 일반적으로 인터넷 연결이 필요하지 않지만, 타사 종속성을 가져 오는 것은 종종한다. 따라서 make cleanmake setup으로 설치된 타사 종속성을 제거하면 안됩니다. 그러나 타사 종속성의 소스를 수정 한 경우 이러한 변경 사항을 날려 버리는 것은 정확히 make clean이 수행 할 것으로 기대하는 것입니다.

다른 방법으로 말하면 make clean "실행 취소"make, 또는 make setup && make을 실행 취소해야합니까?

답변

1

일반적으로 귀하의 make clean이하는 것은 귀하에게 달려 있습니다. 인용 한 규칙은 규칙 일뿐입니다.

그러나, make clean를 호출하는 이유에 기본적으로 :

  • 무료 가능한 디스크 공간만큼, 모든 것이 완료 후.
  • 예기치 못한 일 (예 : 타임 스탬프)이 있고 증분 빌드가 더 이상 작동하지 않는 경우 다시 시작할 수 있습니다.

첫 번째 경우에 대해서는 "모든 것이 완료되었습니다"의 의미에 따라 두 가지 대안 모두 정당화 될 수 있습니다. 그러나 설치를 다시 (모든) 수행하려면 make uninstall을 선호합니다.

+0

나는'make uninstall'을'make setup '을 취소하고,'make clean'을 남긴 채'make'를 취소하는 것을 좋아합니다. – davidchambers

관련 문제