# Author:  Andres Farfan
# Date  :  08/01/2000



# Installation Dependent Variables.
     TOP_LAB = $(ALLIANCE_TOP)
     TOP_LIB = $(ALLIANCE_TOP)

# Alliance binary access paths.
ALLIANCE_BIN =$(ALLIANCE_TOP)/bin
    USER_BIN =$(ALLIANCE_TOP)/bin

## ************************* Various MBK environment *************************

# Alliance leaf cells libraries paths.
# ====================================

  STD_LIB = $(TOP_LIB)/cells/sclib
   SX_LIB = $(TOP_LIB)/cells/sxlib
  RSA_LIB = $(TOP_LIB)/cells/rsa
  BSG_LIB = $(TOP_LIB)/cells/bsg
    DPLIB = $(TOP_LIB)/cells/dplib
    FPLIB = $(TOP_LIB)/cells/fplib
    PADLIB = $(TOP_LIB)/cells/padlib
FPGEN_LIB = ./mclib

  RSA_LIBS = $(RSA_LIB):$(PADLIB):$(DPLIB)
  BSG_LIBS = $(BSG_LIB):$(PADLIB):$(DPLIB)
  GRAAL_LIBS= $(BSG_LIB):$(RSA_LIB):$(SX_LIB) 
  SCR_LIBS = $(PADLIB):$(SX_LIB)
  SCMAP_LIBS = $(SX_LIB):$(PADLIB)
  
  CATA_LIB = $(SX_LIB):$(PADLIB)

# MBK environment common to all Alliance tools.
# =============================================
#
MBK_STD  = MBK_WORK_LIB=.;           export MBK_WORK_LIB;   \
		   MBK_CATA_LIB=$(CATA_LIB); export MBK_CATA_LIB;   \
		   MBK_CATAL_NAME=CATAL;     export MBK_CATAL_NAME; \
		   MBK_SEPAR=.;              export MBK_SEPAR;      \
		   MBK_VDD=vdd;              export MBK_VDD;        \
		   MBK_VSS=vss;              export MBK_VSS

#
#
# Avalaibles MBK netlist and layout formats.
# ==========================================
#
MBK_FNE  = MBK_OUT_LO=fne; export MBK_OUT_LO; MBK_IN_LO=fne; export MBK_IN_LO
MBK_HNS  = MBK_OUT_LO=hns; export MBK_OUT_LO; MBK_IN_LO=hns; export MBK_IN_LO
MBK_CP   = MBK_OUT_PH=cp;  export MBK_OUT_PH; MBK_IN_PH=cp;  export MBK_IN_PH
MBK_VST  = MBK_OUT_LO=vst; export MBK_OUT_LO; MBK_IN_LO=vst; export MBK_IN_LO
MBK_AL   = MBK_OUT_LO=al;  export MBK_OUT_LO; MBK_IN_LO=al;  export MBK_IN_LO
MBK_AP   = MBK_OUT_PH=ap;  export MBK_OUT_PH; MBK_IN_PH=ap;  export MBK_IN_PH


#
#
# Alliance Tools with the correct MBK environment.
# ================================================
#
      BOP = $(MBK_STD); $(MBK_AL); $(MBK_AP); $(ALLIANCE_BIN)/bop
 SCMAP_AL = $(MBK_STD); $(MBK_AL); $(MBK_AP); $(ALLIANCE_BIN)/scmap
SCMAP_VST = $(MBK_STD); $(MBK_VST); $(MBK_AP); $(ALLIANCE_BIN)/scmap
    FPGEN = $(MBK_STD); $(MBK_VST); $(MBK_AP); $(ALLIANCE_BIN)/fpgen
