CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ 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)) 
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.