[완료]makefile 에서 궁금한 점이 있습니다.(타겟의 위치)
글쓴이: fluei / 작성시간: 월, 2009/01/19 - 3:06오후
예를 들겠습니다.
all : diary
diary : memo.o main.o calendar.o
$(CC)-o $@ $^
memo.o : memo.c
$(CC) -c $@ $^
main.o : main.c
$(CC) -c $@ $^
calendar.o : calendar.c
$(CC) -c $@ $^
이런 소스가 있다면... diary 타겟을 먼저 읽고.. memo.o main.o 순서대로 읽잖아요..
문제는..
all : diary
memo.o : memo.c
$(CC) -c $@ $^
main.o : main.c
$(CC) -c $@ $^
calendar.o : calendar.c
$(CC) -c $@ $^
diary : memo.o main.o calendar.o
$(CC)-o $@ $^
이런식으로 구성이 되어있을때 입니다.
make 명령을 했을때.. 위에서 부터 아래로 수행을 하게 되는데..
diary타겟이 밑에 있지만 우선적으로 실행할수 있는 방법을 알고 싶습니다..
Forums:
all, memo.o, diary의
all, memo.o, diary의 순서는 상관이 없습니다.
* all에서 diary로 가고,
* diary에서 memo.o, main.o, calendar.o로 가고,
* memo.o, main.o, calendar.o가 끝나면, diary를 수행하고,
* diary가 끝나면, all이 수행됨.
위와 같은 순서로 수행이 됩니다..
all을 제외 하면 어떻게 해야할까요..
all을 뺏어야 했네요...
make diary 라는 명령어를 안쓰고
make만 써서 할수있는 방법은 없을까요
그냥 make만 하면,
그냥 make만 하면, make는 가장 위에 있는 target을 실행합니다.
따라서 다음중에 하나를 선택하시면 될 것 같네요.
혹은 diary 타켓을 맨위로 올리기...
make diary 하면 되지
make diary
하면 되지 않나요?
make만 써서 나타낼 방법은 없을까요?
밑에 부분에 diary타겟이 있어도..
우선적으로 diary타겟을 먼저 수행할수 있게요..
.DEFAULT_GOAL
GNU make인 경우
.DEFAULT_GOAL = diary
같이 하시면 됩니다만, 이렇게 하지 마시고, 윗분들 말씀처럼 가장 위의 타겟이 기본으로 실행되니까 맨 위에 all: diary를 넣으세요.
감사합니다.
중간에 있어도..우선적으로 처리할수 있는 부분을 찾고 있었습니다.
원하던 답변 주셔서 감사합니다..
새로운 걸 하나
새로운 걸 하나 배워가네요.. :)
감사합니다.~~
댓글 달기