# Makefile for efabless design kits for SkyWater Sky130:
#
#  sky130A      =  5-metal backend stack with dual MiM
#  sky130B      =  5-metal backend stack with dual MiM and ReRAM
#
# Written by Tim Edwards March 2019
# efabless corporation
# updated October 2019
# updated December 2019 (divide installation sections for individual tools)
# updated March 2020 (refactored the install process)
# updated May 2020 (changed to new process name Sky130)
# updated January 2022 (divided into two variants A and B)
# updated July 2023 (sky130 repositories switched to github/efabless)
#
# Instructions:
#
# Run "configure" from the top level directory.  Use the following
# configuration options to match your environment:
#
#	--enable-sky130-pdk
#		If enabled, install the skywater PDK.
#		If explicitly disabled, sky130 is skipped over entirely.
#
#	--with-sky130-link-targets=<value>
#		where <value> is one of "none" or "source".  If set to "source",
#		then where possible, the installed files are symbolic links
#		back to the source, rather than copies of the source.  The
#		default value is "none" if the option is not specified.
#
#	--with-ef-style
#		If specified, then the installation uses the efabless style,
#		which swaps the file hierarchy of file formats vs. IP libraries;
#		e.g., "gds/sky130_fd_sc_hd/" with ef-style, vs.
#		"sky130_fd_sc_hd/gds/" without it.  Normally this should not
#		be enabled.
#
# Enable/disable for specific libraries to be installed (and downloaded if
# needed).  Libraries that are part of the open_pdks repository are enabled
# by default and must be disabled by passing an option to configure.  Libraries
# that are not part of the open_pdks repository are disabled by default and
# must be enabled by passing an option to configure.
#
# Internal libraries and tool setups that can be disabled are the following:
#
#	--disable-magic
#		Do not install setup files for the magic layout tool.
#
#	--disable-netgen
#		Do not install setup files for the netgen LVS tool.
#
#	--disable-irsim
#		Do not install setup files for the IRSIM simulation tool.
#
#	--disable-qflow
#		Do not install setup files for the qflow synthesis flow.
#
#	--disable-librelane
#		Do not install setup files for the librelane sythesis flow.
#
#	--disable-klayout
#		Do not install setup files for the klayout layout tool.
#
#
# NOTE:  The comments below are for features that have not yet been
# implemented.
#
# External (third-party) libraries and tool setups are the following (enabled
# by default):
#
#	--enable-primitive-sky130[=<path>]
#		If enabled, install the sky130 primitives library.
#		If <path> is not specified, then the primitives library will be
#		cloned from the git repository and installed.
#
#	--enable-io-sky130[=<path>]
#		If enabled, install the sky130 I/O library.
#		If <path> is not specified, then the I/O library will be
#		cloned from the git repository and installed.
#
#	--enable-sc-hs-sky130[=<path>]
#		If enabled, install the sky130 high-speed standard cell library.
#		If <path> is not specified, then the high-speed standard cell
#		library will be cloned from the git repository and installed.
#
#	--enable-sc-ms-sky130[=<path>]
#		If enabled, install the sky130 medium-speed standard cell library.
#		If <path> is not specified, then the medium-speed standard cell
#		library will be cloned from the git repository and installed.
#
#	--enable-sc-ls-sky130[=<path>]
#		If enabled, install the sky130 low-speed standard cell library.
#		If <path> is not specified, then the low-speed standard cell
#		library will be cloned from the git repository and installed.
#
#	--enable-sc-lp-sky130[=<path>]
#		If enabled, install the sky130 low-power standard cell library.
#		If <path> is not specified, then the low-power standard cell
#		library will be cloned from the git repository and installed.
#
#	--enable-sc-hd-sky130[=<path>]
#		If enabled, install the sky130 high-density standard cell library.
#		If <path> is not specified, then the high-density standard cell
#		library will be cloned from the git repository and installed.
#
#	--enable-sc-hdll-sky130[=<path>]
#		If enabled, install the sky130 high-density low-leakage standard
#		cell library.  If <path> is not specified, then the high-density
#		low-leakage standard cell library will be cloned from the git
#		repository and installed.
#
#	--enable-sc-hvl-sky130[=<path>]
#		If enabled, install the sky130 high-voltage standard cell library.
#		If <path> is not specified, then the high-voltage standard cell
#		library will be cloned from the git repository and installed.
#
#	--enable-alpha-sky130[=<path>]
#		If enabled, install the sky130_ml_xx_hd font library from
#		Paul Schulz on github.  If <path> is not specified, then the
#		font library will be cloned from the git repository and
#		installed.
#
#	--enable-xschem-sky130[=<path>]
#		If enabled, install the Sky130 setup for the xschem schematic
#		editor.  If <path> is specified, then the xschem setup is
#		expected to be found rooted at the given path.  If not
#		specified, then the xschem setup will be cloned from the
#		repository and installed.
#
#	--enable-klayout-sky130[=<path>]
#		If enabled, install the Sky130 setup for the klayout layout
#		editor.  If <path> is specified, then the klayout setup is
#		expected to be found rooted at the given path.  If not
#		specified, then the klayout setup will be cloned from the
#		repository and installed.
#
# External (third-party) libraries and tool setups are the following (disabled
# by default):
#
#	--enable-sram-sky130[=<path>]
#		If enabled, install the sky130_sram_macros library from
#		efabless on github.   If <path> is not specified, then
#		the SRAM library will be cloned from the repository and
#		installed.
#
#	--enable-sram-space-sky130[=<path>]
#		If enabled, install the sky130_fd_bd_sram library from
#		google on github.   If <path> is not specified, then the
#		library will be cloned from the repository and installed.
#
#	--enable-osu-t12-sky130[=<path>]
#		If enabled, install the sky130_osu_sc_t12 libraries from
#		foss-eda-tools on googlesource.   If <path> is not
#		specified, then the OSU standard cell library will be
#		clones from the repository and installed.
#
#	--enable-osu-t15-sky130[=<path>]
#		If enabled, install the sky130_osu_sc_t15 libraries from
#		foss-eda-tools on googlesource.   If <path> is not
#		specified, then the OSU standard cell library will be
#		clones from the repository and installed.
#
#	--enable-osu-t18-sky130[=<path>]
#		If enabled, install the sky130_osu_sc_t18 libraries from
#		foss-eda-tools on googlesource.   If <path> is not
#		specified, then the OSU standard cell library will be
#		clones from the repository and installed.
#
#	--enable-reram-sky130[=<path>]
#		If enabled, install the sky130_fd_pr_reram library from
#		google on github.  If <path> is not specified, then the
#		library will be cloned from the repository and installed.
#
# The variables below are substituted from the configuration options:
#
#	LINK_TARGETS_A: If "source", link back to source when possible
#	ENABLED_VARIANTS: If not "all", then compile/install only the specified variants
#
# Run "make" to stage the PDK for tool setup and vendor libraries
#
# Run "make install" to install all staged files.
#
# Run "make clean" to remove all staging files.
#
# Run "make veryclean" to remove all staging and make.log files.
#
# For the sake of simplicity, the "standard" installation can be done
# with the usual
#
#   make
#   make install
#   make clean
#
#--------------------------------------------------------------------
# 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@

# 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 ../VERSION)
else
    REVISION = ${GITREV}
endif
TECH = sky130

# 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 | sky130A
LINK_TARGETS_A = @SKY130_LINK_TARGETS@
LINK_TARGETS_B = sky130A

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

# Paths:

# Path to SkyWater open PDK sources.
SKY130_PR_PATH = @SKY130_FD_PR_PATH@
SKY130_IO_PATH = @SKY130_FD_IO_PATH@
SKY130_SC_HD_PATH = @SKY130_FD_SC_HD_PATH@
SKY130_SC_HDLL_PATH = @SKY130_FD_SC_HDLL_PATH@
SKY130_SC_HVL_PATH = @SKY130_FD_SC_HVL_PATH@
SKY130_SC_HS_PATH = @SKY130_FD_SC_HS_PATH@
SKY130_SC_MS_PATH = @SKY130_FD_SC_MS_PATH@
SKY130_SC_LS_PATH = @SKY130_FD_SC_LS_PATH@
SKY130_SC_LP_PATH = @SKY130_FD_SC_LP_PATH@

# Path to independent library sources (to be added to configuration options).
ALPHA_PATH = @SKY130_ML_XX_HD_PATH@
XSCHEM_PATH = @XSCHEM_SKY130_PATH@
KLAYOUT_PATH = @KLAYOUT_SKY130_PATH@
PRECHECK_PATH = @PRECHECK_SKY130_PATH@
SRAM_PATH = @SKY130_SRAM_MACROS_PATH@
SRAM_SPACE_PATH = @SKY130_FD_BD_SRAM_PATH@
RERAM_PATH = @SKY130_FD_PR_RERAM_PATH@
OSU_T12_PATH = @SKY130_OSU_T12_PATH@
OSU_T15_PATH = @SKY130_OSU_T15_PATH@
OSU_T18_PATH = @SKY130_OSU_T18_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

FOSSI_URL = https://github.com/fossi-foundation
GOOGLE_URL = https://foss-eda-tools.googlesource.com

# Names of library repositories
PDK_LIB_PR = ${FOSSI_URL}/skywater-pdk-libs-sky130_fd_pr
PDK_LIB_IO = ${FOSSI_URL}/skywater-pdk-libs-sky130_fd_io
PDK_LIB_SC_HD = ${FOSSI_URL}/skywater-pdk-libs-sky130_fd_sc_hd
PDK_LIB_SC_HDLL = ${FOSSI_URL}/skywater-pdk-libs-sky130_fd_sc_hdll
PDK_LIB_SC_LP = ${FOSSI_URL}/skywater-pdk-libs-sky130_fd_sc_lp
PDK_LIB_SC_HS = ${FOSSI_URL}/skywater-pdk-libs-sky130_fd_sc_hs
PDK_LIB_SC_MS = ${FOSSI_URL}/skywater-pdk-libs-sky130_fd_sc_ms
PDK_LIB_SC_LS = ${FOSSI_URL}/skywater-pdk-libs-sky130_fd_sc_ls
PDK_LIB_SC_HVL = ${FOSSI_URL}/skywater-pdk-libs-sky130_fd_sc_hvl

ALPHA_URL =    https://github.com/PaulSchulz/sky130_pschulz_xx_hd
XSCHEM_URL =   https://github.com/StefanSchippers/xschem_sky130
KLAYOUT_URL =  ${FOSSI_URL}/sky130_klayout_pdk
PRECHECK_URL = ${FOSSI_URL}/mpw_precheck
SRAM_URL =     ${FOSSI_URL}/sky130_sram_macros
SRAM_SPACE_URL = ${GOOGLE_URL}/skywater-pdk/libs/sky130_fd_bd_sram
RERAM_URL =    ${GOOGLE_URL}/skywater-pdk/libs/sky130_fd_pr_reram
OSU_T12_URL =  ${GOOGLE_URL}/skywater-pdk/libs/sky130_osu_sc_t12
OSU_T15_URL =  ${GOOGLE_URL}/skywater-pdk/libs/sky130_osu_sc_t15
OSU_T18_URL =  ${GOOGLE_URL}/skywater-pdk/libs/sky130_osu_sc_t18

# 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 = .

# EF process nodes created from the master sources
SKY130A = sky130A
SKY130B = sky130B

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

# Basic definitions for each EF process node
SKY130A_DEFS = -DTECHNAME=sky130A -DREVISION=${REVISION}
SKY130B_DEFS = -DTECHNAME=sky130B -DREVISION=${REVISION}

# Module definitions for each process node
# (Note that MOS is default and therefore not used anywhere)
SKY130A_DEFS += -DMETAL5 -DMIM -DREDISTRIBUTION
SKY130B_DEFS += -DMETAL5 -DMIM -DREDISTRIBUTION

# NOTE: ReRAM support is what distinguishes variant B from variant A.
SKY130B_DEFS += -DRERAM

# Add staging path
SKY130A_DEFS += -DSTAGING_PATH=${STAGING_PATH}
SKY130B_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 (${SKY130_PR_PATH},)
    COMMIT_DEFS += -DFD_PR_COMMIT="unknown"
else
    COMMIT_DEFS += -DFD_PR_COMMIT=$(shell cd ${SKY130_PR_PATH} ; git rev-parse HEAD)
endif
ifeq (${SKY130_IO_PATH},)
    COMMIT_DEFS += -DFD_IO_COMMIT="unknown"
else
    COMMIT_DEFS += -DFD_IO_COMMIT=$(shell cd ${SKY130_IO_PATH} ; git rev-parse HEAD)
endif
ifeq (${SKY130_SC_HS_PATH},)
    COMMIT_DEFS += -DFD_SC_HS_COMMIT="unknown"
else
    COMMIT_DEFS += -DFD_SC_HS_COMMIT=$(shell cd ${SKY130_SC_HS_PATH} ; git rev-parse HEAD)
endif
ifeq (${SKY130_SC_MS_PATH},)
    COMMIT_DEFS += -DFD_SC_MS_COMMIT="unknown"
else
    COMMIT_DEFS += -DFD_SC_MS_COMMIT=$(shell cd ${SKY130_SC_MS_PATH} ; git rev-parse HEAD)
endif
ifeq (${SKY130_SC_LS_PATH},)
    COMMIT_DEFS += -DFD_SC_LS_COMMIT="unknown"
