리눅스 make
IT 위키
더 많은 작업
- 프로그램 그룹을 유지하기 위한 GNU make 유틸리티.
- 유닉스와 리눅스 모두에서 명령어와 옵션이 같음
- 경로 : /usr/bin/make
make [-f makefile] [옵션]···[타겟]···
- -C DIRECTORY, --directory=DIRECTORY : makefile 파일의 위치(DIRECTORY)를 지정한다.
- -d : 상세한 디버깅 정보를 출력한다.
- --debug[=FLAGS] : 다양한 형태의 디버깅 정보를 출력한다.
- -e, --environment-overrides : 시스템의 환경 변수의 정보가 makefile의 설정 내용보다 우선한다.
- -f FILE, --file=FILE, --makefile=FILE : makefile를 지정한 파일(FILE)에서 읽는다.
- -h, --help : 사용법을 출력한다.
- -i, --ignore-errors: 에러를 무시한다.
- -I DIRECTORY, --include-dir=DIRECTORY : include 디렉터리를 지정한다.
- -k, --keep-going : 타겟 파일을 생성하지 못하더라도 계속 진행한다.
- --s, --silent, --quiet : 명령어를 출력하지 않는다.
- -S, --no-keep-going, --stop : -k 옵션을 비활성화한다.
- -v, --version: 버전 정보를 출력한다.
- -w, --print-directory : 현재 디렉터리를 출력한다.
- --no-print-directory: -w 옵션을 비활성화한다.
- --warn-undefined-variables : undefined-variables 경고를 출력한다.
make 는 현재 디렉터리의 Makefile(또는 makefile, GNUmakefile)을 읽어 그 안의 규칙대로 컴파일·설치를 한다. 규칙은 다음 꼴이다.
타겟: 의존 파일... (탭)명령
- 명령 줄은 반드시 탭 문자로 시작한다
- 타겟 파일이 의존 파일보다 오래됐을 때만 명령을 다시 실행하므로, 바뀐 파일만 다시 컴파일한다
- 흔히 쓰는 타겟 :
all(기본 빌드),install(설치),clean(빌드 결과 삭제)
소스 설치는 보통 ./configure → make → make install 순서다. configure 는 시스템 환경을 검사해 Makefile 을 만들어 주는 단계이므로, 압축을 푼 소스에 configure 가 없더라도 Makefile 이 이미 들어 있으면 configure 단계 없이 바로 make 로 넘어갈 수 있다. 자세한 순서는 리눅스 패키지 관리#소스 설치를 본다.
# 현재 디렉터리의 Makefile 로 빌드 $ make # 설치 (root 권한) # make install # 다른 이름의 파일을 규칙 파일로 쓴다 $ make -f build.mk # 다른 디렉터리에서 빌드 $ make -C src # 작업 4개를 동시에 실행 $ make -j4
간단한 Makefile 예
hello: hello.o gcc -o hello hello.o hello.o: hello.c gcc -c hello.c clean: rm -f hello hello.o