# Makefile for efabless design kits for SkyWater Sky130:
#
#  sky130A      =  5-metal backend stack with dual MiM
#
# 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)
#
# Instructions:
#
# Run "configure" from the top level directory.  Use the following
# configuration options to match your environment:
#
#	--enable-sky130-pdk[=<path>]
#		If enabled, install the skywater PDK.  If <path> is specified,
#		then the skywater PDK is expected to be found rooted at the
#		given path.  If not specified, then the skywater PDK will be
#		downloaded and installed to <repo root>/pdks.
#		If explicitly disabled, sky130 is skipped over entirely.
#
#	--with-sky130-local-path=<path>
#		where <path> is the run-time location of the installed PDK
#		files generated by open_pdks.  This option is mandatory and
#		has no default.
#
#	--with-sky130-dist-path=<path>
#		where <path> is the install-time location of the installed
#		PDK files generated by open_pdks, with the expectation that
#		<path> is something like a git repository that is then
#		distributed across a system.  If this option is not specified,
#		then files are installed to the local path.
#
#	--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.
#
# 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-openlane
#		Do not install setup files for the openlane 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-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.
#
# 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-osu-sky130[=<path>]
#		If enabled, install the sky130_osu_sc library 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-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.
#
# The variables below are substituted from the configuration options:
#
#	SKYWATER_PATH: points to vendor sources
#	EF_STYLE: 1 for efabless style, 0 otherwise
#	LINK_TARGETS: link back to source or link to 1st PDK when possible
#	DIST_PATH: install location for distributed install
#	LOCAL_PATH: install location for local install or runtime location
#		    for distributed install
#
# Run "make" to stage the PDK for tool setup and vendor libraries
#
# Run "make install" to install all staged files.  The installation is
# either local or distributed, depending on whether --with-sky130-dist-path
# has been set when running configure.
#
# 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 = bash
MV = mv

# 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

# If EF_STYLE is set to 1, then efabless naming conventions are
# used, otherwise the generic naming conventions are used.
# Mainly, the hierarchy of library names and file types is reversed
# (e.g., sky130_fd_sc_hd/lef vs. lef/sky130_fd_sc_hd).

# EF_STYLE = 0 | 1
EF_STYLE = @EF_STYLE@

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

STAGING_PATH = $(shell pwd)

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

# LINK_TARGETS = source | none | sky130A
LINK_TARGETS = @SKY130_LINK_TARGETS@

# Paths:

# Path to skywater_pdk
SKYWATER_PATH = @SKY130_SOURCE_PATH@
ifneq ($(SKYWATER_PATH),)
    SKYWATER_LIBS_PATH = ${SKYWATER_PATH}/libraries
else
    SKYWATER_LIBS_PATH =
endif

# Path to independent library sources (to be added to configuration options).
ALPHA_PATH = @SKY130_ML_XX_HD_PATH@
XSCHEM_PATH = @XSCHEM_SKY130_PATH@
SRAM_PATH = @SKY130_SRAM_MACROS_PATH@
OSU_PATH = @SKY130_OSU_PATH@
OSU_T12_PATH = @SKY130_OSU_T12_PATH@
OSU_T15_PATH = @SKY130_OSU_T15_PATH@
OSU_T18_PATH = @SKY130_OSU_T18_PATH@

PDK_URL = https://github.com/google/skywater-pdk
ALPHA_URL = https://github.com/PaulSchulz/sky130_pschulz_xx_hd/archive/master.tar.gz
XSCHEM_URL = https://github.com/StefanSchippers/xschem_sky130/archive/main.tar.gz
SRAM_URL = https://github.com/efabless/sky130_sram_macros/archive/main.tar.gz
OSU_URL = https://foss-eda-tools.googlesource.com/skywater-pdk/libs/sky130_osu_sc/+archive/refs/heads/master.tar.gz
OSU_T12_URL = https://foss-eda-tools.googlesource.com/skywater-pdk/libs/sky130_osu_sc_t12/+archive/refs/heads/master.tar.gz
OSU_T15_URL = https://foss-eda-tools.googlesource.com/skywater-pdk/libs/sky130_osu_sc_t15/+archive/refs/heads/master.tar.gz
OSU_T18_URL = https://foss-eda-tools.googlesource.com/skywater-pdk/libs/sky130_osu_sc_t18/+archive/refs/heads/master.tar.gz

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

# DIST_PATH = ~/gits/ef-skywater-${TECH}
DIST_PATH = @SKY130_DIST_PATH@

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

ifeq (${LINK_TARGETS}, ${SKY130A})
    DIST_LINK_TARGETS = ${LOCAL_PATH}/${LINK_TARGETS}
else
    DIST_LINK_TARGETS = ${LINK_TARGETS}
endif

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

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

# Add staging path
SKY130A_DEFS += -DSTAGING_PATH=${STAGING_PATH}

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

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

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

