# Makefile for Efabless design kits for gf180mcu:
#
# This file supports all the process options including 2 to 6 metals,
# and multiple thicknesses of the top metal.  The three PDKs generated by
# the Makefile represent the three backend options for which the I/O library
# has layout, which are, namely, 3-, 4-, and 5- metal options.
#
# Important note about the process:  GF180MCU uses the same base process as
# other GF180 processes.  However, instead of a thin oxide gate, the base
# oxide is a thick oxide, and the thick oxide mask defines a thicker oxide.
# The process DRC rules then follow the rule sets for thick oxide devices,
# so the minimum length transistor is 280nm, making this much more like a
# 0.28um process than a 0.18um process.
#
# Notes about definitions:
# METALSN means N layers of metal, where N can be 2 to 6.
# THICKMET3P0 means that the top metal is 3.0um thick
# THICKMET1P1 means that the top metal is 1.1um thick
# THICKMET0P9 means that the top metal is 0.9um thick
# Otherwise, the top metal is 0.6um thick
# Always use exactly one "METALSN" option (N = 4 to 6).
#
# NOTE:  Using "METALSN" instead of "METALN" because "METALN" are the preferred
# layer names in the technology LEF file.
#
# MIM means that the MiM cap is defined between top metal and the one below.
# The process defines a "MIM OPT A" with the MiM cap between metals 3 and 2.
# Because this option is only available with METALS4 (For METALS3 options A
# and B are the same), it is not being implemented.
#
# MIM caps are mutually-exclusive-selectable 1fF, 1.5fF, or 2fF per um^2.
# For simplicity, this file assumes the 2fF per um^2 value.
#
# HRPOLY1K defines the 1K high sheet rho poly resistor.
#
# Not all combinations of options are valid.  Global Foundries defines the
# following combinations as valid (adjusting for the decision not to
# implement MIM OPT A):
#
# METALS2 + THICKMET3P0
#
# METALS3 + MIM
# METALS3 + MIM + THICKMET0P9
# METALS3 + MIM + THICKMET1P1
# METALS3 + MIM + THICKMET3P0
#
# METALS4 + MIM + THICKMET0P9
# METALS4 + MIM + THICKMET1P1
# METALS4 + MIM + THICKMET3P0
#
# METALS5 + MIM + THICKMET0P9
# METALS5 + MIM + THICKMET1P1
#
# METALS6 + MIM + THICKMET0P9
#
#------------------------------------------------------------------------------
#
# The defined options per PDK in this file are:
#
#  gf180mcuA   =  METALS3 | MIM | THICKMET3P0 | HRPOLY1K
#  gf180mcuB   =  METALS4 | MIM | THICKMET1P1 | HRPOLY1K
#  gf180mcuC   =  METALS5 | MIM | THICKMET0P9 | HRPOLY1K
#
# Written by Tim Edwards April 2022
# Efabless, Inc.
#
#--------------------------------------------------------------------
# This Makefile contains bash-isms
SHELL := /bin/bash
export SHELL
# We use pipes to save output to files, without pipefail they will always be
# seen by make as having succeeded.
SHELLOPTS := pipefail
export SHELLOPTS
MV = mv
PATCH = patch
SED = @SED@

prefix = @prefix@
datarootdir = @datarootdir@
datadir = @datadir@

# Find path to open_pdks (even though this directory may be a symbolic link)
SCRIPTSDIR = $(patsubst %/gf180mcu,%,$(PWD))

# Use git revision if this is a cloned repo;  otherwise get the revision
# from the VERSION file in the directory above.
GITREV = $(shell git describe --long)
ifeq (${GITREV},)
    REVISION = $(shell cat ${SCRIPTSDIR}/VERSION)
else
    REVISION = ${GITREV}
endif
TECH = gf180mcu

# The run-time environment uses PDKPATH to override the PDK location,
# so prevent that from happening during PDK install.  This will also
# happen with PDK_ROOT, so avoid that as well.
unexport PDKPATH
unexport PDK_ROOT

# If EF_STYLE is set to 1, then efabless naming conventions are
# used, otherwise the generic naming conventions are used.
# Mainly this has to do with where the technology LEF files are
# put (libs.tech/lef/ vs. libs.ref/techLEF).

# EF_STYLE = 0 | 1
EF_STYLE = @EF_STYLE@

# Normally it's fine to keep the staging path in a local directory,
# although /tmp or a dedicated staging area are also fine, as long
# as the install process can write to the path.

STAGING_PATH = $(shell pwd)

SHARED_PDKS_PATH ?= $(datadir)/pdk

# If LINK_TARGETS is set to "none", then files are copied
# from the SkyWater sources to the target.  If set to "source",
# symbolic links are made in the target directories pointing
# back to the SkyWater sources.  If set to the name of another
# PDK (e.g, "sky130A"), then symbolic links are made to the
# same files in that PDK, where they exist, and are copied
# from source, where they don't.
#
# Behavior is to let the link targets for variant A follow the
# configuration option.  Link targets for variant B will always
# be the files of variant A (which may end up being symbolic
# links to symbolic links if "source" was chosen for link-targets
# in the configuration).

# LINK_TARGETS = source | none | gf180mcuA
LINK_TARGETS_A = @GF180MCU_LINK_TARGETS@
LINK_TARGETS_B = gf180mcuA
LINK_TARGETS_C = gf180mcuA

# ENABLED_VARIANTS = all | A | B | C
ENABLED_VARIANTS = @GF180MCU_ENABLED_VARIANTS@
ifeq (${ENABLED_VARIANTS},)
	VARIANTS += A B C
else
    ifeq (${ENABLED_VARIANTS}, all)
	VARIANTS += A B C
    else
	VARIANTS += ${ENABLED_VARIANTS}
    endif
endif

# Paths:

# Path to GF180MCU open PDK sources.  If this is specified, then all
# library repositories must be subdirectories of this path.
GF180MCU_PR_PATH = @GF180MCU_FD_PR_PATH@
GF180MCU_IO_PATH = @GF180MCU_FD_IO_PATH@
GF180MCU_SC_7T5V0_PATH = @GF180MCU_FD_SC_MCU7T5V0_PATH@
GF180MCU_SC_9T5V0_PATH = @GF180MCU_FD_SC_MCU9T5V0_PATH@
GF180MCU_SRAM_PATH = @GF180MCU_FD_IP_SRAM_PATH@
GF180MCU_OSU_SC_PATH = @GF180MCU_OSU_SC_PATH@

# Path to GF180MCU library sources
PDK_URL = https://github.com/google
OSU_URL = https://github.com/stineje
EF_URL = https://github.com/efabless

# Names of library repositories
# NOTE:  Switching PDK_LIB_PR and PDK_LIB_SC_7T5V0 to Efabless versions
# having "quick fixes" under development.
PDK_LIB_PR =       ${EF_URL}/globalfoundries-pdk-libs-gf180mcu_fd_pr
PDK_LIB_IO =       ${PDK_URL}/globalfoundries-pdk-libs-gf180mcu_fd_io
PDK_LIB_SC_7T5V0 = ${EF_URL}/globalfoundries-pdk-libs-gf180mcu_fd_sc_mcu7t5v0
PDK_LIB_SC_9T5V0 = ${EF_URL}/globalfoundries-pdk-libs-gf180mcu_fd_sc_mcu9t5v0
PDK_LIB_SRAM =     ${PDK_URL}/globalfoundries-pdk-ip-gf180mcu_fd_ip_sram
PDK_LIB_OSU_SC =   ${OSU_URL}/globalfoundries-pdk-libs-gf180mcu_osu_sc

# NOTE:  Install destination is the git repository of the technology platform.
# Once updated in git, the git project can be distributed to all hosts.
#
ifeq (${EF_STYLE}, 1)
    CONFIG_DIR = .ef-config
    REV_DIR = ${REVISION}
