ALLIANCE_INCLUDE = /labo/include
TARGET_LIB       = ../../lib
#CC = gcc -traditional -Wall
CFLAGS           = -c -g
CPPFLAGS         = -I$(ALLIANCE_INCLUDE)

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

$(TARGET_LIB)/libBvl106.a : $(OBJECTS)
	ar ruv $(TARGET_LIB)/libBvl106.a $(OBJECTS)
	-ranlib $(TARGET_LIB)/libBvl106.a

distrib : $(OBJECTS)
	ar rv ../../lib/libBvl106.a $(OBJECTS)
	ranlib ../../lib/libBvl106.a

../behvhdl/bvl_parse.o : ../behvhdl/bvl_parse.c ../behvhdl/bvl_parse.h
	$(CC) $(CFLAGS) $(CPPFLAGS) ../behvhdl/bvl_parse.c

../behvhdl/bvl_drive.o : ../behvhdl/bvl_drive.c ../behvhdl/bvl_drive.h 
	$(CC) $(CFLAGS) $(CPPFLAGS) ../behvhdl/bvl_drive.c

../behave/lex.yy.o : ../behave/lex.yy.c ../behave/bvl_blex.h ../behave/y.tab.h
	$(CC) $(CFLAGS) $(CPPFLAGS) ../behave/lex.yy.c
	mv lex.yy.o ../behave

../behave/lex.yy.c : ../behave/bvl_bcomp.lex
	lex ../behave/bvl_bcomp.lex
	sed -e 's/YY/BVL_Y_/g' -e 's/yy/bvl_y_/g' lex.yy.c > ../behave/lex.yy.c
	/bin/rm lex.yy.c

../behave/y.tab.c : ../behave/bvl_bcomp.yac
	yacc -d ../behave/bvl_bcomp.yac
	sed -e 's/YY/BVL_Y_/g' -e 's/yy/bvl_y_/g' y.tab.c > ../behave/y.tab.c
	/bin/rm y.tab.c
	sed -e 's/YY/BVL_Y_/g' -e 's/yy/bvl_y_/g' y.tab.h > ../behave/y.tab.h
	/bin/rm y.tab.h

../behave/y.tab.o : ../behave/y.tab.c ../behave/bvl_byacc.h
	$(CC) $(CFLAGS) $(CPPFLAGS) ../behave/y.tab.c
	mv y.tab.o ../behave

../behave/bvl_bspec.o : ../behave/bvl_bspec.c ../behave/bvl_bspec.h
	$(CC) $(CFLAGS) $(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) $(CFLAGS) $(CPPFLAGS) ../util/bvl_util.c
	mv bvl_util.o ../util

clean :
	-/bin/rm -f $(OBJECTS) ../behave/y.tab.[ch] ../behave/lex.yy.c
