make 유틸리티의 목적은 커다란 프로그램의 어떤 부분을 재 컴파일해야하는지 자동으로 결정하고, 재 컴파일하기위한 명령을 내리는 것입니다. 매뉴얼은 Richard Stallman과 Roland McGrath가 작성한 make의 GNU 구현에 대해 설명합니다. 이 예제들은 C 프로그램이 가장 보편적이기 때문에 보여 주지만 쉘 명령으로 컴파일러를 실행할 수있는 프로그래밍 언어로 make를 사용할 수 있습니다. 사실, make는 프로그램에만 국한되지 않습니다. 다른 파일이 변경 될 때마다 다른 파일에서 자동으로 업데이트해야하는 작업을 설명하는 데 사용할 수 있습니다.
노트:이 페이지는 GNU make의 문서를 추출한 것입니다. . GNU 프로젝트가 nroff를 사용하지 않기 때문에 때때로 업데이트됩니다. 현재의 문서를 보려면 Texinfo 소스 파일 make.texinfo에서 작성한 make.info 정보 파일을 참조하십시오.
make 유틸리티의 구문 및 준비
하다 -에프 메이크 파일 선택권 … 목표 …
make를 사용할 준비를하려면 프로그램의 파일 간 관계를 설명하고 각 파일을 업데이트하기위한 명령을 설명하는 makefile이라는 파일을 작성해야합니다. 일반적으로 실행 파일은 소스 파일을 컴파일하여 만들어진 오브젝트 파일에서 업데이트됩니다.
적절한 메이크 파일이 존재하면, 소스 파일을 변경할 때마다이 간단한 쉘 명령 하다 필요한 모든 재 컴파일을 수행하기에 충분합니다. make 프로그램은 makefile 데이터베이스와 파일의 마지막 수정 시간을 사용하여 어떤 파일을 업데이트해야하는지 결정합니다. 각 파일에 대해 데이터베이스에 기록 된 명령을 실행합니다.
make 유틸리티는 하나 이상의 대상 이름을 업데이트하기 위해 makefile에서 명령을 실행합니다. 이름 일반적으로 프로그램입니다. 없는 경우-에프 옵션이 있으면 make는 makefile을 찾을 것입니다GNUmakefile, 메이크 파일, 및Makefile, 그와 같은 순서로.
일반적으로 makefile 또는 Makefile 중 하나를 호출해야합니다. (Makefile을 사용하는 것이 좋습니다 디렉토리 목록의 시작 부분 근처에 눈에 띄게 나타나기 때문에 다른 중요 파일 인README) 첫 번째 이름 인 GNUmakefile은 대부분의 makefile에는 권장되지 않습니다. GNU make에 고유하고 make의 다른 버전에서 이해할 수없는 makefile을 가지고 있다면이 이름을 사용해야합니다. makefile이 -, 표준 입력이 읽 t집니다.
그만큼 하다 유틸리티는 대상이 마지막으로 수정 된 이후에 수정 된 제반 사항 파일에 따라 또는 대상이 존재하지 않는 경우 대상을 업데이트합니다.
옵션
그만큼 -비 과 -엠 옵션은 다른 버전의 make와의 호환성을 위해 무시됩니다.
-C dir makefile을 읽거나 다른 것을하기 전에 dir 디렉토리로 바뀔 것이다. 다중-기음 옵션이 지정되면 각 옵션은 이전 옵션과 관련하여 해석됩니다.-기음/ -C 등 ~에 해당합니다.-C / etc. 이것은 일반적으로 make를 재귀 적으로 호출 할 때 사용됩니다.
그만큼 -디 옵션은 일반 처리 외에 디버깅 정보를 인쇄합니다. 디버깅 정보는 어떤 파일이 다시 만들어 지는지, 어떤 파일이 비교되고 있는지, 어떤 결과와 어떤 파일이 실제로 다시 만들어 져야하는지, 묵시적 규칙이 고려되는지, 어떻게 적용되는지 등을 알려줍니다. .
그만큼 -이자형 옵션은 makefile의 변수보다 환경 우선 순위에서 취한 변수를 제공합니다.
그만큼 -에프 파일 옵션 사용 파일 makefile로.
그만큼 -나는 옵션은 파일을 다시 작성하기 위해 실행 된 명령의 모든 오류를 무시합니다.
그만큼 -나는 지시 옵션은 디렉토리를 지정합니다. 지시 포함 된 메이크 파일을 검색합니다. 몇 개-나는 옵션은 여러 디렉토리를 지정하는 데 사용되며 디렉토리는 지정된 순서로 검색됩니다. make의 다른 플래그에 대한 인수와 달리,-나는 플래그는 플래그 다음에 올 수 있습니다.- 아이어 허용되며,- 전 . 이 구문은 C 전처리 기와의 호환성을 위해 허용됩니다.-나는 깃발.
그만큼 -j jobs option은 동시에 실행할 작업 (명령)의 수를 지정합니다. 둘 이상의 경우-j 옵션을 사용하면 마지막 옵션이 효과적입니다. 만약-j 옵션이 인수없이 주어지면, make는 동시에 실행할 수있는 작업 수를 제한하지 않습니다.
그만큼 -케이 옵션은 오류 발생 후 최대한 많이 계속됩니다. 실패한 대상과 종속 된 대상은 다시 만들 수 없지만 이러한 대상의 다른 종속성은 모두 동일하게 처리 할 수 있습니다.
그만큼 -엘 과 -l로드 옵션은 실행중인 다른 작업이 있고 최소로드 평균이있는 경우 새 작업 (명령)을 시작하지 않아야 함을 지정합니다하중 (부동 소수점 숫자). 인수가 없으면 이전로드 한계가 제거됩니다.
그만큼 -엔 옵션은 실행될 명령을 인쇄하지만 실행하지는 않습니다.
그만큼 -영형 파일 옵션은 파일 비록 그것이 그것의 의존성보다 오래되었다고 할지라도 변화가 생겨서 어떤 것도 다시 만들지 못한다. 파일 . 본질적으로 파일은 매우 오래된 파일로 취급되며 규칙은 무시됩니다.
그만큼 -피 옵션은 makefile을 읽음으로써 생성 된 데이터베이스 (규칙 및 변수 값)를 인쇄합니다. 그런 다음 평소대로 또는 다른 방법으로 실행됩니다.이것은 또한 버전 정보를 인쇄합니다.-V 스위치 (아래 참조). 파일을 다시 작성하지 않고 데이터베이스를 인쇄하려면 다음을 사용하십시오.하다 -피 -f / dev / null .
그만큼 -큐 옵션은 질문 모드를 설정합니다. 명령을 실행하거나 아무것도 인쇄하지 마십시오. 지정된 대상이 이미 최신 상태 인 경우 종료 상태를 반환하고, 그렇지 않으면 0이 아닌 종료 상태를 반환하십시오.
그만큼 -아르 자형 옵션을 사용하면 내장 된 암시 적 규칙을 사용할 필요가 없습니다. 또한 접미사 규칙에 대한 기본 접미사 목록을 지 웁니다.
그만큼 -에스 옵션은 작동을 멈 춥니 다. 명령이 실행될 때 인쇄하지 않습니다.
그만큼 -에스 옵션을 선택하면-케이 선택권. 재귀 적 make를 제외하고는 절대 필요하지 않습니다. 어디에-케이 MAKEFLAGS를 통해 최상위 레벨에서 상속 될 수도 있고,-케이 귀하의 환경에서 MAKEFLAGS.
그만큼 -티 옵션은 명령을 실행하는 대신 파일을 변경합니다 (실제로 변경하지 않고 최신으로 표시). 이것은 make의 향후 호출을 속일 수 있도록 명령이 수행 된 것처럼 가장하는 데 사용됩니다.
그만큼 -V 옵션은 make 프로그램의 버전과 저작권, 작성자 목록 및 보증이 없다는 통지를 인쇄합니다.
그만큼 -w 옵션은 다른 처리 전과 후에 작업 디렉토리가 들어있는 메시지를 인쇄합니다. 이것은 재귀 적 make의 복잡한 네스트로부터의 에러를 추적하는데 유용 할 수있다. 명령.
그만큼 -W 파일 옵션이 대상을 가장합니다. 파일 방금 수정되었습니다. 와 함께 사용하면-엔 플래그,이 파일을 수정하는 경우 일어날 일을 보여줍니다. 없이-엔, 실행하는 것과 거의 같습니다.접촉 make를 실행하기 전에 주어진 파일에 대한 명령. 단, 수정 시간은 make의 상상력에서만 변경된다.