else
    CONFIG_DIR = .config
    REV_DIR = .
endif

# Process nodes created from the master sources
GF180MCUA = gf180mcuA
GF180MCUB = gf180mcuB
GF180MCUC = gf180mcuC

DIST_LINK_TARGETS_A = ${LINK_TARGETS_A}
DIST_LINK_TARGETS_B = ${SHARED_PDKS_PATH}/${LINK_TARGETS_B}
DIST_LINK_TARGETS_C = ${SHARED_PDKS_PATH}/${LINK_TARGETS_C}

# Basic definitions for each process node
GF180MCUA_DEFS = -DTECHNAME=gf180mcuA -DREVISION=${REVISION}
GF180MCUB_DEFS = -DTECHNAME=gf180mcuB -DREVISION=${REVISION}
GF180MCUC_DEFS = -DTECHNAME=gf180mcuC -DREVISION=${REVISION}

# Module definitions for each process node (see top)
GF180MCUA_DEFS += -DMETALS3 -DMIM -DTHICKMET3P0 -DHRPOLY1K
GF180MCUB_DEFS += -DMETALS4 -DMIM -DTHICKMET1P1 -DHRPOLY1K
GF180MCUC_DEFS += -DMETALS5 -DMIM -DTHICKMET0P9 -DHRPOLY1K

# Add staging path
GF180MCUA_DEFS += -DSTAGING_PATH=${STAGING_PATH}
GF180MCUB_DEFS += -DSTAGING_PATH=${STAGING_PATH}
GF180MCUC_DEFS += -DSTAGING_PATH=${STAGING_PATH}

# Get the timestamp of the open_pdks commit to use for stamping layouts.
OPEN_PDKS_TIMESTAMP = $(shell git log -1 --format="%ad" --date=raw | cut -d' ' -f1)
TIMESTAMP_OPT = -timestamp ${OPEN_PDKS_TIMESTAMP}

# Record commit numbers for the nodeinfo.json file
OPEN_PDKS_COMMIT = $(shell git rev-parse HEAD)
ifeq (${OPEN_PDKS_COMMIT},)
    COMMIT_DEFS = -DOPEN_PDKS_COMMIT=${REVISION}
else
    COMMIT_DEFS = -DOPEN_PDKS_COMMIT=${OPEN_PDKS_COMMIT}
endif

ifeq (${GF180MCU_SC_9T5V0_PATH},)
    COMMIT_DEFS += -DFD_SC_MCU9T5V0_COMMIT="unknown"
else
    COMMIT_DEFS += -DFD_SC_MCU9T5V0_COMMIT=$(shell cd ${GF180MCU_SC_9T5V0_PATH} ; git rev-parse HEAD)
endif
ifeq (${GF180MCU_SC_7T5V0_PATH},)
    COMMIT_DEFS += -DFD_SC_MCU7T5V0_COMMIT="unknown"
else
    COMMIT_DEFS += -DFD_SC_MCU7T5V0_COMMIT=$(shell cd ${GF180MCU_SC_7T5V0_PATH} ; git rev-parse HEAD)
endif
ifeq (${GF180MCU_PR_PATH},)
    COMMIT_DEFS += -DFD_PR_COMMIT="unknown"
else
    COMMIT_DEFS += -DFD_PR_COMMIT=$(shell cd ${GF180MCU_PR_PATH} ; git rev-parse HEAD)
endif
ifeq (${GF180MCU_IO_PATH},)
    COMMIT_DEFS += -DFD_IO_COMMIT="unknown"
else
    COMMIT_DEFS += -DFD_IO_COMMIT=$(shell cd ${GF180MCU_IO_PATH} ; git rev-parse HEAD)
endif
ifeq (${GF180MCU_SRAM_PATH},)
    COMMIT_DEFS += -DFD_IP_SRAM_COMMIT="unknown"
else
    COMMIT_DEFS += -DFD_IP_SRAM_COMMIT=$(shell cd ${GF180MCU_SRAM_PATH} ; git rev-parse HEAD)
endif

COMMIT_DEFS += -DMAGIC_COMMIT=$(shell magic -dnull -noconsole --commit)
COMMIT_DEFS += -DMAGIC_VERSION=$(shell magic -dnull -noconsole --version)
COMMIT_DEFS += -DOPEN_PDKS_VERSION=$(shell cat ${SCRIPTSDIR}/VERSION)

ifeq (${EF_STYLE}, 1)
    EF_FORMAT = -ef_format
    GF180MCUA_DEFS += -DEF_FORMAT
    GF180MCUB_DEFS += -DEF_FORMAT
    GF180MCUC_DEFS += -DEF_FORMAT
else
    EF_FORMAT = -std_format
endif

MAGICTOP = libs.tech/magic
NETGENTOP = libs.tech/netgen
QFLOWTOP = libs.tech/qflow
IRSIMTOP = libs.tech/irsim
KLAYOUTTOP = libs.tech/klayout
OPENLANETOP = libs.tech/openlane
XSCHEMTOP = libs.tech/xschem
XCIRCUITTOP = libs.tech/xcircuit
NGSPICETOP = libs.tech/ngspice

ifeq (${EF_STYLE}, 1)
    MAGICPATH = ${MAGICTOP}/${REVISION}
    MAGIC_CURRENT = ${MAGICTOP}/current
else
    MAGICPATH = ${MAGICTOP}
    MAGIC_CURRENT = ${MAGICTOP}
endif

NETGENPATH = ${NETGENTOP}
IRSIMPATH = ${IRSIMTOP}
QFLOWPATH = ${QFLOWTOP}
KLAYOUTPATH = ${KLAYOUTTOP}
OPENLANEPATH = ${OPENLANETOP}
XSCHEMPATH = ${XSCHEMTOP}
XCIRCUITPATH = ${XCIRCUITTOP}
NGSPICEPATH = ${NGSPICETOP}

MAGICTOP_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${MAGICTOP}
NETGENTOP_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${NETGENTOP}
IRSIMTOP_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${IRSIMTOP}
QFLOWTOP_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${QFLOWTOP}
KLAYOUTTOP_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${KLAYOUTTOP}
OPENLANETOP_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${OPENLANETOP}
XSCHEMTOP_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${XSCHEMTOP}
XCIRCUITTOP_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${XCIRCUITTOP}
NGSPICETOP_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${NGSPICETOP}

MAGIC_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${MAGICPATH}
NETGEN_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${NETGENPATH}
IRSIM_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${IRSIMPATH}
QFLOW_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${QFLOWPATH}
KLAYOUT_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${KLAYOUTPATH}
OPENLANE_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${OPENLANEPATH}
XSCHEM_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${XSCHEMPATH}
XCIRCUIT_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${XCIRCUITPATH}
NGSPICE_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${NGSPICEPATH}

MAGICTOP_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${MAGICTOP}
NETGENTOP_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${NETGENTOP}
IRSIMTOP_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${IRSIMTOP}
QFLOWTOP_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${QFLOWTOP}
KLAYOUTTOP_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${KLAYOUTTOP}
OPENLANETOP_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${OPENLANETOP}
XSCHEMTOP_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${XSCHEMTOP}
XCIRCUITTOP_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${XCIRCUITTOP}
NGSPICETOP_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${NGSPICETOP}

MAGIC_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${MAGICPATH}
NETGEN_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${NETGENPATH}
IRSIM_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${IRSIMPATH}
QFLOW_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${QFLOWPATH}
KLAYOUT_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${KLAYOUTPATH}
OPENLANE_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${OPENLANEPATH}
XSCHEM_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${XSCHEMPATH}
XCIRCUIT_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${XCIRCUITPATH}
NGSPICE_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${NGSPICEPATH}

