Teach

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ Teach ] in KIDS
글 쓴 이(By): HellCat ((void*)0)
날 짜 (Date): 1994년06월09일(목) 04시56분02초 KDT
제 목(Title): [A] lex & yacc & Make



제가 쓰는 방법은요.

SRCS = a.c b.c c.c gram.c token.c
OBJS = $(SRCS:.c=.o)
HEADERS = a.h b.h c.h ytab.h

gram.c: y.tab.c
<tab>$(CP) y.tab.c gram.c

ytab.h: y.tab.h
<tab>$(CP) y.tab.h ytab.h

y.tab.c y.tab.h: gram.y
<tab>$(YACC) $(YFLAGS) gram.y
......

대충 이런 식이에요.

그리고 RCS 루 메인테인 하려면
위의 소스에서
SRCS = a.c b.c c.c
YSRC = gram.y
HEADERS = a.h b.h c.h
YHEADERS = ytab.h
LSRC = token.l

OBJS = $(SRCS:.c=.o) gram.o token.o

gram.o: gram.c
token.o: token.c

gram.c: y.tab.c
   cp y.tab.c gram.c
token.c: lex.yy.c
  cp lex.yy.c token.c
ytab.h: y.tab.h
  cp y.tab.h ytab.h
y.tab.c y.tab.h: gram.y
  yacc -d gram.y
lex.yy.c: token.l
  lex token.l

$(SRCS) gram.y token.l $(HEADERS):
  $(CO) $@

뭐 대충 이런 식이고 위에 헤더를 디펜던시에 더해주는건
  gcc -MM 을 이용해서 인클루드 해주면 되구요..

대충 감 잡히 시겠죠?

아..그리고 만약 라이브러리에 만드는 거면
OBJS = a.o 루 하지 말고
OBJS = $(LIB)(a.o) $(LIB)(b.o) ....

이런 식으로 해서 쓰는게 정석입니다.
---
  if (t_snddis(KIDS[i].fd, (struct t_call *)NULL) == -1)
    { t_error("날 죽여라!!"); longjmp ((jmp_buf) HELL, -1); }
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.