# Currently, netgen, qflow, irsim, and klayout do not use revisioning (needs to change!)
NETGENPATH = ${NETGENTOP}
IRSIMPATH = ${IRSIMTOP}
QFLOWPATH = ${QFLOWTOP}
KLAYOUTPATH = ${KLAYOUTTOP}
OPENLANEPATH = ${OPENLANETOP}
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}
OPENLANETOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${OPENLANETOP}
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}
OPENLANE_STAGING_A = ${STAGING_PATH}/${SKY130A}/${OPENLANEPATH}
XSCHEM_STAGING_A = ${STAGING_PATH}/${SKY130A}/${XSCHEMPATH}
XCIRCUIT_STAGING_A = ${STAGING_PATH}/${SKY130A}/${XCIRCUITPATH}
NGSPICE_STAGING_A = ${STAGING_PATH}/${SKY130A}/${NGSPICEPATH}

SKY130A_DEFS += -DMAGIC_CURRENT=${MAGICCURRENT}

# 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
OPENLANE_COMMON += tribuff_map.v latch_map.v mux2_map.v mux4_map.v fa_map.v rca_map.v csa_map.v

# 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 ${EF_FORMAT}
INSTALL = ../common/staging_install.py ${EF_FORMAT}

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

# These definitions depend on the setting of EF_STYLE
ifeq (${EF_STYLE}, 1)
	IO_VERILOG = verilog/sky130_fd_io
	HD_VERILOG = verilog/sky130_fd_sc_hd
	HDLL_VERILOG = verilog/sky130_fd_sc_hdll
	HVL_VERILOG = verilog/sky130_fd_sc_hvl
	HS_VERILOG = verilog/sky130_fd_sc_hs
	MS_VERILOG = verilog/sky130_fd_sc_ms
	LS_VERILOG = verilog/sky130_fd_sc_ls
	LP_VERILOG = verilog/sky130_fd_sc_lp
	HD_TECHLEF = techLEF/sky130_fd_sc_hd
	HDLL_TECHLEF = techLEF/sky130_fd_sc_hdll
	MLXX_SCRIPTS = scripts/sky130_ml_xx_hd
	PR_SPICE = spi/sky130_fd_pr
else
	IO_VERILOG = sky130_fd_io/verilog
	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
endif

all: all-a

# Handle prerequisites (fetch and install the PDK and requested libraries)
prerequisites: pdk-repo alpha-repo xschem-repo sram-repo osu-repo osu-t12-repo osu-t15-repo osu-t18-repo

pdk-repo:
	if test "x${SKYWATER_PATH}" != "x" ; then \
		if test -d "${SKYWATER_PATH}" ; then \
			echo "Using existing installation of SkyWater PDK from ${SKYWATER_PATH}" ; \
		else \
			echo "Downloading SkyWater PDK from ${PDK_URL}" ; \
			custom/scripts/pdk_download.sh ${PDK_URL} ${SKYWATER_PATH} ; \
		fi ; \
	fi

alpha-repo:
	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} ; \
		fi ; \
	fi

sram-repo:
	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} ; \
		fi ; \
	fi

xschem-repo:
	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} ; \
		fi ; \
	fi

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

osu-t12-repo:
	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} 0 ; \
		fi ; \
	fi

osu-t15-repo:
	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} 0 ; \
		fi ; \
	fi

osu-t18-repo:
	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} 0 ; \
		fi ; \
	fi

all-a: prerequisites
	echo "Starting sky130A PDK staging on "`date` > ${SKY130A}_make.log
	${MAKE} general-a
	${MAKE} tools-a
	${MAKE} vendor-a
	echo "Ended sky130A PDK staging on "`date` >> ${SKY130A}_make.log

general-a: ${TECH}.json
	mkdir -p ${STAGING_PATH}/${SKY130A}/${CONFIG_DIR}
	rm -f ${STAGING_PATH}/${SKY130A}/${CONFIG_DIR}/nodeinfo.json
	${CPP} ${SKY130A_DEFS} ${TECH}.json \
		${STAGING_PATH}/${SKY130A}/${CONFIG_DIR}/nodeinfo.json

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