MAGICTOP_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${MAGICTOP}
NETGENTOP_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${NETGENTOP}
IRSIMTOP_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${IRSIMTOP}
QFLOWTOP_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${QFLOWTOP}
KLAYOUTTOP_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${KLAYOUTTOP}
OPENLANETOP_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${OPENLANETOP}
XSCHEMTOP_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${XSCHEMTOP}
XCIRCUITTOP_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${XCIRCUITTOP}
NGSPICETOP_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${NGSPICETOP}

MAGIC_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${MAGICPATH}
NETGEN_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${NETGENPATH}
IRSIM_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${IRSIMPATH}
QFLOW_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${QFLOWPATH}
KLAYOUT_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${KLAYOUTPATH}
OPENLANE_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${OPENLANEPATH}
XSCHEM_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${XSCHEMPATH}
XCIRCUIT_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${XCIRCUITPATH}
NGSPICE_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${NGSPICEPATH}

GF180MCUA_DEFS += -DMAGIC_CURRENT=${MAGIC_CURRENT}
GF180MCUB_DEFS += -DMAGIC_CURRENT=${MAGIC_CURRENT}
GF180MCUC_DEFS += -DMAGIC_CURRENT=${MAGIC_CURRENT}

# These definitions are used by the build recipes
A_STACK = 3lm
B_STACK = 4lm
C_STACK = 5lm

# These definitions are used by the build recipes for the tech LEF
A_FULLSTACK = 3LM_1TM_30K
B_FULLSTACK = 4LM_1TM_11K
C_FULLSTACK = 5LM_1TM_9K

# Openlane has a number of files that are common to all digital
# standard cell libraries, so these are collected in one definition
# here:
OPENLANE_COMMON = config.tcl tracks.info no_synth.cells drc_exclude.cells

# Where cpp syntax is followed, this is equivalent to cpp, but it does not
# mangle non-C source files under the belief that they are actually C code.
CPP   = ${SCRIPTSDIR}/common/preproc.py

# The following script in the ${SCRIPTSDIR}/common directory does most of the work of
# copying or linking the foundry vendor files to the target directory.
STAGE = set -f ; ${SCRIPTSDIR}/common/foundry_install.py ${EF_FORMAT} ${TIMESTAMP_OPT}
ifneq ($(DESTDIR), )
INSTALL = ${SCRIPTSDIR}/common/staging_install.py -writeto $(DESTDIR) ${EF_FORMAT}
else
INSTALL = ${SCRIPTSDIR}/common/staging_install.py ${EF_FORMAT}
endif

# List the EDA tools to install local setup files for
TOOLS =

# KLAYOUT_DISABLED = 0 | 1
KLAYOUT_DISABLED = @KLAYOUT_DISABLED@
ifneq (${KLAYOUT_DISABLED}, 1)
        TOOLS += klayout
endif

# OPENLANE_DISABLED = 0 | 1
OPENLANE_DISABLED = @OPENLANE_DISABLED@
ifneq (${OPENLANE_DISABLED}, 1)
        TOOLS += openlane
endif

# QFLOW_DISABLED = 0 | 1
QFLOW_DISABLED = @QFLOW_DISABLED@
ifneq (${QFLOW_DISABLED}, 1)
        TOOLS += qflow
endif

# MAGIC_DISABLED = 0 | 1
MAGIC_DISABLED = @MAGIC_DISABLED@
ifneq (${MAGIC_DISABLED}, 1)
        TOOLS += magic
endif

# NETGEN_DISABLED = 0 | 1
NETGEN_DISABLED = @NETGEN_DISABLED@
ifneq (${NETGEN_DISABLED}, 1)
        TOOLS += netgen
endif

# IRSIM_DISABLED = 0 | 1
IRSIM_DISABLED = @IRSIM_DISABLED@
ifneq (${IRSIM_DISABLED}, 1)
        TOOLS += irsim
endif

# XSCHEM_DISABLED = 0 | 1
XSCHEM_DISABLED = @XSCHEM_DISABLED@
ifneq (${XSCHEM_DISABLED}, 1)
        TOOLS += xschem
endif

# XCIRCUIT_DISABLED = 0 | 1
XCIRCUIT_DISABLED = @XCIRCUIT_DISABLED@
ifneq (${XCIRCUIT_DISABLED}, 1)
        TOOLS += xcircuit
endif

reference: ${TECH}.json
	# Rewrite the ${TECH}.json file to change the commit values in
	# "reference" to reflect the state of the system when  "make
	# reference" was run.  This is then committed to the open_pdks
	# repository to create a known reference configuration of all
	# tools.
	../common/save_commit_refs.py ${COMMIT_DEFS} ${TECH}.json

all: $(foreach var, ${VARIANTS}, all-$(var))

# Handle prerequisites
prerequisites: pr-repo io-repo sc-7t-repo sc-9t-repo sram-repo osu-sc-repo

pr-repo:
	if test "x${GF180MCU_PR_PATH}" != "x" ; then \
		if test -d "${GF180MCU_PR_PATH}" ; then \
			echo "Using existing installation of primitive library from ${GF180MCU_PR_PATH}" ; \
		else \
			echo "Downloading primitive library from ${GF180MCU_PR_PATH}" ; \
			../scripts/download.sh ${PDK_LIB_PR} ${GF180MCU_PR_PATH} ; \
		fi ; \
	fi

io-repo:
	if test "x${GF180MCU_IO_PATH}" != "x" ; then \
		if test -d "${GF180MCU_IO_PATH}" ; then \
			echo "Using existing installation of I/O library from ${GF180MCU_IO_PATH}" ; \
		else \
			echo "Downloading I/O library from ${GF180MCU_IO_PATH}" ; \
			../scripts/download.sh ${PDK_LIB_IO} ${GF180MCU_IO_PATH} ; \
		fi ; \
	fi

sc-7t-repo:
	if test "x${GF180MCU_SC_7T5V0_PATH}" != "x" ; then \
		if test -d "${GF180MCU_SC_7T5V0_PATH}" ; then \
			echo "Using existing installation of 7-track standard cell library from ${GF180MCU_SC_7T5V0_PATH}" ; \
		else \
			echo "Downloading 7-track standard cell library from ${GF180MCU_SC_7T5V0_PATH}" ; \
			../scripts/download.sh ${PDK_LIB_SC_7T5V0} ${GF180MCU_SC_7T5V0_PATH} ; \
		fi ; \
	fi

sc-9t-repo:
	if test "x${GF180MCU_SC_9T5V0_PATH}" != "x" ; then \
		if test -d "${GF180MCU_SC_9T5V0_PATH}" ; then \
			echo "Using existing installation of 9-track standard cell library from ${GF180MCU_SC_9T5V0_PATH}" ; \
		else \
			echo "Downloading 9-track standard cell library from ${GF180MCU_SC_9T5V0_PATH}" ; \
			../scripts/download.sh ${PDK_LIB_SC_9T5V0} ${GF180MCU_SC_9T5V0_PATH} ; \
		fi ; \
	fi

sram-repo:
	if test "x${GF180MCU_SRAM_PATH}" != "x" ; then \
		if test -d "${GF180MCU_SRAM_PATH}" ; then \
			echo "Using existing installation of primitive library from ${GF180MCU_SRAM_PATH}" ; \
		else \
			echo "Downloading primitive library from ${GF180MCU_SRAM_PATH}" ; \
			../scripts/download.sh ${PDK_LIB_SRAM} ${GF180MCU_SRAM_PATH} ; \
		fi ; \
	fi

osu-sc-repo:
	if test "x${GF180MCU_OSU_SC_PATH}" != "x" ; then \
		if test -d "${GF180MCU_OSU_SC_PATH}" ; then \
			echo "Using existing installation of OSU 3.3V standard cell library from ${GF180MCU_OSU_SC_PATH}" ; \
		else \
			echo "Downloading OSU 3.3V standard cell library from ${GF180MCU_OSU_SC_PATH}" ; \
			../scripts/download.sh ${PDK_LIB_OSU_SC} ${GF180MCU_OSU_SC_PATH} ; \
		fi ; \
	fi

