답변:
Makefile이 이해하는 것처럼 빌드는 많은 대상으로 구성됩니다. 예를 들어 프로젝트를 빌드하려면 다음이 필요할 수 있습니다.
makefile을 사용하여이 워크 플로를 구현 한 경우 각 대상을 개별적으로 만들 수 있습니다. 예를 들어,
make file1.o
필요한 경우에만 해당 파일을 빌드합니다.
의 이름은 all
고정되어 있지 않습니다. 그것은 단지 일반적인 이름 일뿐입니다. all
target은 호출하면 make가 완전한 빌드를 만드는 데 필요한 모든 것을 빌드 함을 나타냅니다 . 이것은 일반적으로 파일을 생성하지 않고 다른 파일에 의존하는 더미 타겟입니다. 위의 예에서 필요한 모든 빌드는 실행 파일을 빌드하고 다른 파일은 종속성으로 가져옵니다. 따라서 makefile에서 다음과 같이 보입니다.
all: executable1 executable2
all
target은 일반적으로 makefile에서 첫 번째입니다 make
. 대상을 지정하지 않고 명령 줄에 작성 하면 첫 번째 대상이 빌드되기 때문입니다. 그리고 당신은 그것이 될 것으로 기대합니다 all
.
all
일반적으로 .PHONY
대상 이기도합니다 . 여기에서 자세히 알아보십시오 .
GNU 제조사의 설명서에 대한 명확한 정의를 제공 all
그것의 표준 대상의 목록 .
Makefile의 작성자가 해당 규칙을 따르는 경우 대상은 다음을 수행 all
해야합니다.
make
에서와 마찬가지로 make all
.1을 달성하려면 all
일반적으로 .PHONY
전체 프로그램을 구성하는 실행 파일에 의존 하는 대상 으로 정의됩니다 .
.PHONY : all
all : executable
2를 달성하려면 all
make 파일에 정의 된 첫 번째 대상이되거나 기본 목표로 지정되어야합니다.
.DEFAULT_GOAL := all
대상 "all"은 더미 대상의 예입니다. 디스크에는 "all"이라는 이름이 없습니다. 즉, "make all"을 수행 할 때 make는 항상 빌드해야한다고 생각하고 해당 대상에 대한 모든 명령을 실행합니다. 이러한 명령은 일반적으로 makefile이 알고있는 모든 최종 제품을 빌드하는 명령이지만 모든 작업을 수행 할 수 있습니다.
더미 대상의 다른 예는 "clean"및 "install"이며 동일한 방식으로 작동합니다.
아직 읽지 않았다면 훌륭한 튜토리얼이기도 한 GNU Make Manual을 읽어야합니다 .