http://developinghappiness.com/?p=174 이 블로그를 보고 정리한 글입니다.
1. Make의 구성은? 에 이어서 Make이 의존성을 스스로 판단해서 Makefile을 수정해 주는 과정을 살펴보겠습니다.
편집 소스는 이전에 올렸던 파일(makefile, test.c)을 가지고 시작하겠습니다.
gccmakedep 라는 명령어는 파일의 상관관계를 파악한 후 Makefile을 자동으로 작성해준다고 되어 있었습니다.
그럼 제가 한번 해보겠습니다.
우선 test.c에 test.h, tset1.c에 test1.h를 연결하고 test.c에서 test1.h를 불러보겠습니다.
그럼 총 4개의 파일, 그리고 1개의 Makefile이 준비가 되었습니다.
( makefile test.c test.h test1.c test1.h )
이 상태에서
$gccmakedep test.c test1.c
를 눌러보겠습니다.
$gccmakedep test.c test1.c
아무런 변화는 없지만 이상없이 끝난것 같습니다.
그러면 Makefile을 살펴보겠습니다.
아래와 같이 # DO NOT DELETE 이하가 생성되었습니다.
그리고 make를 해보니...
echo "test.o is here"
test.o is here
depend:
gccmakedep $(SRCS)
를 추가했습니다.
그리고 파일을 하나 더 만들어보죠, test2.{h,c}로 test1.c에 연결해보겠습니다.
그리고
make depend
를 해보겠습니다.
test2에 대한 내용이 없습니다.. deep이 1단계까지만 들어가나 보네요,
그럼 SRCS와 OBJS에 test1을 추가하겠습니다.
근데 일일이 추가하는것도 귀찮네요, 해당 블로그에 c와 o를 한줄에 작성하는 방법이 나와있었습니다. 그걸로 해볼게요
위와 같이 코드를 바꿨습니다. 자, 과연 make depend를 하면 DO NOT DELETE 부분에 test2의 배용이 추가될까요???
$make depend
$vim makefile
반영이 되었습니다!!
이상으로 gccmakedef써보기를 마칩니다^^