include $(TOP)/etc/$(MACHINE).mk

TARGET_LIB = ../lib
LOCAL_CFLAGS     = $(CFLAGS) -c -DBEH_H='"../../beh104/beh104.h"' -DMUT_H='<mut315.h>' -DLOG_H='<log200.h>'  -I$(ALLIANCE_INCLUDE)
LOCAL_CPPFLAGS = $(CPPFLAGS) -c  -DMUT_H='<mut415.h>' -DLOG_H='<log200.h>'  -I$(ALLIANCE_INCLUDE)


LOCAL_OBJECTS    = behvhdl/syf_parse.o behvhdl/syf_drive.o behave/y.tab.o behave/lex.yy.o behave/syf_bspec.o util/syf_util.o

$(TARGET_LIB)/libSyf100.a : $(LOCAL_OBJECTS)
	$(AR) $(ARFLAGS) $(TARGET_LIB)/libSyf100.a $(LOCAL_OBJECTS)
	(cd $(TARGET_LIB) ; $(RANLIB) libSyf100.a)

behvhdl/syf_parse.o : behvhdl/syf_parse.c behvhdl/syf_parse.h
	$(CC) $(LOCAL_CFLAGS) -c behvhdl/syf_parse.c
	$(MV) syf_parse.o behvhdl/syf_parse.o

behvhdl/syf_drive.o : behvhdl/syf_drive.c behvhdl/syf_drive.h 
	$(CC) $(LOCAL_CFLAGS) -c behvhdl/syf_drive.c
	$(MV) syf_drive.o behvhdl/syf_drive.o

behave/lex.yy.o : behave/lex.yy.c behave/syf_blex.h behave/y.tab.h
	$(CC) $(LOCAL_CFLAGS) -c behave/lex.yy.c
	$(MV) lex.yy.o behave

behave/lex.yy.c : behave/syf_bcomp.lex
	$(LEX) behave/syf_bcomp.lex
	$(SED) -e 's/YY/SYF_Y_/g' -e 's/yy/syf_y_/g' lex.yy.c > behave/lex.yy.c
	$(RM) lex.yy.c

behave/y.tab.c : behave/syf_bcomp.yac
	$(YACC) $(YACCFLAGS) -d behave/syf_bcomp.yac
	$(SED) -e 's/YY/SYF_Y_/g' -e 's/yy/syf_y_/g' y.tab.c > behave/y.tab.c
	$(RM) y.tab.c
	$(SED) -e 's/YY/SYF_Y_/g' -e 's/yy/syf_y_/g' y.tab.h > behave/y.tab.h
	$(RM) y.tab.h

behave/y.tab.o : behave/y.tab.c behave/syf_byacc.h
	$(CC) $(LOCAL_CFLAGS) -c behave/y.tab.c
	$(MV) y.tab.o behave

behave/syf_bspec.o : behave/syf_bspec.c behave/syf_bspec.h
	$(CC) $(LOCAL_CFLAGS) -c behave/syf_bspec.c
	$(MV) syf_bspec.o behave

util/syf_util.o : util/syf_util.c util/syf_utype.h util/syf_util.h util/syf_utdef.h
	$(CC) $(LOCAL_CFLAGS) -c util/syf_util.c
	$(MV) syf_util.o util

clean :
	-@$(RM) $(LOCAL_OBJECTS) behave/y.tab.[ch] behave/lex.yy.c $(TARGET_LIB)/libSyf100.a distrib

distrib : $(TARGET_LIB)/libSyf100.a
	@$(TOUCH) distrib