else
    COMMIT_DEFS += -DFD_SC_LS_COMMIT=$(shell cd ${SKY130_SC_LS_PATH} ; git rev-parse HEAD)
endif
ifeq (${SKY130_SC_LP_PATH},)
    COMMIT_DEFS += -DFD_SC_LP_COMMIT="unknown"
else
    COMMIT_DEFS += -DFD_SC_LP_COMMIT=$(shell cd ${SKY130_SC_LP_PATH} ; git rev-parse HEAD)
endif
ifeq (${SKY130_SC_HD_PATH},)
    COMMIT_DEFS += -DFD_SC_HD_COMMIT="unknown"
else
    COMMIT_DEFS += -DFD_SC_HD_COMMIT=$(shell cd ${SKY130_SC_HD_PATH} ; git rev-parse HEAD)
endif
ifeq (${SKY130_SC_HDLL_PATH},)
    COMMIT_DEFS += -DFD_SC_HDLL_COMMIT="unknown"
else
    COMMIT_DEFS += -DFD_SC_HDLL_COMMIT=$(shell cd ${SKY130_SC_HDLL_PATH} ; git rev-parse HEAD)
endif
ifeq (${SKY130_SC_HVL_PATH},)
    COMMIT_DEFS += -DFD_SC_HVL_COMMIT="unknown"
else
    COMMIT_DEFS += -DFD_SC_HVL_COMMIT=$(shell cd ${SKY130_SC_HVL_PATH} ; git rev-parse HEAD)
endif
ifeq (${XSCHEM_PATH},)
    COMMIT_DEFS += -DXSCHEM_COMMIT="unknown"
else
    COMMIT_DEFS += -DXSCHEM_COMMIT=$(shell cd ${XSCHEM_PATH} ; git rev-parse HEAD)
endif
ifeq (${KLAYOUT_PATH},)
    COMMIT_DEFS += -DKLAYOUT_COMMIT="unknown"
else
    COMMIT_DEFS += -DKLAYOUT_COMMIT=$(shell cd ${KLAYOUT_PATH} ; git rev-parse HEAD)
endif
ifeq (${PRECHECK_PATH},)
    COMMIT_DEFS += -DPRECHECK_COMMIT="unknown"
else
    COMMIT_DEFS += -DPRECHECK_COMMIT=$(shell cd ${PRECHECK_PATH} ; git rev-parse HEAD)
endif
ifeq (${ALPHA_PATH},)
    COMMIT_DEFS += -DALPHA_COMMIT="unknown"
else
    COMMIT_DEFS += -DALPHA_COMMIT=$(shell cd ${ALPHA_PATH} ; git rev-parse HEAD)
endif
ifeq (${SRAM_PATH},)
    COMMIT_DEFS += -DSRAM_COMMIT="unknown"
else
    COMMIT_DEFS += -DSRAM_COMMIT=$(shell cd ${SRAM_PATH} ; git rev-parse HEAD)
endif
ifeq (${SRAM_SPACE_PATH},)
    COMMIT_DEFS += -DSRAM_SPACE_COMMIT="unknown"
else
    COMMIT_DEFS += -DSRAM_SPACE_COMMIT=$(shell cd ${SRAM_SPACE_PATH} ; git rev-parse HEAD)
endif
ifeq (${RERAM_PATH},)
    COMMIT_DEFS += -DRERAM_COMMIT="unknown"
else
    COMMIT_DEFS += -DRERAM_COMMIT=$(shell cd ${RERAM_PATH} ; git rev-parse HEAD)
endif
ifeq (${OSU_T12_PATH},)
    COMMIT_DEFS += -DOSU_T12_COMMIT="unknown"
else
    COMMIT_DEFS += -DOSU_T12_COMMIT=$(shell cd ${OSU_T12_PATH} ; git rev-parse HEAD)
endif
ifeq (${OSU_T15_PATH},)
    COMMIT_DEFS += -DOSU_T15_COMMIT="unknown"
else
    COMMIT_DEFS += -DOSU_T15_COMMIT=$(shell cd ${OSU_T15_PATH} ; git rev-parse HEAD)
endif
ifeq (${OSU_T18_PATH},)
    COMMIT_DEFS += -DOSU_T18_COMMIT="unknown"
