왜 "make clean"과 "make mrproper"를 함께 사용합니까?

왜 "make clean"과 "make mrproper"를 함께 사용합니까?

이것이 Linux 커널에 Makefile작성된 방식 입니다.

clean - Remove most generated files but keep the config and
        enough build support to build external modules
mrproper - Remove all generated files + config + various backup files

그리고 거기에 설명이 있는데아치 문서저것

준비를 완료하려면 커널 트리가 완전히 깨끗한지 확인하세요.

$ make clean && make mrproper

그렇다면 make mrproper보다 완전한 제거가 가능한 경우 왜 이를 사용합니까 make clean?

답변1

리뷰에서 언급했듯이 청소는 세 가지 수준으로 이루어집니다.리눅스 커널 Makefile:

###
# Cleaning is done on three levels.
# make clean     Delete most generated files
#                Leave enough to build external modules
# make mrproper  Delete the current configuration, and all generated files
# make distclean Remove editor backup files, patch leftover files and the like

Makefile에 따르면 mrproper대상은 clean대상에 따라 다릅니다(참조:1421호선). 또한 distclean목표는 mrproper.

따라서 실행 make mrproper만으로 충분합니다. clean대상이 수행하는 것과 동일한 작업도 제거하기 때문입니다(그 이상은 아니더라도).

mrproper타겟은 1993년(Linux 0.97.7)에 추가되었으며 항상 이에 의존해 왔습니다 clean. 즉, 사용할 필요가 전혀 없습니다.둘 다와 같은 목표 make clean && make mrproper.

역사적 참고자료:https://archive.org/details/git-history-of-linux

답변2

cleanmrproper목표를 위한 전제조건이다파일 생성이므로 make clean단독으로 실행하는 것은 중복됩니다.

답변3

특정 명령( make clean && make mrproper)에서는 예, 의미가 없습니다(예: 모든 사각형을 삭제한 다음 모든 사각형과 모든 삼각형을 삭제한다고 말하는 것과 같습니다)... 하지만 make clean일반적으로 그보다 낫습니다 make mrproper(왜냐하면 당신이 원하는 마지막 것은 절대적으로 대부분의 커널 빌드이기 때문에 당신의 것을 폐기하기 때문입니다 .config). ... 누군가가 순전히 차이점을 상기시키기 위해 이런 방식으로 지침을 작성했을 수도 있습니다(예: 두 번째 부분이 여러분의 내용을 폐기할 것임을 상기시키기 위해 실행하는 데 익숙 하고 빌드할 수 있다면 .config지금 백업하십시오). make clean평소대로).

관련 정보