magic-a: magic/${TECH}.tech magic/${TECH}gds.tech magic/${TECH}.magicrc magic/${TECH}.tcl
	mkdir -p ${MAGICTOP_STAGING_A}
	mkdir -p ${MAGIC_STAGING_A}
	rm -f ${MAGICTOP_STAGING_A}/current
	rm -f ${MAGIC_STAGING_A}/${SKY130A}.tech
	rm -f ${MAGIC_STAGING_A}/${SKY130A}-GDS.tech
	rm -f ${MAGIC_STAGING_A}/${SKY130A}.tcl
	rm -f ${MAGIC_STAGING_A}/${SKY130A}-BindKeys
	rm -f ${MAGIC_STAGING_A}/magicrc
	if "${EF_STYLE}" == "1" ; then \
	    (cd ${MAGICTOP_STAGING_A} ; ln -s ${REV_DIR} current) ; \
	fi
	cp -rp custom/scripts/seal_ring_generator ${MAGIC_STAGING_A}/.
	cp -rp custom/scripts/bump_bond_generator ${MAGIC_STAGING_A}/.
	cp custom/scripts/generate_fill.py ${MAGIC_STAGING_A}/.
	cp custom/scripts/check_density.py ${MAGIC_STAGING_A}/.
	cp custom/scripts/run_standard_drc.py ${MAGIC_STAGING_A}/.
	cp custom/scripts/check_antenna.py ${MAGIC_STAGING_A}/.
	${CPP} ${SKY130A_DEFS} magic/${TECH}.tech ${MAGIC_STAGING_A}/${SKY130A}.tech
	${CPP} ${SKY130A_DEFS} magic/${TECH}gds.tech ${MAGIC_STAGING_A}/${SKY130A}-GDS.tech
	${CPP} ${SKY130A_DEFS} magic/${TECH}.magicrc ${MAGIC_STAGING_A}/${SKY130A}.magicrc
	${CPP} ${SKY130A_DEFS} ../common/pdk.bindkeys ${MAGIC_STAGING_A}/${SKY130A}-BindKeys
	${CPP} ${SKY130A_DEFS} magic/${TECH}.tcl ${MAGIC_STAGING_A}/${SKY130A}.tcl
	${CPP} ${SKY130A_DEFS} ../common/pdk.tcl >> ${MAGIC_STAGING_A}/${SKY130A}.tcl

qflow-a: qflow/${TECH}.sh qflow/${TECH}.par
	mkdir -p ${QFLOWTOP_STAGING_A}
	mkdir -p ${QFLOW_STAGING_A}
	rm -f ${QFLOW_STAGING_A}/${SKY130A}hd.sh
	rm -f ${QFLOW_STAGING_A}/${SKY130A}hd.par
	rm -f ${QFLOW_STAGING_A}/${SKY130A}hdll.sh
	rm -f ${QFLOW_STAGING_A}/${SKY130A}hdll.par
	rm -f ${QFLOW_STAGING_A}/${SKY130A}hs.sh
	rm -f ${QFLOW_STAGING_A}/${SKY130A}hs.par
	rm -f ${QFLOW_STAGING_A}/${SKY130A}hvl.sh
	rm -f ${QFLOW_STAGING_A}/${SKY130A}hvl.par
	rm -f ${QFLOW_STAGING_A}/${SKY130A}ls.sh
	rm -f ${QFLOW_STAGING_A}/${SKY130A}ls.par
	rm -f ${QFLOW_STAGING_A}/${SKY130A}lp.sh
	rm -f ${QFLOW_STAGING_A}/${SKY130A}lp.par
	rm -f ${QFLOW_STAGING_A}/${SKY130A}ms.sh
	rm -f ${QFLOW_STAGING_A}/${SKY130A}ms.par
	rm -f ${QFLOW_STAGING_A}/${SKY130A}osu.sh
	rm -f ${QFLOW_STAGING_A}/${SKY130A}osu.par
	${CPP} ${SKY130A_DEFS} -DLIBRARY=sky130_fd_sc_hd qflow/${TECH}.sh \
		${QFLOW_STAGING_A}/${SKY130A}hd.sh
	${CPP} ${SKY130A_DEFS} -DLIBRARY=sky130_fd_sc_hdll qflow/${TECH}.sh \
		${QFLOW_STAGING_A}/${SKY130A}hdll.sh
	${CPP} ${SKY130A_DEFS} -DLIBRARY=sky130_fd_sc_hvl qflow/${TECH}.sh \
		${QFLOW_STAGING_A}/${SKY130A}hvl.sh
	${CPP} ${SKY130A_DEFS} -DLIBRARY=sky130_fd_sc_hs qflow/${TECH}.sh \
		${QFLOW_STAGING_A}/${SKY130A}hs.sh
	${CPP} ${SKY130A_DEFS} -DLIBRARY=sky130_fd_sc_lp qflow/${TECH}.sh \
		${QFLOW_STAGING_A}/${SKY130A}lp.sh
	${CPP} ${SKY130A_DEFS} -DLIBRARY=sky130_fd_sc_ls qflow/${TECH}.sh \
		${QFLOW_STAGING_A}/${SKY130A}ls.sh
	${CPP} ${SKY130A_DEFS} -DLIBRARY=sky130_fd_sc_ms qflow/${TECH}.sh \
		${QFLOW_STAGING_A}/${SKY130A}ms.sh
	${CPP} ${SKY130A_DEFS} -DLIBRARY=sky130_osu_sc_t18 qflow/sky130osu.sh \
		${QFLOW_STAGING_A}/${SKY130A}osu.sh
	${CPP} ${SKY130A_DEFS} qflow/${TECH}.par ${QFLOW_STAGING_A}/${SKY130A}hd.par
	${CPP} ${SKY130A_DEFS} qflow/${TECH}.par ${QFLOW_STAGING_A}/${SKY130A}hdll.par
	${CPP} ${SKY130A_DEFS} qflow/${TECH}.par ${QFLOW_STAGING_A}/${SKY130A}hvl.par
	${CPP} ${SKY130A_DEFS} qflow/${TECH}.par ${QFLOW_STAGING_A}/${SKY130A}hs.par
	${CPP} ${SKY130A_DEFS} qflow/${TECH}.par ${QFLOW_STAGING_A}/${SKY130A}ms.par
	${CPP} ${SKY130A_DEFS} qflow/${TECH}.par ${QFLOW_STAGING_A}/${SKY130A}lp.par
	${CPP} ${SKY130A_DEFS} qflow/${TECH}.par ${QFLOW_STAGING_A}/${SKY130A}ls.par
	${CPP} ${SKY130A_DEFS} qflow/${TECH}.par ${QFLOW_STAGING_A}/${SKY130A}osu.par

