make 명령어
GNU make utility to maintain groups of programs
bash command c
스튜어트 펠드먼(Stuart Feldman)이 1976년에 만든 명세 언어.
역사
스튜어트는 우아한 아이디어를 생각해냈다. 프로그램의 조각들이 서로 어떻게 의존하는지 기술하는 명세 언어였다. 그가
Make
(메이크)라고 부른 이 프로그램은 명세, 즉makefile
(메이크파일)을 분석하고 파일들이 변경된 시간 정보를 이용해서 모든 것을 최신으로 유지하는 데 필요한 최소한의 재컴파일을 수행했다. Make가 처음으로 구현된 것은 1976년이었다."저는 주말에 Make를 작성하고 그 다음 주말에 매크로를 이용해서 재작성했어요(내장된 코드의 목록이 너무 길어지고 있었거든요). '행 시작에 탭 문자 넣기'는 고치지 않았는데, 금세 십여 명의 열렬한 사용자가 생겼고 그들을 당황하게 만들고 싶지 않았기 때문입니다."
Make
는 순식간에 성공을 거뒀다. 컴파일을 최대한 효율적으로 만들면서도 오만가지 어리석은 오류를 예방해주었기 때문이다. 1
Examples
- 주의:
Makefile
은 인덴트에 탭 문자를 사용한다.
기본
h1:
echo "hello world"
h2:
echo "bye world"
Makefile
을 위와 같이 작성하고 make
명령을 실행해보자.
make # hello world 출력
make h1 # hello world 출력
make h2 # bye world 출력
배치 명령 실행
TESM=12000
CFLAGS=-Wall -g
test1:
echo test 1?
test2:
echo "${TESM}"
위와 같이 작성했다면 다음과 같이 실행할 수 있다.
make test1 # test 1? 이 출력된다
make test2 # 12000 이 출력된다
C 언어 컴파일
다음과 같은 내용의 hello.c
파일을 작성했다고 하자.
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("Hello, World\n");
return 0;
}
다음과 같이 쉽게 컴파일 할 수 있다.
make hello
컴파일된 실행 파일을 지우기 쉽도록 clean
을 등록하는 것도 방법이다.
CFLAGS=-Wall -g
clean:
rm -f hello
참고문헌
- 유닉스의 탄생 / 브라이언 커니핸 저/하성창 역 / 한빛미디어 / 2020년 08월 03일 / 원서 : UNIX: A History and a Memoir
주석
-
유닉스의 탄생. 5장. ↩