# Author:  Andres Farfan
# Date  :  26/03/2000
# Time  :  04:35

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


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

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

   BSG_LIB= $(ALLIANCE_CELLS)/bsg
    SCLIB = $(ALLIANCE_CELLS)/sclib
    SXLIB = $(ALLIANCE_CELLS)/sxlib
 SC2SXLIB = $(ALLIANCE_CELLS)/sc2sxlib
  RSA_LIB = $(ALLIANCE_CELLS)/rsa
    DPLIB = $(ALLIANCE_CELLS)/dplib
    FPLIB = $(ALLIANCE_CELLS)/fplib
    PADLIB= $(ALLIANCE_CELLS)/padlib
FPGEN_LIB = ./mclib

 CTRL_CATA_LIB = $(SXLIB):$(PADLIB)
 DP_CATA_LIB = $(FPLIB):$(FPGEN_LIB):$(RSA_LIB):$(BSG_LIB)
 SIM_CATA_LIB = $(DP_CATA_LIB):$(SXLIB)
 
# MBK environment common to all Alliance tools.
# =============================================
#

MBK_DP  = MBK_WORK_LIB=.;           export MBK_WORK_LIB;   \
		   MBK_CATA_LIB=$(DP_CATA_LIB); export MBK_CATA_LIB;   \
		   MBK_CATAL_NAME=CATAL;     export MBK_CATAL_NAME; \
		   MBK_VDD=vdd;              export MBK_VDD;        \
		   MBK_VSS=vss;              export MBK_VSS;        \
		   MBK_SEPAR=.;              export MBK_SEPAR;      \
		   FPGEN_LIB=$(FPGEN_LIB)    export FPGEN_LIB;      \
           MBK_TARGET_LIB=$(FPLIB);  export MBK_TARGET_LIB

MBK_CTRL  = MBK_WORK_LIB=.;           export MBK_WORK_LIB;   \
		   MBK_CATA_LIB=$(CTRL_CATA_LIB); export MBK_CATA_LIB;   \
		   MBK_CATAL_NAME=CATAL;     export MBK_CATAL_NAME; \
		   MBK_VDD=vdd;              export MBK_VDD;        \
		   MBK_VSS=vss;              export MBK_VSS;        \
		   MBK_SEPAR=.;              export MBK_SEPAR;      \
           MBK_TARGET_LIB=$(SXLIB);  export MBK_TARGET_LIB

MBK_SIM  = MBK_WORK_LIB=.;           export MBK_WORK_LIB;   \
		   MBK_CATA_LIB=$(SIM_CATA_LIB); export MBK_CATA_LIB;   \
		   MBK_CATAL_NAME=CATAL;     export MBK_CATAL_NAME; \
		   MBK_VDD=vdd;              export MBK_VDD;        \
		   MBK_VSS=vss;              export MBK_VSS;        \
		   MBK_SEPAR=.;              export MBK_SEPAR

#
#
# 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_CTRL); $(MBK_VST); $(MBK_AP); $(ALLIANCE_BIN)/bop
    SCMAP = $(MBK_CTRL); $(MBK_VST); $(MBK_AP); $(ALLIANCE_BIN)/scmap
      SCR = $(MBK_CTRL); $(MBK_VST); $(MBK_AP); $(ALLIANCE_BIN)/scr
      SCRDP = $(MBK_DP); $(MBK_VST); $(MBK_AP); $(ALLIANCE_BIN)/scr
     RSA  =                                    $(ALLIANCE_BIN)/rsa
   GENPAT = $(MBK_SIM);                        $(ALLIANCE_BIN)/genpat
   GENLIB = $(MBK_CTRL);                        $(ALLIANCE_BIN)/genlib
   ASIMUT = $(MBK_SIM);                        $(ALLIANCE_BIN)/asimut
     GLOP = $(MBK_CTRL); $(MBK_VST);             $(ALLIANCE_BIN)/glop
     DRUC =                                    $(ALLIANCE_BIN)/druc
     LYNX =                                    $(ALLIANCE_BIN)/lynx
      LVX = 				       $(ALLIANCE_BIN)/lvx
     XSCH = $(MBK_CTRL);                        $(ALLIANCE_BIN)/xsch
     FPGEN = $(MBK_DP); $(MBK_VST); $(MBK_AP); $(ALLIANCE_BIN)/fpgen
     DPR  = $(MBK_DP);			       $(ALLIANCE_BIN)/dpr
    GRAAL = $(MBK_SIM);			       $(ALLIANCE_BIN)/graal
    XSCH  = $(MBK_SIM);			       $(ALLIANCE_BIN)/xsch 
#########################################################################

########################################################
# Routing the Datapath
########################################################

%_dpr.ap: %_fpgen.vst
	$(DPR) -p -r  $(subst .ap,,$@) $(subst .vst,,$<)


%_fpgen.vst: %_fpgen.c
	$(FPGEN) -v  $(subst .c,,$<)


%_genpat.pat: %_genpat.c
	$(GENPAT) -v $(subst .c,,$<)

prueba_pat:
	$(ASIMUT) prueba_fpgen prueba_genpat salida


