# makefile de la description physique
# le 8 novembre 2001
# groupe hadamar5 : Caroline Bled & Antony Pinto
#

     ALLIANCE_TOP = /asim/alliance
      TECHNO_SYMB = cmos
      TECHNO_REAL = prol10
            RDS_V = 12


#
# /------------------------------------------------------------------\
# |                        Macros definitions                        |
# \------------------------------------------------------------------/
#

# Standart System binary access paths.
STANDART_BIN  = /usr/local/bin:/labo/gnu/bin:/usr/bin
STANDART_PATH = PATH=$(STANDART_BIN); export PATH

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

# FitPath Alliance binary access paths.
    DEVEL_BIN = $(DEVEL_TOP)/bin


# --------------------------------------------------------------------
# Standarts binaries.

           LS =                  /bin/ls
           CD = PATH=$(STANDART_BIN); cd
           CP = 		 /bin/cp
           LN = PATH=$(STANDART_BIN); ln
           MV = PATH=$(STANDART_BIN); mv
           RM =                  /bin/rm
          SED = PATH=$(STANDART_BIN); sed
          AWK = PATH=$(STANDART_BIN); gawk
          CAT = PATH=$(STANDART_BIN); cat
         MAKE = PATH=$(STANDART_BIN); make
         ECHO =                  /bin/echo
#  Alliance paths and formats settings.
 GENERAT_LO   = vst
 EXTRACT_LO   = al
 GENERAT_PH   = ap
 EXTRACT_PH   = ap
 GENERAT_SP   = _
 EXTRACT_SP   = _
   CATA_LIB0   = $(ALLIANCE_TOP)/cells/sxlib
   CATA_LIB1   = $(ALLIANCE_TOP)/cells/dp_sxlib
   CATA_LIB2   = $(ALLIANCE_TOP)/cells/padlib
   CATA_LIB4   = $(ALLIANCE_TOP)/cells/rflib
   CATA_LIB3   = .
    CATA_LIB   = $(CATA_LIB4):$(CATA_LIB3):$(CATA_LIB0):$(CATA_LIB1):$(CATA_LIB2)

 TARGET_LIB   = $(MBK_TARGET_LIB)
  FPGEN_LIB   = $(CATA_LIB0):$(CATA_LIB1)


 MBK_GENERAT_ENV = MBK_TARGET_LIB=$(TARGET_LIB);  export MBK_TARGET_LIB;    \
                   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_OUT_LO=$(GENERAT_LO);      export MBK_OUT_LO;        \
                   MBK_OUT_PH=$(GENERAT_PH);      export MBK_OUT_PH;        \
                   MBK_IN_LO=$(GENERAT_LO);       export MBK_IN_LO;         \
                   MBK_IN_PH=$(GENERAT_PH);       export MBK_IN_PH;         \
                   MBK_SEPAR=$(GENERAT_SP);       export MBK_SEPAR;         \
                   MBK_VDD=vdd;                   export MBK_VDD;           \
                   MBK_VSS=vss;                   export MBK_VSS;           \
                   FPGEN_LIB=$(FPGEN_LIB);        export FPGEN_LIB;	    \
                   VH_MAXERR=10;                  export VH_MAXERR;         \
		   RDS_TECHNO_NAME=/users/soft4/techno/labo/035/extract/cmos_12.rds; \
						  export RDS_TECHNO_NAME;   \
		   GRAAL_TECHNO_NAME=/asim/alliance/etc/cmos_12.graal; 		     \
						  export GRAAL_TECHNO_NAME
# MBK extracting environment.
 MBK_EXTRACT_ENV = MBK_TARGET_LIB=$(TARGET_LIB); export MBK_TARGET_LIB; \
                   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_OUT_LO=$(EXTRACT_LO);     export MBK_OUT_LO;     \
                   MBK_OUT_PH=$(EXTRACT_PH);     export MBK_OUT_PH;     \
                   MBK_IN_LO=$(EXTRACT_LO);      export MBK_IN_LO;      \
                   MBK_IN_PH=$(EXTRACT_PH);      export MBK_IN_PH;      \
                   MBK_SEPAR=$(EXTRACT_SP);      export MBK_SEPAR;      \
                   MBK_VDD=vdd;                  export MBK_VDD;        \
                   MBK_VSS=vss;                  export MBK_VSS;        \
                   VH_MAXERR=10;                 export VH_MAXERR;      \
		   RDS_TECHNO_NAME=/users/soft4/techno/labo/035/extract/cmos_12.rds; \
						 export RDS_TECHNO_NAME;\
		   GRAAL_TECHNO_NAME=/asim/alliance/etc/cmos_12.graal;  \
						 export GRAAL_TECHNO_NAME

 SPICE_ENV  = RDS_TECHNO_NAME=/users/soft4/techno/labo/035/extract/prol035.rds;       \
						 export RDS_TECHNO_NAME;\
 	      MBK_OUT_LO=spi ;             	 export MBK_OUT_LO;	\
 	      MBK_SPI_MODEL=model_N_P;     	 export MBK_SPI_MODEL;
 TIMING_ENV = RDS_TECHNO_NAME=/users/soft4/techno/labo/035/extract/prol035.rds;       \
						 export RDS_TECHNO_NAME;\
	      MBK_OUT_LO=al ;              	 export MBK_OUT_LO

 TAS_ENV    = ELP_TECHNO_NAME=/users/soft4/techno/labo/035/elp/prol035.elp; 	      \
						 export ELP_TECHNO_NAME;\
	      MBK_IN_LO=al;               	 export MBK_IN_LO