netgen-a: netgen/${TECH}_setup.tcl
	mkdir -p ${NETGENTOP_STAGING_A}
	mkdir -p ${NETGEN_STAGING_A}
	rm -f ${NETGEN_STAGING_A}/${SKY130A}_setup.tcl
	rm -f ${NETGEN_STAGING_A}/setup.tcl
	${CPP} ${SKY130A_DEFS} netgen/${TECH}_setup.tcl ${NETGEN_STAGING_A}/${SKY130A}_setup.tcl
	(cd ${NETGEN_STAGING_A} ; ln -s ${SKY130A}_setup.tcl setup.tcl)

irsim-a: irsim
	mkdir -p ${IRSIMTOP_STAGING_A}
	mkdir -p ${IRSIM_STAGING_A}
	rm -f ${IRSIM_STAGING_A}/${SKY130A}_*.prm
	cp irsim/${SKY130A}_*.prm ${IRSIM_STAGING_A}/

klayout-a: klayout/${TECH}.lyp klayout/${TECH}.lyt
	mkdir -p ${KLAYOUTTOP_STAGING_A}
	mkdir -p ${KLAYOUT_STAGING_A}
	rm -f ${KLAYOUT_STAGING_A}/${SKY130A}.lyp
	rm -f ${KLAYOUT_STAGING_A}/${SKY130A}.lyt
	${CPP} ${SKY130A_DEFS} klayout/${TECH}.lyp ${KLAYOUT_STAGING_A}/${SKY130A}.lyp
	${CPP} ${SKY130A_DEFS} klayout/${TECH}.lyt ${KLAYOUT_STAGING_A}/${SKY130A}.lyt
	cp klayout/${TECH}.lydrc ${KLAYOUT_STAGING_A}/${SKY130A}.lydrc
	./custom/scripts/gen_run_drc.py -l ${KLAYOUT_STAGING_A}/${SKY130A}.lydrc -o ${KLAYOUT_STAGING_A}/${SKY130A}.drc

