#
#``(C) 1996 Kenzo KONISHI and Kazuo TAKI in Kobe University''
#
#	BDD Manipulator	for Pass Tr.Logic Synthesis
#	4,Jan.,'96 -> 
#	
#	Programmed by KONISHI,K. and KANADA,T.
#


#
#	Environment
#
MACHINE=SUN
OS=SUN413
#OS=SOLARIS23


#
#
#
AR=ar
ARFLAGS=ruv
RANLIB=ranlib

RM=/bin/rm
RMFLAGS=-f

CP=/bin/cp
CPFLAGS=

CHMOD=/bin/chmod

LINT=/bin/lint
LINTFLAGS=-ha

#CCHK=/usr/local/bin/cchk
CCHK=$(HOME)/bin/cchk
CCHKFLAGS=-q

CHECK=/usr/local/bin/check
CHECKFLAGS=

#CC=cc
CC=gcc

#CFLAGS=-O2
CFLAGS=
#CFLAGS= -pg -g
#CFLAGS=-g -Wall

YACC=/bin/yacc
LEX=/bin/lex
#YACC=/bin/bison
#LEX=/bin/flex


#
#	Suffix Rules
#
.SUFFIXES:	.o .c .h .l .y

.c.o:
	$(CC) $(CFLAGS) -D$(MACHINE) -D$(OS) -c $*.c -o $*.o

.y.o .l.o:
	$(YACC) $*.y
	$(LEX) $*.l 
	$(CC)  $(CFLAGS) -o $@ -c y.tab.c
#	$(RM) y.tab.c lex.yy.c




#
#	Library and Header File
#

B4_RSCH_HOME_DIR=~lpcad/SRC/B4-Research/Logic/Dec-26-START

#
#	User Defininition
#

PROG = synth

HDRS = debug.h error.h datatype.h debug_level.h bdd_etc.h etc.h bdd_print.h bdd_ps_lib.h get_system_info.h delay_debug.h weight_datatype.h macro.h debug_macro.h

PARSER_SRCS = eqn_parse.l eqn_parse.y 
KERNEL_SRCS = debug.c error.c etc.c synth_main.c  bdd_init.c bdd_gc.c bdd_apply.c bdd_print.c bdd_etc.c bdd_ope_cache.c reorder.c HDL_out.c bdd_ps_lib.c bdd_ps_out.c get_system_info.c calc_delay.c delay_debug.c swap_val.c calc_delay_main.c buf_ins.c  weight_propagation.c make_syntax.c transform.c debug_print.c debug_func.c

SRCS = $(PARSER_SRCS) $(KERNEL_SRCS)

OBJS = eqn_parse.o debug.o error.o etc.o synth_main.o bdd_init.o bdd_gc.o bdd_apply.o bdd_print.o bdd_etc.o bdd_ope_cache.o reorder.o HDL_out.o bdd_ps_lib.o bdd_ps_out.o get_system_info.o calc_delay.o delay_debug.o swap_val.o calc_delay_main.o buf_ins.o weight_propagation.o make_syntax.o transform.o debug_print.o debug_func.o

MFILE=Makefile

default : $(PROG)

$(PROG) : $(OBJS)
#	$(CC) $(CFLAGS) -o $(PROG) $(OBJS) -I$(BDD_INCLUDEDIR) -lm
	$(CC) $(CFLAGS) -o $(PROG) $(OBJS)  -lm 

obj : $(OBJS)

lint:$(KERNEL_SRCS)
	$(LINT) $(LINTFLAGS) -u $?
	touch lint

lintall:$(KERNEL_SRCS)
	$(LINT) $(LINTFLAGS) $(KERNEL_SRCS)
	$(CCHK) $(CCHKFLAGS) $(KERNEL_SRCS)
	$(CHECK) $(CHECKFLAGS) $(KERNEL_SRCS)

cchk:$(KERNEL_SRCS)
	$(CCHK) $(CCHKFLAGS) $?
	touch cchk

cchkall:$(KERNEL_SRCS)
	$(CCHK) $(CCHKFLAGS) $(KERNEL_SRCS)

check:$(KERNEL_SRCS)
	$(CHECK) $(CHECKFLAGS) $?
	touch check

checkall:$(KERNEL_SRCS)
	$(CHECK) $(CHECKFLAGS) $(KERNEL_SRCS)

clean:
	$(RM) $(RMFLAGS) $(OBJS) core *~ $(PROG) *.lst *.eps *.verilog *.hspice *.ic *.mt0 *.st0 *.txt *.log lint lex.yy.c y.tab.c

dataclean:
	$(RM) $(RMFLAGS) core *~ *.lst *.eps *.verilog *.hspice *.ic *.mt0 *.st0 

#
# $B0MB84X785-=RIt(B
#

eqn_parse.o			: eqn_parse.l eqn_parse.y $(HDRS) $(MFILE)

debug.o				: debug.c $(HDRS) $(MFILE)
error.o				: error.c $(HDRS) $(MFILE)
etc.o				: etc.c $(HDRS) $(MFILE)
synth_main.o			: synth_main.c $(HDRS) $(MFILE)
bdd_init.o			: bdd_init.c $(HDRS) $(MFILE)
bdd_apply.o			: bdd_apply.c $(HDRS) $(MFILE)
bdd_gc.o			: bdd_gc.c $(HDRS) $(MFILE)
bdd_print.o			: bdd_print.c $(HDRS) $(MFILE)
bdd_etc.o			: bdd_etc.c $(HDRS) $(MFILE)
bdd_ope_cache.o			: bdd_ope_cache.c $(HDRS) $(MFILE)
reorder.o			: reorder.c $(HDRS) $(MFILE)
HDL_out.o			: HDL_out.c $(HDRS) $(MFILE)
bdd_ps_lib.o 			: bdd_ps_lib.c $(HDRS) $(MFILE)
bdd_ps_out.o			: bdd_ps_out.c $(HDRS) $(MFILE)
get_system_info.o		: get_system_info.c $(HDRS) $(MFILE)
calc_delay.o			: calc_delay.c $(HDRS) $(MFILE)
swap_val.o			: swap_val.c $(HDRS) $(MFILE)
calc_delay_main.o		: calc_delay_main.c $(HDRS) $(MFILE)
delay_debug.o			: delay_debug.c $(HDRS) $(MFILE)
buf_ins.o			: buf_ins.c $(HDRS) $(MFILE)
weight_propagation.o		: weight_propagation.c $(HDRS) $(MFILE)
make_syntax.o			: make_syntax.c $(HDRS) $(MFILE)
transform.o			: transform.c $(HDRS) $(MFILE) 
debug_print.o			: debug_print.c $(HDRS) $(MFILE)
debug_func.o			: debug_print.c $(HDRS) $(MFILE)