# makefile for (vhdl<--> mbk) parser driver
# version : 4.04
# date    : Dec 16 1992

SHELL = /bin/sh

#CC = gcc -traditional -pipe -Wall -O
CC = cc  
CFLAGS =  -pipe -g -I/labo/include

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

mbkvhdl : $(LO_OBJ)
	ar ruv libMvl404.a $(LO_OBJ)
	ranlib libMvl404.a

distrib : $(LO_OBJ)
	ar rv ../../lib/libMvl404.a $(LO_OBJ)
	ranlib ../../lib/libMvl404.a

../mbkvhdl/mvl_parse.o : ../mbkvhdl/mvl_parse.c ../mbkvhdl/mvl_parse.h
	$(CC) $(WARNING) $(CFLAGS) -c ../mbkvhdl/mvl_parse.c

../mbkvhdl/mvl_drive.o : ../mbkvhdl/mvl_drive.c ../mbkvhdl/mvl_drive.h 
	$(CC) $(WARNING) $(CFLAGS) -c ../mbkvhdl/mvl_drive.c

../struct/lex.yy.o : ../struct/lex.yy.c ../struct/mvl_slex.h ../struct/y.tab.h
	$(CC) $(CFLAGS) -c ../struct/lex.yy.c
	mv lex.yy.o ../struct

../struct/lex.yy.c : ../struct/mvl_scomp.lex ../struct/mvl_stype.h
	lex ../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 -d ../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) $(WARNING) $(CFLAGS) -c ../struct/y.tab.c
	mv y.tab.o ../struct

../struct/mvl_sspec.o : ../struct/mvl_sspec.c ../struct/mvl_sspec.h
	$(CC) $(WARNING) $(CFLAGS) -c ../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) $(WARNING) $(CFLAGS) -c ../util/mvl_util.c
	mv mvl_util.o ../util

all :
	make clean
	make

clean :
	-@rm *.o ../struct/y.tab.h ../struct/y.tab.c ../struct/*.o ../struct/lex.yy.c ../util/*.o