# Update prerequisites
update: update-pr-repo update-io-repo update-sc-7t-repo update-sc-9t-repo update-sram-repo update-osu-sc-repo

update-pr-repo:
	if test "x${GF180MCU_PR_PATH}" != "x" ; then \
		echo "Updating GF180MCU primitive library from ${PDK_LIB_PR}" ; \
		../scripts/update.sh ${GF180MCU_PR_PATH} ; \
	fi

update-io-repo:
	if test "x${GF180MCU_IO_PATH}" != "x" ; then \
		echo "Updating GF180MCU I/O library from ${PDK_LIB_IO}" ; \
		../scripts/update.sh ${GF180MCU_IO_PATH} ; \
	fi

update-sc-7t-repo:
	if test "x${GF180MCU_SC_7T5V0_PATH}" != "x" ; then \
		echo "Updating GF180MCU 7-track standard cell library from ${PDK_LIB_SC_7T5V0}" ; \
		../scripts/update.sh ${GF180MCU_SC_7T5V0_PATH} ; \
	fi

update-sc-9t-repo:
	if test "x${GF180MCU_SC_9T5V0_PATH}" != "x" ; then \
		echo "Updating GF180MCU 9-track standard cell library from ${PDK_LIB_SC_9T5V0}" ; \
		../scripts/update.sh ${GF180MCU_SC_9T5V0_PATH} ; \
	fi

update-sram-repo:
	if test "x${GF180MCU_SRAM_PATH}" != "x" ; then \
		echo "Updating GF180MCU SRAM macro library from ${PDK_LIB_SRAM}" ; \
		../scripts/update.sh ${GF180MCU_SRAM_PATH} ; \
	fi

update-osu-sc-repo:
	if test "x${GF180MCU_OSU_SC_PATH}" != "x" ; then \
		echo "Updating GF180MCU OSU 3.3V standard cell library from ${PDK_LIB_OSU_SC}" ; \
		../scripts/update.sh ${GF180MCU_OSU_SC_PATH} ; \
	fi

all-%: prerequisites
	echo "Starting gf180mcu$* PDK staging on "`date` > ${GF180MCU$*}_make.log
	${MAKE} general-$*
	${MAKE} tools-$*
	${MAKE} vendor-$*
	echo "Ended gf180mcu$* PDK staging on "`date` >> ${GF180MCU$*}_make.log

general-%: ${TECH}.json
	mkdir -p ${STAGING_PATH}/${GF180MCU$*}/${CONFIG_DIR}
	rm -f ${STAGING_PATH}/${GF180MCU$*}/${CONFIG_DIR}/nodeinfo.json
	${CPP} ${GF180MCU$*_DEFS} ${COMMIT_DEFS} ${TECH}.json \
		${STAGING_PATH}/${GF180MCU$*}/${CONFIG_DIR}/nodeinfo.json

tools-A: $(addsuffix -A, $(TOOLS))

tools-B: $(addsuffix -B, $(TOOLS))

tools-C: $(addsuffix -C, $(TOOLS))

magic-%: magic/${TECH}.tech magic/${TECH}gds.tech magic/${TECH}.magicrc magic/${TECH}.tcl
	mkdir -p ${MAGICTOP_STAGING_$*}
	mkdir -p ${MAGIC_STAGING_$*}
	rm -f ${MAGICTOP_STAGING_$*}/current
	rm -f ${MAGIC_STAGING_$*}/${GF180MCU$*}.tech
	rm -f ${MAGIC_STAGING_$*}/${GF180MCU$*}-GDS.tech
	rm -f ${MAGIC_STAGING_$*}/${GF180MCU$*}.tcl
	rm -f ${MAGIC_STAGING_$*}/${GF180MCU$*}-BindKeys
	rm -f ${MAGIC_STAGING_$*}/magicrc
	if test "${EF_STYLE}" == "1" ; then \
            (cd ${MAGICTOP_STAGING_$*} ; ln -s ${REV_DIR} current) ; \
	fi

	${CPP} ${GF180MCU$*_DEFS} magic/${TECH}.tech \
		${MAGIC_STAGING_$*}/${GF180MCU$*}.tech
	${CPP} ${GF180MCU$*_DEFS} magic/${TECH}gds.tech \
		${MAGIC_STAGING_$*}/${GF180MCU$*}-GDS.tech
	${CPP} ${GF180MCU$*_DEFS} magic/${TECH}.magicrc \
		${MAGIC_STAGING_$*}/${GF180MCU$*}.magicrc
	${CPP} ${GF180MCU$*_DEFS} ${SCRIPTSDIR}/common/pdk.bindkeys \
		${MAGIC_STAGING_$*}/${GF180MCU$*}-BindKeys
	${CPP} ${GF180MCU$*_DEFS} magic/${TECH}.tcl \
		${MAGIC_STAGING_$*}/${GF180MCU$*}.tcl
	${CPP} ${GF180MCU$*_DEFS} ${SCRIPTSDIR}/common/pdk.tcl >> \
		${MAGIC_STAGING_$*}/${GF180MCU$*}.tcl

netgen-%: netgen/${TECH}_setup.tcl
	mkdir -p ${NETGENTOP_STAGING_$*}
	mkdir -p ${NETGEN_STAGING_$*}
	rm -f ${NETGEN_STAGING_$*}/${GF180MCU$*}_setup.tcl
	rm -f ${NETGEN_STAGING_$*}/setup.tcl
	${CPP} ${GF180MCU$*_DEFS} netgen/${TECH}_setup.tcl \
		${NETGEN_STAGING_$*}/${GF180MCU$*}_setup.tcl
	(cd ${NETGEN_STAGING_$*} ; ln -s ${GF180MCU$*}_setup.tcl setup.tcl)

qflow-%: qflow/${TECH}.sh qflow/${TECH}.par
	mkdir -p ${QFLOWTOP_STAGING_$*}
	mkdir -p ${QFLOW_STAGING_$*}
	rm -f ${QFLOW_STAGING_$*}/gf180mcu_fd_sc_mcu7t5v0.sh
	rm -f ${QFLOW_STAGING_$*}/gf180mcu_fd_sc_mcu7t5v0.par
	rm -f ${QFLOW_STAGING_$*}/gf180mcu_fd_sc_mcu9t5v0.sh
	rm -f ${QFLOW_STAGING_$*}/gf180mcu_fd_sc_mcu9t5v0.par
	${CPP} ${GF180MCU$*_DEFS} -DLIBRARY=gf180mcu_fd_sc_mcu7t5v0 \
		qflow/${TECH}.sh ${QFLOW_STAGING_$*}/gf180mcu_fd_sc_mcu7t5v0.sh
	${CPP} ${GF180MCU$*_DEFS} -DLIBRARY=gf180mcu_fd_sc_mcu9t5v0 \
		qflow/${TECH}.sh ${QFLOW_STAGING_$*}/gf180mcu_fd_sc_mcu9t5v0.sh
	${CPP} ${GF180MCU$*_DEFS} qflow/${TECH}.par \
		 ${QFLOW_STAGING_$*}/gf180mcu_fd_sc_mcu7t5v0.par
	${CPP} ${GF180MCU$*_DEFS} qflow/${TECH}.par \
		 ${QFLOW_STAGING_$*}/gf180mcu_fd_sc_mcu9t5v0.par

irsim-%:
	mkdir -p ${IRSIMTOP_STAGING_$*}
	mkdir -p ${IRSIM_STAGING_$*}

