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

LOCAL_LIB         = ../../lib

LOCAL_CFLAGS      = $(CFLAGS) -c -g
LOCAL_CPPFLAGS    = $(CPPFLAGS) -I$(ALLIANCE_INCLUDE)
LOCAL_YACCFLAGS   = $(YACCFLAGS) -d 
LOCAL_LEXFLAGS    = $(LEXFLAGS)

LOCAL_ARFLAGS     = $(ARFLAGS)

LOCAL_OBJECTS    = ../mbkvhdl/mvl_parse.o ../mbkvhdl/mvl_drive.o \
                   ../struct/y.tab.o     ../struct/lex.yy.o \
                   ../struct/mvl_sspec.o ../util/mvl_util.o

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

$(LOCAL_LIB)/libMvl406.a : $(LOCAL_OBJECTS)
	$(AR) $(LOCAL_ARFLAGS) $(LOCAL_LIB)/libMvl406.a $(LOCAL_OBJECTS)
	-$(RANLIB) $(LOCAL_LIB)/libMvl406.a

../mbkvhdl/mvl_parse.o : ../mbkvhdl/mvl_parse.c ../mbkvhdl/mvl_parse.h
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) ../mbkvhdl/mvl_parse.c

../mbkvhdl/mvl_drive.o : ../mbkvhdl/mvl_drive.c ../mbkvhdl/mvl_drive.h 
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) ../mbkvhdl/mvl_drive.c

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

#../struct/lex.yy.c : ../struct/mvl_scomp.lex ../struct/mvl_stype.h
#	$(LEX) $(LOCAL_LEXFLAGS)../struct/mvl_scomp.lex
#	$(SED) -e 's/YY/MVL_Y_/g' -e 's/yy/mvl_y_/g' lex.yy.c > ../struct/lex.yy.c
#	$(RM) lex.yy.c

#../struct/y.tab.c : ../struct/mvl_scomp.yac ../struct/mvl_stype.h
#	$(YACC) $(LOCAL_YACCFLAGS) ../struct/mvl_scomp.yac
#	$(SED) -e 's/YY/MVL_Y_/g' -e 's/yy/mvl_y_/g' y.tab.c > ../struct/y.tab.c
#	$(RM) y.tab.c
#	$(SED) -e 's/YY/MVL_Y_/g' -e 's/yy/mvl_y_/g' y.tab.h > ../struct/y.tab.h
#	$(RM) y.tab.h

../struct/y.tab.o : ../struct/y.tab.c ../struct/mvl_syacc.h
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) ../struct/y.tab.c
	$(MV) y.tab.o ../struct

../struct/mvl_sspec.o : ../struct/mvl_sspec.c ../struct/mvl_sspec.h
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) ../struct/mvl_sspec.c
	$(MV) mvl_sspec.o ../struct

../util/mvl_util.o : ../util/mvl_util.c ../util/mvl_utype.h ../util/mvl_util.h
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) ../util/mvl_util.c
	$(MV) mvl_util.o ../util

all :
	make clean
	make

clean :
	-$(RM) -f $(LOCAL_OBJECTS) $(LOCAL_LIB)/libMvl406.a
	-$(RM) -f distrib
#	-$(RM) -f ../struct/y.tab.[ch] ../behave/lex.yy.c
