# 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
#  gf180mcuD   =  METALS5 | MIM | THICKMET1P1 | 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@

# Path to open_pdks root directory (may need changing if it is a symbolic link)
SCRIPTSDIR ?= ..

# 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

# 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
LINK_TARGETS_D = gf180mcuA

# ENABLED_VARIANTS = all | A | B | C | D
ENABLED_VARIANTS = @GF180MCU_ENABLED_VARIANTS@
ifeq (${ENABLED_VARIANTS},)
	VARIANTS += A B C D
else
    ifeq (${ENABLED_VARIANTS}, all)
	VARIANTS += A B C D
    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_PV_PATH = @GF180MCU_FD_PV_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@
GF180MCU_AS_SC_PATH = @GF180MCU_AS_SC_PATH@
GF180MCU_OCD_IO_PATH = @GF180MCU_OCD_IO_PATH@
GF180MCU_OCD_ALPHA_PATH = @GF180MCU_OCD_ALPHA_PATH@
GF180MCU_OCD_SRAM_PATH = @GF180MCU_OCD_IP_SRAM_PATH@

USE_REFERENCE = @USE_REFERENCE@

ifeq (${USE_REFERENCE}, 1)
    REFERENCE_JSON = ${TECH}.json
else ifeq (${USE_REFERENCE}, 0)
    REFERENCE_JSON =
else
    REFERENCE_JSON = ${USE_REFERENCE}
endif

# Path to GF180MCU library sources
PDK_URL = https://github.com/google
OSU_URL = https://github.com/stineje
OCD_URL = https://github.com/RTimothyEdwards
AVALON_URL = https://github.com/AvalonSemiconductors
FOSSI_URL = https://github.com/fossi-foundation

# 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 =       ${FOSSI_URL}/globalfoundries-pdk-libs-gf180mcu_fd_pr
PDK_LIB_PV =       ${FOSSI_URL}/globalfoundries-pdk-libs-gf180mcu_fd_pv
PDK_LIB_IO =       ${FOSSI_URL}/globalfoundries-pdk-libs-gf180mcu_fd_io
PDK_LIB_SC_7T5V0 = ${FOSSI_URL}/globalfoundries-pdk-libs-gf180mcu_fd_sc_mcu7t5v0
PDK_LIB_SC_9T5V0 = ${FOSSI_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
PDK_LIB_AS_SC =    ${AVALON_URL}/gf180mcu_as_sc_mcu7t3v3
PDK_LIB_OCD_IO =   ${OCD_URL}/gf180mcu_ocd_io
PDK_LIB_OCD_SRAM = ${OCD_URL}/gf180mcu_ocd_ip_sram
PDK_LIB_OCD_ALPHA =${OCD_URL}/gf180mcu_ocd_alpha

# NOTE:  Install destination is the git repository of the technology platform.
# Once updated in git, the git project can be distributed to all hosts.
#
CONFIG_DIR = .config
REV_DIR = .

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

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}
DIST_LINK_TARGETS_D = ${SHARED_PDKS_PATH}/${LINK_TARGETS_D}

# Basic definitions for each process node
GF180MCUA_DEFS = -DTECHNAME=gf180mcuA -DREVISION=${REVISION}
GF180MCUB_DEFS = -DTECHNAME=gf180mcuB -DREVISION=${REVISION}
GF180MCUC_DEFS = -DTECHNAME=gf180mcuC -DREVISION=${REVISION}
GF180MCUD_DEFS = -DTECHNAME=gf180mcuD -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
GF180MCUD_DEFS += -DMETALS5 -DMIM -DTHICKMET1P1 -DHRPOLY1K

# Add staging path
GF180MCUA_DEFS += -DSTAGING_PATH=${STAGING_PATH}
GF180MCUB_DEFS += -DSTAGING_PATH=${STAGING_PATH}
GF180MCUC_DEFS += -DSTAGING_PATH=${STAGING_PATH}
GF180MCUD_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_PV_PATH},)
    COMMIT_DEFS += -DFD_PV_COMMIT="unknown"
