| [ CnUnix ] in KIDS 글 쓴 이(By): guest (guests) <adam.kaist.ac.kr> 날 짜 (Date): 2003년 2월 22일 토요일 오전 11시 56분 15초 제 목(Title): 이번에는 make 질문인데요. man 해도 잘 안녕하세요. man make 해봤는데 잘 이해가 안가서 그러거든요.. 또 man make 하라고 그러시면 울어버릴껍니다 -_-; 다른게 아니고 한 Makefile 에 똑같은 타겟이 두개가 있는데요. 파일의 아랫쪽(뒷부분)에 있는 타겟의 커맨드들이 먼저 실행되고 나중에 윗쪽에 있는것이 실행되는데요. 이 타겟 이름이 fastdep 이구요. 아랫쪽에 있는 fastdep이 의존하고 있는 타겟이 하나 있는데, 이 타겟도 같은 Makefile에 똑같은 두개의 타겟이 있는데 이 타겟은 둘중에 하나만 실행이 되던데요. 왜 어떤 타겟은 둘 다 실행되고 어떤 타겟은 둘 중 하나만 실행되는지 모르겠네요. Makefile 에 있는 순서대로 올렸습니다. ($(MODINCL)/%.ver.. 로 시작하는 타겟이 실행되고 그 밑의 타겟이 실행되지 않더군요. 밑의 타겟의 커맨드 부분에 echo "test"; 를 넣었더니 두번째 타겟이 실행되고 첫번째 타겟이 실행되지 않았습니다) fastdep: dummy $(TOPDIR)/scripts/mkdep $(CFLAGS) $(EXTRA_CFLAGS) -- $(wildcard *.[chS]) > .depend $(MODINCL)/%.ver: %.c echo "no shit"; echo '$(MODINCL)'; echo " "; @if [ ! -r $(MODINCL)/$*.stamp -o $(MODINCL)/$*.stamp -ot $< ]; then \ echo '$(CC) $(CFLAGS) $(EXTRA_CFLAGS) -E -D__GENKSYMS__ $<'; \ echo '| $(GENKSYMS) $(genksyms_smp_prefix) -k $(VERSION).$(PATCHLEVEL).$(SUBLEVEL) > $@.tmp'; \ $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -E -D__GENKSYMS__ $< \ | $(GENKSYMS) $(genksyms_smp_prefix) -k $(VERSION).$(PATCHLEVEL).$(SUBLEVEL) > $@.tmp; \ if [ -r $@ ] && cmp -s $@ $@.tmp; then echo $@ is unchanged; rm -f $@.tmp; \ else echo mv $@.tmp $@; mv -f $@.tmp $@; fi; \ fi; touch $(MODINCL)/$*.stamp $(addprefix $(MODINCL)/,$(export-objs:.o=.ver)): $(TOPDIR)/include/linux/autoconf.h # updates .ver files but not modversions.h fastdep: $(addprefix $(MODINCL)/,$(export-objs:.o=.ver)) |