[ 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); } |