Make - 리눅스 명령 - 유닉스 명령

make - 프로그램 그룹을 유지하는 GNU make 유틸리티

개요

make [ -f makefile ] [option] ... 대상 ...

경고

이 페이지는 GNU make 의 문서를 추출한 것입니다. GNU 프로젝트가 nroff를 사용하지 않기 때문에 때때로 업데이트됩니다. 현재의 문서를 보려면 Texinfo 소스 파일 make.texinfo 에서 만든 Info 파일 인 make.info 를 참조하십시오.

기술

make 유틸리티의 목적은 커다란 프로그램의 어떤 부분을 재 컴파일해야하는지 자동으로 결정하고, 재 컴파일하기위한 명령 을 내리는 것입니다. 매뉴얼은 Richard Stallman과 Roland McGrath가 작성한 make 의 GNU 구현에 대해 설명합니다. 우리 예제는 C 프로그램이 가장 보편적이기 때문에 보여 주지만, 컴파일러가 쉘 명령으로 실행될 수있는 프로그래밍 언어로 make 를 사용할 수 있습니다. 사실, make 는 프로그램에만 국한되지 않습니다. 다른 파일이 변경 될 때마다 다른 파일에서 자동으로 업데이트해야하는 작업을 설명하는 데 사용할 수 있습니다.

make 를 사용할 준비를하려면 프로그램의 파일 간 관계를 설명하는 makefile 이라는 파일을 작성해야하며 각 파일을 업데이트하기위한 명령을 설명해야합니다. 프로그램에서 일반적으로 실행 파일은 소스 파일을 컴파일하여 만들어진 오브젝트 파일에서 업데이트됩니다.

일단 적절한 메이크 파일이 존재하면, 소스 파일을 변경할 때마다 다음과 같은 간단한 쉘 명령이 사용됩니다 :

하다

필요한 모든 재 컴파일을 수행하기에 충분합니다. make 프로그램은 makefile 데이터베이스와 파일의 마지막 수정 시간을 사용하여 어떤 파일을 업데이트해야하는지 결정합니다. 각 파일에 대해 데이터베이스에 기록 된 명령을 실행합니다.

make는 하나 이상의 대상 이름 을 업데이트하기 위해 makefile 에서 명령을 실행합니다. 여기서 이름 은 일반적으로 프로그램입니다. -f 옵션이 없으면 makeGNUmakefile , makefileMakefile의 순서로 makefile을 찾습니다 .