else
    COMMIT_DEFS += -DFD_PV_COMMIT=$(shell cd ${GF180MCU_PV_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
ifeq (${GF180MCU_OCD_SRAM_PATH},)
    COMMIT_DEFS += -DOCD_IP_SRAM_COMMIT="unknown"
else
    COMMIT_DEFS += -DOCD_IP_SRAM_COMMIT=$(shell cd ${GF180MCU_OCD_SRAM_PATH} ; git rev-parse HEAD)
endif
ifeq (${GF180MCU_OSU_SC_PATH},)
    COMMIT_DEFS += -DOSU_SC_COMMIT="unknown"
else
    COMMIT_DEFS += -DOSU_SC_COMMIT=$(shell cd ${GF180MCU_OSU_SC_PATH} ; git rev-parse HEAD)
endif
ifeq (${GF180MCU_AS_SC_PATH},)
    COMMIT_DEFS += -DAS_SC_MCU7T3V3_COMMIT="unknown"
else
    COMMIT_DEFS += -DAS_SC_MCU7T3V3_COMMIT=$(shell cd ${GF180MCU_AS_SC_PATH} ; git rev-parse HEAD)
endif
ifeq (${GF180MCU_OCD_IO_PATH},)
    COMMIT_DEFS += -DOCD_IO_COMMIT="unknown"
else
    COMMIT_DEFS += -DOCD_IO_COMMIT=$(shell cd ${GF180MCU_OCD_IO_PATH} ; git rev-parse HEAD)
endif
ifeq (${GF180MCU_OCD_ALPHA_PATH},)
    COMMIT_DEFS += -DOCD_ALPHA_COMMIT="unknown"
else
    COMMIT_DEFS += -DOCD_ALPHA_COMMIT=$(shell cd ${GF180MCU_OCD_ALPHA_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)

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

MAGICPATH = ${MAGICTOP}
MAGIC_CURRENT = ${MAGICTOP}

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}

MAGICTOP_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${MAGICTOP}
NETGENTOP_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${NETGENTOP}
IRSIMTOP_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${IRSIMTOP}
QFLOWTOP_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${QFLOWTOP}
KLAYOUTTOP_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${KLAYOUTTOP}
OPENLANETOP_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${OPENLANETOP}
XSCHEMTOP_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${XSCHEMTOP}
XCIRCUITTOP_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${XCIRCUITTOP}
NGSPICETOP_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${NGSPICETOP}

MAGIC_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${MAGICPATH}
NETGEN_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${NETGENPATH}
IRSIM_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${IRSIMPATH}
QFLOW_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${QFLOWPATH}
KLAYOUT_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${KLAYOUTPATH}
OPENLANE_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${OPENLANEPATH}
XSCHEM_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${XSCHEMPATH}
XCIRCUIT_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${XCIRCUITPATH}
NGSPICE_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${NGSPICEPATH}

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

# These definitions are used by the build recipes
A_STACK = 3lm
B_STACK = 4lm
C_STACK = 5lm
D_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
D_FULLSTACK = 5LM_1TM_11K

# 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 -std_format ${TIMESTAMP_OPT}
ifneq ($(DESTDIR), )
INSTALL = ${SCRIPTSDIR}/common/staging_install.py -writeto $(DESTDIR) -std_format
else
INSTALL = ${SCRIPTSDIR}/common/staging_install.py -std_format
endif

# The script(s) below are used for custom changes to the vendor PDK files
PORTORDER = ../common/port_order.py -std_format
ADDPROP = ../common/insert_property.py -std_format
ADDLAYER = ../common/insert_layer.py -std_format
REMOVELAB = ../common/remove_label.py -std_format

# 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

IO_GDS = gf180mcu_fd_io/gds

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

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

# Handle prerequisites
prerequisites: pr-repo pv-repo io-repo sc-7t-repo sc-9t-repo sram-repo ocd-sram-repo osu-sc-repo avalon-sc-repo ocd-io-repo ocd-alpha-repo

pr-repo:
	if test "x${REFERENCE_JSON}" != "x"; then \
		FD_PR_COMMIT=`cat ${REFERENCE_JSON} | grep gf180mcu_fd_pr | grep -v COMMIT | cut -d'"' -f4` ; \
	fi ; \
	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} $${FD_PR_COMMIT}; \
		fi ; \
	fi

pv-repo:
	if test "x${REFERENCE_JSON}" != "x"; then \
		FD_PV_COMMIT=`cat ${REFERENCE_JSON} | grep gf180mcu_fd_pv | grep -v COMMIT | cut -d'"' -f4` ; \
	fi ; \
	if test "x${GF180MCU_PV_PATH}" != "x" ; then \
		if test -d "${GF180MCU_PV_PATH}" ; then \
			echo "Using existing installation of verification library from ${GF180MCU_PV_PATH}" ; \
		else \
			echo "Downloading verification library from ${GF180MCU_PV_PATH}" ; \
			../scripts/download.sh ${PDK_LIB_PV} ${GF180MCU_PV_PATH} $${FD_PV_COMMIT}; \
		fi ; \
	fi

io-repo:
	if test "x${REFERENCE_JSON}" != "x"; then \
		FD_IO_COMMIT=`cat ${REFERENCE_JSON} | grep gf180mcu_fd_io | grep -v COMMIT | cut -d'"' -f4` ; \
	fi ; \
	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} $${FD_IO_COMMIT}; \
		fi ; \
	fi

sc-7t-repo:
	if test "x${REFERENCE_JSON}" != "x"; then \
		FD_SC_MCU7T5V0_COMMIT=`cat ${REFERENCE_JSON} | grep gf180mcu_fd_sc_mcu7t5v0 | grep -v COMMIT | cut -d'"' -f4` ; \
	fi ; \
	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} $${FD_SC_MCU7T5V0_COMMIT}; \
		fi ; \
	fi

sc-9t-repo:
	if test "x${REFERENCE_JSON}" != "x"; then \
		FD_SC_MCU9T5V0_COMMIT=`cat ${REFERENCE_JSON} | grep gf180mcu_fd_sc_mcu9t5v0 | grep -v COMMIT | cut -d'"' -f4` ; \
	fi ; \
	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} $${FD_SC_MCU9T5V0_COMMIT}; \
		fi ; \
	fi

sram-repo:
	if test "x${REFERENCE_JSON}" != "x"; then \
		FD_IP_SRAM_COMMIT=`cat ${REFERENCE_JSON} | grep gf180mcu_fd_ip_sram | grep -v COMMIT | cut -d'"' -f4` ; \
	fi ; \
	if test "x${GF180MCU_SRAM_PATH}" != "x" ; then \
		if test -d "${GF180MCU_SRAM_PATH}" ; then \
			echo "Using existing installation of 5V SRAM library from ${GF180MCU_SRAM_PATH}" ; \
		else \
			echo "Downloading 5V SRAM library from ${GF180MCU_SRAM_PATH}" ; \
			../scripts/download.sh ${PDK_LIB_SRAM} ${GF180MCU_SRAM_PATH} $${FD_IP_SRAM_COMMIT}; \
		fi ; \
	fi

