First cut at properly incorporating the sky130_fd_pr primitive
devices (much work do be done still).
diff --git a/Makefile.in b/Makefile.in
index 202fa8d..1a1c2c7 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -63,7 +63,7 @@
 
 install:	${TECHS}	
 	for tech in ${TECHS}; do \
-		${MAKE} install-$${tech}-local; done
+		${MAKE} install-$${tech}; done
 
 clean:		${TECHS}
 	for tech in ${TECHS}; do \
diff --git a/scripts/configure b/scripts/configure
index 62b4a34..56a95d4 100755
--- a/scripts/configure
+++ b/scripts/configure
@@ -620,6 +620,7 @@
 docdir
 oldincludedir
 includedir
+runstatedir
 localstatedir
 sharedstatedir
 sysconfdir
@@ -690,6 +691,7 @@
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
 docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -942,6 +944,15 @@
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
 
+  -runstatedir | --runstatedir | --runstatedi | --runstated \
+  | --runstate | --runstat | --runsta | --runst | --runs \
+  | --run | --ru | --r)
+    ac_prev=runstatedir ;;
+  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+  | --run=* | --ru=* | --r=*)
+    runstatedir=$ac_optarg ;;
+
   -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1079,7 +1090,7 @@
 for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
 		datadir sysconfdir sharedstatedir localstatedir includedir \
 		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir
+		libdir localedir mandir runstatedir
 do
   eval ac_val=\$$ac_var
   # Remove trailing slashes.
@@ -1232,6 +1243,7 @@
   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
   --libdir=DIR            object code libraries [EPREFIX/lib]
   --includedir=DIR        C header files [PREFIX/include]
   --oldincludedir=DIR     C header files for non-gcc [/usr/include]
@@ -1878,7 +1890,7 @@
   $as_echo_n "(cached) " >&6
 else
 
-	for am_cv_pathless_PYTHON in python python2 python3 python3.3 python3.2 python3.1 python3.0 python2.7  python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 none; do
+	for am_cv_pathless_PYTHON in python python2 python3  python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3  python3.2 python3.1 python3.0  python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 python2.1  python2.0 none; do
 	  test "$am_cv_pathless_PYTHON" = none && break
 	  prog="import sys
 # split strings by '.' and convert to numeric.  Append some zeros
@@ -2101,28 +2113,33 @@
 
     if test -z $PYTHON;
     then
-        PYTHON="python"
+        if test -z "";
+        then
+            PYTHON="python3"
+        else
+            PYTHON=""
+        fi
     fi
     PYTHON_NAME=`basename $PYTHON`
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking $PYTHON_NAME module: distutils" >&5
 $as_echo_n "checking $PYTHON_NAME module: distutils... " >&6; }
-	$PYTHON -c "import distutils" 2>/dev/null
-	if test $? -eq 0;
-	then
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+    $PYTHON -c "import distutils" 2>/dev/null
+    if test $? -eq 0;
+    then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-		eval HAVE_PYMOD_DISTUTILS=yes
-	else
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+        eval HAVE_PYMOD_DISTUTILS=yes
+    else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
-		eval HAVE_PYMOD_DISTUTILS=no
-		#
-		if test -n ""
-		then
-			as_fn_error $? "failed to find required module distutils" "$LINENO" 5
-			exit 1
-		fi
-	fi
+        eval HAVE_PYMOD_DISTUTILS=no
+        #
+        if test -n ""
+        then
+            as_fn_error $? "failed to find required module distutils" "$LINENO" 5
+            exit 1
+        fi
+    fi
 
 
 # Extract the first word of "magic", so it can be a program name with args.
