티스토리 뷰
6. Makefile 작성의 가이드라인
make를 많이 써 본 사람은 어느 정도 자신만의 Makefile
을 작성하는 일정한 스타일 같은 것이 있다. 프로그램이 짜는 사람마다 다르듯이 Makefile
도 각각이다. 여기서는 그냥 가장 일반적인 가이드라인을 제시하기로 한다. 다음 장에서 Makefile
의 여러 예제를 살펴보면서 다시 한번 자세히 설명할 것이다.
매크로를 잘 사용하면 Makefile
이 깔끔해질 뿐 아니라, 내용의 수정도 용이하다. 조금 과장해서 말한다면, 최대한 매크로를 많이 사용하라고 말하고 싶다. Makefile
내에서 두번 이상 나오는 것들은 매크로로 정의해 두면 편하다. 자신의 프로그램 특성에 따라서 기존의 매크로를 재정의 하는 것도 좋다.
make에서 정의되어 있는 규칙들을 최대한 이용한다. 확장자 규칙은 무조건 이용하기를 권한다. 기존의 규칙들을 자기가 정의하는 것도 좋지만, 억지로 이럴 필요는 없다.
대체로 아래와 같이 Makefile
을 구성한다.
- 매크로 정의 부분
- 타겟을 얻기 위한 명령어 부분
- 의존 관계 부분
.SUFFIXES : .c .o --+ CFLAGS = -g | | OBJS = main.o \ | read.o \ | 매크로 정의 부분 write.o | SRCS = $(OBJS:.o=.c) | | TARGET = test --+ $(TARGET): $(OBJS) --+ $(CC) -o $@ $(OBJS) | dep : | gccmakedpend $(SRCS) | new : | 명령어 정의 부분 touch $(SRCS) ; $(MAKE) | clean : | $(RM) $(OBJS) $(TARGET) core --+ - 여기부터 의존관계 부분
위의 예제는 최대한 매크로를 많이 이용하려고 했기 때문에 독해(?)하기 어려울 수도 있다.
다음장 예고
다음 장에는 Makefile
의 여러 가지 작성 예제를 가지고 설명을 하겠습니다. 아직 make에 익숙하기 않을 것이라고 생각하기 때문입니다. 최대한 다양한 예제를 다룸으로써 나중에 많은 도움이 되도록 하죠. make 수행 중에 나올 수 있는 여러 에러들도 다음 장에서 한번 다루어 보죠. 그리고 가능하다면 Imakefile
란 것도 한번 건드려 봅시다.
'Development > CM&CI&CD' 카테고리의 다른 글
[GIT] GIT 실행 안되는 문제 (0) | 2019.04.24 |
---|---|
[GIT] Host별로 ssh publickey / privatekey 따로 관리하기 (0) | 2016.11.09 |
GNU Make 강좌 #8 - make 수행 시에 나타나는 에러들 (0) | 2010.04.05 |
GNU Make 강좌 #7 - Makefile의 실제 예제 (0) | 2010.04.05 |
GNU Make 강좌 #5 - make 중요 옵션 정리 (0) | 2010.04.05 |
GNU Make 강좌 #4 - Makefile를 작성할 때 알면 좋은 것들 (0) | 2010.04.05 |
GNU Make 강좌 #3 - 매크로(Macro) 와 확장자(Suffix) 규칙 (2) | 2010.04.05 |
GNU Make 강좌 #2 - 간단한 Makefile (0) | 2010.04.05 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- database
- API
- C
- gcc
- Troubleshooting
- java
- jni강좌
- C++
- winapi
- kering
- android
- AWS
- Cloud
- 프로그래밍
- 리눅스
- 음악
- Visual C++
- Quiz
- algorithm
- NDK
- jni
- MFC
- source
- 드라이버
- it
- db
- 안드로이드
- Python
- driver
- linux
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함