klayout-%: ${GF180MCU_PR_PATH}
	mkdir -p ${KLAYOUTTOP_STAGING_$*}
	mkdir -p ${KLAYOUT_STAGING_$*}
	rm -rf ${KLAYOUT_STAGING_$*}/drc
	rm -rf ${KLAYOUT_STAGING_$*}/lvs
	rm -rf ${KLAYOUT_STAGING_$*}/tech
	rm -rf ${KLAYOUT_STAGING_$*}/pymacros
	mkdir ${KLAYOUT_STAGING_$*}/drc
	mkdir ${KLAYOUT_STAGING_$*}/lvs
	mkdir ${KLAYOUT_STAGING_$*}/tech
	mkdir ${KLAYOUT_STAGING_$*}/pymacros

	cp -rp ${GF180MCU_PR_PATH}/rules/klayout/drc/* \
		${KLAYOUT_STAGING_$*}/drc
	cp -rp ${GF180MCU_PR_PATH}/rules/klayout/lvs/* \
		${KLAYOUT_STAGING_$*}/lvs
	cp -rp ${GF180MCU_PR_PATH}/cells/klayout/pymacros/cells/* \
		${KLAYOUT_STAGING_$*}/pymacros
	cp -rp ${GF180MCU_PR_PATH}/tech/klayout/* \
		${KLAYOUT_STAGING_$*}/tech
	cp -rp ${GF180MCU_PR_PATH}/cells/klayout/pymacros/*.lym \
		${KLAYOUT_STAGING_$*}/tech

xcircuit-%:
	rm -rf ${XCIRCUIT_STAGING_$*}
	mkdir -p ${XCIRCUITTOP_STAGING_$*}
	mkdir -p ${XCIRCUIT_STAGING_$*}

xschem-%: ${GF180MCU_PR_PATH}
	rm -rf ${XSCHEM_STAGING_$*}
	mkdir -p ${XSCHEMTOP_STAGING_$*}
	mkdir -p ${XSCHEM_STAGING_$*}
	cp -rp ${GF180MCU_PR_PATH}/cells/xschem/symbols ${XSCHEM_STAGING_$*}
	cp -rp ${GF180MCU_PR_PATH}/cells/xschem/tests ${XSCHEM_STAGING_$*}
	cp -rp ${GF180MCU_PR_PATH}/cells/xschem/xschemrc ${XSCHEM_STAGING_$*}

openlane-%: openlane/config.tcl openlane/gf180mcu_fd_sc_mcu7t5v0/config.tcl openlane/gf180mcu_fd_sc_mcu9t5v0/config.tcl
	mkdir -p ${OPENLANETOP_STAGING_$*}
	mkdir -p ${OPENLANE_STAGING_$*}
	rm -rf ${OPENLANE_STAGING_$*}/gf180mcu_fd_sc_mcu7t5v0
	rm -rf ${OPENLANE_STAGING_$*}/gf180mcu_fd_sc_mcu9t5v0
	mkdir ${OPENLANE_STAGING_$*}/gf180mcu_fd_sc_mcu7t5v0
	mkdir ${OPENLANE_STAGING_$*}/gf180mcu_fd_sc_mcu9t5v0
	for file in ${OPENLANE_COMMON} ; do \
		rm -f ${OPENLANE_STAGING_$*}/gf180mcu_fd_sc_mcu7t5v0/$$file ; \
	done
	for file in ${OPENLANE_COMMON} ; do \
		rm -f ${OPENLANE_STAGING_$*}/gf180mcu_fd_sc_mcu9t5v0/$$file ; \
	done
	${CPP} ${GF180MCU$*_DEFS} openlane/config.tcl ${OPENLANE_STAGING_$*}/config.tcl

	for file in ${OPENLANE_COMMON} ; do \
		${CPP} -quiet ${GF180MCU$*_DEFS} openlane/gf180mcu_fd_sc_mcu7t5v0/$$file \
			${OPENLANE_STAGING_$*}/gf180mcu_fd_sc_mcu7t5v0/$$file ; \
	done
	for file in ${OPENLANE_COMMON} ; do \
		${CPP} -quiet ${GF180MCU$*_DEFS} openlane/gf180mcu_fd_sc_mcu9t5v0/$$file \
			${OPENLANE_STAGING_$*}/gf180mcu_fd_sc_mcu9t5v0/$$file ; \
	done

	rm -f ${OPENLANE_STAGING_$*}/rules.openrcx.gf180mcu$*.min.*
	rm -f ${OPENLANE_STAGING_$*}/rules.openrcx.gf180mcu$*.nom.*
	rm -f ${OPENLANE_STAGING_$*}/rules.openrcx.gf180mcu$*.max.*

	if test -f openlane/rules.openrcx.gf180mcu$*.min.magic ; then \
		${CPP} ${GF180MCU$*_DEFS} openlane/rules.openrcx.gf180mcu$*.min.magic \
		${OPENLANE_STAGING_$*}/rules.openrcx.gf180mcu$*.min.magic ;\
	fi
	if test -f openlane/rules.openrcx.gf180mcu$*.nom.magic ; then \
		${CPP} ${GF180MCU$*_DEFS} openlane/rules.openrcx.gf180mcu$*.nom.magic \
		${OPENLANE_STAGING_$*}/rules.openrcx.gf180mcu$*.nom.magic ;\
	fi
	if test -f openlane/rules.openrcx.gf180mcu$*.max.magic ; then \
		${CPP} ${GF180MCU$*_DEFS} openlane/rules.openrcx.gf180mcu$*.max.magic \
		${OPENLANE_STAGING_$*}/rules.openrcx.gf180mcu$*.max.magic ;\
	fi
	if test -f openlane/rules.openrcx.gf180mcu$*.min ; then \
		${CPP} ${GF180MCU$*_DEFS} openlane/rules.openrcx.gf180mcu$*.min \
		${OPENLANE_STAGING_$*}/rules.openrcx.gf180mcu$*.min ;\
	fi
	if test -f openlane/rules.openrcx.gf180mcu$*.nom ; then \
		${CPP} ${GF180MCU$*_DEFS} openlane/rules.openrcx.gf180mcu$*.nom \
		${OPENLANE_STAGING_$*}/rules.openrcx.gf180mcu$*.nom ;\
	fi
	if test -f openlane/rules.openrcx.gf180mcu$*.max ; then \
		${CPP} ${GF180MCU$*_DEFS} openlane/rules.openrcx.gf180mcu$*.max \
		${OPENLANE_STAGING_$*}/rules.openrcx.gf180mcu$*.max ;\
	fi

vendor-A: primitive-build-A digital-7t5v0-build-A digital-9t5v0-build-A io-build-A sram-build-A digital-osu-build-A

vendor-B: primitive-build-B digital-7t5v0-build-B digital-9t5v0-build-B io-build-B sram-build-B digital-osu-build-B

vendor-C: primitive-build-C digital-7t5v0-build-C digital-9t5v0-build-C io-build-C sram-build-C digital-osu-build-C

primitive-build-%:
	if test -d ${GF180MCU_PR_PATH} ; then \
		echo "Building primitives library and simulation models" ;\
		make primitive-$* ;\
	fi

io-build-%:
	if test -d ${GF180MCU_IO_PATH} ; then \
		echo "Building padframe I/O libraries" ;\
		make io-$* ;\
	fi

digital-9t5v0-build-%:
	if test -d ${GF180MCU_SC_9T5V0_PATH} ; then \
		echo "Building 5V 9-track digital standard cell libraries" ;\
		make digital-9t5v0-$* ;\
	fi

digital-7t5v0-build-%:
	if test -d ${GF180MCU_SC_7T5V0_PATH} ; then \
		echo "Building 5V 7-track digital standard cell libraries" ;\
		make digital-7t5v0-$* ;\
	fi

sram-build-%:
	if test -d ${GF180MCU_SRAM_PATH} ; then \
		echo "Building SRAM libraries" ;\
		make sram-$* ;\
	fi

digital-osu-build-%:
	if test -d ${GF180MCU_OSU_SC_PATH} ; then \
		echo "Building OSU 3.3V digital standard cell libraries" ;\
		make digital-osu-$* ;\
	fi

primitive-%:
        # Install tech LEF and primitive devices from vendor files
	${STAGE} -source ${GF180MCU_PR_PATH} \
		-target ${STAGING_PATH}/${GF180MCU$*} \
		-ngspice models/ngspice/*.ngspice \
		-xyce models/xyce/*.xyce \
		2>&1 | tee -a ${GF180MCU$*}_make.log

digital-9t5v0-%:
        # Install 5V 9-track digital standard cells from vendor files
	${STAGE} -source ${GF180MCU_SC_9T5V0_PATH} \
		-target ${STAGING_PATH}/${GF180MCU$*} \
		-techlef tech/gf180mcu_${$*_FULLSTACK}_9t_tech.lef \
			filter=custom/scripts/fix_techlef.py \
			rename=gf180mcu_fd_sc_mcu9t5v0__nom.tlef \
		-cdl cells/*/*.cdl compile-only noconvert \
		-liberty cells/*/*_ff_125C_1v98.lib compile-only \
			filter=custom/scripts/fix_related_bias_pins.py \
                        header=liberty/gf180mcu_fd_sc_mcu9t5v0__ff_125C_1v98.lib \
			rename=gf180mcu_fd_sc_mcu9t5v0__ff_125C_1v98 \
		-liberty cells/*/*_ff_n40C_1v98.lib compile-only \
			filter=custom/scripts/fix_related_bias_pins.py \
                        header=liberty/gf180mcu_fd_sc_mcu9t5v0__ff_n40C_1v98.lib \
			rename=gf180mcu_fd_sc_mcu9t5v0__ff_n40C_1v98 \
		-liberty cells/*/*_ff_125C_3v60.lib compile-only \
			filter=custom/scripts/fix_related_bias_pins.py \
                        header=liberty/gf180mcu_fd_sc_mcu9t5v0__ff_125C_3v60.lib \
			rename=gf180mcu_fd_sc_mcu9t5v0__ff_125C_3v60 \
		-liberty cells/*/*_ff_n40C_3v60.lib compile-only \
			filter=custom/scripts/fix_related_bias_pins.py \
                        header=liberty/gf180mcu_fd_sc_mcu9t5v0__ff_n40C_3v60.lib \
			rename=gf180mcu_fd_sc_mcu9t5v0__ff_n40C_3v60 \
		-liberty cells/*/*_ff_125C_5v50.lib compile-only \
			filter=custom/scripts/fix_related_bias_pins.py \
                        header=liberty/gf180mcu_fd_sc_mcu9t5v0__ff_125C_5v50.lib \
			rename=gf180mcu_fd_sc_mcu9t5v0__ff_125C_5v50 \
		-liberty cells/*/*_ff_n40C_5v50.lib compile-only \
			filter=custom/scripts/fix_related_bias_pins.py \
                        header=liberty/gf180mcu_fd_sc_mcu9t5v0__ff_n40C_5v50.lib \
			rename=gf180mcu_fd_sc_mcu9t5v0__ff_n40C_5v50 \
		-liberty cells/*/*_ss_125C_1v62.lib compile-only \
			filter=custom/scripts/fix_related_bias_pins.py \
                        header=liberty/gf180mcu_fd_sc_mcu9t5v0__ss_125C_1v62.lib \
			rename=gf180mcu_fd_sc_mcu9t5v0__ss_125C_1v62 \
		-liberty cells/*/*_ss_n40C_1v62.lib compile-only \
			filter=custom/scripts/fix_related_bias_pins.py \
                        header=liberty/gf180mcu_fd_sc_mcu9t5v0__ss_n40C_1v62.lib \
			rename=gf180mcu_fd_sc_mcu9t5v0__ss_n40C_1v62 \
		-liberty cells/*/*_ss_125C_3v00.lib compile-only \
			filter=custom/scripts/fix_related_bias_pins.py \
                        header=liberty/gf180mcu_fd_sc_mcu9t5v0__ss_125C_3v00.lib \
			rename=gf180mcu_fd_sc_mcu9t5v0__ss_125C_3v00 \
		-liberty cells/*/*_ss_n40C_3v00.lib compile-only \
			filter=custom/scripts/fix_related_bias_pins.py \
                        header=liberty/gf180mcu_fd_sc_mcu9t5v0__ss_n40C_3v00.lib \
			rename=gf180mcu_fd_sc_mcu9t5v0__ss_n40C_3v00 \
		-liberty cells/*/*_ss_125C_4v50.lib compile-only \
			filter=custom/scripts/fix_related_bias_pins.py \
                        header=liberty/gf180mcu_fd_sc_mcu9t5v0__ss_125C_4v50.lib \
			rename=gf180mcu_fd_sc_mcu9t5v0__ss_125C_4v50 \
		-liberty cells/*/*_ss_n40C_4v50.lib compile-only \
			filter=custom/scripts/fix_related_bias_pins.py \
                        header=liberty/gf180mcu_fd_sc_mcu9t5v0__ss_n40C_4v50.lib \
			rename=gf180mcu_fd_sc_mcu9t5v0__ss_n40C_4v50 \
		-liberty cells/*/*_tt_025C_1v80.lib compile-only \
			filter=custom/scripts/fix_related_bias_pins.py \
                        header=liberty/gf180mcu_fd_sc_mcu9t5v0__tt_025C_1v80.lib \
			rename=gf180mcu_fd_sc_mcu9t5v0__tt_025C_1v80 \
		-liberty cells/*/*_tt_025C_3v30.lib compile-only \
			filter=custom/scripts/fix_related_bias_pins.py \
                        header=liberty/gf180mcu_fd_sc_mcu9t5v0__tt_025C_3v30.lib \
			rename=gf180mcu_fd_sc_mcu9t5v0__tt_025C_3v30 \
		-liberty cells/*/*_tt_025C_5v00.lib compile-only \
			filter=custom/scripts/fix_related_bias_pins.py \
                        header=liberty/gf180mcu_fd_sc_mcu9t5v0__tt_025C_5v00.lib \
			rename=gf180mcu_fd_sc_mcu9t5v0__tt_025C_5v00 \
		-gds cells/*/*.gds compile-only \
			options=custom/scripts/gds_import_sc.tcl \
			filter=custom/scripts/fix_stdcell_gds.py \
		-lef cells/*/*.lef annotate compile-only \
			filter=custom/scripts/fix_digital_lef.py \
		-verilog models/*/*.v compile-only rename=primitives \
		-verilog cells/*/*.v exclude=*.*.v,primitives.v \
			compile-only filter=custom/scripts/inc_verilog.py \
		-library digital gf180mcu_fd_sc_mcu9t5v0 2>&1 | \
		tee -a ${GF180MCU$*}_make.log
	# Create minimum/maximum technology LEF files
	./custom/scripts/make_minmax_techlef.py ${EF_FORMAT} -variant=${GF180MCU$*} \
		-library=9t5v0 2>&1 | tee -a ${GF180MCU$*}_make.log || true
digital-7t5v0-%:
        # Install 5V 7-track digital standard cells from vendor files
	${STAGE} -source ${GF180MCU_SC_7T5V0_PATH} \
		-target ${STAGING_PATH}/${GF180MCU$*} \
		-techlef tech/gf180mcu_${$*_FULLSTACK}_7t_tech.lef \
			filter=custom/scripts/fix_techlef.py \
			rename=gf180mcu_fd_sc_mcu7t5v0__nom.tlef \
		-cdl cells/*/*.cdl compile-only noconvert \
		-liberty cells/*/*_ff_125C_1v98.lib compile-only \
			filter=custom/scripts/fix_related_bias_pins.py \
                        header=liberty/gf180mcu_fd_sc_mcu7t5v0__ff_125C_1v98.lib \
			rename=gf180mcu_fd_sc_mcu7t5v0__ff_125C_1v98 \
		-liberty cells/*/*_ff_n40C_1v98.lib compile-only \
			filter=custom/scripts/fix_related_bias_pins.py \
			header=liberty/gf180mcu_fd_sc_mcu7t5v0__ff_n40C_1v98.lib \
			rename=gf180mcu_fd_sc_mcu7t5v0__ff_n40C_1v98 \
		-liberty cells/*/*_ff_125C_3v60.lib compile-only \
			filter=custom/scripts/fix_related_bias_pins.py \
			header=liberty/gf180mcu_fd_sc_mcu7t5v0__ff_125C_3v60.lib \
			rename=gf180mcu_fd_sc_mcu7t5v0__ff_125C_3v60 \
		-liberty cells/*/*_ff_n40C_3v60.lib compile-only \
			filter=custom/scripts/fix_related_bias_pins.py \
			header=liberty/gf180mcu_fd_sc_mcu7t5v0__ff_n40C_3v60.lib \
			rename=gf180mcu_fd_sc_mcu7t5v0__ff_n40C_3v60 \
		-liberty cells/*/*_ff_125C_5v50.lib compile-only \
			filter=custom/scripts/fix_related_bias_pins.py \
			header=liberty/gf180mcu_fd_sc_mcu7t5v0__ff_125C_5v50.lib \
			rename=gf180mcu_fd_sc_mcu7t5v0__ff_125C_5v50 \
		-liberty cells/*/*_ff_n40C_5v50.lib compile-only \
			filter=custom/scripts/fix_related_bias_pins.py \
			header=liberty/gf180mcu_fd_sc_mcu7t5v0__ff_n40C_5v50.lib \
			rename=gf180mcu_fd_sc_mcu7t5v0__ff_n40C_5v50 \
		-liberty cells/*/*_ss_125C_1v62.lib compile-only \
			filter=custom/scripts/fix_related_bias_pins.py \
			header=liberty/gf180mcu_fd_sc_mcu7t5v0__ss_125C_1v62.lib \
			rename=gf180mcu_fd_sc_mcu7t5v0__ss_125C_1v62 \
		-liberty cells/*/*_ss_n40C_1v62.lib compile-only \
			filter=custom/scripts/fix_related_bias_pins.py \
			header=liberty/gf180mcu_fd_sc_mcu7t5v0__ss_n40C_1v62.lib \
			rename=gf180mcu_fd_sc_mcu7t5v0__ss_n40C_1v62 \
		-liberty cells/*/*_ss_125C_3v00.lib compile-only \
			filter=custom/scripts/fix_related_bias_pins.py \
			header=liberty/gf180mcu_fd_sc_mcu7t5v0__ss_125C_3v00.lib \
			rename=gf180mcu_fd_sc_mcu7t5v0__ss_125C_3v00 \
		-liberty cells/*/*_ss_n40C_3v00.lib compile-only \
			filter=custom/scripts/fix_related_bias_pins.py \
			header=liberty/gf180mcu_fd_sc_mcu7t5v0__ss_n40C_3v00.lib \
			rename=gf180mcu_fd_sc_mcu7t5v0__ss_n40C_3v00 \
		-liberty cells/*/*_ss_125C_4v50.lib compile-only \
			filter=custom/scripts/fix_related_bias_pins.py \
			header=liberty/gf180mcu_fd_sc_mcu7t5v0__ss_125C_4v50.lib \
			rename=gf180mcu_fd_sc_mcu7t5v0__ss_125C_4v50 \
		-liberty cells/*/*_ss_n40C_4v50.lib compile-only \
			filter=custom/scripts/fix_related_bias_pins.py \
			header=liberty/gf180mcu_fd_sc_mcu7t5v0__ss_n40C_4v50.lib \
			rename=gf180mcu_fd_sc_mcu7t5v0__ss_n40C_4v50 \
		-liberty cells/*/*_tt_025C_1v80.lib compile-only \
			filter=custom/scripts/fix_related_bias_pins.py \
			header=liberty/gf180mcu_fd_sc_mcu7t5v0__tt_025C_1v80.lib \
			rename=gf180mcu_fd_sc_mcu7t5v0__tt_025C_1v80 \
		-liberty cells/*/*_tt_025C_3v30.lib compile-only \
			filter=custom/scripts/fix_related_bias_pins.py \
			header=liberty/gf180mcu_fd_sc_mcu7t5v0__tt_025C_3v30.lib \
			rename=gf180mcu_fd_sc_mcu7t5v0__tt_025C_3v30 \
		-liberty cells/*/*_tt_025C_5v00.lib compile-only \
			filter=custom/scripts/fix_related_bias_pins.py \
			header=liberty/gf180mcu_fd_sc_mcu7t5v0__tt_025C_5v00.lib \
			rename=gf180mcu_fd_sc_mcu7t5v0__tt_025C_5v00 \
		-gds cells/*/*.gds compile-only \
			options=custom/scripts/gds_import_sc.tcl \
			filter=custom/scripts/fix_stdcell_gds.py \
		-lef cells/*/*.lef annotate compile-only \
			filter=custom/scripts/fix_digital_lef.py \
		-verilog models/*/*.v compile-only rename=primitives \
		-verilog cells/*/*.v exclude=*.*.v,primitives.v \
			compile-only filter=custom/scripts/inc_verilog.py \
		-library digital gf180mcu_fd_sc_mcu7t5v0 2>&1 | \
		tee -a ${GF180MCU$*}_make.log
	# Create minimum/maximum technology LEF files
	./custom/scripts/make_minmax_techlef.py ${EF_FORMAT} -variant=${GF180MCU$*} \
		-library=7t5v0 2>&1 | tee -a ${GF180MCU$*}_make.log || true

digital-osu-%:
        # Install OSU 3.3V digital standard cells from vendor files
	# NOTE: Work in progress (to be completed)
	${STAGE} -source ${GF180MCU_OSU_SC_PATH} \
		-target ${STAGING_PATH}/${GF180MCU$*} \
		-techlef lib/9T/tlef/gf180mcu_*_tech.lef \
			rename=gf180mcu_osu_sc_9T.tlef \
		-liberty lib/9T/lib/gf180mcu_9T_TT_3P3_25C*.lib \
			rename=gf180mcu_osu_sc_9T__tt_025C_3v30 \
		-verilog lib/9T/verilog/*.v \
			rename=gf180mcu_osu_sc_9T \
		-lef lib/9T/lef/*.lef \
		-gds lib/9T/*/*.gds compile-only \
		-spice lib/9T/*/*.spice compile-only \
		-xschem lib/9T/*/*.sch \
		-library digital gf180mcu_osu_sc_9T 2>&1 | \
		tee -a ${GF180MCU$*}_make.log

	${STAGE} -source ${GF180MCU_OSU_SC_PATH} \
		-target ${STAGING_PATH}/${GF180MCU$*} \
		-techlef lib/12T/tlef/gf180mcu_*_tech.lef \
			rename=gf180mcu_osu_sc_12T.tlef \
		-liberty lib/12T/lib/gf180mcu_12T_TT_3P3_25C*.lib \
			rename=gf180mcu_osu_sc_12T__tt_025C_3v30 \
		-verilog lib/12T/verilog/*.v \
			rename=gf180mcu_osu_sc_12T \
		-lef lib/12T/lef/*.lef \
		-gds lib/12T/*/*.gds compile-only \
		-spice lib/12T/*/*.spice compile-only \
		-xschem lib/12T/*/*.sch \
		-library digital gf180mcu_osu_sc_12T 2>&1 | \
		tee -a ${GF180MCU$*}_make.log