xcircuit-a: xcircuit/${TECH}.xcircuitrc
	rm -rf ${XCIRCUIT_STAGING_A}
	mkdir -p ${XCIRCUITTOP_STAGING_A}
	mkdir -p ${XCIRCUIT_STAGING_A}
	rm -f ${XCIRCUIT_STAGING_A}/*.lps
	rm -f ${XCIRCUIT_STAGING_A}/${SKY130A}.xcircuitrc
	${CPP} ${SKY130A_DEFS} xcircuit/ngspice.lps ${XCIRCUIT_STAGING_A}/ngspice.lps
	${CPP} ${SKY130A_DEFS} xcircuit/sky130_fd_pr.lps ${XCIRCUIT_STAGING_A}/sky130_fd_pr.lps
	${CPP} ${SKY130A_DEFS} xcircuit/sky130_fd_sc_hd.lps ${XCIRCUIT_STAGING_A}/sky130_fd_sc_hd.lps
	${CPP} ${SKY130A_DEFS} xcircuit/${TECH}.xcircuitrc ${XCIRCUIT_STAGING_A}/${SKY130A}.xcircuitrc

xschem-a: ${XSCHEM_PATH}
	rm -rf ${XSCHEM_STAGING_A}
	mkdir -p ${XSCHEMTOP_STAGING_A}
	mkdir -p ${XSCHEM_STAGING_A}
	# Copy the entire repository (other than .git, if it exists)
	if test "x${XSCHEM_PATH}" != "x" ; then \
	    cp -rp ${XSCHEM_PATH}/* ${XSCHEM_STAGING_A} ; \
	fi
	# Re-copy the xschemrc, with one change to add the PDK install path as
	# a component of XSCHEM_LIBRARY_PATH
	cat ${XSCHEM_PATH}/xschemrc | \
		sed -e "/PWD/aappend XSCHEM_LIBRARY_PATH :${XSCHEM_STAGING_A}" | \
		sed -e "/sky130_models.tcl/s#scripts#${XSCHEM_STAGING_A}/scripts#" | \
		sed -e "/netlist_dir/aset netlist_dir ." \
		> ${XSCHEM_STAGING_A}/xschemrc

openlane-a: openlane/common_pdn.tcl openlane/config.tcl openlane/sky130_fd_sc_hd/config.tcl  openlane/sky130_fd_sc_hs/config.tcl openlane/sky130_fd_sc_ms/config.tcl openlane/sky130_fd_sc_ls/config.tcl openlane/sky130_fd_sc_hdll/config.tcl openlane/sky130_osu_sc_t18/config.tcl
	mkdir -p ${OPENLANETOP_STAGING_A}
	mkdir -p ${OPENLANE_STAGING_A}
	rm -rf ${OPENLANE_STAGING_A}/custom_cells/*
	mkdir -p ${OPENLANE_STAGING_A}/sky130_fd_sc_hd
	mkdir -p ${OPENLANE_STAGING_A}/sky130_fd_sc_hs
	mkdir -p ${OPENLANE_STAGING_A}/sky130_fd_sc_ls
	mkdir -p ${OPENLANE_STAGING_A}/sky130_fd_sc_ms
	mkdir -p ${OPENLANE_STAGING_A}/sky130_fd_sc_hdll
	mkdir -p ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl
	mkdir -p ${OPENLANE_STAGING_A}/sky130_osu_sc_t18
	rm -f ${OPENLANE_STAGING_A}/common_pdn.info
	rm -f ${OPENLANE_STAGING_A}/config.tcl
	for file in ${OPENLANE_COMMON} ; do \
	    rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hd/$$file ; \
	done
	for file in ${OPENLANE_COMMON} ; do \
	    rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hs/$$file ; \
	done
	for file in ${OPENLANE_COMMON} ; do \
	    rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hdll/$$file ; \
	done
	for file in ${OPENLANE_COMMON} ; do \
	    rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_ls/$$file ; \
	done
	for file in ${OPENLANE_COMMON} ; do \
	    rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_ms/$$file ; \
	done
	for file in ${OPENLANE_COMMON} ; do \
	    rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl/$$file ; \
	done
	for file in ${OPENLANE_COMMON} ; do \
	    rm -f ${OPENLANE_STAGING_A}/sky130_osu_sc_t18/$$file ; \
	done

	cp -r openlane/custom_cells ${OPENLANE_STAGING_A}
	${CPP} ${SKY130A_DEFS} openlane/common_pdn.tcl ${OPENLANE_STAGING_A}/common_pdn.tcl
	${CPP} ${SKY130A_DEFS} openlane/config.tcl ${OPENLANE_STAGING_A}/config.tcl

	for file in ${OPENLANE_COMMON} ; do \
	    ${CPP} -quiet ${SKY130A_DEFS} openlane/sky130_fd_sc_hd/$$file \
		${OPENLANE_STAGING_A}/sky130_fd_sc_hd/$$file ; \
	done
	for file in ${OPENLANE_COMMON} ; do \
	    ${CPP} -quiet ${SKY130A_DEFS} openlane/sky130_fd_sc_hs/$$file \
		${OPENLANE_STAGING_A}/sky130_fd_sc_hs/$$file ; \
	done
	for file in ${OPENLANE_COMMON} ; do \
	    ${CPP} -quiet ${SKY130A_DEFS} openlane/sky130_fd_sc_ms/$$file \
		${OPENLANE_STAGING_A}/sky130_fd_sc_ms/$$file ; \
	done
	for file in ${OPENLANE_COMMON} ; do \
	    ${CPP} -quiet ${SKY130A_DEFS} openlane/sky130_fd_sc_ls/$$file \
		${OPENLANE_STAGING_A}/sky130_fd_sc_ls/$$file ; \
	done
	for file in ${OPENLANE_COMMON} ; do \
	    ${CPP} -quiet ${SKY130A_DEFS} openlane/sky130_fd_sc_hdll/$$file \
		${OPENLANE_STAGING_A}/sky130_fd_sc_hdll/$$file ; \
	done
	for file in ${OPENLANE_COMMON} ; do \
	    ${CPP} -quiet ${SKY130A_DEFS} openlane/sky130_fd_sc_hvl/$$file \
		${OPENLANE_STAGING_A}/sky130_fd_sc_hvl/$$file ; \
	done

	${CPP} -quiet ${SKY130A_DEFS} openlane/sky130_osu_sc_t18/config.tcl \
		${OPENLANE_STAGING_A}/sky130_osu_sc_t18/config.tcl
	${CPP} -quiet ${SKY130A_DEFS} openlane/sky130_osu_sc_t18/tracks.info \
		${OPENLANE_STAGING_A}/sky130_osu_sc_t18/tracks.info

vendor-a: primitive-a io-a digital-a alpha-a sram-a osu-base-a osu-t12-a osu-t15-a osu-t18-a

primitive-a:
	# Install device subcircuits from vendor files
	${STAGE} -source ${SKYWATER_LIBS_PATH} -target ${STAGING_PATH}/${SKY130A} \
		-ngspice sky130_fd_pr/latest/models/* \
		filter=custom/scripts/rename_models.py \
		2>&1 | tee -a ${SKY130A}_make.log
	# Install base device library from vendor files
	${STAGE} -source ${SKYWATER_LIBS_PATH} -target ${STAGING_PATH}/${SKY130A} \
		-gds %l/latest/cells/*/*.gds compile-only \
			options=custom/scripts/gds_import_setup.tcl \
		-cdl %l/latest/cells/*/*.cdl compile-only \
		-lef %l/latest/cells/*/*.magic.lef compile-only \
		-spice %l/latest/cells/*/*.spice filter=custom/scripts/rename_cells.py \
		-library primitive sky130_fd_pr 2>&1 | tee -a ${SKY130A}_make.log
	# Custom:  Add "short" resistor model and subcircuit to the r+c models file
	cat ./custom/models/short.spice >> \
		${STAGING_PATH}/${SKY130A}/libs.tech/ngspice/sky130_fd_pr__model__r+c.model.spice
	# Custom:  Add diodes as subcircuits to the r+c models file
	cat ./custom/models/diode.spice >> \
		${STAGING_PATH}/${SKY130A}/libs.tech/ngspice/sky130_fd_pr__model__r+c.model.spice

	# Custom:  Patch the models to work around ngspice issue with the relative
	# order of the "nf" and "mult" parameters.
	patch -p4 -f -d ${STAGING_PATH}/${SKY130A}/libs.ref/${PR_SPICE} \
		< custom/patches/sky130_fd_pr.patch \
		2>&1 | tee -a ${SKY130A}_make.log || true
	patch -p1 -f -d ${STAGING_PATH}/${SKY130A} \
		< custom/patches/sky130_fd_pr_2.patch \
		2>&1 | tee -a ${SKY130A}_make.log || true
	# Custom:  Patch the models to remove the substrate pin from the PNP
	# device, which has no independent substrate pin (collector=substrate)
	patch -p4 -f -d ${STAGING_PATH}/${SKY130A}/libs.ref/${PR_SPICE} \
		< custom/patches/sky130_fd_pr_3.patch \
		2>&1 | tee -a ${SKY130A}_make.log || true
	# Custom:  Add "spinit" file
	cat ./custom/models/spinit >> \
		${STAGING_PATH}/${SKY130A}/libs.tech/ngspice/spinit

io-a:
	# Install custom additions to I/O pad library
	${STAGE} -source ./custom -target ${STAGING_PATH}/${SKY130A} \
		-verilog %l/verilog/*.v \
		-cdl %l/cdl/*.cdl \
		-spice %l/spice/*.spice \
		-gds %l/gds/*.gds options=custom/scripts/gds_import_setup.tcl \
		-lef %l/lef/*.lef compile-only rename=sky130_ef_io \
		-library general sky130_fd_io 2>&1 | tee -a ${SKY130A}_make.log
	# Install SkyWater I/O pad library
	${STAGE} -source ${SKYWATER_LIBS_PATH} -target ${STAGING_PATH}/${SKY130A} \
		-spice %l/latest/cells/*/*.spice compile-only \
			sort=custom/scripts/sort_pdkfiles.py \
		-cdl %l/latest/cells/*/*.cdl ignore=topography compile-only \
			sort=custom/scripts/sort_pdkfiles.py \
		-lef %l/latest/cells/*/*.magic.lef compile-only \
			sort=custom/scripts/sort_pdkfiles.py \
		-doc %l/latest/cells/*/*.pdf \
		-lib %l/latest/timing/*.lib \
		-gds %l/latest/cells/*/*.gds compile-only \
			sort=custom/scripts/sort_pdkfiles.py \
			options=custom/scripts/sky130_fd_io_import.tcl \
		-verilog %l/latest/cells/*/*.*.v \
		-verilog %l/latest/cells/*/*.v exclude=*.*.v \
			compile-only filter=custom/scripts/inc_verilog.py \
			sort=custom/scripts/sort_pdkfiles.py \
		-library general sky130_fd_io 2>&1 | tee -a ${SKY130A}_make.log
	# Remove the base verilog files which have already been included into
	# the libraries
	${RM} ${STAGING_PATH}/${SKY130A}/libs.ref/${IO_VERILOG}/*.*.v
	# Install custom additions to standard cell libraries
	${STAGE} -source ./custom -target ${STAGING_PATH}/${SKY130A} \
		-gds %l/gds/*.gds options=custom/scripts/gds_import_setup.tcl \
		-lef %l/lef/*.lef \
		-verilog %l/verilog/*.v \
		-library digital sky130_fd_sc_hd 2>&1 | tee -a ${SKY130A}_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}/${SKY130A} sky130_fd_io sky130_fd_io__top_gpiov2 \
		"MASKHINTS_HVI 1346 17198 5828 19224 13700 1890 15920 2360 24 17522 1778 20612" -mag

digital-a:
	# Install all SkyWater digital standard cells.
	${STAGE} -source ${SKYWATER_LIBS_PATH} -target ${STAGING_PATH}/${SKY130A} \
		-techlef %l/latest/tech/*.tlef \
		-spice %l/latest/cells/*/*.spice compile-only \
			sort=custom/scripts/sort_pdkfiles.py \
		-cdl %l/latest/cells/*/*.cdl ignore=topography compile-only \
			sort=custom/scripts/sort_pdkfiles.py \
		-lef %l/latest/cells/*/*.magic.lef compile-only \
			sort=custom/scripts/sort_pdkfiles.py \
		-doc %l/latest/cells/*/*.pdf \
		-lib %l/latest/timing/*.lib \
		-gds %l/latest/cells/*/*.gds compile-only \
			options=custom/scripts/gds_import_setup.tcl \
			sort=custom/scripts/sort_pdkfiles.py \
		-verilog %l/latest/models/*/*.v exclude=*.*.v compile-only \
			rename=primitives filter=custom/scripts/inc_verilog.py \
			sort=custom/scripts/sort_pdkfiles.py \
		-verilog %l/latest/cells/*/*.*.v \
		-verilog %l/latest/cells/*/*.v exclude=*.*.v,primitives.v \
			compile-only filter=custom/scripts/inc_verilog.py \
			sort=custom/scripts/sort_pdkfiles.py \
		-library digital sky130_fd_sc_hd \
		-library digital sky130_fd_sc_hdll \
		-library digital sky130_fd_sc_hvl \
		-library digital sky130_fd_sc_hs \
		-library digital sky130_fd_sc_ls \
		-library digital sky130_fd_sc_ms \
		-library digital sky130_fd_sc_lp 2>&1 | tee -a ${SKY130A}_make.log
	# Add a maskhint set for the tap cell .ag view to prevent problems writing
	# when writing NSDM and PSDM to GDS during hierarchical adjustments.
	${ADDPROP} ${STAGING_PATH}/${SKY130A} sky130_fd_sc_hd sky130_fd_sc_hd__tapvpwrvgnd_1 \
		"MASKHINTS_PSDM 0 38 92 196" -mag
	${ADDPROP} ${STAGING_PATH}/${SKY130A} sky130_fd_sc_hd sky130_fd_sc_hd__tapvpwrvgnd_1 \
		"MASKHINTS_NSDM 0 280 92 506" -mag
	# Remove the base verilog files which have already been included into
	# the libraries
	${RM} ${STAGING_PATH}/${SKY130A}/libs.ref/${HD_VERILOG}/*.*.v
	${RM} ${STAGING_PATH}/${SKY130A}/libs.ref/${HDLL_VERILOG}/*.*.v
	${RM} ${STAGING_PATH}/${SKY130A}/libs.ref/${HVL_VERILOG}/*.*.v
	${RM} ${STAGING_PATH}/${SKY130A}/libs.ref/${HS_VERILOG}/*.*.v
	${RM} ${STAGING_PATH}/${SKY130A}/libs.ref/${MS_VERILOG}/*.*.v
	${RM} ${STAGING_PATH}/${SKY130A}/libs.ref/${LS_VERILOG}/*.*.v
	${RM} ${STAGING_PATH}/${SKY130A}/libs.ref/${LP_VERILOG}/*.*.v
	# Apply extra PDK patches until they get fixed properly in the source
	patch -p1 -f -d ${STAGING_PATH}/${SKY130A}/libs.ref/${HD_TECHLEF} \
		< custom/patches/hd_minenclosed.squeaky.patch \
		2>&1 | tee -a ${SKY130A}_make.log || true
	patch -p1 -f -d ${STAGING_PATH}/${SKY130A}/libs.ref/${HDLL_TECHLEF} \
		< custom/patches/hdll_minenclosed.squeaky.patch \
		2>&1 | tee -a ${SKY130A}_make.log || true

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

sram-a:
	# Install SRAM library.  NOTE:  SRAM macros share some of the same
	# cell names, so use special option script gds_import_sram.tcl
	${STAGE} -source ${SRAM_PATH}/.. -target ${STAGING_PATH}/${SKY130A} \
		-lef %l/*/*.lef \
		-lib %l/*/*.lib \
		-gds %l/*/*.gds options=custom/scripts/gds_import_sram.tcl \
		-spice %l/*/sky130_sram_1kbyte_1rw1r_32x256_8.lvs.sp \
			rename=sky130_sram_1kbyte_1rw1r_32x256_8.spice \
		-spice %l/*/sky130_sram_2kbyte_1rw1r_32x512_8.lvs.sp \
			rename=sky130_sram_2kbyte_1rw1r_32x512_8.spice \
		-spice %l/*/sky130_sram_4kbyte_1rw1r_32x1024_8.lvs.sp \
			rename=sky130_sram_4kbyte_1rw1r_32x1024_8.spice \
		-spice %l/*/sram_1rw1r_32_256_8_sky130.lvs.sp \
			rename=sram_1rw1r_32_256_8_sky130.spice \
		-verilog %l/*/*.v \
		-library general sky130_sram_macros 2>&1 | tee -a ${SKY130A}_make.log

osu-base-a:
	# Install OSU digital standard cells.
	${STAGE} -source ${OSU_PATH} -target ${STAGING_PATH}/${SKY130A} \
		-techlef %l/tech/sky130_osu_sc.lef rename=sky130_osu_sc.tlef \
		-cdl %l/latest/cdl/*.cdl ignore=topography compile-only \
		-lef %l/latest/lef/*.lef compile-only \
		-lib %l/latest/lib/*.lib \
		-gds %l/latest/gds/*.gds compile-only \
			options=custom/scripts/gds_import_setup.tcl \
		-library digital sky130_osu_sc 2>&1 | tee -a ${SKY130A}_make.log

osu-t12-a:
	# Install OSU T12 hs digital standard cells.
	${STAGE} -source ${OSU_T12_PATH} -target ${STAGING_PATH}/${SKY130A} \
		-techlef sky130_osu_sc_12T.tlef rename=sky130_osc_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_setup.tcl \
		-library digital sky130_osu_sc_12t_hs 2>&1 | tee -a ${SKY130A}_make.log
	# Install OSU T12 ms digital standard cells.
	${STAGE} -source ${OSU_T12_PATH} -target ${STAGING_PATH}/${SKY130A} \
		-techlef sky130_osu_sc_12T.tlef rename=sky130_osc_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_setup.tcl \
		-library digital sky130_osu_sc_12t_ms 2>&1 | tee -a ${SKY130A}_make.log
	# Install OSU T12 ls digital standard cells.
	${STAGE} -source ${OSU_T12_PATH} -target ${STAGING_PATH}/${SKY130A} \
		-techlef sky130_osu_sc_12T.tlef rename=sky130_osc_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_setup.tcl \
		-library digital sky130_osu_sc_12t_ls 2>&1 | tee -a ${SKY130A}_make.log

osu-t15-a:
	# Install OSU T15 hs digital standard cells.
	${STAGE} -source ${OSU_T15_PATH} -target ${STAGING_PATH}/${SKY130A} \
		-techlef sky130_osu_sc_15T.tlef rename=sky130_osc_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_setup.tcl \
		-library digital sky130_osu_sc_15t_hs 2>&1 | tee -a ${SKY130A}_make.log
	# Install OSU T15 ms digital standard cells.
	${STAGE} -source ${OSU_T15_PATH} -target ${STAGING_PATH}/${SKY130A} \
		-techlef sky130_osu_sc_15T.tlef rename=sky130_osc_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_setup.tcl \
		-library digital sky130_osu_sc_15t_ms 2>&1 | tee -a ${SKY130A}_make.log
	# Install OSU T15 ls digital standard cells.
	${STAGE} -source ${OSU_T15_PATH} -target ${STAGING_PATH}/${SKY130A} \
		-techlef sky130_osu_sc_15T.tlef rename=sky130_osc_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_setup.tcl \
		-library digital sky130_osu_sc_15t_ls 2>&1 | tee -a ${SKY130A}_make.log

osu-t18-a:
	# Install OSU T18 hs digital standard cells.
	${STAGE} -source ${OSU_T18_PATH} -target ${STAGING_PATH}/${SKY130A} \
		-techlef sky130_osu_sc_18T.tlef rename=sky130_osc_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_setup.tcl \
		-library digital sky130_osu_sc_18t_hs 2>&1 | tee -a ${SKY130A}_make.log
	# Install OSU T18 ms digital standard cells.
	${STAGE} -source ${OSU_T18_PATH} -target ${STAGING_PATH}/${SKY130A} \
		-techlef sky130_osu_sc_18T.tlef rename=sky130_osc_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_setup.tcl \
		-library digital sky130_osu_sc_18t_ms 2>&1 | tee -a ${SKY130A}_make.log
	# Install OSU T18 ls digital standard cells.
	${STAGE} -source ${OSU_T18_PATH} -target ${STAGING_PATH}/${SKY130A} \
		-techlef sky130_osu_sc_18T.tlef rename=sky130_osc_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_setup.tcl \
		-library digital sky130_osu_sc_18t_ls 2>&1 | tee -a ${SKY130A}_make.log

install:
	if test "x${DIST_PATH}" == "x" ; then \
	    ${MAKE} install-local ; \
	else \
	    ${MAKE} install-dist; \
	fi

install-local: install-local-a

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

install-dist: install-dist-a

install-dist-a:
	echo "Starting SKY130 PDK migration on "`date` > ${SKY130A}_install.log
	${INSTALL} -source ${STAGING_PATH}/${SKY130A} \
		-target ${DIST_PATH}/${SKY130A} \
		-variable PDKPATH \
		-local ${LOCAL_PATH}/${SKY130A} \
		-link_from ${DIST_LINK_TARGETS} 2>&1 | tee -a ${SKY130A}_install.log
	echo "Ended SKY130 PDK migration on "`date` >> ${SKY130A}_install.log

uninstall:
	if test "x${DIST_PATH}" == "x" ; then \
	    ${MAKE} uninstall-local ; \
	else \
	    ${MAKE} uninstall-dist; \
	fi

uninstall-local: uninstall-local-a

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

uninstall-dist: uninstall-dist-a

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

clean: clean-a

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

veryclean: veryclean-a

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