일반적으로 makefile 또는 Makefile 중 하나를 호출해야합니다. ( MakefileREADME 와 같은 다른 중요한 파일 근처의 디렉토리 목록 시작 부분에 눈에 띄게 나타나기 때문에 Makefile을 사용하는 것이 좋습니다.) 확인 된 이름 인 GNUmakefile 은 대부분의 makefile에 권장되지 않습니다. GNU make 와 관련된 makefile이 있고 다른 버전의 make 가 이해하지 못하는 경우이 이름을 사용해야합니다. makefile 이`- '이면 표준 입력을 읽습니다.

대상을 마지막으로 수정 한 이후 수정 된 전제 조건 파일 또는 대상이 존재하지 않는 경우 업데이트를 대상으로 만듭니다 .

옵션

-비

-엠

이 옵션은 다른 버전의 make 와의 호환성을 위해 무시됩니다.

-C dir

makefile을 읽거나 다른 것을하기 전에 dir 디렉토리로 변경하십시오. -C 옵션이 여러 개 지정되면 각각은 이전 옵션과 관련하여 해석됩니다. -C / -C 등은 -C / etc와 동일합니다. 이것은 일반적으로 make 를 재귀 적으로 호출 할 때 사용 됩니다.

-디

일반 처리 외에 디버깅 정보를 인쇄합니다. 디버깅 정보는 어떤 파일이 다시 만들어 지는지, 어떤 파일이 비교되는지, 어떤 결과와 함께 실제로 재 작성되어야하는지, 묵시적 규칙이 적용되는지, 적용되는지 등 결정합니다. make make 무엇을 해야할지.

-이자형

makefile에서 변수보다 환경 우선 순위에서 가져온 변수를 지정하십시오.

-f 파일

파일 을 메이크 파일 로 사용하십시오.

-나는

파일을 다시 만들기 위해 실행 된 명령의 모든 오류를 무시하십시오.

- 전

포함 된 makefile을 검색 할 디렉토리 디렉토리 를 지정합니다. 여러 개의 -I 옵션을 사용하여 여러 디렉토리를 지정하면 지정된 순서대로 디렉토리가 검색됩니다. make의 다른 플래그에 대한 인수와 달리, -I 플래그와 함께 제공된 디렉토리는 플래그 뒤에 -I dir 이 허용되는 경우와 -I dir 인 경우가 있습니다. 이 구문은 C 전 처리기의 -I 플래그와의 호환성을 위해 허용됩니다.

-j jobs

동시에 실행할 작업 (명령)의 수를 지정합니다. 두 개 이상의 -j 옵션이있는 경우 마지막 옵션이 효과적입니다. 인수없이 -j 옵션을 지정하면 make 는 동시에 실행할 수있는 작업 수를 제한하지 않습니다.

-케이

오류가 발생하면 가능한 한 많이 계속하십시오. 실패한 대상과 종속 된 대상은 다시 만들 수 없지만 이러한 대상의 다른 종속성은 모두 동일하게 처리 할 수 ​​있습니다.

-엘

-l 로드

다른 작업이 실행 중이고로드 평균이 적어도 로드 (부동 소수점 수) 인 경우 새 작업 (명령)을 시작하지 않도록 지정합니다. 인수가 없으면 이전로드 한계를 제거합니다.

-엔

실행될 명령을 인쇄하지만 실행하지 마십시오.

-o 파일

파일 파일 이 종속 파일 보다 오래되었다하더라도 파일 파일을 다시 작성하지 말고 파일의 변경으로 인해 어떤 것도 다시 만들지 마십시오. 본질적으로 파일은 매우 오래된 파일로 취급되며 규칙은 무시됩니다.

-피

makefile을 읽음으로써 발생하는 데이터베이스 (규칙 및 변수 값)를 인쇄하십시오. 평소대로 또는 다른 방법으로 실행하십시오. -v 스위치 (아래 참조)가 제공 한 버전 정보도 인쇄합니다. 파일을 다시 만들지 않고 데이터베이스를 인쇄하려면 make -p -f / dev / null을 사용하십시오.

-큐

``질문 모드 ''. 명령을 실행하거나 아무것도 인쇄하지 마십시오. 지정된 대상이 이미 최신 인 경우 0 인 종료 상태를 리턴하고, 그렇지 않으면 0이 아닌 종료 상태를 리턴하십시오.

-아르 자형

내장 된 암시 적 규칙의 사용을 제거하십시오. 또한 접미사 규칙에 대한 접미사의 기본 목록을 지 웁니다.

-에스

자동 작동; 명령이 실행될 때 인쇄하지 마십시오.

-에스

-k 옵션의 효과를 취소하십시오. MAKEFLAGS 통해 최상위 make 에서 -k를 상속 할 수있는 재귀 적 make를 사용하거나 사용자 환경의 MAKEFLAGS에 -k 를 설정하는 경우를 제외하고는 절대 필요하지 않습니다.

-티

명령을 실행하는 대신 파일을 터치합니다 (실제로 변경하지 않고 최신 상태로 표시). 이것은 make의 향후 호출을 속일 수 있도록 명령이 수행 된 것처럼 가장하는 데 사용됩니다.

-V

make 프로그램의 버전과 저작권, 저자 목록 및 무보증 통지서를 인쇄하십시오.

-w

다른 처리 전과 후에 작업 디렉토리가 들어있는 메시지를 인쇄하십시오. 재귀 적 make 명령의 복잡한 중첩에서 오류를 추적하는 데 유용 할 수 있습니다.

-W 파일

대상 파일 이 방금 수정 된 것으로 가정합니다. -n 플래그와 함께 사용하면,이 파일을 수정하는 경우 일어날 일을 알 수 있습니다. -n이 없으면 make 를 실행하기 전에 주어진 파일에서 touch 명령을 실행하는 것과 거의 동일하다. 단, 수정 시간은 make 의 상상력에서만 변경된다.