diff --git a/sky130/Makefile.in b/sky130/Makefile.in
index cc337dd..9823ce4 100644
--- a/sky130/Makefile.in
+++ b/sky130/Makefile.in
@@ -351,45 +351,36 @@
 	${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hvl/no_synth.cells > ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl/no_synth.cells	
 
 vendor-a:
-	# Install base device models from vendor files
-	# (NOTE: .mod and .pm3 files should not be in /cells/?)
+	# Install device subcircuits from vendor files
 	${STAGE} -source ${SKYWATER_PATH} -target ${STAGING_PATH}/${SKY130A} \
-		-ngspice sky130_fd_pr_base/v%v/models/* filter=custom/scripts/fixspice.py \
-		-ngspice sky130_fd_pr_base/v%v/cells/*.mod filter=custom/scripts/fixspice.py \
-		-ngspice sky130_fd_pr_base/v%v/cells/*.pm3 filter=custom/scripts/fixspice.py \
-		|& tee -a ${SKY130A}_install.log
-	# Install RF device models from vendor files
-	${STAGE} -source ${SKYWATER_PATH} -target ${STAGING_PATH}/${SKY130A} \
-		-ngspice sky130_fd_pr_rf/v%v/models/* filter=custom/scripts/fixspice.py \
-		|& tee -a ${SKY130A}_install.log
-	# Install additional RF device models from vendor files
-	${STAGE} -source ${SKYWATER_PATH} -target ${STAGING_PATH}/${SKY130A} \
-		-ngspice sky130_fd_pr_rf2/v%v/models/* filter=custom/scripts/fixspice.py \
+		-ngspice sky130_fd_pr/latest/models/*.spice \
+		-ngspice sky130_fd_pr/latest/models/*/*.spice up 1 \
+		-ngspice sky130_fd_pr/latest/models/*/*/*.spice up 2 \
+		-ngspice sky130_fd_pr/latest/models/*/*/*/*.spice up 3 \
 		|& tee -a ${SKY130A}_install.log
 	# Install base device library from vendor files
 	${STAGE} -source ${SKYWATER_PATH} -target ${STAGING_PATH}/${SKY130A} \
-		-gds %l/v%v/cells/*/*.gds \
-		-spice %l/v%v/cells/*/*.spice ignore=topography \
-		-spice %l/v%v/cells/*/*.sp \
-		-library primitive sky130_fd_pr_base \
-		-library primitive sky130_fd_pr_rf \
-		-library primitive sky130_fd_pr_rf2 |& tee -a ${SKY130A}_install.log
+		-gds %l/latest/cells/*/*.gds compile-only \
+		-cdl %l/latest/cells/*/*.cdl compile-only \
+		-lef %l/latest/cells/*/*.magic.lef compile-only \
+		-spice %l/latest/cells/*/*.spice compile-only \
+		-library primitive sky130_fd_pr |& tee -a ${SKY130A}_install.log
 	# Install SkyWater I/O pad library
-	# Purposely ignoring "-lef sky130_fd_io/v%v/lef/*.lef" and making our own LEF views
+	# Purposely ignoring "-lef sky130_fd_io/latest/lef/*.lef" and making our own LEF views
 	${STAGE} -source ${SKYWATER_PATH} -target ${STAGING_PATH}/${SKY130A} \
-		-gds %l/v%v/cells/*/*.gds \
-		-verilog %l/v%v/cells/*/*.v \
-		-lib %l/v%v/cells/*/*.lib \
-		-doc %l/v%v/cells/*/*.doc \
-		-cdl %l/v%v/cells/*/*.cdl ignore=topography \
-		-spice %l/v%v/cells/*/*.spice  \
+		-gds %l/latest/cells/*/*.gds \
+		-verilog %l/latest/cells/*/*.v \
+		-lib %l/latest/cells/*/*.lib \
+		-doc %l/latest/cells/*/*.doc \
+		-cdl %l/latest/cells/*/*.cdl ignore=topography \
+		-spice %l/latest/cells/*/*.spice  \
 		-library general sky130_fd_io |& tee -a ${SKY130A}_install.log
 	# Install all SkyWater digital standard cells.
 	${STAGE} -source ${SKYWATER_PATH} -target ${STAGING_PATH}/${SKY130A} \
 		-techlef %l/latest/tech/*.tlef \
 		-spice %l/latest/cells/*/*.spice compile-only \
 		-cdl %l/latest/cells/*/*.cdl ignore=topography compile-only \
-		-lef %l/latest/cells/*/*.lef exclude=*.*.lef compile-only \
+		-lef %l/latest/cells/*/*.magic.lef compile-only \
 		-doc %l/latest/cells/*/*.pdf \
 		-lib %l/latest/timing/*.lib \
 		-gds %l/latest/cells/*/*.gds compile-only \