# --------------------------------------------------------------------
# Alliance binaries & environment.

   ASIMUT = $(MBK_GENERAT_ENV); $(ALLIANCE_BIN)/asimut -zd -l 10
  FLATBEH = $(MBK_GENERAT_ENV); $(ALLIANCE_BIN)/flatbeh
     LYNX = $(MBK_EXTRACT_ENV); $(ALLIANCE_BIN)/lynx
    LYNX2 = $(TIMING_ENV)     ; $(ALLIANCE_BIN)/lynx -v
     DRUC = $(MBK_GENERAT_ENV); $(ALLIANCE_BIN)/druc
    YAGLE = $(MBK_EXTRACT_ENV); $(ALLIANCE_BIN)/yagle
      LVX = $(MBK_EXTRACT_ENV); $(ALLIANCE_BIN)/lvx
    PROOF = $(MBK_EXTRACT_ENV); $(ALLIANCE_BIN)/proof -d
    DPGEN = $(MBK_GENERAT_ENV); $(ALLIANCE_BIN)/dpgen
  SEPLACE = $(MBK_GENERAT_ENV); seplace --verbose
  SEROUTE = $(MBK_GENERAT_ENV); seroute
      OCP = $(MBK_GENERAT_ENV); $(ALLIANCE_BIN)/ocp -v
   FLATLO = $(MBK_GENERAT_ENV); $(ALLIANCE_BIN)/flatlo
     RING = $(MBK_GENERAT_ENV); $(ALLIANCE_BIN)/ring
    GRAAL = $(MBK_GENERAT_ENV); $(ALLIANCE_BIN)/graal
      TAS = $(TAS_ENV)	      ;  	   	tas -t


   GENPAT =                     $(ALLIANCE_BIN)/genpat
      SYF =                     $(ALLIANCE_BIN)/syf  -CVE
     BOOM =                     $(ALLIANCE_BIN)/boom -V -j
     BOOG = $(MBK_EXTRACT_ENV); $(ALLIANCE_BIN)/boog
     LOON =                     $(ALLIANCE_BIN)/loon
   SCAPIN =                     $(ALLIANCE_BIN)/scapin -V -R
     XSCH =                     $(ALLIANCE_BIN)/xsch -install -I vst


default : chip.al
	@echo --
	@echo --      make de layout effectue
	@echo --

#------- Validation du placement des plots ----------#
chip.drc : chip.ap
	$(DRUC) chip

chip.al  : chip.ap 
	$(LYNX) -f chip
	$(LVX) vst al chip chip -f

#-------------- Placement des plots -----------------#
chip.ap : chip.rin chip.vst circuit.ap
	$(RING) chip chip


chip.vst : chip.c
	$(DPGEN) chip

#--------- Validation du routage du coeur -----------#
circuit.drc : circuit.ap
	$(DRUC) circuit

circuit.al  : circuit.ap 
	$(LYNX) -f circuit 
	$(LVX) vst al circuit circuit -f

#--------------- Routage du coeur -------------------#
circuit.ap :  circuit.ioc circuit_p.ap
	$(SEROUTE) -V --core --ring --place=circuit_p circuit circuit

#-------------- Placement du coeur ------------------#
circuit_p.ap :  circuit.vst 
#	$(SEPLACE) --partial-place=circuit --ioc circuit circuit_p
	$(OCP) -partial circuit -ioc circuit circuit circuit_p 
	$(DRUC) circuit_p

clean 	:
	@$(RM) -f *.al *.ap *.def *.vst *.drc *.mac *.cif *.cfg *.log
	@$(RM) -f *~ Makefile.* *.dat
	@echo "Tous les fichiers generes par le makefile layout ont ete effaces!!!"

