[완료] Make시 한번 컴파일한 내용은 재컴파일 하지 않을려면 어떻게 해야하나요
글쓴이: munhoney / 작성시간: 화, 2011/08/02 - 5:20오후
안녕하세요 결국 다시 kldp의 도움을 받을려고 왔습니다.
현재 make 파일을 만들어서 사용하고 있는데, 현재 방식은 이렇습니다.
root/
+ output
+ src
가 있는 방식이고요.
src 밑에 있는 소스 파일을 컴파일하고 나오는 오브젝트를 output 위치에 저장하고 있습니다.
문제는 이렇게 하다보니 컴파일 할때 변경하지 않은 소스파일 까지 매번 컴파일한다는 것입니다.
컴파일할 때
%.o : %.cpp
$(CXX) ....... -c $< -o $(TOPDIR)/output/$*.o
로 사용하고 있습니다.
어떻게 하면 매번 컴파일 하지 않게 할 수 있을까요?
Forums:
http://wiki.kldp.org/KoreanDo
http://wiki.kldp.org/KoreanDoc/html/GNU-Make/GNU-Make.html
세벌 https://sebuls.blogspot.kr/
This is an example Makefile.
This is an example Makefile.
I compiled fortran file get_stat.f.
All *.o files are in objects folder and executable file get_stat is created in bin folder.
Please test your files using this Makefile.
bindir = ./bin
obsdir = ./objects
CFLAGS = -O3
vpath %.o $(obsdir)
vpath %.f
%.o: %.c
$(CC) -c $(CFLAGS) $< -o $(obsdir)/$@
%.o: %.f90
$(F95) -c $(FFLAGS) $< -o $(obsdir)/$@
%.o: %.f
$(F95) -c $(FFLAGS) $< -o $(obsdir)/$@
obstring = $(addprefix $(obsdir)/,$(notdir $^))
.PHONY:
STUFF = stat_event.o readstr.o readstat_event.o readfl_h.o readfl_c.o readfl_s.o \
writefl_h.o extension.o chknam.o
clean:
-rm -f $(obsdir)/*.o
get_stat: %: %.o $(STUFF)
$(F95) -o $(bindir)/$@ $(obstring)
아.. 그렇군요. vpath가 있었는데.... 이제
아.. 그렇군요. vpath가 있었는데.... 이제 알았습니다.
너무 감사합니다.
---------------------------------
http://blog.naver.com/munhoney
---------------------------------
댓글 달기