io-%:
        # Install I/O cells from vendor files
	# Note:  Do not use GF LEF views.  Annotate only.  LEF is being renamed
	# back to the original, although eventually all files will be changed
	# to canonical names.

	${STAGE} -source ${GF180MCU_IO_PATH} \
		-target ${STAGING_PATH}/${GF180MCU$*} \
		-cdl cells/*/*.cdl compile-only noconvert \
		-liberty cells/*/*_ff_125C_2v75.lib compile-only \
                        header=liberty/gf180mcu_fd_io__ff_125C_2v75.lib \
			rename=gf180mcu_fd_io__ff_125C_2v75 \
		-liberty cells/*/*_ff_n40C_2v75.lib compile-only \
                        header=liberty/gf180mcu_fd_io__ff_n40C_2v75.lib \
			rename=gf180mcu_fd_io__ff_n40C_2v75 \
		-liberty cells/*/*_ff_125C_3v63.lib compile-only \
                        header=liberty/gf180mcu_fd_io__ff_125C_3v63.lib \
			rename=gf180mcu_fd_io__ff_125C_3v63 \
		-liberty cells/*/*_ff_n40C_3v63.lib compile-only \
                        header=liberty/gf180mcu_fd_io__ff_n40C_3v63.lib \
			rename=gf180mcu_fd_io__ff_n40C_3v63 \
		-liberty cells/*/*_ff_125C_5v50.lib compile-only \
                        header=liberty/gf180mcu_fd_io__ff_125C_5v50.lib \
			rename=gf180mcu_fd_io__ff_125C_5v50 \
		-liberty cells/*/*_ff_n40C_5v50.lib compile-only \
                        header=liberty/gf180mcu_fd_io__ff_n40C_5v50.lib \
			rename=gf180mcu_fd_io__ff_n40C_5v50 \
		-liberty cells/*/*_ss_125C_2v50.lib compile-only \
                        header=liberty/gf180mcu_fd_io__ss_125C_2v50.lib \
			rename=gf180mcu_fd_io__ss_125C_2v50 \
		-liberty cells/*/*_ss_125C_2v97.lib compile-only \
                        header=liberty/gf180mcu_fd_io__ss_125C_2v97.lib \
			rename=gf180mcu_fd_io__ss_125C_2v97 \
		-liberty cells/*/*_ss_125C_4v50.lib compile-only \
                        header=liberty/gf180mcu_fd_io__ss_125C_4v50.lib \
			rename=gf180mcu_fd_io__ss_125C_4v50 \
		-liberty cells/*/*_tt_025C_2v50.lib compile-only \
                        header=liberty/gf180mcu_fd_io__tt_025C_2v50.lib \
			rename=gf180mcu_fd_io__tt_025C_2v50 \
		-liberty cells/*/*_tt_025C_3v30.lib compile-only \
                        header=liberty/gf180mcu_fd_io__tt_025C_3v30.lib \
			rename=gf180mcu_fd_io__tt_025C_3v30 \
		-liberty cells/*/*_tt_025C_5v00.lib compile-only \
                        header=liberty/gf180mcu_fd_io__tt_025C_5v00.lib \
			rename=gf180mcu_fd_io__tt_025C_5v00 \
		-gds cells/*/*_${$*_STACK}.gds compile-only \
			options=custom/scripts/gds_import_io.tcl \
		-lef cells/*/*_${$*_STACK}.lef \
			annotate untrusted lefopts=-hide compile-only \
			filter=custom/scripts/fix_io_lef.py \
		-verilog cells/*/*.v compile-only \
		-library general gf180mcu_fd_io 2>&1 | tee -a ${GF180MCU$*}_make.log

