SHELL    = /bin/csh
DRUC     = $(ALLIANCE_TOP)/bin/druc
TOUCH    = touch
S2R      = $(ALLIANCE_TOP)/bin/s2r
SCR      = $(ALLIANCE_TOP)/bin/scr
AMG      = $(ALLIANCE_TOP)/bin/amg
SCMAP    = $(ALLIANCE_TOP)/bin/scmap
DREAL    = $(ALLIANCE_TOP)/bin/dreal
LYNX     = $(ALLIANCE_TOP)/bin/lynx
LVX      = $(ALLIANCE_TOP)/bin/lvx
SIZEMULT = 6

all : dreal

dreal : multiplier.cif
	setenv MBK_CATA_LIB $(ALLIANCE_TOP)/cells/sc2sxlib:$(ALLIANCE_TOP)/cells/sxlib ;\
	setenv MBK_TARGET_LIB $(ALLIANCE_TOP)/cells/sxlib ;\
	setenv RDS_IN cif ;\
	setenv RDS_OUT cif ;\
	setenv RDS_TECHNO_NAME $(ALLIANCE_TOP)/etc/cmos_8.rds ;\
	$(DREAL) -l multiplier

multiplier.cif : multiplier.drc multiplier.lvx
	setenv MBK_CATA_LIB $(ALLIANCE_TOP)/cells/sc2sxlib:$(ALLIANCE_TOP)/cells/sxlib ;\
	setenv MBK_TARGET_LIB $(ALLIANCE_TOP)/cells/sxlib ;\
	setenv RDS_IN cif ;\
	setenv RDS_OUT cif ;\
	setenv RDS_TECHNO_NAME $(ALLIANCE_TOP)/etc/cmos_8.rds ;\
	$(S2R) -v multiplier

multiplier.lvx : multiplier.al
	setenv MBK_CATA_LIB $(ALLIANCE_TOP)/cells/sc2sxlib:$(ALLIANCE_TOP)/cells/sxlib ;\
	setenv MBK_TARGET_LIB $(ALLIANCE_TOP)/cells/sxlib ;\
	$(LVX) vst al multiplier multiplier -f
	touch multiplier.lvx

multiplier.al : multiplier.ap
	setenv MBK_CATA_LIB $(ALLIANCE_TOP)/cells/sc2sxlib:$(ALLIANCE_TOP)/cells/sxlib ;\
	setenv MBK_TARGET_LIB $(ALLIANCE_TOP)/cells/sxlib ;\
	setenv MBK_IN_PH ap ;\
	setenv MBK_OUT_LO al ;\
	setenv RDS_TECHNO_NAME $(ALLIANCE_TOP)/etc/cmos_8.rds ;\
	$(LYNX) -v multiplier multiplier

multiplier.drc : multiplier.ap
	setenv MBK_CATA_LIB $(ALLIANCE_TOP)/cells/sc2sxlib:$(ALLIANCE_TOP)/cells/sxlib ;\
	setenv MBK_TARGET_LIB $(ALLIANCE_TOP)/cells/sxlib ;\
	setenv MBK_IN_PH ap ;\
	setenv RDS_OUT cif ;\
	setenv RDS_TECHNO_NAME $(ALLIANCE_TOP)/etc/cmos_8.rds ;\
	$(DRUC) multiplier

multiplier.ap : multiplier.vst
	setenv MBK_CATA_LIB $(ALLIANCE_TOP)/cells/sc2sxlib:$(ALLIANCE_TOP)/cells/sxlib ;\
	setenv MBK_TARGET_LIB $(ALLIANCE_TOP)/cells/sxlib ;\
	setenv SCR_L3MODE 1 ;\
	$(SCR) -p -r multiplier

multiplier.vst : multiplier.vbe
	echo '#M{2}' > rlx.lax
	echo '#L{1}' >> rlx.lax
	setenv MBK_CATA_LIB $(ALLIANCE_TOP)/cells/sclib ;\
	setenv MBK_TARGET_LIB $(ALLIANCE_TOP)/cells/sclib ;\
	$(SCMAP) multiplier multiplier rlx

multiplier.vbe :
	$(AMG) $(SIZEMULT) $(SIZEMULT) -vhdl -o temporary
	sed 's/vdd : in  bit/vdd : in  bit;/g' temporary.vbe | sed 's/vss : in  bit;/vss : in  bit/g' > multiplier.vbe

clean :
	/bin/rm -f *.vbe *.lax *.ap *.pat *.vst *.lvx *.al *.drc *.cif
