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

LOCAL_TRGLIB      = ../../lib
LOCAL_TRGINC      = ../../include

LOCAL_INC         = ../include

LOCAL_CFLAGS      = $(CFLAGS) -c -g
LOCAL_CPPFLAGS    = $(CPPFLAGS) -I$(LOCAL_INC) -I$(ALLIANCE_INCLUDE) \
                    -DMUT_H='<mut315.h>' -DBEH_H='<beh106.h>' \
                    -DLOG_H='<log200.h>'

LOCAL_YACCFLAGS   = $(YACCFLAGS) -d
LOCAL_LEXFLAGS    = $(LEXFLAGS)

LOCAL_ARFLAGS     = $(ARFLAGS)

LOCAL_OBJECTS    = ../behvhdl/bvl_parse.o ../behvhdl/bvl_drive.o \
                   ../behave/bvl_bspec.o  ../util/bvl_util.o     \
                   ../behave/y.tab.o      ../behave/lex.yy.o 

$(LOCAL_TRGLIB)/libBvl108.a : $(LOCAL_OBJECTS)
	$(CP) $(LOCAL_INC)/bvl108.h $(LOCAL_TRGINC)
	$(AR) $(LOCAL_ARFLAGS) $(LOCAL_TRGLIB)/libBvl108.a $(LOCAL_OBJECTS)
	-$(RANLIB) $(LOCAL_TRGLIB)/libBvl108.a

../behvhdl/bvl_parse.o : ../behvhdl/bvl_parse.c ../behvhdl/bvl_parse.h
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) ../behvhdl/bvl_parse.c

../behvhdl/bvl_drive.o : ../behvhdl/bvl_drive.c ../behvhdl/bvl_drive.h 
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) ../behvhdl/bvl_drive.c

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

#../behave/lex.yy.c : ../behave/bvl_bcomp.lex ../behave/y.tab.h
#	$(LEX) $(LOCAL_LEXFLAGS) ../behave/bvl_bcomp.lex
#	$(SED) -e 's/YY/BVL_Y_/g' -e 's/yy/bvl_y_/g' lex.yy.c > ../behave/lex.yy.c
#	$(RM) lex.yy.c

#../behave/y.tab.c : ../behave/bvl_bcomp.yac
#	$(YACC) $(LOCAL_YACCFLAGS) ../behave/bvl_bcomp.yac
#	$(SED) -e 's/YY/BVL_Y_/g' -e 's/yy/bvl_y_/g' y.tab.c > ../behave/y.tab.c
#	$(RM) y.tab.c
#	$(SED) -e 's/YY/BVL_Y_/g' -e 's/yy/bvl_y_/g' y.tab.h > ../behave/y.tab.h
#	$(RM) y.tab.h

../behave/y.tab.o : ../behave/y.tab.c ../behave/bvl_byacc.h
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) ../behave/y.tab.c
	$(MV) y.tab.o ../behave

../behave/bvl_bspec.o : ../behave/bvl_bspec.c ../behave/bvl_bspec.h
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) ../behave/bvl_bspec.c
	$(MV) bvl_bspec.o ../behave

../util/bvl_util.o : ../util/bvl_util.c ../util/bvl_utype.h ../util/bvl_util.h
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) ../util/bvl_util.c
	$(MV) bvl_util.o ../util

distrib : $(LOCAL_TRGLIB)/libBvl108.a
	@$(TOUCH) distrib
	@if [ -f $(LOCAL_TRGLIB)/INSTALLED ] ; then $(RM) $(LOCAL_TRGLIB)/INSTALLED  ; else exit 0 ; fi
	@if [ -f $(LOCAL_TRGINC)/INSTALLED ] ; then $(RM) $(LOCAL_TRGINC)/INSTALLED  ; else exit 0 ; fi

clean :
	-$(RM) -f $(LOCAL_OBJECTS)
	-$(RM) -f $(LOCAL_TRGLIB)/libBvl108.a $(LOCAL_TRGINC)/bvl108.h
	-$(RM) -f distrib
#	-$(RM) -f ../behave/y.tab.[ch] ../behave/lex.yy.c distrib

all :
	$(MAKE) clean
	$(MAKE)