ocd-sram-repo:
	if test "x${REFERENCE_JSON}" != "x"; then \
		OCD_IP_SRAM_COMMIT=`cat ${REFERENCE_JSON} | grep gf180mcu_ocd_ip_sram | grep -v COMMIT | cut -d'"' -f4` ; \
	fi ; \
	if test "x${GF180MCU_OCD_SRAM_PATH}" != "x" ; then \
		if test -d "${GF180MCU_OCD_SRAM_PATH}" ; then \
			echo "Using existing installation of 3.3V SRAM library from ${GF180MCU_OCD_SRAM_PATH}" ; \
		else \
			echo "Downloading 3.3V SRAM library from ${GF180MCU_OCD_SRAM_PATH}" ; \
			../scripts/download.sh ${PDK_LIB_OCD_SRAM} ${GF180MCU_OCD_SRAM_PATH} $${OCD_IP_SRAM_COMMIT}; \
		fi ; \
	fi

osu-sc-repo:
	if test "x${REFERENCE_JSON}" != "x"; then \
		OSU_SC_COMMIT=`cat ${REFERENCE_JSON} | grep gf180mcu_osu_sc_gf12t3v3 | grep -v COMMIT | cut -d'"' -f4` ; \
	fi ; \
	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} $${OSU_SC_COMMIT} ; \
		fi ; \
	fi

avalon-sc-repo:
	if test "x${REFERENCE_JSON}" != "x"; then \
		AS_SC_MCU7T3V3_COMMIT=`cat ${REFERENCE_JSON} | grep gf180mcu_as_sc_mcu7t3v3 | grep -v COMMIT | cut -d'"' -f4` ; \
	fi ; \
	if test "x${GF180MCU_AS_SC_PATH}" != "x" ; then \
		if test -d "${GF180MCU_AS_SC_PATH}" ; then \
			echo "Using existing installation of Avalon Semiconductors 3.3V standard cell library from ${GF180MCU_AS_SC_PATH}" ; \
		else \
			echo "Downloading Avalon Semiconductors 3.3V standard cell library from ${GF180MCU_AS_SC_PATH}" ; \
			../scripts/download.sh ${PDK_LIB_AS_SC} ${GF180MCU_AS_SC_PATH} $${AS_SC_MCU7T3V3_COMMIT} ; \
		fi ; \
	fi

ocd-io-repo:
	if test "x${REFERENCE_JSON}" != "x"; then \
		OCD_IO_COMMIT=`cat ${REFERENCE_JSON} | grep gf180mcu_ocd_io | grep -v COMMIT | cut -d'"' -f4` ; \
	fi ; \
	if test "x${GF180MCU_OCD_IO_PATH}" != "x" ; then \
		if test -d "${GF180MCU_OCD_IO_PATH}" ; then \
			echo "Using existing installation of Open Circuit Design dual-voltage I/O library from ${GF180MCU_OCD_IO_PATH}" ; \
		else \
			echo "Downloading Open Circuit Design dual-voltage I/O library from ${GF180MCU_OCD_IO_PATH}" ; \
			../scripts/download.sh ${PDK_LIB_OCD_IO} ${GF180MCU_OCD_IO_PATH} $${OCD_IO_COMMIT} ; \
		fi ; \
	fi

ocd-alpha-repo:
	if test "x${REFERENCE_JSON}" != "x"; then \
		OCD_ALPHA_COMMIT=`cat ${REFERENCE_JSON} | grep gf180mcu_ocd_alpha | grep -v COMMIT | cut -d'"' -f4` ; \
	fi ; \
	if test "x${GF180MCU_OCD_ALPHA_PATH}" != "x" ; then \
		if test -d "${GF180MCU_OCD_ALPHA_PATH}" ; then \
			echo "Using existing installation of Open Circuit Design alphanumeric library from ${GF180MCU_OCD_ALPHA_PATH}" ; \
		else \
			echo "Downloading Open Circuit Design alphanumeric library from ${GF180MCU_OCD_APHA_PATH}" ; \
			../scripts/download.sh ${PDK_LIB_OCD_ALPHA} ${GF180MCU_OCD_ALPHA_PATH} $${OCD_ALPHA_COMMIT} ; \
		fi ; \
	fi