else
    COMMIT_DEFS += -DOSU_T18_COMMIT=$(shell cd ${OSU_T18_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 ../VERSION)

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

MAGICPATH = ${MAGICTOP}
MAGICCURRENT = ${MAGICTOP}

# Currently, netgen, qflow, irsim, and klayout do not use revisioning (needs to change!)
NETGENPATH = ${NETGENTOP}
IRSIMPATH = ${IRSIMTOP}
QFLOWPATH = ${QFLOWTOP}
KLAYOUTPATH = ${KLAYOUTTOP}
LIBRELANEPATH = ${LIBRELANETOP}
XSCHEMPATH = ${XSCHEMTOP}
XCIRCUITPATH = ${XCIRCUITTOP}
NGSPICEPATH = ${NGSPICETOP}

MAGICTOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${MAGICTOP}
NETGENTOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${NETGENTOP}
IRSIMTOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${IRSIMTOP}
QFLOWTOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${QFLOWTOP}
KLAYOUTTOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${KLAYOUTTOP}
LIBRELANETOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${LIBRELANETOP}
XSCHEMTOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${XSCHEMTOP}
XCIRCUITTOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${XCIRCUITTOP}
NGSPICETOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${NGSPICETOP}

MAGIC_STAGING_A = ${STAGING_PATH}/${SKY130A}/${MAGICPATH}
NETGEN_STAGING_A = ${STAGING_PATH}/${SKY130A}/${NETGENPATH}
IRSIM_STAGING_A = ${STAGING_PATH}/${SKY130A}/${IRSIMPATH}
QFLOW_STAGING_A = ${STAGING_PATH}/${SKY130A}/${QFLOWPATH}
KLAYOUT_STAGING_A = ${STAGING_PATH}/${SKY130A}/${KLAYOUTPATH}
LIBRELANE_STAGING_A = ${STAGING_PATH}/${SKY130A}/${LIBRELANEPATH}
XSCHEM_STAGING_A = ${STAGING_PATH}/${SKY130A}/${XSCHEMPATH}
XCIRCUIT_STAGING_A = ${STAGING_PATH}/${SKY130A}/${XCIRCUITPATH}
NGSPICE_STAGING_A = ${STAGING_PATH}/${SKY130A}/${NGSPICEPATH}

MAGICTOP_STAGING_B = ${STAGING_PATH}/${SKY130B}/${MAGICTOP}
NETGENTOP_STAGING_B = ${STAGING_PATH}/${SKY130B}/${NETGENTOP}
IRSIMTOP_STAGING_B = ${STAGING_PATH}/${SKY130B}/${IRSIMTOP}
QFLOWTOP_STAGING_B = ${STAGING_PATH}/${SKY130B}/${QFLOWTOP}
KLAYOUTTOP_STAGING_B = ${STAGING_PATH}/${SKY130B}/${KLAYOUTTOP}
LIBRELANETOP_STAGING_B = ${STAGING_PATH}/${SKY130B}/${LIBRELANETOP}
XSCHEMTOP_STAGING_B = ${STAGING_PATH}/${SKY130B}/${XSCHEMTOP}
XCIRCUITTOP_STAGING_B = ${STAGING_PATH}/${SKY130B}/${XCIRCUITTOP}
NGSPICETOP_STAGING_B = ${STAGING_PATH}/${SKY130B}/${NGSPICETOP}

MAGIC_STAGING_B = ${STAGING_PATH}/${SKY130B}/${MAGICPATH}
NETGEN_STAGING_B = ${STAGING_PATH}/${SKY130B}/${NETGENPATH}
IRSIM_STAGING_B = ${STAGING_PATH}/${SKY130B}/${IRSIMPATH}
QFLOW_STAGING_B = ${STAGING_PATH}/${SKY130B}/${QFLOWPATH}
KLAYOUT_STAGING_B = ${STAGING_PATH}/${SKY130B}/${KLAYOUTPATH}
LIBRELANE_STAGING_B = ${STAGING_PATH}/${SKY130B}/${LIBRELANEPATH}
XSCHEM_STAGING_B = ${STAGING_PATH}/${SKY130B}/${XSCHEMPATH}
XCIRCUIT_STAGING_B = ${STAGING_PATH}/${SKY130B}/${XCIRCUITPATH}
NGSPICE_STAGING_B = ${STAGING_PATH}/${SKY130B}/${NGSPICEPATH}

SKY130A_DEFS += -DMAGIC_CURRENT=${MAGICCURRENT}
SKY130B_DEFS += -DMAGIC_CURRENT=${MAGICCURRENT}

# LibreLane has a number of files that are common to all digital
# standard cell libraries, so these are collected in one definition
# here:
LIBRELANE_COMMON = config.tcl tracks.info synth_excluded.cells pnr_excluded.cells
LIBRELANE_COMMON += tribuff_map.v latch_map.v mux2_map.v mux4_map.v fa_map.v rca_map.v csa_map.v

# Corners defined in IRSIM parameter files (wild-carded)
IRSIM_CORNERS = `ls irsim/*.prm | cut -c14-`

# 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   = ../common/preproc.py

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

# The script(s) below are used for custom changes to the vendor PDK files
ADDPROP = ../common/insert_property.py -std_format
ADDLAYER = ../common/insert_layer.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

# LIBRELANE_DISABLED = 0 | 1
LIBRELANE_DISABLED = @LIBRELANE_DISABLED@
ifneq (${LIBRELANE_DISABLED}, 1)
        TOOLS += librelane
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_VERILOG = sky130_fd_io/verilog
IO_GDS = sky130_fd_io/gds
HD_VERILOG = sky130_fd_sc_hd/verilog
HDLL_VERILOG = sky130_fd_sc_hdll/verilog
HVL_VERILOG = sky130_fd_sc_hvl/verilog
HS_VERILOG = sky130_fd_sc_hs/verilog
MS_VERILOG = sky130_fd_sc_ms/verilog
LS_VERILOG = sky130_fd_sc_ls/verilog
LP_VERILOG = sky130_fd_sc_lp/verilog
HD_TECHLEF = sky130_fd_sc_hd/techlef
HDLL_TECHLEF = sky130_fd_sc_hdll/techlef
MLXX_SCRIPTS = sky130_ml_xx_hd/scripts
PR_SPICE = sky130_fd_pr/spice
HVL_SPICE = sky130_fd_sc_hvl/spice
HD_SPICE = sky130_fd_sc_hd/spice
HVL_PATCH4 = 4
HVL_CDL = sky130_fd_sc_hvl/cdl
SPIEXT = spice

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 (fetch and install the PDK and requested libraries)
prerequisites: pr-repo io-repo sc-hd-repo sc-hdll-repo sc-hvl-repo sc-hs-repo sc-ms-repo sc-ls-repo sc-lp-repo alpha-repo xschem-repo klayout-repo precheck-repo sram-repo sram-space-repo reram-repo osu-t12-repo osu-t15-repo osu-t18-repo

pr-repo:
	if test "x${REFERENCE_JSON}" != "x"; then \
		FD_PR_COMMIT=`cat ${REFERENCE_JSON} | grep sky130_fd_pr | grep -v COMMIT | cut -d'"' -f4` ; \
	fi ; \
	if test "x${SKY130_PR_PATH}" != "x" ; then \
		if test -d "${SKY130_PR_PATH}" ; then \
			echo "Using existing installation of primitive library from ${SKY130_PR_PATH}" ; \
		else \
			echo "Downloading primitive library from ${SKY130_PR_PATH}" ; \
			../scripts/download.sh ${PDK_LIB_PR} ${SKY130_PR_PATH} $${FD_PR_COMMIT} ; \
		fi ; \
	fi

io-repo:
	if test "x${REFERENCE_JSON}" != "x"; then \
		FD_IO_COMMIT=`cat ${REFERENCE_JSON} | grep sky130_fd_io | grep -v COMMIT | cut -d'"' -f4` ; \
	fi ; \
	if test "x${SKY130_IO_PATH}" != "x" ; then \
		if test -d "${SKY130_IO_PATH}" ; then \
			echo "Using existing installation of I/O library from ${SKY130_IO_PATH}" ; \
		else \
			echo "Downloading I/O library from ${SKY130_IO_PATH}" ; \
			../scripts/download.sh ${PDK_LIB_IO} ${SKY130_IO_PATH} $${FD_IO_COMMIT} ; \
		fi ; \
	fi

sc-hs-repo:
	if test "x${REFERENCE_JSON}" != "x"; then \
		FD_SC_HS_COMMIT=`cat ${REFERENCE_JSON} | grep sky130_fd_sc_hs | grep -v COMMIT | cut -d'"' -f4` ; \
	fi ; \
	if test "x${SKY130_SC_HS_PATH}" != "x" ; then \
		if test -d "${SKY130_SC_HS_PATH}" ; then \
			echo "Using existing installation of high-speed standard cell library from ${SKY130_SC_HS_PATH}" ; \
		else \
			echo "Downloading high-speed standard cell library from ${SKY130_SC_HS_PATH}" ; \
			../scripts/download.sh ${PDK_LIB_SC_HS} ${SKY130_SC_HS_PATH} $${FD_SC_HS_COMMIT} ; \
		fi ; \
	fi

sc-ms-repo:
	if test "x${REFERENCE_JSON}" != "x"; then \
		FD_SC_MS_COMMIT=`cat ${REFERENCE_JSON} | grep sky130_fd_sc_ms | grep -v COMMIT | cut -d'"' -f4` ; \
	fi ; \
	if test "x${SKY130_SC_MS_PATH}" != "x" ; then \
		if test -d "${SKY130_SC_MS_PATH}" ; then \
			echo "Using existing installation of medium-speed standard cell library from ${SKY130_SC_MS_PATH}" ; \
		else \
			echo "Downloading medium-speed standard cell library from ${SKY130_SC_MS_PATH}" ; \
			../scripts/download.sh ${PDK_LIB_SC_MS} ${SKY130_SC_MS_PATH} $${FD_SC_MS_COMMIT} ; \
		fi ; \
	fi

sc-ls-repo:
	if test "x${REFERENCE_JSON}" != "x"; then \
		FD_SC_LS_COMMIT=`cat ${REFERENCE_JSON} | grep sky130_fd_sc_ls | grep -v COMMIT | cut -d'"' -f4` ; \
	fi ; \
	if test "x${SKY130_SC_LS_PATH}" != "x" ; then \
		if test -d "${SKY130_SC_LS_PATH}" ; then \
			echo "Using existing installation of low-speed standard cell library from ${SKY130_SC_LS_PATH}" ; \
		else \
			echo "Downloading low-speed standard cell library from ${SKY130_SC_LS_PATH}" ; \
			../scripts/download.sh ${PDK_LIB_SC_LS} ${SKY130_SC_LS_PATH} $${FD_SC_LS_COMMIT} ; \
		fi ; \
	fi

sc-lp-repo:
	if test "x${REFERENCE_JSON}" != "x"; then \
		FD_SC_LP_COMMIT=`cat ${REFERENCE_JSON} | grep sky130_fd_sc_lp | grep -v COMMIT | cut -d'"' -f4` ; \
	fi ; \
	if test "x${SKY130_SC_LP_PATH}" != "x" ; then \
		if test -d "${SKY130_SC_LP_PATH}" ; then \
			echo "Using existing installation of low-power standard cell library from ${SKY130_SC_LP_PATH}" ; \
		else \
			echo "Downloading low-power standard cell library from ${SKY130_SC_LP_PATH}" ; \
			../scripts/download.sh ${PDK_LIB_SC_LP} ${SKY130_SC_LP_PATH} $${FD_SC_LP_COMMIT} ; \
		fi ; \
	fi

sc-hd-repo:
	if test "x${REFERENCE_JSON}" != "x"; then \
		FD_SC_HD_COMMIT=`cat ${REFERENCE_JSON} | grep sky130_fd_sc_hd | grep -v COMMIT | cut -d'"' -f4` ; \
	fi ; \
	if test "x${SKY130_SC_HD_PATH}" != "x" ; then \
		if test -d "${SKY130_SC_HD_PATH}" ; then \
			echo "Using existing installation of high-density standard cell library from ${SKY130_SC_HD_PATH}" ; \
		else \
			echo "Downloading high-density standard cell library from ${SKY130_SC_HD_PATH}" ; \
			../scripts/download.sh ${PDK_LIB_SC_HD} ${SKY130_SC_HD_PATH} $${FD_SC_HD_COMMIT} ; \
		fi ; \
	fi

sc-hdll-repo:
	if test "x${REFERENCE_JSON}" != "x"; then \
		FD_SC_HDLL_COMMIT=`cat ${REFERENCE_JSON} | grep sky130_fd_sc_hdll | grep -v COMMIT | cut -d'"' -f4` ; \
	fi ; \
	if test "x${SKY130_SC_HDLL_PATH}" != "x" ; then \
		if test -d "${SKY130_SC_HDLL_PATH}" ; then \
			echo "Using existing installation of high-density low-leakage standard cell library from ${SKY130_SC_HDLL_PATH}" ; \
		else \
			echo "Downloading high-density low-leakage standard cell library from ${SKY130_SC_HDLL_PATH}" ; \
			../scripts/download.sh ${PDK_LIB_SC_HDLL} ${SKY130_SC_HDLL_PATH} $${FD_SC_HDLL_COMMIT} ; \
		fi ; \
	fi

sc-hvl-repo:
	if test "x${REFERENCE_JSON}" != "x"; then \
		FD_SC_HVL_COMMIT=`cat ${REFERENCE_JSON} | grep sky130_fd_sc_hvl | grep -v COMMIT | cut -d'"' -f4` ; \
	fi ; \
	if test "x${SKY130_SC_HVL_PATH}" != "x" ; then \
		if test -d "${SKY130_SC_HVL_PATH}" ; then \
			echo "Using existing installation of high-voltage standard cell library from ${SKY130_SC_HVL_PATH}" ; \
		else \
			echo "Downloading high-voltage standard cell library from ${SKY130_SC_HVL_PATH}" ; \
			../scripts/download.sh ${PDK_LIB_SC_HVL} ${SKY130_SC_HVL_PATH} $${FD_SC_HVL_COMMIT} ; \
		fi ; \
	fi

alpha-repo:
	if test "x${REFERENCE_JSON}" != "x"; then \
		ALPHA_COMMIT=`cat ${REFERENCE_JSON} | grep sky130_ml_xx_hd | grep -v COMMIT | cut -d'"' -f4` ; \
	fi ; \
	if test "x${ALPHA_PATH}" != "x" ; then \
		if test -d "${ALPHA_PATH}" ; then \
			echo "Using existing installation of alphanumeric library from ${ALPHA_PATH}" ; \
		else \
			echo "Downloading alphanumeric library from ${ALPHA_URL}" ; \
			../scripts/download.sh ${ALPHA_URL} ${ALPHA_PATH} $${ALPHA_COMMIT} ; \
		fi ; \
	fi

sram-repo:
	if test "x${REFERENCE_JSON}" != "x"; then \
		SRAM_COMMIT=`cat ${REFERENCE_JSON} | grep sky130_sram_macros | grep -v COMMIT | cut -d'"' -f4` ; \
	fi ; \
	if test "x${SRAM_PATH}" != "x" ; then \
		if test -d "${SRAM_PATH}" ; then \
			echo "Using existing installation of SRAM macro library from ${SRAM_PATH}" ; \
		else \
			echo "Downloading SRAM macro library from ${SRAM_URL}" ; \
			../scripts/download.sh ${SRAM_URL} ${SRAM_PATH} $${SRAM_COMMIT}; \
		fi ; \
	fi

sram-space-repo:
	if test "x${REFERENCE_JSON}" != "x"; then \
		SRAM_SPACE_COMMIT=`cat ${REFERENCE_JSON} | grep sky130_fd_bd_sram | grep -v COMMIT | cut -d'"' -f4` ; \
	fi ; \
	if test "x${SRAM_SPACE_PATH}" != "x" ; then \
		if test -d "${SRAM_SPACE_PATH}" ; then \
			echo "Using existing installation of SRAM build-space library from ${SRAM_SPACE_PATH}" ; \
		else \
			echo "Downloading SRAM build-space library from ${SRAM_SPACE_URL}" ; \
			../scripts/download.sh ${SRAM_SPACE_URL} ${SRAM_SPACE_PATH} $${SRAM_SPACE_COMMIT} ; \
		fi ; \
	fi

reram-repo:
	if test "x${REFERENCE_JSON}" != "x"; then \
		RERAM_COMMIT=`cat ${REFERENCE_JSON} | grep sky130_fd_pr_reram | grep -v COMMIT | cut -d'"' -f4` ; \
	fi ; \
	if test "x${RERAM_PATH}" != "x" ; then \
		if test -d "${RERAM_PATH}" ; then \
			echo "Using existing installation of RERAM library from ${RERAM_PATH}" ; \
		else \
			echo "Downloading RERAM library from ${RERAM_URL}" ; \
			../scripts/download.sh ${RERAM_URL} ${RERAM_PATH} $${RERAM_COMMIT} ; \
		fi ; \
	fi

xschem-repo:
	if test "x${REFERENCE_JSON}" != "x"; then \
		XSCHEM_COMMIT=`cat ${REFERENCE_JSON} | grep xschem_sky130 | grep -v COMMIT | cut -d'"' -f4` ; \
	fi ; \
	if test "x${XSCHEM_PATH}" != "x" ; then \
		if test -d "${XSCHEM_PATH}" ; then \
			echo "Using existing installation of xschem setup from ${XSCHEM_PATH}" ; \
		else \
			echo "Downloading xschem setup from ${XSCHEM_URL}" ; \
			../scripts/download.sh ${XSCHEM_URL} ${XSCHEM_PATH} $${XSCHEM_COMMIT} ; \
		fi ; \
	fi

klayout-repo:
	if test "x${REFERENCE_JSON}" != "x"; then \
		KLAYOUT_COMMIT=`cat ${REFERENCE_JSON} | grep klayout_sky130 | grep -v COMMIT | cut -d'"' -f4` ; \
	fi ; \
	if test "x${KLAYOUT_PATH}" != "x" ; then \
		if test -d "${KLAYOUT_PATH}" ; then \
			echo "Using existing installation of klayout setup from ${KLAYOUT_PATH}" ; \
		else \
			echo "Downloading klayout setup from ${KLAYOUT_URL}" ; \
			../scripts/download.sh ${KLAYOUT_URL} ${KLAYOUT_PATH} $${KLAYOUT_COMMIT} ; \
		fi ; \
	fi

precheck-repo:
	if test "x${REFERENCE_JSON}" != "x"; then \
		PRECHECK_COMMIT=`cat ${REFERENCE_JSON} | grep precheck_sky130 | grep -v COMMIT | cut -d'"' -f4` ; \
	fi ; \
	if test "x${PRECHECK_PATH}" != "x" ; then \
		if test -d "${PRECHECK_PATH}" ; then \
			echo "Using existing installation of klayout setup from ${PRECHECK_PATH}" ; \
		else \
			echo "Downloading klayout setup from ${PRECHECK_URL}" ; \
			../scripts/download.sh ${PRECHECK_URL} ${PRECHECK_PATH} $${PRECHECK_COMMIT} ; \
		fi ; \
	fi

osu-t12-repo:
	if test "x${REFERENCE_JSON}" != "x"; then \
		OSU_T12_COMMIT=`cat ${REFERENCE_JSON} | grep sky130_osu_sc_t12 | grep -v COMMIT | cut -d'"' -f4` ; \
	fi ; \
	if test "x${OSU_T12_PATH}" != "x" ; then \
		if test -d "${OSU_T12_PATH}" ; then \
			echo "Using existing installation of OSU T12 standard cell library from ${OSU_T12_PATH}" ; \
		else \
			echo "Downloading OSU standard T12 cell library from ${OSU_T12_URL}" ; \
			../scripts/download.sh ${OSU_T12_URL} ${OSU_T12_PATH} $${OSU_T12_COMMIT} ; \
		fi ; \
	fi

osu-t15-repo:
	if test "x${REFERENCE_JSON}" != "x"; then \
		OSU_T15_COMMIT=`cat ${REFERENCE_JSON} | grep sky130_osu_sc_t15 | grep -v COMMIT | cut -d'"' -f4` ; \
	fi
	if test "x${OSU_T15_PATH}" != "x" ; then \
		if test -d "${OSU_T15_PATH}" ; then \
			echo "Using existing installation of OSU T15 standard cell library from ${OSU_T15_PATH}" ; \
		else \
			echo "Downloading OSU standard T15 cell library from ${OSU_T15_URL}" ; \
			../scripts/download.sh ${OSU_T15_URL} ${OSU_T15_PATH} $${OSU_T15_COMMIT} ; \
		fi ; \
	fi

osu-t18-repo:
	if test "x${REFERENCE_JSON}" != "x"; then \
		OSU_T18_COMMIT=`cat ${REFERENCE_JSON} | grep sky130_osu_sc_t18 | grep -v COMMIT | cut -d'"' -f4` ; \
	fi
	if test "x${OSU_T18_PATH}" != "x" ; then \
		if test -d "${OSU_T18_PATH}" ; then \
			echo "Using existing installation of OSU T18 standard cell library from ${OSU_T18_PATH}" ; \
		else \
			echo "Downloading OSU standard T18 cell library from ${OSU_T18_URL}" ; \
			../scripts/download.sh ${OSU_T18_URL} ${OSU_T18_PATH} $${OSU_T18_COMMIT} ; \
		fi ; \
	fi

# Update prerequisites
update: update-pr-repo update-io-repo update-sc-hs-repo update-sc-ms-repo update-sc-ls-repo update-sc-lp-repo update-sc-hd-repo update-sc-hdll-repo update-sc-hvl-repo update-alpha-repo update-xschem-repo update-klayout-repo update-precheck-repo update-sram-repo update-sram-space-repo update-osu-t12-repo update-osu-t15-repo update-osu-t18-repo

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

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

update-sc-hs-repo:
	if test "x${SKY130_SC_HS_PATH}" != "x" ; then \
		echo "Updating Sky130 high-speed standard cell library from ${PDK_LIB_SC_HS}" ; \
		../scripts/update.sh ${SKY130_SC_HS_PATH} ; \
	fi

update-sc-ms-repo:
	if test "x${SKY130_SC_MS_PATH}" != "x" ; then \
		echo "Updating Sky130 medium-speed standard cell library from ${PDK_LIB_SC_MS}" ; \
		../scripts/update.sh ${SKY130_SC_MS_PATH} ; \
	fi

update-sc-ls-repo:
	if test "x${SKY130_SC_LS_PATH}" != "x" ; then \
		echo "Updating Sky130 low-speed standard cell library from ${PDK_LIB_SC_LS}" ; \
		../scripts/update.sh ${SKY130_SC_LS_PATH} ; \
	fi

update-sc-lp-repo:
	if test "x${SKY130_SC_LP_PATH}" != "x" ; then \
		echo "Updating Sky130 low-power standard cell library from ${PDK_LIB_SC_LP}" ; \
		../scripts/update.sh ${SKY130_SC_LP_PATH} ; \
	fi

update-sc-hd-repo:
	if test "x${SKY130_SC_HD_PATH}" != "x" ; then \
		echo "Updating Sky130 high-density standard cell library from ${PDK_LIB_SC_HD}" ; \
		../scripts/update.sh ${SKY130_SC_HD_PATH} ; \
	fi

update-sc-hdll-repo:
	if test "x${SKY130_SC_HDLL_PATH}" != "x" ; then \
		echo "Updating Sky130 high-density low-leakage standard cell library from ${PDK_LIB_SC_HDLL}" ; \
		../scripts/update.sh ${SKY130_SC_HDLL_PATH} ; \
	fi

update-sc-hvl-repo:
	if test "x${SKY130_SC_HVL_PATH}" != "x" ; then \
		echo "Updating Sky130 high-voltage standard cell library from ${PDK_LIB_SC_HVL}" ; \
		../scripts/update.sh ${SKY130_SC_HVL_PATH} ; \
	fi

update-alpha-repo:
	if test "x${ALPHA_PATH}" != "x" ; then \
		echo "Updating alphanumeric library from ${ALPHA_URL}" ; \
		../scripts/update.sh ${ALPHA_PATH} ; \
	fi

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

update-sram-space-repo:
	if test "x${SRAM_SPACE_PATH}" != "x" ; then \
		echo "Updating SRAM build-space library from ${SRAM_SPACE_URL}" ; \
		../scripts/update.sh ${SRAM_SPACE_PATH} ; \
	fi

update-reram-repo:
	if test "x${RERAM_PATH}" != "x" ; then \
		echo "Updating RERAM library from ${RERAM_URL}" ; \
		../scripts/update.sh ${RERAM_PATH} ; \
	fi

update-xschem-repo:
	if test "x${XSCHEM_PATH}" != "x" ; then \
		echo "Updating xschem setup from ${XSCHEM_URL}" ; \
		../scripts/update.sh ${XSCHEM_PATH} ; \
	fi

update-klayout-repo:
	if test "x${KLAYOUT_PATH}" != "x" ; then \
		echo "Updating klayout setup from ${KLAYOUT_URL}" ; \
		../scripts/update.sh ${KLAYOUT_PATH} ; \
	fi

update-precheck-repo:
	if test "x${PRECHECK_PATH}" != "x" ; then \
		echo "Updating klayout setup from ${PRECHECK_URL}" ; \
		../scripts/update.sh ${PRECHECK_PATH} ; \
	fi

update-osu-t12-repo:
	if test "x${OSU_T12_PATH}" != "x" ; then \
		echo "Updating OSU standard T12 cell library from ${OSU_T12_URL}" ; \
		../scripts/update.sh ${OSU_T12_PATH} ; \
	fi

update-osu-t15-repo:
	if test "x${OSU_T15_PATH}" != "x" ; then \
		echo "Updating OSU standard T15 cell library from ${OSU_T15_URL}" ; \
		../scripts/update.sh ${OSU_T15_PATH} ; \
	fi

update-osu-t18-repo:
	if test "x${OSU_T18_PATH}" != "x" ; then \
		echo "Updating OSU standard T18 cell library from ${OSU_T18_URL}" ; \
		../scripts/update.sh ${OSU_T18_PATH} ; \
	fi

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

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

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

tools-B: $(addsuffix -B, $(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_$*}/${SKY130$*}.tech
	rm -f ${MAGIC_STAGING_$*}/${SKY130$*}-GDS.tech
	rm -f ${MAGIC_STAGING_$*}/${SKY130$*}.tcl
	rm -f ${MAGIC_STAGING_$*}/${SKY130$*}-BindKeys
	rm -f ${MAGIC_STAGING_$*}/magicrc
	cp -rp custom/scripts/seal_ring_generator ${MAGIC_STAGING_$*}/.
	cp -rp custom/scripts/bump_bond_generator ${MAGIC_STAGING_$*}/.
	cp custom/scripts/run_standard_drc.py ${MAGIC_STAGING_$*}/.
	${CPP} ${SKY130$*_DEFS} custom/scripts/generate_fill.py \
		${MAGIC_STAGING_$*}/generate_fill.py
	${CPP} ${SKY130$*_DEFS} custom/scripts/check_density.py \
		${MAGIC_STAGING_$*}/check_density.py
	${CPP} ${SKY130$*_DEFS} custom/scripts/check_antenna.py \
		${MAGIC_STAGING_$*}/check_antenna.py
	${CPP} ${SKY130$*_DEFS} magic/${TECH}.tech ${MAGIC_STAGING_$*}/${SKY130$*}.tech
	${CPP} ${SKY130$*_DEFS} magic/${TECH}gds.tech ${MAGIC_STAGING_$*}/${SKY130$*}-GDS.tech
	${CPP} ${SKY130$*_DEFS} magic/${TECH}.magicrc ${MAGIC_STAGING_$*}/${SKY130$*}.magicrc
	${CPP} ${SKY130$*_DEFS} ../common/pdk.bindkeys ${MAGIC_STAGING_$*}/${SKY130$*}-BindKeys
	${CPP} ${SKY130$*_DEFS} magic/${TECH}.tcl ${MAGIC_STAGING_$*}/${SKY130$*}.tcl
	${CPP} ${SKY130$*_DEFS} ../common/pdk.tcl >> ${MAGIC_STAGING_$*}/${SKY130$*}.tcl

qflow-%: qflow/${TECH}.sh qflow/${TECH}.par
	mkdir -p ${QFLOWTOP_STAGING_$*}
	mkdir -p ${QFLOW_STAGING_$*}
	rm -f ${QFLOW_STAGING_$*}/sky130_fd_sc_hd.sh
	rm -f ${QFLOW_STAGING_$*}/sky130_fd_sc_hd.par
	rm -f ${QFLOW_STAGING_$*}/sky130_fd_sc_hdll.sh
	rm -f ${QFLOW_STAGING_$*}/sky130_fd_sc_hdll.par
	rm -f ${QFLOW_STAGING_$*}/sky130_fd_sc_hs.sh
	rm -f ${QFLOW_STAGING_$*}/sky130_fd_sc_hs.par
	rm -f ${QFLOW_STAGING_$*}/sky130_fd_sc_hvl.sh
	rm -f ${QFLOW_STAGING_$*}/sky130_fd_sc_hvl.par
	rm -f ${QFLOW_STAGING_$*}/sky130_fd_sc_ls.sh
	rm -f ${QFLOW_STAGING_$*}/sky130_fd_sc_ls.par
	rm -f ${QFLOW_STAGING_$*}/sky130_fd_sc_lp.sh
	rm -f ${QFLOW_STAGING_$*}/sky130_fd_sc_lp.par
	rm -f ${QFLOW_STAGING_$*}/sky130_fd_sc_ms.sh
	rm -f ${QFLOW_STAGING_$*}/sky130_fd_sc_ms.par
	rm -f ${QFLOW_STAGING_$*}/sky130_osu_sc_12t_ls.sh
	rm -f ${QFLOW_STAGING_$*}/sky130_osu_sc_12t_ls.par
	rm -f ${QFLOW_STAGING_$*}/sky130_osu_sc_12t_ms.sh
	rm -f ${QFLOW_STAGING_$*}/sky130_osu_sc_12t_ms.par
	rm -f ${QFLOW_STAGING_$*}/sky130_osu_sc_12t_hs.sh
	rm -f ${QFLOW_STAGING_$*}/sky130_osu_sc_12t_hs.par
	rm -f ${QFLOW_STAGING_$*}/sky130_osu_sc_15t_ls.sh
	rm -f ${QFLOW_STAGING_$*}/sky130_osu_sc_15t_ls.par
	rm -f ${QFLOW_STAGING_$*}/sky130_osu_sc_15t_ms.sh
	rm -f ${QFLOW_STAGING_$*}/sky130_osu_sc_15t_ms.par
	rm -f ${QFLOW_STAGING_$*}/sky130_osu_sc_15t_hs.sh
	rm -f ${QFLOW_STAGING_$*}/sky130_osu_sc_15t_hs.par
	rm -f ${QFLOW_STAGING_$*}/sky130_osu_sc_18t_ls.sh
	rm -f ${QFLOW_STAGING_$*}/sky130_osu_sc_18t_ls.par
	rm -f ${QFLOW_STAGING_$*}/sky130_osu_sc_18t_ms.sh
	rm -f ${QFLOW_STAGING_$*}/sky130_osu_sc_18t_ms.par
	rm -f ${QFLOW_STAGING_$*}/sky130_osu_sc_18t_hs.sh
	rm -f ${QFLOW_STAGING_$*}/sky130_osu_sc_18t_hs.par
	${CPP} ${SKY130$*_DEFS} -DLIBRARY=sky130_fd_sc_hd -DVOLTAGE=1v95 \
		qflow/${TECH}.sh ${QFLOW_STAGING_$*}/sky130_fd_sc_hd.sh
	${CPP} ${SKY130$*_DEFS} -DLIBRARY=sky130_fd_sc_hdll -DVOLTAGE=1v95 \
		qflow/${TECH}.sh ${QFLOW_STAGING_$*}/sky130_fd_sc_hdll.sh
	${CPP} ${SKY130$*_DEFS} -DLIBRARY=sky130_fd_sc_hvl -DVOLTAGE=4v95 \
		qflow/${TECH}.sh ${QFLOW_STAGING_$*}/sky130_fd_sc_hvl.sh
	${CPP} ${SKY130$*_DEFS} -DLIBRARY=sky130_fd_sc_hs -DVOLTAGE=1v95 \
		qflow/${TECH}.sh ${QFLOW_STAGING_$*}/sky130_fd_sc_hs.sh
	${CPP} ${SKY130$*_DEFS} -DLIBRARY=sky130_fd_sc_lp -DVOLTAGE=1v95 \
		qflow/${TECH}.sh ${QFLOW_STAGING_$*}/sky130_fd_sc_lp.sh
	${CPP} ${SKY130$*_DEFS} -DLIBRARY=sky130_fd_sc_ls -DVOLTAGE=1v95 \
		qflow/${TECH}.sh ${QFLOW_STAGING_$*}/sky130_fd_sc_ls.sh
	${CPP} ${SKY130$*_DEFS} -DLIBRARY=sky130_fd_sc_ms -DVOLTAGE=1v95 \
		qflow/${TECH}.sh ${QFLOW_STAGING_$*}/sky130_fd_sc_ms.sh
	${CPP} ${SKY130$*_DEFS} -DLIBRARY=sky130_osu_sc_12t_ls qflow/sky130osu.sh \
		${QFLOW_STAGING_$*}/sky130_osu_sc_12t_ls.sh
	${CPP} ${SKY130$*_DEFS} -DLIBRARY=sky130_osu_sc_12t_ms qflow/sky130osu.sh \
		${QFLOW_STAGING_$*}/sky130_osu_sc_12t_ms.sh
	${CPP} ${SKY130$*_DEFS} -DLIBRARY=sky130_osu_sc_12t_hs qflow/sky130osu.sh \
		${QFLOW_STAGING_$*}/sky130_osu_sc_12t_hs.sh
	${CPP} ${SKY130$*_DEFS} -DLIBRARY=sky130_osu_sc_15t_ls qflow/sky130osu.sh \
		${QFLOW_STAGING_$*}/sky130_osu_sc_15t_ls.sh
	${CPP} ${SKY130$*_DEFS} -DLIBRARY=sky130_osu_sc_15t_ms qflow/sky130osu.sh \
		${QFLOW_STAGING_$*}/sky130_osu_sc_15t_ms.sh
	${CPP} ${SKY130$*_DEFS} -DLIBRARY=sky130_osu_sc_15t_hs qflow/sky130osu.sh \
		${QFLOW_STAGING_$*}/sky130_osu_sc_15t_hs.sh
	${CPP} ${SKY130$*_DEFS} -DLIBRARY=sky130_osu_sc_18t_ls qflow/sky130osu.sh \
		${QFLOW_STAGING_$*}/sky130_osu_sc_18t_ls.sh
	${CPP} ${SKY130$*_DEFS} -DLIBRARY=sky130_osu_sc_18t_ms qflow/sky130osu.sh \
		${QFLOW_STAGING_$*}/sky130_osu_sc_18t_ms.sh
	${CPP} ${SKY130$*_DEFS} -DLIBRARY=sky130_osu_sc_18t_hs qflow/sky130osu.sh \
		${QFLOW_STAGING_$*}/sky130_osu_sc_18t_hs.sh
	${CPP} ${SKY130$*_DEFS} qflow/${TECH}.par ${QFLOW_STAGING_$*}/sky130_fd_sc_hd.par
	${CPP} ${SKY130$*_DEFS} qflow/${TECH}.par ${QFLOW_STAGING_$*}/sky130_fd_sc_hdll.par
	${CPP} ${SKY130$*_DEFS} qflow/${TECH}.par ${QFLOW_STAGING_$*}/sky130_fd_sc_hvl.par
	${CPP} ${SKY130$*_DEFS} qflow/${TECH}.par ${QFLOW_STAGING_$*}/sky130_fd_sc_hs.par
	${CPP} ${SKY130$*_DEFS} qflow/${TECH}.par ${QFLOW_STAGING_$*}/sky130_fd_sc_ms.par
	${CPP} ${SKY130$*_DEFS} qflow/${TECH}.par ${QFLOW_STAGING_$*}/sky130_fd_sc_lp.par
	${CPP} ${SKY130$*_DEFS} qflow/${TECH}.par ${QFLOW_STAGING_$*}/sky130_fd_sc_ls.par
	${CPP} ${SKY130$*_DEFS} qflow/${TECH}.par \
			${QFLOW_STAGING_$*}/sky130_osu_sc_12t_ls.par
	${CPP} ${SKY130$*_DEFS} qflow/${TECH}.par \
			${QFLOW_STAGING_$*}/sky130_osu_sc_12t_ms.par
	${CPP} ${SKY130$*_DEFS} qflow/${TECH}.par \
			${QFLOW_STAGING_$*}/sky130_osu_sc_12t_hs.par
	${CPP} ${SKY130$*_DEFS} qflow/${TECH}.par \
			${QFLOW_STAGING_$*}/sky130_osu_sc_15t_ls.par
	${CPP} ${SKY130$*_DEFS} qflow/${TECH}.par \
			${QFLOW_STAGING_$*}/sky130_osu_sc_15t_ms.par
	${CPP} ${SKY130$*_DEFS} qflow/${TECH}.par \
			${QFLOW_STAGING_$*}/sky130_osu_sc_15t_hs.par
	${CPP} ${SKY130$*_DEFS} qflow/${TECH}.par \
			${QFLOW_STAGING_$*}/sky130_osu_sc_18t_ls.par
	${CPP} ${SKY130$*_DEFS} qflow/${TECH}.par \
			${QFLOW_STAGING_$*}/sky130_osu_sc_18t_ms.par
	${CPP} ${SKY130$*_DEFS} qflow/${TECH}.par \
			${QFLOW_STAGING_$*}/sky130_osu_sc_18t_hs.par

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

irsim-%: irsim
	mkdir -p ${IRSIMTOP_STAGING_$*}
	mkdir -p ${IRSIM_STAGING_$*}
	rm -f ${IRSIM_STAGING_$*}/${SKY130$*}_*.prm
	for corner in ${IRSIM_CORNERS} ; do \
	    cat irsim/header.txt irsim/sky130_$$corner > \
		${IRSIM_STAGING_$*}/${SKY130$*}_$$corner ; \
	done

xcircuit-%: xcircuit/${TECH}.xcircuitrc
	rm -rf ${XCIRCUIT_STAGING_$*}
	mkdir -p ${XCIRCUITTOP_STAGING_$*}
	mkdir -p ${XCIRCUIT_STAGING_$*}
	rm -f ${XCIRCUIT_STAGING_$*}/*.lps
	rm -f ${XCIRCUIT_STAGING_$*}/${SKY130$*}.xcircuitrc
	${CPP} ${SKY130$*_DEFS} xcircuit/ngspice.lps ${XCIRCUIT_STAGING_$*}/ngspice.lps
	${CPP} ${SKY130$*_DEFS} xcircuit/sky130_fd_pr.lps \
		${XCIRCUIT_STAGING_$*}/sky130_fd_pr.lps
	${CPP} ${SKY130$*_DEFS} -DHD_SPICE=${HD_SPICE} -DSPIEXT=${SPIEXT} \
		xcircuit/sky130_fd_sc_hd.lps ${XCIRCUIT_STAGING_$*}/sky130_fd_sc_hd.lps
	${CPP} ${SKY130$*_DEFS} xcircuit/${TECH}.xcircuitrc \
		${XCIRCUIT_STAGING_$*}/${SKY130$*}.xcircuitrc

klayout-%: ${KLAYOUT_PATH}
	if test "x${KLAYOUT_PATH}" != "x" ; then \
		rm -rf ${KLAYOUT_STAGING_$*} ; \
		mkdir -p ${KLAYOUT_STAGING_$*} ; \
		mkdir -p ${KLAYOUT_STAGING_$*}/tech ; \
		mkdir -p ${KLAYOUT_STAGING_$*}/tech/xsect ; \
		mkdir -p ${KLAYOUT_STAGING_$*}/d25 ; \
		mkdir -p ${KLAYOUT_STAGING_$*}/drc ; \
		mkdir -p ${KLAYOUT_STAGING_$*}/lvs ; \
		mkdir -p ${KLAYOUT_STAGING_$*}/macros ; \
		mkdir -p ${KLAYOUT_STAGING_$*}/pymacros ; \
		mkdir -p ${KLAYOUT_STAGING_$*}/python ; \
	fi
	# Copy lvs and pymacro directories from the repository.  Other files
	# are rearranged to the preferred structure.  Do not recursively copy
	# the lvs/ directory, as the subdirectory testing/ is huge and
	# nonessential.
	# Additionally, replace "sky130.lyp" with the pdk variant.
	if test "x${KLAYOUT_PATH}" != "x" ; then \
		cp ${KLAYOUT_PATH}/tech/sky130/${TECH}.lyp ${KLAYOUT_STAGING_$*}/tech/${SKY130$*}.lyp ; \
		cp ${KLAYOUT_PATH}/tech/sky130/${TECH}.lyt ${KLAYOUT_STAGING_$*}/tech/${SKY130$*}.lyt ; \
		cp ${KLAYOUT_PATH}/tech/sky130/${TECH}.map ${KLAYOUT_STAGING_$*}/tech/${SKY130$*}.map ; \
		${SED} -i "s/sky130.lyp/${SKY130$*}.lyp/g" ${KLAYOUT_STAGING_$*}/tech/${SKY130$*}.lyt ; \
		cp -p ${KLAYOUT_PATH}/tech/sky130/d25/* ${KLAYOUT_STAGING_$*}/d25/ ; \
		cp -p ${KLAYOUT_PATH}/tech/sky130/lvs/* ${KLAYOUT_STAGING_$*}/lvs/ ; \
		cp -p ${KLAYOUT_PATH}/tech/sky130/macros/* ${KLAYOUT_STAGING_$*}/macros/ ; \
		cp -p ${KLAYOUT_PATH}/tech/sky130/pymacros/* ${KLAYOUT_STAGING_$*}/pymacros/ ; \
		cp -rp ${KLAYOUT_PATH}/tech/sky130/python/* ${KLAYOUT_STAGING_$*}/python/ ; \
		cp -p ${KLAYOUT_PATH}/tech/sky130/xsect/* ${KLAYOUT_STAGING_$*}/tech/xsect/ ; \
	fi
	# Copy original DRC deck from open_pdks (is this useful?)
	cp klayout/sky130.lydrc ${KLAYOUT_STAGING_$*}/drc/${SKY130$*}.lydrc
	# Copy drc directory contents from the Efabless Open MPW precheck repository
	if test "x${PRECHECK_PATH}" != "x" ; then \
		cp ${PRECHECK_PATH}/checks/tech-files/sky130A_mr.drc ${KLAYOUT_STAGING_$*}/drc/${SKY130$*}_mr.drc ; \
		cp -rp ${PRECHECK_PATH}/checks/drc_checks/klayout/* ${KLAYOUT_STAGING_$*}/drc/ ; \
	fi

xschem-%: ${XSCHEM_PATH}
	if test "x${XSCHEM_PATH}" != "x" ; then \
		rm -rf ${XSCHEM_STAGING_$*} ; \
		mkdir -p ${XSCHEMTOP_STAGING_$*} ; \
		mkdir -p ${XSCHEM_STAGING_$*} ; \
	fi
	# Copy the xschem repository (other than .git, if it exists)
	# then remove the larger of the two example directories 
	if test "x${XSCHEM_PATH}" != "x" ; then \
		cp -rp ${XSCHEM_PATH}/* ${XSCHEM_STAGING_$*} ; \
		chmod -R u+w ${XSCHEM_STAGING_$*}; \
		rm -rf ${XSCHEM_STAGING_$*}/decred_hash_macro ; \
	fi
	# xschem setup is for sky130A.  Fix for the given target variant.
	# Add custom additions to the startup file for open_pdk.
	if test "x${XSCHEM_PATH}" != "x" ; then \
		cat ${XSCHEM_PATH}/xschemrc | \
			${SED} -e "/sky130A/s#sky130A#TECHNAME#" \
			> ${XSCHEM_STAGING_$*}/xschemrc_source ; \
		${CPP} ${SKY130$*_DEFS} ${XSCHEM_STAGING_$*}/xschemrc_source \
			${XSCHEM_STAGING_$*}/xschemrc ; \
		cat ${XSCHEM_PATH}/xschem_verilog_import/xschemrc | \
			${SED} -e "/sky130A/s#sky130A#TECHNAME#" \
			> ${XSCHEM_STAGING_$*}/xschemrc_source ; \
		${CPP} ${SKY130$*_DEFS} ${XSCHEM_STAGING_$*}/xschemrc_source \
			${XSCHEM_STAGING_$*}/xschem_verilog_import/xschemrc ; \
		rm -f ${XSCHEM_STAGING_$*}/xschemrc_source ; \
		cat ./custom/xschem/xschemrc_append >> ${XSCHEM_STAGING_$*}/xschemrc ; \
	fi
	# In the sky130A variant, remove the reram schematic/symbol and references
	if test "x${XSCHEM_PATH}" != "x" ; then \
		if test "x$*" == "xA" ; then \
			rm -f  ${XSCHEM_STAGING_$*}/sky130_tests/test_reram* ; \
			rm -f  ${XSCHEM_STAGING_$*}/sky130_tests/tb_reram* ; \
			rm -f  ${XSCHEM_STAGING_$*}/sky130_fd_pr/reram* ; \
			cat ${XSCHEM_STAGING_$*}/sky130_tests/top.sch | \
				${SED} -e "/^C.*{.*reram.*}.*{.*[^}] *$$/,/.*} *$$/d" \
					-e "/^C.*{.*reram.*}.*{.*} *$$/d" \
				> ${XSCHEM_STAGING_$*}/temp ; \
			mv ${XSCHEM_STAGING_$*}/temp ${XSCHEM_STAGING_$*}/sky130_tests/top.sch ; \
		fi ; \
	fi

librelane-%: librelane/config.tcl librelane/sky130_fd_sc_hd/config.tcl librelane/sky130_fd_sc_hs/config.tcl librelane/sky130_fd_sc_ms/config.tcl librelane/sky130_fd_sc_ls/config.tcl librelane/sky130_fd_sc_hdll/config.tcl librelane/sky130_osu_sc_t18/config.tcl librelane/sky130_ef_io/config.tcl
	mkdir -p ${LIBRELANETOP_STAGING_$*}
	mkdir -p ${LIBRELANE_STAGING_$*}
	rm -rf ${LIBRELANE_STAGING_$*}/custom_cells/*
	mkdir -p ${LIBRELANE_STAGING_$*}/sky130_fd_sc_hd
	mkdir -p ${LIBRELANE_STAGING_$*}/sky130_fd_sc_hs
	mkdir -p ${LIBRELANE_STAGING_$*}/sky130_fd_sc_ls
	mkdir -p ${LIBRELANE_STAGING_$*}/sky130_fd_sc_ms
	mkdir -p ${LIBRELANE_STAGING_$*}/sky130_fd_sc_hdll
	mkdir -p ${LIBRELANE_STAGING_$*}/sky130_fd_sc_hvl
	mkdir -p ${LIBRELANE_STAGING_$*}/sky130_osu_sc_t18
	mkdir -p ${LIBRELANE_STAGING_$*}/sky130_ef_io
	rm -f ${LIBRELANE_STAGING_$*}/common_pdn.info
	rm -f ${LIBRELANE_STAGING_$*}/config.tcl
	for file in ${LIBRELANE_COMMON} ; do \
	    rm -f ${LIBRELANE_STAGING_$*}/sky130_fd_sc_hd/$$file ; \
	done
	for file in ${LIBRELANE_COMMON} ; do \
	    rm -f ${LIBRELANE_STAGING_$*}/sky130_fd_sc_hs/$$file ; \
	done
	for file in ${LIBRELANE_COMMON} ; do \
	    rm -f ${LIBRELANE_STAGING_$*}/sky130_fd_sc_hdll/$$file ; \
	done
	for file in ${LIBRELANE_COMMON} ; do \
	    rm -f ${LIBRELANE_STAGING_$*}/sky130_fd_sc_ls/$$file ; \
	done
	for file in ${LIBRELANE_COMMON} ; do \
	    rm -f ${LIBRELANE_STAGING_$*}/sky130_fd_sc_ms/$$file ; \
	done
	for file in ${LIBRELANE_COMMON} ; do \
	    rm -f ${LIBRELANE_STAGING_$*}/sky130_fd_sc_hvl/$$file ; \
	done
	for file in ${LIBRELANE_COMMON} ; do \
	    rm -f ${LIBRELANE_STAGING_$*}/sky130_osu_sc_t18/$$file ; \
	done
	for file in ${LIBRELANE_COMMON} ; do \
	    rm -f ${LIBRELANE_STAGING_$*}/sky130_ef_io/$$file ; \
	done

	rm -f ${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.min.magic
	rm -f ${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.nom.magic
	rm -f ${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.max.magic

	rm -f ${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.min.spef_extractor
	rm -f ${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.nom.spef_extractor
	rm -f ${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.max.spef_extractor

	rm -f ${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.min.calibre
	rm -f ${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.nom.calibre
	rm -f ${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.max.calibre

	cp -r librelane/custom_cells ${LIBRELANE_STAGING_$*}
	cp -r librelane/cvc ${LIBRELANE_STAGING_$*}
	${CPP} ${SKY130$*_DEFS} librelane/config.tcl ${LIBRELANE_STAGING_$*}/config.tcl

	${CPP} ${SKY130$*_DEFS} librelane/rules.openrcx.sky130$*.min.magic \
		${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.min.magic
	${CPP} ${SKY130$*_DEFS} librelane/rules.openrcx.sky130$*.nom.magic \
		${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.nom.magic
	${CPP} ${SKY130$*_DEFS} librelane/rules.openrcx.sky130$*.max.magic \
		${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.max.magic

	${CPP} ${SKY130$*_DEFS} librelane/rules.openrcx.sky130$*.min.spef_extractor \
		${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.min.spef_extractor
	${CPP} ${SKY130$*_DEFS} librelane/rules.openrcx.sky130$*.nom.spef_extractor \
		${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.nom.spef_extractor
	${CPP} ${SKY130$*_DEFS} librelane/rules.openrcx.sky130$*.max.spef_extractor \
		${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.max.spef_extractor

	# Only install the calibre-derived rule files if they exist in the source
	if test -f librelane/rules.openrcx.sky130$*.min.calibre ; then \
		${CPP} ${SKY130$*_DEFS} librelane/rules.openrcx.sky130$*.min.calibre \
			${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.min.calibre ;\
	fi
	if test -f librelane/rules.openrcx.sky130$*.nom.calibre ; then \
		${CPP} ${SKY130$*_DEFS} librelane/rules.openrcx.sky130$*.nom.calibre \
			${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.nom.calibre ;\
	fi
	if test -f librelane/rules.openrcx.sky130$*.max.calibre ; then \
		${CPP} ${SKY130$*_DEFS} librelane/rules.openrcx.sky130$*.max.calibre \
			${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.max.calibre ;\
	fi

	for file in ${LIBRELANE_COMMON} ; do \
	    ${CPP} -quiet ${SKY130$*_DEFS} librelane/sky130_fd_sc_hd/$$file \
		${LIBRELANE_STAGING_$*}/sky130_fd_sc_hd/$$file ; \
	done
	for file in ${LIBRELANE_COMMON} ; do \
	    ${CPP} -quiet ${SKY130$*_DEFS} librelane/sky130_fd_sc_hs/$$file \
		${LIBRELANE_STAGING_$*}/sky130_fd_sc_hs/$$file ; \
	done
	for file in ${LIBRELANE_COMMON} ; do \
	    ${CPP} -quiet ${SKY130$*_DEFS} librelane/sky130_fd_sc_ms/$$file \
		${LIBRELANE_STAGING_$*}/sky130_fd_sc_ms/$$file ; \
	done
	for file in ${LIBRELANE_COMMON} ; do \
	    ${CPP} -quiet ${SKY130$*_DEFS} librelane/sky130_fd_sc_ls/$$file \
		${LIBRELANE_STAGING_$*}/sky130_fd_sc_ls/$$file ; \
	done
	for file in ${LIBRELANE_COMMON} ; do \
	    ${CPP} -quiet ${SKY130$*_DEFS} librelane/sky130_fd_sc_hdll/$$file \
		${LIBRELANE_STAGING_$*}/sky130_fd_sc_hdll/$$file ; \
	done
	for file in ${LIBRELANE_COMMON} ; do \
	    ${CPP} -quiet ${SKY130$*_DEFS} librelane/sky130_fd_sc_hvl/$$file \
		${LIBRELANE_STAGING_$*}/sky130_fd_sc_hvl/$$file ; \
	done

	${CPP} -quiet ${SKY130$*_DEFS} librelane/sky130_osu_sc_t18/config.tcl \
		${LIBRELANE_STAGING_$*}/sky130_osu_sc_t18/config.tcl
	${CPP} -quiet ${SKY130$*_DEFS} librelane/sky130_osu_sc_t18/tracks.info \
		${LIBRELANE_STAGING_$*}/sky130_osu_sc_t18/tracks.info

	${CPP} -quiet ${SKY130$*_DEFS} librelane/sky130_ef_io/config.tcl \
		${LIBRELANE_STAGING_$*}/sky130_ef_io/config.tcl

# NOTE: ReRAM is not in variant A so there is no reram-build-A.
vendor-A: primitive-build-A io-build-A sram-build-A sram-space-build-A digital-hd-build-A digital-hvl-build-A digital-hdll-build-A digital-lp-build-A digital-hs-build-A digital-ms-build-A digital-ls-build-A alpha-build-A osu-t12-build-A osu-t15-build-A osu-t18-build-A

vendor-B: primitive-build-B io-build-B sram-build-B sram-space-build-B reram-build-B digital-hd-build-B digital-hvl-build-B digital-hdll-build-B digital-lp-build-B digital-hs-build-B digital-ms-build-B digital-ls-build-B alpha-build-B osu-t12-build-B osu-t15-build-B osu-t18-build-B

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

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

digital-hd-build-%:
	if test "x${SKY130_SC_HD_PATH}" != "x" ; then \
		if test -d ${SKY130_SC_HD_PATH} ; then \
			echo "Building digital high-density standard cell library" ; \
			make digital-hd-$* ; \
		fi ; \
	fi

digital-hvl-build-%:
	if test "x${SKY130_SC_HVL_PATH}" != "x" ; then \
		if test -d ${SKY130_SC_HVL_PATH} ; then \
			echo "Building digital high-voltage standard cell library" ; \
			make digital-hvl-$* ; \
		fi ; \
	fi

digital-hdll-build-%:
	if test "x${SKY130_SC_HDLL_PATH}" != "x" ; then \
		if test -d ${SKY130_SC_HDLL_PATH} ; then \
			echo "Building digital high-density low-leakage standard cell library" ; \
			make digital-hdll-$* ; \
		fi ; \
	fi

digital-lp-build-%:
	if test "x${SKY130_SC_LP_PATH}" != "x" ; then \
		if test -d ${SKY130_SC_LP_PATH} ; then \
			echo "Building digital low-power standard cell library" ; \
			make digital-lp-$* ; \
		fi ; \
	fi

digital-hs-build-%:
	if test "x${SKY130_SC_HS_PATH}" != "x" ; then \
		if test -d ${SKY130_SC_HS_PATH} ; then \
			echo "Building digital high-speed standard cell library" ; \
			make digital-hs-$* ; \
		fi ; \
	fi

digital-ms-build-%:
	if test "x${SKY130_SC_MS_PATH}" != "x" ; then \
		if test -d ${SKY130_SC_MS_PATH} ; then \
			echo "Building digital medium-speed standard cell library" ; \
			make digital-ms-$* ; \
		fi ; \
	fi

digital-ls-build-%:
	if test "x${SKY130_SC_LS_PATH}" != "x" ; then \
		if test -d ${SKY130_SC_LS_PATH} ; then \
			echo "Building digital low-speed standard cell library" ; \
			make digital-ls-$* ; \
		fi ; \
	fi

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

sram-build-%:
	if test "x${SRAM_PATH}" != "x" ; then \
		echo "Building SRAM macro library" ; \
		make sram-$* ; \
	fi

sram-space-build-%:
	if test "x${SRAM_SPACE_PATH}" != "x" ; then \
		echo "Building SRAM build-space library" ; \
		make sram-space-$* ; \
	fi

reram-build-%:
	if test "x${RERAM_PATH}" != "x" ; then \
		echo "Building RERAM library" ; \
		make reram-$* ; \
	fi

osu-t12-build-%:
	if test "x${OSU_T12_PATH}" != "x" ; then \
		echo "Building OSU 12-track-high standard cell library" ; \
		make osu-t12-$* ; \
	fi

osu-t15-build-%:
	if test "x${OSU_T15_PATH}" != "x" ; then \
		echo "Building OSU 15-track-high standard cell library" ;\
		make osu-t15-$* ;\
	fi

osu-t18-build-%:
	if test "x${OSU_T18_PATH}" != "x" ; then \
		echo "Building OSU 18-track-high standard cell library" ; \
		make osu-t18-$* ; \
	fi

primitive-%:
	# Install device subcircuits from vendor files
	${STAGE} -source ${SKY130_PR_PATH} -target ${STAGING_PATH}/${SKY130$*} \
		-ngspice models/* \
		filter=custom/scripts/rename_models.py \
		-combined combined_models/* \
		filter=custom/scripts/rename_models.py \
		2>&1 | tee -a ${SKY130$*}_make.log
	# Install base device library from vendor files.
	${STAGE} -source ${SKY130_PR_PATH} -target ${STAGING_PATH}/${SKY130$*} \
		-gds cells/*/*.gds compile-only \
			options=custom/scripts/gds_import_setup.tcl \
		-lef cells/*/*.magic.lef compile-only \
		-spice cells/*/*.spice filter=custom/scripts/rename_cells.py \
		-library primitive sky130_fd_pr 2>&1 | tee -a ${SKY130$*}_make.log

	# Run the add_properties.py script to add extraction information to layout
	# cells for which the intended device cannot be extracted.
	./custom/scripts/add_properties.py -std_format -variant=${SKY130$*} \
		2>&1 | tee -a ${SKY130$*}_make.log || true

io-%:
	# Install custom additions to I/O pad library
	${STAGE} -source ./custom -target ${STAGING_PATH}/${SKY130$*} \
		-verilog %l/verilog/*.v compile-only rename=sky130_ef_io \
		-cdl %l/cdl/*.cdl \
		-spice %l/spice/*.spice \
		-lib %l/lib/*.lib \
		-gds %l/gds/*.gds options=custom/scripts/gds_import_io.tcl \
		-lef %l/lef/*.lef exclude=sky130_fd_io__top_xres4v2.lef,sky130_fd_io__top_power_hvc_wpadv2.lef,sky130_fd_io__top_gpiov2.lef \
			compile-only rename=sky130_ef_io \
		-lef %l/lef/sky130_fd_io__top_*.lef \
		-library general sky130_fd_io 2>&1 | tee -a ${SKY130$*}_make.log

	# Install SkyWater I/O pad library
	${STAGE} -source ${SKY130_IO_PATH} -target ${STAGING_PATH}/${SKY130$*} \
		-cdl cells/*/*.cdl ignore=topography compile-only \
			include=custom/sky130_fd_io/cdl/*.cdl \
			sort=../common/sort_pdkfiles.py \
		-lef cells/*/*.lef annotate lefopts=-hide compile-only \
			filter=custom/scripts/fix_io_lef.py \
			no-copy=sky130_fd_io__top_xres4v2.lef,sky130_fd_io__top_gpiov2.lef \
			include=sky130_fd_io__top_xres4v2.lef,sky130_fd_io__top_power_hvc_wpadv2.lef,sky130_fd_io__top_gpiov2.lef \
			exclude=*.magic.lef,sky130_ef_io.lef \
			sort=../common/sort_pdkfiles.py \
		-doc cells/*/*.pdf \
		-lib timing/*.lib \
		-spice netlist/*.spice \
		-gds cells/*/*.gds compile-only \
			sort=../common/sort_pdkfiles.py \
			options=custom/scripts/gds_import_io.tcl \
		-verilog cells/*/*.blackbox.v compile-only exclude=sky130_ef_io.v \
			rename=sky130_fd_io__blackbox.v \
			sort=../common/sort_pdkfiles.py \
		-verilog cells/*/*.blackbox.pp.v \
			exclude=sky130_ef_io.v,sky130_fd_io__blackbox.v \
			compile-only rename=sky130_fd_io__blackbox_pp.v \
			sort=../common/sort_pdkfiles.py \
		-verilog cells/*/*.*.v remove \
		-verilog cells/*/*.v \
			exclude=*.*.v,sky130_ef_io.v,sky130_fd_io__blackbox.v,sky130_fd_io__blackbox_pp.v \
			compile-only filter=custom/scripts/inc_verilog.py \
			sort=../common/sort_pdkfiles.py \
		-library general sky130_fd_io 2>&1 | tee -a ${SKY130$*}_make.log
	# Add a maskhint set for the GPIO pad .mag view to prevent problems writing
	# when writing HVI to GDS during hierarchical adjustments.
	${ADDPROP} ${STAGING_PATH}/${SKY130$*} sky130_fd_io sky130_fd_io__top_gpiov2 \
		"MASKHINTS_HVI 1346 17198 5828 19224 13700 1890 15920 2360 24 17522 1778 20612" -mag

digital-hd-%:
	# Install custom additions to standard cell libraries
	${STAGE} -source ./custom -target ${STAGING_PATH}/${SKY130$*} \
		-gds %l/gds/*.gds options=custom/scripts/gds_import_sc.tcl \
		-lef %l/lef/*.lef compile-only rename=sky130_ef_sc_hd.lef \
		-verilog %l/verilog/*.v \
		-library digital sky130_fd_sc_hd 2>&1 | tee -a ${SKY130$*}_make.log
	# Install all SkyWater digital standard cells.
	${STAGE} -source ${SKY130_SC_HD_PATH} -target ${STAGING_PATH}/${SKY130$*} \
		-techlef tech/*.tlef \
		-spice cells/*/*.spice compile-only \
			sort=../common/sort_pdkfiles.py \
		-cdl cells/*/*.cdl ignore=topography compile-only \
			sort=../common/sort_pdkfiles.py \
		-lef cells/*/*.lef \
			exclude=*.magic.lef,sky130_ef_sc_hd.lef lefopts=-toplayer \
			annotate compile-only \
			sort=../common/sort_pdkfiles.py \
		-doc cells/*/*.pdf \
		-lib timing/*.lib.part* collate \
		-lib timing/*.lib \
		-gds cells/*/*.gds compile-only \
			include=custom/sky130_fd_sc_hd/gds/sky130_ef*.gds \
			options=custom/scripts/gds_import_sc.tcl \
			sort=../common/sort_pdkfiles.py \
		-verilog models/*/*.v compile-only \
			exclude=*.*.v \
			rename=primitives filter=custom/scripts/inc_verilog.py \
			sort=../common/sort_pdkfiles.py \
		-verilog cells/*/*.blackbox.v compile-only \
			exclude=primitives.v \
			rename=sky130_fd_sc_hd__blackbox.v \
			sort=../common/sort_pdkfiles.py \
		-verilog cells/*/*.blackbox.pp.v compile-only \
			exclude=primitives.v,sky130_fd_sc_hd__blackbox.v \
			rename=sky130_fd_sc_hd__blackbox_pp.v \
			sort=../common/sort_pdkfiles.py \
		-verilog cells/*/*.*.v remove \
		-verilog cells/*/*.v compile-only \
			exclude=*.*.v,primitives.v,sky130_fd_sc_hd__blackbox.v,sky130_fd_sc_hd__blackbox_pp.v \
			include=custom/sky130_fd_sc_hd/verilog/*.v \
			filter=custom/scripts/inc_verilog.py \
			sort=../common/sort_pdkfiles.py \
		-library digital sky130_fd_sc_hd 2>&1 | tee -a ${SKY130$*}_make.log
	# Add a maskhint set for the tap cell .mag view to prevent problems writing
	# when writing NSDM and PSDM to GDS during hierarchical adjustments.
	${ADDPROP} ${STAGING_PATH}/${SKY130$*} sky130_fd_sc_hd \
		sky130_fd_sc_hd__tapvpwrvgnd_1 \
		"MASKHINTS_PSDM 0 38 92 195" -mag
	${ADDPROP} ${STAGING_PATH}/${SKY130$*} sky130_fd_sc_hd \
		sky130_fd_sc_hd__tapvpwrvgnd_1 \
		"MASKHINTS_NSDM 0 279 92 506" -mag
	# Quick solution to extraction issue---connect VNB label pwell to rest
	${ADDLAYER} ${STAGING_PATH}/${SKY130$*} sky130_fd_sc_hd \
		sky130_fd_sc_hd__a21bo_1 \
		pwell "29 17 69 157" -mag

digital-hdll-%:
	# Install all SkyWater digital standard cells.
	${STAGE} -source ${SKY130_SC_HDLL_PATH} -target ${STAGING_PATH}/${SKY130$*} \
		-techlef tech/*.tlef \
		-spice cells/*/*.spice compile-only \
			sort=../common/sort_pdkfiles.py \
		-cdl cells/*/*.cdl ignore=topography compile-only \
			sort=../common/sort_pdkfiles.py \
		-lef cells/*/*.lef annotate compile-only \
			exclude=*.magic.lef lefopts=-toplayer \
			sort=../common/sort_pdkfiles.py \
		-doc cells/*/*.pdf \
		-lib timing/*.lib.part* collate \
		-lib timing/*.lib \
		-gds cells/*/*.gds compile-only \
			options=custom/scripts/gds_import_sc.tcl \
			sort=../common/sort_pdkfiles.py \
		-verilog models/*/*.v exclude=*.*.v compile-only \
			rename=primitives filter=custom/scripts/inc_verilog.py \
			sort=../common/sort_pdkfiles.py \
		-verilog cells/*/*.blackbox.v compile-only \
			exclude=primitives.v \
			rename=sky130_fd_sc_hdll__blackbox.v \
			sort=../common/sort_pdkfiles.py \
		-verilog cells/*/*.blackbox.pp.v compile-only \
			exclude=primitives.v,sky130_fd_sc_hdll__blackbox.v \
			rename=sky130_fd_sc_hdll__blackbox_pp.v \
			sort=../common/sort_pdkfiles.py \
		-verilog cells/*/*.*.v remove \
		-verilog cells/*/*.v compile-only \
			exclude=*.*.v,primitives.v,sky130_fd_sc_hdll__blackbox.v,sky130_fd_sc_hdll__blackbox_pp.v \
			filter=custom/scripts/inc_verilog.py \
			sort=../common/sort_pdkfiles.py \
		-library digital sky130_fd_sc_hdll 2>&1 | tee -a ${SKY130$*}_make.log

digital-hvl-%:
	${STAGE} -source ./custom -target ${STAGING_PATH}/${SKY130$*} \
		-gds %l/gds/*.gds options=custom/scripts/gds_import_sc.tcl \
		-library digital sky130_fd_sc_hvl 2>&1 | tee -a ${SKY130$*}_make.log
	# Install all SkyWater digital standard cells.
	${STAGE} -source ${SKY130_SC_HVL_PATH} -target ${STAGING_PATH}/${SKY130$*} \
		-techlef tech/*.tlef \
		-spice cells/*/*.spice compile-only \
			sort=../common/sort_pdkfiles.py \
		-cdl cells/*/*.cdl ignore=topography compile-only \
			sort=../common/sort_pdkfiles.py \
		-lef cells/*/*.lef annotate compile-only \
			exclude=*.magic.lef lefopts=-toplayer \
			sort=../common/sort_pdkfiles.py \
		-doc cells/*/*.pdf \
		-lib timing/*.lib \
		-gds cells/*/*.gds compile-only \
			include=custom/sky130_fd_sc_hvl/gds/sky130_ef*.gds \
			options=custom/scripts/gds_import_sc.tcl \
			sort=../common/sort_pdkfiles.py \
		-verilog models/*/*.v exclude=*.*.v compile-only \
			rename=primitives filter=custom/scripts/inc_verilog.py \
			sort=../common/sort_pdkfiles.py \
		-verilog cells/*/*.blackbox.v compile-only \
			exclude=primitives.v \
			rename=sky130_fd_sc_hvl__blackbox.v \
			sort=../common/sort_pdkfiles.py \
		-verilog cells/*/*.blackbox.pp.v compile-only \
			exclude=primitives.v,sky130_fd_sc_hvl__blackbox.v \
			rename=sky130_fd_sc_hvl__blackbox_pp.v \
			sort=../common/sort_pdkfiles.py \
		-verilog cells/*/*.*.v remove \
		-verilog cells/*/*.v compile-only \
			exclude=*.*.v,primitives.v,sky130_fd_sc_hvl__blackbox.v,sky130_fd_sc_hvl__blackbox_pp.v \
			filter=custom/scripts/inc_verilog.py \
			sort=../common/sort_pdkfiles.py \
		-library digital sky130_fd_sc_hvl 2>&1 | tee -a ${SKY130$*}_make.log
	# Add a maskhint to the HVL level shifter to represent the HVI layer as
	# drawn in the GDS, and so eliminate the HVI-to-nwell DRC error.
	${ADDPROP} ${STAGING_PATH}/${SKY130$*} sky130_fd_sc_hvl sky130_fd_sc_hvl__lsbufhv2lv_1 \
		"MASKHINTS_HVI 22 34 706 1316" -mag

digital-lp-%:
	# Install all SkyWater digital standard cells.
	${STAGE} -source ${SKY130_SC_LP_PATH} -target ${STAGING_PATH}/${SKY130$*} \
		-techlef tech/*.tlef \
		-spice cells/*/*.spice compile-only \
			sort=../common/sort_pdkfiles.py \
		-cdl cells/*/*.cdl ignore=topography compile-only \
			sort=../common/sort_pdkfiles.py \
		-lef cells/*/*.lef annotate compile-only \
			exclude=*.magic.lef lefopts=-toplayer \
			sort=../common/sort_pdkfiles.py \
		-doc cells/*/*.pdf \
		-lib timing/*.lib.part* collate \
		-lib timing/*.lib \
		-gds cells/*/*.gds compile-only \
			options=custom/scripts/gds_import_sc.tcl \
			sort=../common/sort_pdkfiles.py \
		-verilog models/*/*.v exclude=*.*.v compile-only \
			rename=primitives filter=custom/scripts/inc_verilog.py \
			sort=../common/sort_pdkfiles.py \
		-verilog cells/*/*.blackbox.v compile-only \
			exclude=primitives.v \
			rename=sky130_fd_sc_lp__blackbox.v \
			sort=../common/sort_pdkfiles.py \
		-verilog cells/*/*.blackbox.pp.v compile-only \
			exclude=primitives.v,sky130_fd_sc_lp__blackbox.v \
			rename=sky130_fd_sc_lp__blackbox_pp.v \
			sort=../common/sort_pdkfiles.py \
		-verilog cells/*/*.*.v remove \
		-verilog cells/*/*.v compile-only \
			exclude=*.*.v,primitives.v,sky130_fd_sc_lp__blackbox.v,sky130_fd_sc_lp__blackbox_pp.v \
			filter=custom/scripts/inc_verilog.py \
			sort=../common/sort_pdkfiles.py \
		-library digital sky130_fd_sc_lp 2>&1 | tee -a ${SKY130$*}_make.log

digital-hs-%:
	# Install all SkyWater digital standard cells.
	${STAGE} -source ${SKY130_SC_HS_PATH} -target ${STAGING_PATH}/${SKY130$*} \
		-techlef tech/*.tlef \
		-spice cells/*/*.spice compile-only \
			sort=../common/sort_pdkfiles.py \
		-cdl cells/*/*.cdl ignore=topography compile-only \
			sort=../common/sort_pdkfiles.py \
		-lef cells/*/*.lef annotate compile-only \
			exclude=*.magic.lef lefopts=-toplayer \
			sort=../common/sort_pdkfiles.py \
		-doc cells/*/*.pdf \
		-lib timing/*.lib.part* collate \
		-lib timing/*.lib \
		-gds cells/*/*.gds compile-only \
			options=custom/scripts/gds_import_sc.tcl \
			sort=../common/sort_pdkfiles.py \
		-verilog models/*/*.v exclude=*.*.v compile-only \
			rename=primitives filter=custom/scripts/inc_verilog.py \
			sort=../common/sort_pdkfiles.py \
		-verilog cells/*/*.blackbox.v compile-only \
			exclude=primitives.v \
			rename=sky130_fd_sc_hs__blackbox.v \
			sort=../common/sort_pdkfiles.py \
		-verilog cells/*/*.blackbox.pp.v compile-only \
			exclude=primitives.v,sky130_fd_sc_hs__blackbox.v \
			rename=sky130_fd_sc_hs__blackbox_pp.v \
			sort=../common/sort_pdkfiles.py \
		-verilog cells/*/*.*.v remove \
		-verilog cells/*/*.v compile-only \
			exclude=*.*.v,primitives.v,sky130_fd_sc_hs__blackbox.v,sky130_fd_sc_hs__blackbox_pp.v \
			filter=custom/scripts/inc_verilog.py \
			sort=../common/sort_pdkfiles.py \
		-library digital sky130_fd_sc_hs 2>&1 | tee -a ${SKY130$*}_make.log

digital-ms-%:
	# Install all SkyWater digital standard cells.
	${STAGE} -source ${SKY130_SC_MS_PATH} -target ${STAGING_PATH}/${SKY130$*} \
		-techlef tech/*.tlef \
		-spice cells/*/*.spice compile-only \
			sort=../common/sort_pdkfiles.py \
		-cdl cells/*/*.cdl ignore=topography compile-only \
			sort=../common/sort_pdkfiles.py \
		-lef cells/*/*.lef annotate compile-only \
			exclude=*.magic.lef lefopts=-toplayer \
			sort=../common/sort_pdkfiles.py \
		-doc cells/*/*.pdf \
		-lib timing/*.lib.part* collate \
		-lib timing/*.lib \
		-gds cells/*/*.gds compile-only \
			options=custom/scripts/gds_import_sc.tcl \
			sort=../common/sort_pdkfiles.py \
		-verilog models/*/*.v exclude=*.*.v compile-only \
			rename=primitives filter=custom/scripts/inc_verilog.py \
			sort=../common/sort_pdkfiles.py \
		-verilog cells/*/*.blackbox.v compile-only \
			exclude=primitives.v \
			rename=sky130_fd_sc_ms__blackbox.v \
			sort=../common/sort_pdkfiles.py \
		-verilog cells/*/*.blackbox.pp.v compile-only \
			exclude=primitives.v,sky130_fd_sc_ms__blackbox.v \
			rename=sky130_fd_sc_ms__blackbox_pp.v \
			sort=../common/sort_pdkfiles.py \
		-verilog cells/*/*.*.v remove \
		-verilog cells/*/*.v compile-only \
			exclude=*.*.v,primitives.v,sky130_fd_sc_ms__blackbox.v,sky130_fd_sc_ms__blackbox_pp.v \
			filter=custom/scripts/inc_verilog.py \
			sort=../common/sort_pdkfiles.py \
		-library digital sky130_fd_sc_ms 2>&1 | tee -a ${SKY130$*}_make.log

digital-ls-%:
	# Install all SkyWater digital standard cells.
	${STAGE} -source ${SKY130_SC_LS_PATH} -target ${STAGING_PATH}/${SKY130$*} \
		-techlef tech/*.tlef \
		-spice cells/*/*.spice compile-only \
			sort=../common/sort_pdkfiles.py \
		-cdl cells/*/*.cdl ignore=topography compile-only \
			sort=../common/sort_pdkfiles.py \
		-lef cells/*/*.lef annotate compile-only \
			exclude=*.magic.lef lefopts=-toplayer \
			sort=../common/sort_pdkfiles.py \
		-doc cells/*/*.pdf \
		-lib timing/*.lib.part* collate \
		-lib timing/*.lib \
		-gds cells/*/*.gds compile-only \
			options=custom/scripts/gds_import_sc.tcl \
			sort=../common/sort_pdkfiles.py \
		-verilog models/*/*.v exclude=*.*.v compile-only \
			rename=primitives filter=custom/scripts/inc_verilog.py \
			sort=../common/sort_pdkfiles.py \
		-verilog cells/*/*.blackbox.v compile-only \
			exclude=primitives.v \
			rename=sky130_fd_sc_ls__blackbox.v \
			sort=../common/sort_pdkfiles.py \
		-verilog cells/*/*.blackbox.pp.v compile-only \
			exclude=primitives.v,sky130_fd_sc_ls__blackbox.v \
			rename=sky130_fd_sc_ls__blackbox_pp.v \
			sort=../common/sort_pdkfiles.py \
		-verilog cells/*/*.*.v remove \
		-verilog cells/*/*.v compile-only \
			exclude=*.*.v,primitives.v,sky130_fd_sc_ls__blackbox.v,sky130_fd_sc_ls__blackbox_pp.v \
			filter=custom/scripts/inc_verilog.py \
			sort=../common/sort_pdkfiles.py \
		-library digital sky130_fd_sc_ls 2>&1 | tee -a ${SKY130$*}_make.log

alpha-%:
	# Install alphanumeric library.
	${STAGE} -source ${ALPHA_PATH}/.. -target ${STAGING_PATH}/${SKY130$*} \
		-mag %l/mag/*.mag filter=custom/scripts/text2m5.py \
		-library general sky130_ml_xx_hd 2>&1 | tee -a ${SKY130$*}_make.log
	# Install text2mag.py script for alphanumeric library
	mkdir -p ${STAGING_PATH}/${SKY130$*}/libs.ref/${MLXX_SCRIPTS}
	cp custom/scripts/text2mag.py \
		${STAGING_PATH}/${SKY130$*}/libs.ref/${MLXX_SCRIPTS}

sram-%:
	# Install SRAM library.  NOTE:  SRAM macros share some of the same
	# cell names, so use special option script gds_import_sram.tcl
	# To do:  Add option to process each GDS file individually in magic,
	# instead of all at once.
	${STAGE} -source ${SRAM_PATH}/.. -target ${STAGING_PATH}/${SKY130$*} \
		-lef %l/*/*.lef \
		-lib %l/*/*.lib \
		-gds %l/*/*.gds options=custom/scripts/gds_import_sram.tcl \
		-spice %l/*/*.lvs.sp filter=custom/scripts/sp_to_spice.py \
		-verilog %l/*/*.v \
		-library general sky130_sram_macros 2>&1 | tee -a ${SKY130$*}_make.log

sram-space-%:
	# Install custom additions to SRAM space
	${STAGE} -source ./custom -target ${STAGING_PATH}/${SKY130$*} \
		-gds sky130_fd_bd_sram/*.gds \
			options=custom/scripts/gds_import_setup.tcl \
		-library general sky130_fd_bd_sram 2>&1 | tee -a ${SKY130$*}_make.log
	# Install SRAM build-space library.
	${STAGE} -source ${SRAM_SPACE_PATH}/.. -target ${STAGING_PATH}/${SKY130$*} \
		-gds %l/cells/*/*.gds compile-only \
			no-copy=custom/sky130_fd_bd_sram/*.gds \
			include=custom/sky130_fd_bd_sram/*.gds \
		-lef %l/cells/*/*.lef compile-only \
		-spice %l/cells/*/*.lvs.calibre.spice compile-only \
		-library general sky130_fd_bd_sram 2>&1 | tee -a ${SKY130$*}_make.log

reram-%:
	# Install RERAM library.
	${STAGE} -source ${RERAM_PATH}/.. -target ${STAGING_PATH}/${SKY130$*} \
		-gds %l/cells/*/*.gds \
		-spice %l/cells/*/*.spice \
		-verilog %l/cells/*/*.va \
		-library general sky130_fd_pr_reram 2>&1 | tee -a ${SKY130$*}_make.log
	${ADDPROP} ${STAGING_PATH}/${SKY130$*} sky130_fd_pr_reram \
		sky130_fd_pr_reram__reram_cell "device primitive"

osu-t12-%:
	# Install OSU T12 hs digital standard cells.
	${STAGE} -source ${OSU_T12_PATH} -target ${STAGING_PATH}/${SKY130$*} \
		-techlef sky130_osu_sc_12T.tlef rename=sky130_osu_sc_12t_hs.tlef \
		-spice 12T_hs/cdl/*.spice compile-only exclude=*.*.spice \
		-lef 12T_hs/lef/*.lef \
		-lib 12T_hs/lib/*.lib \
		-gds 12T_hs/gds/*.gds compile-only \
			options=custom/scripts/gds_import_sc.tcl \
		-library digital sky130_osu_sc_12t_hs 2>&1 | tee -a ${SKY130$*}_make.log
	# Install OSU T12 ms digital standard cells.
	${STAGE} -source ${OSU_T12_PATH} -target ${STAGING_PATH}/${SKY130$*} \
		-techlef sky130_osu_sc_12T.tlef rename=sky130_osu_sc_12t_ms.tlef \
		-spice 12T_ms/cdl/*.spice compile-only exclude=*.*.spice \
		-lef 12T_ms/lef/*.lef \
		-lib 12T_ms/lib/*.lib \
		-gds 12T_ms/gds/*.gds compile-only \
			options=custom/scripts/gds_import_sc.tcl \
		-library digital sky130_osu_sc_12t_ms 2>&1 | tee -a ${SKY130$*}_make.log
	# Install OSU T12 ls digital standard cells.
	${STAGE} -source ${OSU_T12_PATH} -target ${STAGING_PATH}/${SKY130$*} \
		-techlef sky130_osu_sc_12T.tlef rename=sky130_osu_sc_12t_ls.tlef \
		-spice 12T_ls/cdl/*.spice compile-only exclude=*.*.spice \
		-lef 12T_ls/lef/*.lef \
		-lib 12T_ls/lib/*.lib \
		-gds 12T_ls/gds/*.gds compile-only \
			options=custom/scripts/gds_import_sc.tcl \
		-library digital sky130_osu_sc_12t_ls 2>&1 | tee -a ${SKY130$*}_make.log

osu-t15-%:
	# Install OSU T15 hs digital standard cells.
	${STAGE} -source ${OSU_T15_PATH} -target ${STAGING_PATH}/${SKY130$*} \
		-techlef sky130_osu_sc_15T.tlef rename=sky130_osu_sc_15t_hs.tlef \
		-spice 15T_hs/cdl/*.spice compile-only exclude=*.*.spice \
		-lef 15T_hs/lef/*.lef \
		-lib 15T_hs/lib/*.lib \
		-gds 15T_hs/gds/*.gds compile-only \
			options=custom/scripts/gds_import_sc.tcl \
		-library digital sky130_osu_sc_15t_hs 2>&1 | tee -a ${SKY130$*}_make.log
	# Install OSU T15 ms digital standard cells.
	${STAGE} -source ${OSU_T15_PATH} -target ${STAGING_PATH}/${SKY130$*} \
		-techlef sky130_osu_sc_15T.tlef rename=sky130_osu_sc_15t_ms.tlef \
		-spice 15T_ms/cdl/*.spice compile-only exclude=*.*.spice \
		-lef 15T_ms/lef/*.lef \
		-lib 15T_ms/lib/*.lib \
		-gds 15T_ms/gds/*.gds compile-only \
			options=custom/scripts/gds_import_sc.tcl \
		-library digital sky130_osu_sc_15t_ms 2>&1 | tee -a ${SKY130$*}_make.log
	# Install OSU T15 ls digital standard cells.
	${STAGE} -source ${OSU_T15_PATH} -target ${STAGING_PATH}/${SKY130$*} \
		-techlef sky130_osu_sc_15T.tlef rename=sky130_osu_sc_15t_ls.tlef \
		-spice 15T_ls/cdl/*.spice compile-only exclude=*.*.spice \
		-lef 15T_ls/lef/*.lef \
		-lib 15T_ls/lib/*.lib \
		-gds 15T_ls/gds/*.gds compile-only \
			options=custom/scripts/gds_import_sc.tcl \
		-library digital sky130_osu_sc_15t_ls 2>&1 | tee -a ${SKY130$*}_make.log

osu-t18-%:
	# Install OSU T18 hs digital standard cells.
	${STAGE} -source ${OSU_T18_PATH} -target ${STAGING_PATH}/${SKY130$*} \
		-techlef sky130_osu_sc_18T.tlef rename=sky130_osu_sc_18t_hs.tlef \
		-spice 18T_hs/cdl/*.spice compile-only exclude=*.*.spice \
		-lef 18T_hs/lef/*.lef \
		-lib 18T_hs/lib/*.lib \
		-gds 18T_hs/gds/*.gds compile-only \
			options=custom/scripts/gds_import_sc.tcl \
		-library digital sky130_osu_sc_18t_hs 2>&1 | tee -a ${SKY130$*}_make.log
	# Install OSU T18 ms digital standard cells.
	${STAGE} -source ${OSU_T18_PATH} -target ${STAGING_PATH}/${SKY130$*} \
		-techlef sky130_osu_sc_18T.tlef rename=sky130_osu_sc_18t_ms.tlef \
		-spice 18T_ms/cdl/*.spice compile-only exclude=*.*.spice \
		-lef 18T_ms/lef/*.lef \
		-lib 18T_ms/lib/*.lib \
		-gds 18T_ms/gds/*.gds compile-only \
			options=custom/scripts/gds_import_sc.tcl \
		-library digital sky130_osu_sc_18t_ms 2>&1 | tee -a ${SKY130$*}_make.log
	# Install OSU T18 ls digital standard cells.
	${STAGE} -source ${OSU_T18_PATH} -target ${STAGING_PATH}/${SKY130$*} \
		-techlef sky130_osu_sc_18T.tlef rename=sky130_osu_sc_18t_ls.tlef \
		-spice 18T_ls/cdl/*.spice compile-only exclude=*.*.spice \
		-lef 18T_ls/lef/*.lef \
		-lib 18T_ls/lib/*.lib \
		-gds 18T_ls/gds/*.gds compile-only \
			options=custom/scripts/gds_import_sc.tcl \
		-library digital sky130_osu_sc_18t_ls 2>&1 | tee -a ${SKY130$*}_make.log

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

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

# NOTE: if DIST_LINK_TARGETS_B points back to the A variant, then the install
# of B depends on the install of A.  Can't think of a way to make the dependency
# itself depend on the value of DIST_LINK_TARGETS_B, so I'm just forcing the
# install to always be sequential:  install A first, then B.

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

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

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

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

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

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

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

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

veryclean-A: clean-A
	${RM} ${SKY130A}_make.log
	${RM} ${SKY130A}_install.log
	# Legacy name
	${RM} ${SKY130A}_migrate.log

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

# Old aliases (retained for compatibility)
install-dist:
	$(warning "'make install-dist' has been replaced with 'make install'")
	make install

install-local:
	$(warning "'make install-local' has been replaced with 'make install'")
	make install

uninstall-dist:
	$(warning "'make uninstall-dist' has been replaced with 'make uninstall'")
	make uninstall

uninstall-local:
	$(warning "'make uninstall-local' has been replaced with 'make uninstall'")
	make uninstall

install-dist-A:
	$(warning "'make install-dist-A' has been replaced with 'make install'")
	make install

install-local-A:
	$(warning "'make install-local-A' has been replaced with 'make install'")
	make install

uninstall-dist-A:
	$(warning "'make uninstall-dist-A' has been replaced with 'make uninstall'")
	make uninstall

uninstall-local-A:
	$(warning "'make uninstall-local-A' has been replaced with 'make uninstall'")
	make uninstall