sram-%:
	# Install SRAM macros from vendor files
	${STAGE} -source ${GF180MCU_SRAM_PATH} \
		-target ${STAGING_PATH}/${GF180MCU$*} \
		-cdl cells/*/*.cdl noconvert \
		-liberty cells/*/*.lib \
		-gds cells/*/*.gds \
		-lef cells/*/*.lef \
		-verilog cells/*/*.v \
		-library general gf180mcu_fd_ip_sram 2>&1 | tee -a ${GF180MCU$*}_make.log

install: $(foreach var, ${VARIANTS}, install-$(var))

install-A:
	echo "Starting GF180MCU PDK migration on "`date` > ${GF180MCUA}_install.log
	${INSTALL} \
		-source ${STAGING_PATH}/${GF180MCUA} \
		-finalpath ${SHARED_PDKS_PATH}/${GF180MCUA} \
		-variable PDKPATH \
		-link_from ${DIST_LINK_TARGETS_A} 2>&1 | tee -a ${GF180MCUA}_install.log
	echo "Ended GF180MCU PDK migration on "`date` >> ${GF180MCUA}_install.log

install-B: install-A
	echo "Starting GF180MCU PDK migration on "`date` > ${GF180MCUB}_install.log
	${INSTALL} \
		-source ${STAGING_PATH}/${GF180MCUB} \
		-finalpath ${SHARED_PDKS_PATH}/${GF180MCUB} \
		-variable PDKPATH \
		-link_from ${DIST_LINK_TARGETS_B} 2>&1 | tee -a ${GF180MCUB}_install.log
	echo "Ended GF180MCU PDK migration on "`date` >> ${GF180MCUB}_install.log

install-C: install-A
	echo "Starting GF180MCU PDK migration on "`date` > ${GF180MCUC}_install.log
	${INSTALL} \
		-source ${STAGING_PATH}/${GF180MCUC} \
		-finalpath ${SHARED_PDKS_PATH}/${GF180MCUC} \
		-variable PDKPATH \
		-link_from ${DIST_LINK_TARGETS_C} 2>&1 | tee -a ${GF180MCUC}_install.log
	echo "Ended GF180MCU PDK migration on "`date` >> ${GF180MCUC}_install.log

uninstall: $(foreach var, ${VARIANTS}, uninstall-$(var))

uninstall-A:
	echo "Uninstalling GF180MCU PDK from ${SHARED_PDKS_PATH}"
	if test "x${SHARED_PDKS_PATH}" != "x" ; then \
		${RM} -rf ${SHARED_PDKS_PATH}/${GF180MCUA} ; \
	fi
	echo "Finished GF180MCU PDK uninstall"

uninstall-B:
	echo "Uninstalling GF180MCU PDK from ${SHARED_PDKS_PATH}"
	if test "x${SHARED_PDKS_PATH}" != "x" ; then \
		${RM} -rf ${SHARED_PDKS_PATH}/${GF180MCUB} ; \
	fi
	echo "Finished GF180MCU PDK uninstall"

uninstall-C:
	echo "Uninstalling GF180MCU PDK from ${SHARED_PDKS_PATH}"
	if test "x${SHARED_PDKS_PATH}" != "x" ; then \
		${RM} -rf ${SHARED_PDKS_PATH}/${GF180MCUC} ; \
	fi
	echo "Finished GF180MCU PDK uninstall"

clean: $(foreach var, ${VARIANTS}, clean-$(var))

clean-A:
	${STAGE} -target ${STAGING_PATH}/${GF180MCUA} -clean

clean-B:
	${STAGE} -target ${STAGING_PATH}/${GF180MCUB} -clean

clean-C:
	${STAGE} -target ${STAGING_PATH}/${GF180MCUC} -clean

veryclean: $(foreach var, ${VARIANTS}, veryclean-$(var))

veryclean-A: clean-A
	${RM} ${GF180MCUA}_make.log
	${RM} ${GF180MCUA}_install.log

veryclean-B: clean-B
	${RM} ${GF180MCUB}_make.log
	${RM} ${GF180MCUB}_install.log

veryclean-C: clean-C
	${RM} ${GF180MCUC}_make.log
	${RM} ${GF180MCUC}_install.log


