[Makefile이 뭐야]

먼저 make라는 툴이 있는데요.

make는 프로그램을 빌드할 때 리눅스에서 주로 쓰는 자동화 도구입니다.

그리고 그 make 전용의 표준 문법이라는 것으로 빌드 과정을 서술하는 파일이 Makefile이에요.

개발중인 프로그램의 작업 디렉토리에 Makefile이라는 파일명을 하는 스크립트를 저장해 두면,

편리하게도 make가 그것을 해석해서 자동으로 빌드를 수행하도록 할 수 있습니다.

그밖에 추가적으로, 컴파일 언어로 작성된 프로그램의 빌드에 관해서는, 다음 글을 참고해 주세요.

2018/08/25 - [잡담] - 컴퓨터 프로그램의 컴파일과 링킹과 객체지향


[Makefile의 작성법 정리]

Makefile 문법을 떠올리는 데에는, 장황하고 지리멸렬한 설명은 필요가 없습니다. (!)

거두절미하고 바로 예제를 보는 것이 가장 명료한 해설이 될 것입니다.

[Makefile 예제]

CC = gcc
CFLAGS = -W -Wall
TARGET = paint

$(TARGET): main.o event.o drawing.o ipc.o
	$(CC) $(CFLAGS) -o $(TARGET) main.o event.o drawing.o ipc.o -lX11 -lpthread
	rm *.o
	./$(TARGET)

drawing.o: drawing.c
	$(CC) $(CFLAGS) -c -o drawing.o drawing.c -lX11 -lpthread

event.o: event.c
	$(CC) $(CFLAGS) -c -o event.o event.c -lX11 -lpthread

ipc.o: ipc.c
	$(CC) $(CFLAGS) -c -o ipc.o ipc.c -lX11 -lpthread

main.o: main.c
	$(CC) $(CFLAGS) -c -o main.o main.c -lX11 -lpthread

clean:
	rm *.o $(TARGET)