# Update prerequisites
update: update-pr-repo update-pv-repo update-io-repo update-sc-7t-repo update-sc-9t-repo update-sram-repo update-ocd-sram-repo update-osu-sc-repo update-avalon-sc-repo update-ocd-io-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-pv-repo:
	if test "x${GF180MCU_PV_PATH}" != "x" ; then \
		echo "Updating GF180MCU verification library from ${PDK_LIB_PV}" ; \
		../scripts/update.sh ${GF180MCU_PV_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 5V SRAM macro library from ${PDK_LIB_SRAM}" ; \
		../scripts/update.sh ${GF180MCU_SRAM_PATH} ; \
	fi

update-ocd-sram-repo:
	if test "x${GF180MCU_OCD_SRAM_PATH}" != "x" ; then \
		echo "Updating GF180MCU Open Circuit Design 3.3V SRAM macro library from ${PDK_LIB_OCD_SRAM}" ; \
		../scripts/update.sh ${GF180MCU_OCD_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

update-avalon-sc-repo:
	if test "x${GF180MCU_AS_SC_PATH}" != "x" ; then \
		echo "Updating GF180MCU Avalon Semiconductors 3.3V standard cell library from ${PDK_LIB_AS_SC}" ; \
		../scripts/update.sh ${GF180MCU_AS_SC_PATH} ; \
	fi

update-ocd-io-repo:
	if test "x${GF180MCU_OCD_IO_PATH}" != "x" ; then \
		echo "Updating GF180MCU Open Circuit Design dual-voltage I/O library from ${PDK_LIB_OCD_IO}" ; \
		../scripts/update.sh ${GF180MCU_OCD_IO_PATH} ; \
	fi

update-ocd-apha-repo:
	if test "x${GF180MCU_OCD_ALPHA_PATH}" != "x" ; then \
		echo "Updating GF180MCU Open Circuit Design alphanumeric library from ${PDK_LIB_OCD_ALPHA}" ; \
		../scripts/update.sh ${GF180MCU_OCD_ALPHA_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))

tools-D: $(addsuffix -D, $(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

	${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 -f -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_PV_PATH} ${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_$*}/tech/macros
	mkdir ${KLAYOUT_STAGING_$*}/tech/pymacros
	mkdir ${KLAYOUT_STAGING_$*}/tech/pymacros/cells
	mkdir ${KLAYOUT_STAGING_$*}/tech/pymacros/klayout_api_cells

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

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_$*}
	# Make open_pdks-specific modifications to the xschemrc file
	./custom/scripts/fix_xschemrc.py ${XSCHEM_STAGING_$*}/xschemrc \
		${GF180MCU$*} 2>&1 | tee -a ${GF180MCU$*}_make.log || true

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 ocd-io-build-A ocd-alpha-build-A sram-build-A ocd-sram-build-A digital-osu-build-A digital-avalon-build-A

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

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

vendor-D: primitive-build-D digital-7t5v0-build-D digital-9t5v0-build-D io-build-D ocd-io-build-D ocd-alpha-build-D sram-build-D ocd-sram-build-D digital-osu-build-D digital-avalon-build-D

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

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

ocd-io-build-%:
	if test "x${GF180MCU_OCD_IO_PATH}" != "x" ; then \
		if test -d ${GF180MCU_OCD_IO_PATH} ; then \
			echo "Building dual-voltage padframe I/O libraries" ;\
			make ocd-io-$* ;\
		fi ;\
	fi

ocd-alpha-build-%:
	if test "x${GF180MCU_OCD_ALPHA_PATH}" != "x" ; then \
		if test -d ${GF180MCU_OCD_ALPHA_PATH} ; then \
			echo "Building alphanumeric layout libraries" ;\
			make ocd-alpha-$* ;\
		fi ;\
	fi

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

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

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

ocd-sram-build-%:
	if test "x${GF180MCU_OCD_SRAM_PATH}" != "x" ; then \
		if test -d ${GF180MCU_OCD_SRAM_PATH} ; then \
			echo "Building Open Circuit Design 3.3V SRAM libraries" ;\
			make ocd-sram-$* ;\
		fi ;\
	fi

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

digital-avalon-build-%:
	if test "x${GF180MCU_AS_SC_PATH}" != "x" ; then \
		if test -d ${GF180MCU_AS_SC_PATH} ; then \
			echo "Building Avalon Semiconductor 3.3V digital standard cell libraries" ;\
			make digital-avalon-$* ;\
		fi ;\
	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
	# Install primitive device fixed layout cells from GDS
	${STAGE} -source ${GF180MCU_PR_PATH} \
		-target ${STAGING_PATH}/${GF180MCU$*} \
		-gds cells/klayout/pymacros/cells/*/*.gds noextract \
		-library primitive gf180mcu_fd_pr \
		2>&1 | tee -a ${GF180MCU$*}_make.log
	# The klayout GUI prefers that drc/ and lvs/ exist under tech/,
	# so make symbolic links.
	(cd ${STAGING_PATH}/${GF180MCU$*}/libs.tech/klayout/tech ; \
		ln -f -s ../lvs ; ln -f -s ../drc)
	# Add "device primitive" property to the bipolar devices and
	# order the ports correctly to match the subcircuit model.  This
	# ensures that the bipolar layouts extract correctly.
	${ADDPROP} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_pr \
		npn_00p54x02p00 "device primitive"
	${PORTORDER} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_pr \
		npn_00p54x02p00 I1_default_C I1_default_B I1_default_E I1_default_S
	${ADDPROP} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_pr \
		npn_00p54x04p00 "device primitive"
	${PORTORDER} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_pr \
		npn_00p54x04p00 I1_default_C I1_default_B I1_default_E I1_default_S
	${ADDPROP} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_pr \
		npn_00p54x08p00 "device primitive"
	${PORTORDER} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_pr \
		npn_00p54x08p00 I1_default_C I1_default_B I1_default_E I1_default_S
	${ADDPROP} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_pr \
		npn_00p54x16p00 "device primitive"
	${PORTORDER} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_pr \
		npn_00p54x16p00 I1_default_C I1_default_B I1_default_E I1_default_S
	${ADDPROP} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_pr \
		npn_05p00x05p00 "device primitive"
	${PORTORDER} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_pr \
		npn_05p00x05p00 I1_default_C I1_default_B I1_default_E I1_default_S
	${ADDPROP} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_pr \
		npn_10p00x10p00 "device primitive"
	${PORTORDER} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_pr \
		npn_10p00x10p00 I1_default_C I1_default_B I1_default_E I1_default_S
	${ADDPROP} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_pr \
		pnp_05p00x00p42 "device primitive"
	${PORTORDER} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_pr \
		pnp_05p00x00p42 I1_default_C I1_default_B I1_default_E
	${ADDPROP} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_pr \
		pnp_05p00x05p00 "device primitive"
	${PORTORDER} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_pr \
		pnp_05p00x05p00 I1_default_C I1_default_B I1_default_E
	${ADDPROP} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_pr \
		pnp_10p00x10p00 "device primitive"
	${PORTORDER} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_pr \
		pnp_10p00x10p00 I1_default_C I1_default_B I1_default_E
	# Cells which have a different cell name than the device name
	# should replace the "gencell" property with the device name.
	${ADDPROP} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_pr \
		efuse_cell "gencell efuse"
	${ADDPROP} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_pr \
		npn_00p54x02p00_0 "gencell npn_00p54x02p00"
	${ADDPROP} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_pr \
		npn_00p54x04p00_0 "gencell npn_00p54x04p00"
	${ADDPROP} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_pr \
		npn_00p54x08p00_0 "gencell npn_00p54x08p00"
	${ADDPROP} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_pr \
		npn_00p54x16p00_0 "gencell npn_00p54x16p00"
	${ADDPROP} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_pr \
		npn_05p00x05p00_0 "gencell npn_05p00x05p00"
	${ADDPROP} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_pr \
		npn_10p00x10p00_0 "gencell npn_10p00x10p00"
	${ADDPROP} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_pr \
		pnp_05p00x00p42_0 "gencell pnp_05p00x00p42"
	${ADDPROP} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_pr \
		pnp_05p00x05p00_0 "gencell pnp_05p00x05p00"
	${ADDPROP} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_pr \
		pnp_10p00x00p42_0 "gencell pnp_10p00x00p42"
	${ADDPROP} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_pr \
		pnp_10p00x10p00_0 "gencell pnp_10p00x10p00"

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 \
		-lib 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 \
		-lib 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 \
		-lib 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 \
		-lib 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 \
		-lib 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 \
		-lib 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 \
		-lib 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 \
		-lib 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 \
		-lib 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 \
		-lib 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 \
		-lib 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 \
		-lib 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 \
		-lib 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 \
		-lib 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 \
		-lib 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 \
		-spice cells/*/*.cdl compile-only \
			filter=custom/scripts/convert_sc_cdl.py \
		-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 -std_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 \
		-lib 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 \
		-lib 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 \
		-lib 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 \
		-lib 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 \
		-lib 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 \
		-lib 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 \
		-lib 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 \
		-lib 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 \
		-lib 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 \
		-lib 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 \
		-lib 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 \
		-lib 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 \
		-lib 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 \
		-lib 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 \
		-lib 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 \
		-spice cells/*/*.cdl compile-only \
			filter=custom/scripts/convert_sc_cdl.py \
		-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 -std_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}/gf180mcu_osu_sc_gp9t3v3 \
		-target ${STAGING_PATH}/${GF180MCU$*} \
		-techlef tlef/gf180mcu_osu_sc_gp9t3v3.tlef \
			rename=gf180mcu_osu_sc_gp9t3v3__nom.tlef \
		-lib lib/gf180mcu_osu_sc_gp9t3v3_TT_25C.ccs.lib \
			rename=gf180mcu_osu_sc_gp9t3v3__tt_025C_3v30 \
		-verilog verilog/*.v rename=gf180mcu_osu_sc_gp9t3v3.v \
		-lef lef/*.lef \
		-gds gds/*.gds compile-only \
		-spice spice/*.spice \
		-xschem xschem/*.sch compile-only \
		-library digital gf180mcu_osu_sc_gp9t3v3 2>&1 | \
		tee -a ${GF180MCU$*}_make.log

	${STAGE} -source ${GF180MCU_OSU_SC_PATH}/gf180mcu_osu_sc_gp12t3v3 \
		-target ${STAGING_PATH}/${GF180MCU$*} \
		-techlef tlef/gf180mcu_osu_sc_gp12t3v3.tlef \
			rename=gf180mcu_osu_sc_gp12t3v3__nom.tlef \
		-lib lib/gf180mcu_osu_sc_gp12t3v3_TT_25C.ccs.lib \
			rename=gf180mcu_osu_sc_gp12t3v3__tt_025C_3v30 \
		-verilog verilog/*.v rename=gf180mcu_osu_sc_gp12t3v3.v \
		-lef lef/*.lef \
		-gds gds/*.gds compile-only \
		-spice spice/*.spice \
		-xschem xschem/*.sch \
		-library digital gf180mcu_osu_sc_gp12t3v3 2>&1 | \
		tee -a ${GF180MCU$*}_make.log

digital-avalon-%: AVALON_TECH_SOURCE := ${GF180MCU_AS_SC_PATH}/pdk/libs.tech
digital-avalon-%: AVALON_REF_SOURCE := ${GF180MCU_AS_SC_PATH}/pdk/libs.ref/gf180mcu_as_sc_mcu7t3v3

digital-avalon-%:
        # Install Avalon Semiconductors 3.3V digital standard cells from vendor files
	# NOTE: The repository is in open_pdks format and mainly just needs to
	# be copied, not built.
	rm -rf ${STAGING_PATH}/${GF180MCU$*}/libs.ref/gf180mcu_as_sc_mcu7t3v3/lib
	mkdir -p ${STAGING_PATH}/${GF180MCU$*}/libs.ref/gf180mcu_as_sc_mcu7t3v3/lib
	cp -rp ${AVALON_REF_SOURCE}/lib ${STAGING_PATH}/${GF180MCU$*}/libs.ref/gf180mcu_as_sc_mcu7t3v3
	rm -rf ${STAGING_PATH}/${GF180MCU$*}/libs.ref/gf180mcu_as_sc_mcu7t3v3/mag
	mkdir -p ${STAGING_PATH}/${GF180MCU$*}/libs.ref/gf180mcu_as_sc_mcu7t3v3/mag
	cp -rp ${AVALON_REF_SOURCE}/mag ${STAGING_PATH}/${GF180MCU$*}/libs.ref/gf180mcu_as_sc_mcu7t3v3
	rm -rf ${STAGING_PATH}/${GF180MCU$*}/libs.ref/gf180mcu_as_sc_mcu7t3v3/gds
	mkdir ${STAGING_PATH}/${GF180MCU$*}/libs.ref/gf180mcu_as_sc_mcu7t3v3/gds
	# Remove the "_merged" suffix from the GDS library
	cp ${AVALON_REF_SOURCE}/gf180mcu_as_sc_mcu7t3v3__merged.gds ${STAGING_PATH}/${GF180MCU$*}/libs.ref/gf180mcu_as_sc_mcu7t3v3/gds/gf180mcu_as_sc_mcu7t3v3.gds
	rm -rf ${STAGING_PATH}/${GF180MCU$*}/libs.ref/gf180mcu_as_sc_mcu7t3v3/lef
	mkdir -p ${STAGING_PATH}/${GF180MCU$*}/libs.ref/gf180mcu_as_sc_mcu7t3v3/lef
	cp -rp ${AVALON_REF_SOURCE}/lef ${STAGING_PATH}/${GF180MCU$*}/libs.ref/gf180mcu_as_sc_mcu7t3v3
	rm -rf ${STAGING_PATH}/${GF180MCU$*}/libs.ref/gf180mcu_as_sc_mcu7t3v3/techlef
	mkdir -p ${STAGING_PATH}/${GF180MCU$*}/libs.ref/gf180mcu_as_sc_mcu7t3v3/techlef
	cp -rp ${AVALON_REF_SOURCE}/techlef ${STAGING_PATH}/${GF180MCU$*}/libs.ref/gf180mcu_as_sc_mcu7t3v3
	rm -rf ${STAGING_PATH}/${GF180MCU$*}/libs.ref/gf180mcu_as_sc_mcu7t3v3/verilog
	mkdir -p ${STAGING_PATH}/${GF180MCU$*}/libs.ref/gf180mcu_as_sc_mcu7t3v3/verilog
	cp -rp ${AVALON_REF_SOURCE}/verilog ${STAGING_PATH}/${GF180MCU$*}/libs.ref/gf180mcu_as_sc_mcu7t3v3

	# This library is done the right way and has its own openlane setup.
	mkdir -p ${OPENLANETOP_STAGING_$*}
	mkdir -p ${OPENLANE_STAGING_$*}
	rm -rf ${OPENLANE_STAGING_$*}/gf180mcu_as_sc_mcu7t3v3
	mkdir ${OPENLANE_STAGING_$*}/gf180mcu_as_sc_mcu7t3v3
	cp -rp ${AVALON_TECH_SOURCE}/openlane/gf180mcu_as_sc_mcu7t3v3 ${OPENLANE_STAGING_$*}

io-%:
	# Install custom additions to the I/O pad library
	${STAGE} -source ./custom -target ${STAGING_PATH}/${GF180MCU$*} \
		-verilog %l/verilog/*.v compile-only rename=gf180mcu_ef_io \
		-spice %l/spice/*.spice compile-only rename=gf180mcu_ef_io \
		-gds %l/gds/*_${$*_STACK}.gds compile-only \
			rename=gf180mcu_ef_io \
			options=custom/scripts/gds_import_io.tcl \
		-lef %l/lef/*_${$*_STACK}.lef \
			annotate lefopts=-hide \
		-library general gf180mcu_fd_io 2>&1 | \
		tee -a ${GF180MCU$*}_make.log

        # 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 \
		-lib cells/*/*_ff_125C_2v75.lib compile-only \
			include=custom/gf180mcu_fd_io/lib/*_ff_125C_2v75.lib \
                        header=liberty/gf180mcu_fd_io__ff_125C_2v75.lib \
			rename=gf180mcu_fd_io__ff_125C_2v75 \
		-lib cells/*/*_ff_n40C_2v75.lib compile-only \
			include=custom/gf180mcu_fd_io/lib/*_ff_n40C_2v75.lib \
                        header=liberty/gf180mcu_fd_io__ff_n40C_2v75.lib \
			rename=gf180mcu_fd_io__ff_n40C_2v75 \
		-lib cells/*/*_ff_125C_3v63.lib compile-only \
			include=custom/gf180mcu_fd_io/lib/*_ff_125C_3v63.lib \
                        header=liberty/gf180mcu_fd_io__ff_125C_3v63.lib \
			rename=gf180mcu_fd_io__ff_125C_3v63 \
		-lib cells/*/*_ff_n40C_3v63.lib compile-only \
			include=custom/gf180mcu_fd_io/lib/*_ff_n40C_3v63.lib \
                        header=liberty/gf180mcu_fd_io__ff_n40C_3v63.lib \
			rename=gf180mcu_fd_io__ff_n40C_3v63 \
		-lib cells/*/*_ff_125C_5v50.lib compile-only \
			include=custom/gf180mcu_fd_io/lib/*_ff_125C_5v50.lib \
                        header=liberty/gf180mcu_fd_io__ff_125C_5v50.lib \
			rename=gf180mcu_fd_io__ff_125C_5v50 \
		-lib cells/*/*_ff_n40C_5v50.lib compile-only \
			include=custom/gf180mcu_fd_io/lib/*_ff_n40C_5v50.lib \
                        header=liberty/gf180mcu_fd_io__ff_n40C_5v50.lib \
			rename=gf180mcu_fd_io__ff_n40C_5v50 \
		-lib cells/*/*_ss_125C_2v25.lib compile-only \
			include=custom/gf180mcu_fd_io/lib/*_ss_125C_2v20.lib \
                        header=liberty/gf180mcu_fd_io__ss_125C_2v25.lib \
			rename=gf180mcu_fd_io__ss_125C_2v25 \
		-lib cells/*/*_ss_125C_2v97.lib compile-only \
			include=custom/gf180mcu_fd_io/lib/*_ss_125C_2v97.lib \
                        header=liberty/gf180mcu_fd_io__ss_125C_2v97.lib \
			rename=gf180mcu_fd_io__ss_125C_2v97 \
		-lib cells/*/*_ss_125C_4v50.lib compile-only \
			include=custom/gf180mcu_fd_io/lib/*_ss_125C_4v50.lib \
                        header=liberty/gf180mcu_fd_io__ss_125C_4v50.lib \
			rename=gf180mcu_fd_io__ss_125C_4v50 \
		-lib cells/*/*_tt_025C_2v50.lib compile-only \
			include=custom/gf180mcu_fd_io/lib/*_tt_025C_2v50.lib \
                        header=liberty/gf180mcu_fd_io__tt_025C_2v50.lib \
			rename=gf180mcu_fd_io__tt_025C_2v50 \
		-lib cells/*/*_tt_025C_3v30.lib compile-only \
			include=custom/gf180mcu_fd_io/lib/*_tt_025C_3v30.lib \
                        header=liberty/gf180mcu_fd_io__tt_025C_3v30.lib \
			rename=gf180mcu_fd_io__tt_025C_3v30 \
		-lib cells/*/*_tt_025C_5v00.lib compile-only \
			include=custom/gf180mcu_fd_io/lib/*_tt_025C_5v00.lib \
                        header=liberty/gf180mcu_fd_io__tt_025C_5v00.lib \
			rename=gf180mcu_fd_io__tt_025C_5v00 \
		-spice cells/*/*.cdl compile-only \
			filter=custom/scripts/convert_io_cdl.py \
		-gds cells/*/*_${$*_STACK}.gds compile-only \
			options=custom/scripts/gds_import_io.tcl \
			filter=custom/scripts/fix_io_cor_gds.py \
		-lef cells/*/*_${$*_STACK}.lef \
			annotate lefopts=-hide \
			filter=custom/scripts/fix_io_lef.py \
		-xschem cells/*/*.sym \
			filter=custom/scripts/make_primitive.py \
		-verilog cells/*/*.v compile-only \
		-library general gf180mcu_fd_io 2>&1 | tee -a ${GF180MCU$*}_make.log

ocd-io-%:
	# Install the Open Circuit Design dual-voltage I/O library
	${STAGE} -source ${GF180MCU_OCD_IO_PATH} \
		-target ${STAGING_PATH}/${GF180MCU$*} \
		-lib cells/*/*_ff_125C_2v75.lib compile-only \
                        header=liberty/gf180mcu_ocd_io__ff_125C_2v75.lib \
			rename=gf180mcu_ocd_io__ff_125C_2v75 \
		-lib cells/*/*_ff_n40C_2v75.lib compile-only \
                        header=liberty/gf180mcu_ocd_io__ff_n40C_2v75.lib \
			rename=gf180mcu_ocd_io__ff_n40C_2v75 \
		-lib cells/*/*_ff_125C_3v63.lib compile-only \
                        header=liberty/gf180mcu_ocd_io__ff_125C_3v63.lib \
			rename=gf180mcu_ocd_io__ff_125C_3v63 \
		-lib cells/*/*_ff_n40C_3v63.lib compile-only \
                        header=liberty/gf180mcu_ocd_io__ff_n40C_3v63.lib \
			rename=gf180mcu_ocd_io__ff_n40C_3v63 \
		-lib cells/*/*_ff_125C_5v50.lib compile-only \
                        header=liberty/gf180mcu_ocd_io__ff_125C_5v50.lib \
			rename=gf180mcu_ocd_io__ff_125C_5v50 \
		-lib cells/*/*_ff_n40C_5v50.lib compile-only \
                        header=liberty/gf180mcu_ocd_io__ff_n40C_5v50.lib \
			rename=gf180mcu_ocd_io__ff_n40C_5v50 \
		-lib cells/*/*_ss_125C_2v25.lib compile-only \
                        header=liberty/gf180mcu_ocd_io__ss_125C_2v25.lib \
			rename=gf180mcu_ocd_io__ss_125C_2v25 \
		-lib cells/*/*_ss_125C_2v97.lib compile-only \
                        header=liberty/gf180mcu_ocd_io__ss_125C_2v97.lib \
			rename=gf180mcu_ocd_io__ss_125C_2v97 \
		-lib cells/*/*_ss_125C_4v50.lib compile-only \
                        header=liberty/gf180mcu_ocd_io__ss_125C_4v50.lib \
			rename=gf180mcu_ocd_io__ss_125C_4v50 \
		-lib cells/*/*_tt_025C_2v50.lib compile-only \
                        header=liberty/gf180mcu_ocd_io__tt_025C_2v50.lib \
			rename=gf180mcu_ocd_io__tt_025C_2v50 \
		-lib cells/*/*_tt_025C_3v30.lib compile-only \
                        header=liberty/gf180mcu_ocd_io__tt_025C_3v30.lib \
			rename=gf180mcu_ocd_io__tt_025C_3v30 \
		-lib cells/*/*_tt_025C_5v00.lib compile-only \
                        header=liberty/gf180mcu_ocd_io__tt_025C_5v00.lib \
			rename=gf180mcu_ocd_io__tt_025C_5v00 \
		-spice netlist/layout/*.spice compile-only  \
		-gds cells/*/*_${$*_STACK}.gds.gz compile-only \
			options=custom/scripts/gds_import_io.tcl \
		-lef cells/*/*_${$*_STACK}.lef compile-only \
		-xschem cells/*/*.sym \
			filter=custom/scripts/make_primitive.py \
		-verilog cells/*/*.v compile-only \
		-library general gf180mcu_ocd_io 2>&1 | tee -a ${GF180MCU$*}_make.log

ocd-alpha-%:
	# Install alphanumeric libraries.
	${STAGE} -source ${GF180MCU_OCD_ALPHA_PATH} \
		-target ${STAGING_PATH}/${GF180MCU$*} \
		-mag small/magic/*.mag \
		-library general gf180mcu_ocd_alpha_small \
		2>&1 | tee -a ${GF180MCU$*}_make.log
	${STAGE} -source ${GF180MCU_OCD_ALPHA_PATH} \
		-target ${STAGING_PATH}/${GF180MCU$*} \
		-mag large/magic/*.mag \
		-library general gf180mcu_ocd_alpha_large \
		2>&1 | tee -a ${GF180MCU$*}_make.log
	${STAGE} -source ${GF180MCU_OCD_ALPHA_PATH} \
		-target ${STAGING_PATH}/${GF180MCU$*} \
		-mag misc/magic/*.mag \
		-library general gf180mcu_ocd_alpha_misc \
		2>&1 | tee -a ${GF180MCU$*}_make.log
	# Install text2mag.py script for alphanumeric library
	mkdir -p ${STAGING_PATH}/${GF180MCU$*}/libs.ref/gf180mcu_ocd_alpha_small/scripts
	cp ${GF180MCU_OCD_ALPHA_PATH}/small/scripts/text2mag.py \
		${STAGING_PATH}/${GF180MCU$*}/libs.ref/gf180mcu_ocd_alpha_small/scripts

sram-%:
	# Install 5V SRAM macros from vendor files
	${STAGE} -source ${GF180MCU_SRAM_PATH} \
		-target ${STAGING_PATH}/${GF180MCU$*} \
		-cdl cells/*/*.cdl noconvert \
		-lib cells/*/*.lib \
		-spice cells/*/*.cdl \
			filter=custom/scripts/convert_sram_cdl.py \
			rename=*.spice \
		-gds cells/*/*.gds \
			options=custom/scripts/gds_import_sram.tcl \
			filter=custom/scripts/fix_sram_gds.py \
		-lef cells/*/*.lef annotate lefopts="-hide 5um" \
		-verilog cells/*/*.v \
		-library general gf180mcu_fd_ip_sram 2>&1 | tee -a ${GF180MCU$*}_make.log
	# Remove "BL" labels from the rarray4_* cells, otherwise extraction
	# of the SRAMs without using "extract unique" will fail.
	${REMOVELAB} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_ip_sram \
		rarray4_\* BL\* -mag

ocd-sram-%:
	# Install Open Circuit Design 3.3V SRAM macros from vendor files
	${STAGE} -source ${GF180MCU_OCD_SRAM_PATH} \
		-target ${STAGING_PATH}/${GF180MCU$*} \
		-lib cells/*/*.lib \
		-spice cells/*/*.spice \
		-gds cells/*/*.gds \
		-lef cells/*/*.lef \
		-verilog cells/*/*.v \
		-library general gf180mcu_ocd_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

install-D: install-A
	echo "Starting GF180MCU PDK migration on "`date` > ${GF180MCUD}_install.log
	${INSTALL} \
		-source ${STAGING_PATH}/${GF180MCUD} \
		-finalpath ${SHARED_PDKS_PATH}/${GF180MCUD} \
		-variable PDKPATH \
		-link_from ${DIST_LINK_TARGETS_C} 2>&1 | tee -a ${GF180MCUD}_install.log
	echo "Ended GF180MCU PDK migration on "`date` >> ${GF180MCUD}_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"

uninstall-D:
	echo "Uninstalling GF180MCU PDK from ${SHARED_PDKS_PATH}"
	if test "x${SHARED_PDKS_PATH}" != "x" ; then \
		${RM} -rf ${SHARED_PDKS_PATH}/${GF180MCUD} ; \
	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

clean-D:
	${STAGE} -target ${STAGING_PATH}/${GF180MCUD} -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

veryclean-D: clean-D
	${RM} ${GF180MCUD}_make.log
	${RM} ${GF180MCUD}_install.log