#    DPR = $(MBK_STD); $(MBK_VST); $(MBK_AP); $(ALLIANCE_BIN)/dpr
     DRUC = $(MBK_STD); $(MBK_VST); $(MBK_AP); $(ALLIANCE_BIN)/druc
     LYNX = $(MBK_STD); $(MBK_AL);  $(MBK_AP); $(ALLIANCE_BIN)/lynx
    PROOF = $(MBK_STD);                        $(ALLIANCE_BIN)/proof
      LVX = $(MBK_STD);                        $(ALLIANCE_BIN)/lvx
   SCR_AL = $(MBK_STD); $(MBK_AL); $(MBK_AP); $(ALLIANCE_BIN)/scr
  SCR_VST = $(MBK_STD); $(MBK_VST); $(MBK_AP); $(ALLIANCE_BIN)/scr
     RSA  =                                    $(ALLIANCE_BIN)/rsa
  RSA_AL  =             $(MBK_AL);             $(ALLIANCE_BIN)/rsa
  RSA_VST  =             $(MBK_VST);           $(ALLIANCE_BIN)/rsa
     BSG  =                                    $(ALLIANCE_BIN)/bsg
  BSG_AL  =             $(MBK_AL);             $(ALLIANCE_BIN)/bsg
  BSG_AP  =             $(MBK_AP);             $(ALLIANCE_BIN)/bsg
   GENPAT = $(MBK_STD);                        $(ALLIANCE_BIN)/genpat
     X2Y  = 				       $(ALLIANCE_BIN)/x2y
     
#   FPGEN = $(MBK_STD); $(MBK_VST); $(MBK_AP);  $(FITPATH_BIN)/fpgen
#    DPR = $(MBK_STD); $(MBK_VST); $(MBK_AP);  $(FITPATH_BIN)/dpr
#     DPR = $(MBK_STD); $(MBK_VST); $(MBK_AP);      $(DPR_BIN)/dpr
#    DPR = $(MBK_STD); $(MBK_VST); $(MBK_AP);     $(LABO_BIN)/dpr
#    LVX = $(MBK_STD);                            $(USER_BIN)/sparc/lvx-2.23

###########################################################

adder16.vbe:
	MBK_CATA_LIB=$(RSA_LIBS) export MBK_CATA_LIB;\
	$(RSA) 16 -cin -vhdl -o adder16;\

adder16.al:
	MBK_CATA_LIB=$(RSA_LIBS) export MBK_CATA_LIB;\
	$(RSA_AL) 16 -cin -logicalbox -o adder16;\

adder16.vst:
	MBK_CATA_LIB=$(RSA_LIBS) export MBK_CATA_LIB;\
	$(RSA_VST) 16 -cin -logicalbox -o adder16;\


adder16.ap:
	MBK_CATA_LIB=$(RSA_LIBS) export MBK_CATA_LIB;\
	$(RSA) 16 -cin -layout -o adder16;\

###########################################################

adder_in.bop.vbe: adder_in.vbe
	$(BOP) -l adder_in adder_in.bop;\

adder_in.al: adder_in.bop.vbe
	$(SCMAP_AL) adder_in.bop adder_in;\
    
adder_in.vst: adder_in.bop.vbe
	$(SCMAP_VST) adder_in.bop adder_in;\

adder_in.ap: adder_in.al
	$(SCR_AL) -p -r -i 1000 -l 13 adder_in;\



###########################################################
adder_out.bop.vbe: adder_out.vbe
	$(BOP) -l adder_out adder_out.bop;\

adder_out.al: adder_out.bop.vbe
	$(SCMAP_AL) adder_out.bop adder_out;\

adder_out.vst: adder_out.bop.vbe
	$(SCMAP_VST) adder_out.bop adder_out;\

adder_out.ap: adder_out.al
	$(SCR_AL) -p -r -i 1000 -l 13 adder_out;\


#########################################################

adder.ap: adder16.ap adder_in.ap adder_out.ap
	$(SCR_VST) -p -r -i 1000 -l 1  adder;\


graal:
	MBK_CATA_LIB=$(GRAAL_LIBS) export MBK_CATA_LIB;\
	graal;\
#################################################
# Remove generated files                        # 
#################################################	
clean:
	rm -f *.ap;\
	rm -f *.bop.*;\
	rm -f *.al;\
	rm -f *.rep;\
	rm -f *.ttx;\
	rm -f *.drc;\
	rm -f *.cif;\
	rm -f *.pat;\