diff --git a/Makefile.in b/Makefile.in
index 9f28a08..202fa8d 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -11,20 +11,25 @@
 # make
 # 	generates the tech files from source masters.
 #
-# make install-local
+# make install
 #
-# 	installs the tech files locally.
-#
-# make install-dist
-#
-# 	installs the tech files in the git project
-# 	that is used for distribution of software
-# 	across the system.
+# 	installs the tech files.  If the configuration
+#	script has been given the "--with-<PDK>-dist-path="
+#	option, then tech files are installed in the path
+#	(such as a git repository) that is used for
+#	distribution of software across a system.  Otherwise,
+#	files are installed in the local path specified by
+#	the configuration option "--with-<PDK>-local-path=".
 #
 # make clean
 #
 # 	clean up all files generated by 'make'
 # 
+# make veryclean
+#
+# 	clean up all files generated by 'make' and remove
+#	all log files.
+#
 #---------------------------------------------------
 #
 # The following definitions are tied to the contents
@@ -45,11 +50,8 @@
 
 #---------------------------------------------------
 
-install-sky130-local:	sky130
-	(cd sky130 && ${MAKE} install-local)
-
-install-sky130-dist:	sky130
-	(cd sky130 && ${MAKE} install-dist)
+install-sky130:	sky130
+	(cd sky130 && ${MAKE} install)
 
 clean-sky130:
 	(cd sky130 && ${MAKE} clean)
@@ -59,27 +61,18 @@
 
 #---------------------------------------------------
 
-install:
-	${MAKE} install-local
-
-install-local:	${TECHS}	
+install:	${TECHS}	
 	for tech in ${TECHS}; do \
 		${MAKE} install-$${tech}-local; done
 
-install-dist:	${TECHS}
-	for tech in ${TECHS}; do \
-		${MAKE} install-$${tech}-dist; done
-
-#---------------------------------------------------
-
-clean:
+clean:		${TECHS}
 	for tech in ${TECHS}; do \
 		${MAKE} clean-$${tech}; done
 
-veryclean:
+veryclean:	${TECHS}
 	for tech in ${TECHS}; do \
 		${MAKE} veryclean-$${tech}; done
 
-distclean:
+distclean:	${TECHS}
 	for tech in ${TECHS}; do \
 		${MAKE} veryclean-$${tech}; done
diff --git a/common/gate_list.txt b/common/gate_list.txt
new file mode 100644
index 0000000..84fd5b7
--- /dev/null
+++ b/common/gate_list.txt
@@ -0,0 +1,124 @@
+#-----------------------------------------------------------------------
+# List of standard gate symbols with mapping to liberty file fields
+#
+# Y, X	       refer to logic output pins
+# C, S, ...    refer specifically to adder carry and sum output pins
+# Q, QB	       refer specifically to flip-flop or latch output pins
+# IQ, IQB      refers to function entries for flops.  "I" is literal.
+# A, B, C, ... refer to input pins
+# D, R, S, ... refer specifically to flip-flop input pins
+# SD	       refers to scan data input pin for flip-flops
+# CI	       refers specifically to full adder carry-in input
+# Z	       refers to high-impedance state
+# &	       means AND
+# |	       means OR
+# !	       means NOT
+# ( )	       groups
+#
+# Symbol    Liberty	Liberty
+# primitive file	field
+# name	    field	value	    ...
+#-----------------------------------------------------------------------
+AND2	    function	Y=A&B
+AND3	    function	Y=A&B&C
+AND4	    function	Y=A&B&C&D
+AND5	    function	Y=A&B&C&D&E
+AND8	    function	Y=A&B&C&D&E&F&G&H
+
+AND2I	    function	Y=!A&B
+
+AO21	    function	Y=(A&B)|C
+AO22	    function	Y=(A&B)|(C&D)
+
+AOI21	    function	Y=!((A&B)|C)
+AOI22	    function	Y=!((A&B)|(C&D))
+
+NAND2	    function	Y=!(A&B)
+NAND3	    function	Y=!(A&B&C)
+NAND4	    function	Y=!(A&B&C&D)
+NAND5	    function	Y=!(A&B&C&D&E)
+NAND8	    function	Y=!(A&B&C&D&E&F&G&H)
+
+NAND2I	    function	Y=!(!A&B)
+
+OR2	    function	Y=A|B
+OR3	    function	Y=A|B|C
+OR4	    function	Y=A|B|C|D
+OR5	    function	Y=A|B|C|D|E
+OR8	    function	Y=A|B|C|D|E|F|G|H
+
+OR2I	    function	Y=!A|B
+
+OA21	    function	Y=(A|B)&C
+OA22	    function	Y=(A|B)&(C|D)
+
+OAI21	    function	Y=!((A|B)&C)
+OAI22	    function	Y=!((A|B)&(C|D))
+
+NOR2	    function	Y=!(A|B)
+NOR3	    function	Y=!(A|B|C)
+NOR4	    function	Y=!(A|B|C|D)
+NOR5	    function	Y=!(A|B|C|D|E)
+NOR8	    function	Y=!(A|B|C|D|E|F|G|H)
+
+NOR2I	    function	Y=!(!A|B)
+
+XOR2	    function	Y=(A&!B)|(!A&B)
+
+XNOR2	    function	Y=(A&B)|(!A&!B)
+
+INV	    function	Y=!A
+
+BUF	    function	Y=A
+
+TBUF	    function	Y=A	three_state	E
+
+TBUFI	    function	Y=A	three_state	!E
+
+MUX2	    function	Y=(A&C)|(B&!C)
+
+MUX2I	    function	Y=!((A&!C)|(B&C))
+
+MUX4	    function	Y=(A&!E&!F)|(B&!E&F)|(C&E&!F)|(D&E&F)
+
+MUX4I	    function	Y=!((A&!E&!F)|(B&!E&F)|(C&E&!F)|(D&E&F))
+
+HA	    function	C=A&B	function    S=(A&!B)|(!A&B)
+FA	    function	C=(A&B)|(A&CI)|(B&CI)	function    S=(A&B&CI)|(!A&B&!CI)|(!A&!B&CI)|(A&B&CI)
+
+LATCH	    function	Q=IQ	enable  E	data_in  D
+LATCHI	    function	Q=IQ	enable  !E	data_in  D
+LATCHR	    function	Q=IQ	enable  E	data_in  D	clear !R
+LATCHIR	    function	Q=IQ	enable  !E	data_in  D	clear !R
+LATCHSR	    function	Q=IQ	enable  E	data_in  D	preset !S   clear !R
+LATCHISR    function	Q=IQ	enable  E	data_in  D	preset !S   clear !R
+
+LATCHQ	    function	Q=IQ	QB=IQB	enable  E	data_in  D
+LATCHIQ	    function	Q=IQ	QB=IQB	enable  !E	data_in  D
+LATCHRQ	    function	Q=IQ	QB=IQB	enable  E	data_in  D	clear !R
+LATCHIRQ    function	Q=IQ	QB=IQB	enable  !E	data_in  D	clear !R
+LATCHSRQ    function	Q=IQ	QB=IQB	enable  E	data_in  D	preset !S   clear !R
+LATCHISRQ   function	Q=IQ	QB=IQB	enable  E	data_in  D	preset !S   clear !R
+
+DFF	    function	Q=IQ	clocked_on  C	    next_state  D
+DFFQ	    function	Q=IQ	function    QB=IQB   clocked_on	C   next_state	D
+DFFS	    function	Q=IQ	clocked_on  C	    next_state  D   preset	!S
+DFFR	    function	Q=IQ	clocked_on  C	    next_state  D   clear	!R
+DFFSR	    function	Q=IQ	clocked_on  C	    next_state	D   preset	!S  clear   !R
+DFFSQ	    function	Q=IQ	function    QB=IQB   clocked_on  C   next_state  D   preset  !S
+DFFRQ	    function	Q=IQ	function    QB=IQB   clocked_on  C   next_state  D   clear  !R
+DFFSRQ	    function	Q=IQ	function    QB=IQB   clocked_on  C   next_state  D   clear  !R	preset !S
+DFFI	    function	Q=IQ	clocked_on  !C	    next_state  D
+DFFIQ	    function	Q=IQ	function    QB=IQB   clocked_on	!C   next_state	D
+DFFIS	    function	Q=IQ	clocked_on  !C	    next_state  D   preset	!S
+DFFIR	    function	Q=IQ	clocked_on  !C	    next_state  D   clear	!R
+DFFISR	    function	Q=IQ	clocked_on  !C	    next_state	D   preset	!S  clear   !R
+DFFISQ	    function	Q=IQ	function    QB=IQB   clocked_on  !C  next_state  D   preset  !S
+DFFIRQ	    function	Q=IQ	function    QB=IQB   clocked_on  !C  next_state  D   clear  !R
+DFFISRQ	    function	Q=IQ	function    QB=IQB   clocked_on  !C  next_state  D   clear  !R	preset !S
+
+EDFF	    function	Q=IQ	clocked_on  C	    next_state  (D&E)|(IQ&!E)
+EDFFQ	    function	Q=IQ	QB=IQB	clocked_on  C	    next_state  (D&E)|(IQ&!E)
+
+SDFF	    function	Q=IQ	clocked_on  C	    next_state  (D&!E)|(SD&E)
+SDFFQ	    function	Q=IQ	QB=IQB	clocked_on  C	    next_state  (D&!E)|(SD&E)
diff --git a/scripts/configure b/scripts/configure
index e319bae..536a041 100755
--- a/scripts/configure
+++ b/scripts/configure
@@ -586,6 +586,7 @@
 
 ac_subst_vars='LTLIBOBJS
 LIBOBJS
+EF_STYLE
 MAGIC
 pkgpyexecdir
 pyexecdir
@@ -596,9 +597,10 @@
 PYTHON_PREFIX
 PYTHON_VERSION
 PYTHON
-LOCAL_PATH
-test_tech_SOURCE_PATH
-sky130_SOURCE_PATH
+SKY130_LINK_TARGETS
+SKY130_DIST_PATH
+SKY130_LOCAL_PATH
+SKY130_SOURCE_PATH
 target_alias
 host_alias
 build_alias
@@ -641,8 +643,10 @@
 ac_user_opts='
 enable_option_checking
 with_sky130_source
-with_test_tech_source
-with_local_path
+with_sky130_local_path
+with_sky130_dist_path
+with_sky130_link_targets
+with_ef_style
 '
       ac_precious_vars='build_alias
 host_alias
@@ -1258,8 +1262,16 @@
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
   --with-sky130-source=/path/to/sky130/source
                           "location of the source files for sky130"
-  --with-local-path=/path/to/install/pdks
-                          "location where the PDKs will be installed"
+  --with-sky130-local-path=/path/to/install/pdks
+                          "run-time location of the PDKs"
+  --with-sky130-dist-path=/path/to/install/pdks
+                          "staging location to install the PDKs for
+                          distribution (optional)"
+  --with-sky130-link-targets=none|source
+                          "make symbolic links to existing files
+                          [default=none]"
+  --with-ef-style         Use efabless style file system structure
+                          [default=no]
 
 Some influential environment variables:
   PYTHON      the Python interpreter
@@ -1699,37 +1711,46 @@
 # detect PDKs based on directories that include Makefile.in files
 
 
+# check for the source and install paths for each PDK.
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: Found technology directories: sky130 test_tech" >&5
-$as_echo "$as_me: Found technology directories: sky130 test_tech" >&6;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: Found technology directories: sky130" >&5
+$as_echo "$as_me: Found technology directories: sky130" >&6;}
 
 
     # --with-pdk-source=PDK_SOURCE_PATH
 
-        { $as_echo "$as_me:${as_lineno-$LINENO}: Checking whether 'sky130' is specified" >&5
-$as_echo "$as_me: Checking whether 'sky130' is specified" >&6;}
+
+        SKY130_SOURCE_PATH=""
 
 # Check whether --with-sky130-source was given.
 if test "${with_sky130_source+set}" = set; then :
-  withval=$with_sky130_source;
-               sky130_SOURCE_PATH=$with_sky130_source
-               { $as_echo "$as_me:${as_lineno-$LINENO}: Checking specified path for 'sky130' at $sky130_SOURCE_PATH" >&5
-$as_echo "$as_me: Checking specified path for 'sky130' at $sky130_SOURCE_PATH" >&6;}
+  withval=$with_sky130_source; SKY130_SOURCE_PATH=$withval
 
-               # force an absolute path
-               # pdk[]_SOURCE_PATH=$(readlink -f $[]pdk[]_SOURCE_PATH)
+fi
 
-               # basic check that the PDK exists there (the path must exist in any case)
-               as_ac_File=`$as_echo "ac_cv_file_$sky130_SOURCE_PATH" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sky130_SOURCE_PATH" >&5
-$as_echo_n "checking for $sky130_SOURCE_PATH... " >&6; }
+
+	# Require this argument
+        { $as_echo "$as_me:${as_lineno-$LINENO}: Checking whether source path is specified for 'sky130'" >&5
+$as_echo "$as_me: Checking whether source path is specified for 'sky130'" >&6;}
+        if test "x$SKY130_SOURCE_PATH" == "x" ; then
+	   as_fn_error $? "Option --with-sky130-source=<path> not specified!" "$LINENO" 5
+	fi
+
+	SKY130_SOURCE_PATH=$(readlink -f $SKY130_SOURCE_PATH)
+
+        # basic check that the PDK exists there (the path must exist in any case)
+        { $as_echo "$as_me:${as_lineno-$LINENO}: Checking specified path for 'sky130' at $SKY130_SOURCE_PATH" >&5
+$as_echo "$as_me: Checking specified path for 'sky130' at $SKY130_SOURCE_PATH" >&6;}
+        as_ac_File=`$as_echo "ac_cv_file_$SKY130_SOURCE_PATH" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $SKY130_SOURCE_PATH" >&5
+$as_echo_n "checking for $SKY130_SOURCE_PATH... " >&6; }
 if eval \${$as_ac_File+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   test "$cross_compiling" = yes &&
   as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
-if test -r "$sky130_SOURCE_PATH"; then
+if test -r "$SKY130_SOURCE_PATH"; then
   eval "$as_ac_File=yes"
 else
   eval "$as_ac_File=no"
@@ -1740,90 +1761,78 @@
 $as_echo "$ac_res" >&6; }
 if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
 
-                        { $as_echo "$as_me:${as_lineno-$LINENO}: 'sky130' source path found at $sky130_SOURCE_PATH" >&5
-$as_echo "$as_me: 'sky130' source path found at $sky130_SOURCE_PATH" >&6;}
+           { $as_echo "$as_me:${as_lineno-$LINENO}: 'sky130' source path found at $SKY130_SOURCE_PATH" >&5
+$as_echo "$as_me: 'sky130' source path found at $SKY130_SOURCE_PATH" >&6;}
 
 else
 
-                        as_fn_error $? "Specified path for 'sky130' at $sky130_SOURCE_PATH not found" "$LINENO" 5
-
+           as_fn_error $? "Specified path for 'sky130' at $SKY130_SOURCE_PATH not found" "$LINENO" 5
 
 fi
 
 
 
+
+
+    # --with-pdk-local-path=PDK_LOCAL_PATH
+
+
+        SKY130_LOCAL_PATH=""
+
+# Check whether --with-sky130-local-path was given.
+if test "${with_sky130_local_path+set}" = set; then :
+  withval=$with_sky130_local_path; SKY130_LOCAL_PATH=$withval
+
 fi
 
+	# Require this argument
+        { $as_echo "$as_me:${as_lineno-$LINENO}: Checking whether local path is specified for 'sky130'" >&5
+$as_echo "$as_me: Checking whether local path is specified for 'sky130'" >&6;}
+        if test "x$SKY130_LOCAL_PATH" == "x" ; then
+	   as_fn_error $? "Option --with-sky130-local-path=<path> not specified!" "$LINENO" 5
+	fi
+	SKY130_LOCAL_PATH=$(readlink -f $SKY130_LOCAL_PATH)
 
 
-        { $as_echo "$as_me:${as_lineno-$LINENO}: Checking whether 'test_tech' is specified" >&5
-$as_echo "$as_me: Checking whether 'test_tech' is specified" >&6;}
 
-# Check whether --with-test_tech-source was given.
-if test "${with_test_tech_source+set}" = set; then :
-  withval=$with_test_tech_source;
-               test_tech_SOURCE_PATH=$with_test_tech_source
-               { $as_echo "$as_me:${as_lineno-$LINENO}: Checking specified path for 'test_tech' at $test_tech_SOURCE_PATH" >&5
-$as_echo "$as_me: Checking specified path for 'test_tech' at $test_tech_SOURCE_PATH" >&6;}
+    # --with-pdk-dist-path=PDK_DIST_PATH
 
-               # force an absolute path
-               # pdk[]_SOURCE_PATH=$(readlink -f $[]pdk[]_SOURCE_PATH)
 
-               # basic check that the PDK exists there (the path must exist in any case)
-               as_ac_File=`$as_echo "ac_cv_file_$test_tech_SOURCE_PATH" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $test_tech_SOURCE_PATH" >&5
-$as_echo_n "checking for $test_tech_SOURCE_PATH... " >&6; }
-if eval \${$as_ac_File+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  test "$cross_compiling" = yes &&
-  as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
-if test -r "$test_tech_SOURCE_PATH"; then
-  eval "$as_ac_File=yes"
-else
-  eval "$as_ac_File=no"
+        SKY130_DIST_PATH=""
+
+# Check whether --with-sky130-dist-path was given.
+if test "${with_sky130_dist_path+set}" = set; then :
+  withval=$with_sky130_dist_path; SKY130_DIST_PATH=$withval
+
 fi
-fi
-eval ac_res=\$$as_ac_File
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
 
-                        { $as_echo "$as_me:${as_lineno-$LINENO}: 'test_tech' source path found at $test_tech_SOURCE_PATH" >&5
-$as_echo "$as_me: 'test_tech' source path found at $test_tech_SOURCE_PATH" >&6;}
+	# Require this argument
+        { $as_echo "$as_me:${as_lineno-$LINENO}: Checking whether distribution path is specified for 'sky130'" >&5
+$as_echo "$as_me: Checking whether distribution path is specified for 'sky130'" >&6;}
+        if test "x$SKY130_DIST_PATH" == "x" ; then
+	   { $as_echo "$as_me:${as_lineno-$LINENO}: Option --with-sky130-dist-path=<path> not specified.  Local install only.\"" >&5
+$as_echo "$as_me: Option --with-sky130-dist-path=<path> not specified.  Local install only.\"" >&6;}
+	fi
+	SKY130_DIST_PATH=$(readlink -f $SKY130_DIST_PATH)
 
-else
 
-                        as_fn_error $? "Specified path for 'test_tech' at $test_tech_SOURCE_PATH not found" "$LINENO" 5
 
+    # --with-pdk-link-targets=PDK_LINK_TARGETS
+
+
+	# Default link_targets = "none"
+	SKY130_LINK_TARGETS="none"
+
+
+# Check whether --with-sky130-link-targets was given.
+if test "${with_sky130_link_targets+set}" = set; then :
+  withval=$with_sky130_link_targets; SKY130_LINK_TARGETS=$with_sky130_link_targets
 
 fi
 
 
-
-fi
-
-
-
-
-
-# --with-local-path=LOCAL_PATH
-
-# Check whether --with-local-path was given.
-if test "${with_local_path+set}" = set; then :
-  withval=$with_local_path;
-       LOCAL_PATH=$with_local_path
-       { $as_echo "$as_me:${as_lineno-$LINENO}: Local installation path set to $LOCAL_PATH" >&5
-$as_echo "$as_me: Local installation path set to $LOCAL_PATH" >&6;}
-
-else
-
-       as_fn_error $? "--with-local-path=/path/to/install/pdks is a required argument" "$LINENO" 5
-
-
-fi
-
-
+        { $as_echo "$as_me:${as_lineno-$LINENO}: Link targets set to $SKY130_LINK_TARGETS" >&5
+$as_echo "$as_me: Link targets set to $SKY130_LINK_TARGETS" >&6;}
 
 
 
@@ -1869,7 +1878,7 @@
   $as_echo_n "(cached) " >&6
 else
 
-	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
+	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
 	  test "$am_cv_pathless_PYTHON" = none && break
 	  prog="import sys
 # split strings by '.' and convert to numeric.  Append some zeros
@@ -2092,33 +2101,28 @@
 
     if test -z $PYTHON;
     then
-        if test -z "";
-        then
-            PYTHON="python3"
-        else
-            PYTHON=""
-        fi
+        PYTHON="python"
     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.
@@ -2165,6 +2169,20 @@
    as_fn_error $? "You need 'magic' to generate the needed various cell views" "$LINENO" 5
 fi
 
+# Check for "--with-ef-style"
+EF_STYLE=0
+
+# Check whether --with-ef-style was given.
+if test "${with_ef_style+set}" = set; then :
+  withval=$with_ef_style;
+    pdks_ef_style=$withval
+    if test "$withval" == "yes" -o "$withval" == "YES"; then
+        EF_STYLE=1
+    fi
+
+fi
+
+
 
 
 MAKEFILES=$(find .. -name "Makefile.in" | sed 's/\(.*\)\.in/\1/g')
diff --git a/scripts/configure.ac b/scripts/configure.ac
index 52e74d5..362d3d2 100755
--- a/scripts/configure.ac
+++ b/scripts/configure.ac
@@ -3,64 +3,114 @@
 # detect PDKs based on directories that include Makefile.in files
 m4_define([M4_GET_TECHS], [m4_normalize(m4_esyscmd(cd .. && find * -mindepth 1 -name "Makefile.in" -exec dirname {} \; | tr "\n" " "))])
 
-AC_DEFUN([M4_GEN_WITH_PDK_SOURCE_ARGS],
+# check for the source and install paths for each PDK.
+AC_DEFUN([M4_GEN_WITH_PDK_ARGS],
 [
     # --with-pdk-source=PDK_SOURCE_PATH
     m4_foreach_w(pdk, $1, [
-        AC_MSG_NOTICE([Checking whether 'pdk' is specified])
+	m4_define([pdkvar], [m4_normalize(m4_esyscmd(echo pdk | tr "a-z" "A-Z"))])
+        pdkvar[]_SOURCE_PATH=""
         AC_ARG_WITH(pdk-source,
               [AS_HELP_STRING([--with-pdk-source=/path/to/pdk/source], "location of the source files for pdk")],
-              [
-               pdk[]_SOURCE_PATH=$with_[]pdk[]_source
-               AC_MSG_NOTICE([Checking specified path for 'pdk' at $[]pdk[]_SOURCE_PATH])
-
-               # force an absolute path
-               # pdk[]_SOURCE_PATH=$(readlink -f $[]pdk[]_SOURCE_PATH)
-
-               # basic check that the PDK exists there (the path must exist in any case)
-               AC_CHECK_FILE($[]pdk[]_SOURCE_PATH,
-                       [
-                        AC_MSG_NOTICE(['pdk' source path found at $[]pdk[]_SOURCE_PATH])
-                       ],
-                       [
-                        AC_MSG_ERROR([Specified path for 'pdk' at $[]pdk[]_SOURCE_PATH not found])
-                       ]
-               )
-              ]
+              [pdkvar[]_SOURCE_PATH=$withval]
         )
-        AC_SUBST([]pdk[]_SOURCE_PATH)
+
+	# Require this argument
+        AC_MSG_NOTICE([Checking whether source path is specified for 'pdk'])
+        if test "x$[]pdkvar[]_SOURCE_PATH" == "x" ; then
+	   AC_MSG_ERROR([Option --with-pdk-source=<path> not specified!])
+	fi
+
+	pdkvar[]_SOURCE_PATH=$(readlink -f $[]pdkvar[]_SOURCE_PATH)
+
+        # basic check that the PDK exists there (the path must exist in any case)
+        AC_MSG_NOTICE([Checking specified path for 'pdk' at $[]pdkvar[]_SOURCE_PATH])
+        AC_CHECK_FILE($[]pdkvar[]_SOURCE_PATH,
+        [
+           AC_MSG_NOTICE(['pdk' source path found at $[]pdkvar[]_SOURCE_PATH])
+        ],
+        [
+           AC_MSG_ERROR([Specified path for 'pdk' at $[]pdkvar[]_SOURCE_PATH not found])
+        ])
+        AC_SUBST([]pdkvar[]_SOURCE_PATH)
+    ])
+
+
+    # --with-pdk-local-path=PDK_LOCAL_PATH
+    m4_foreach_w(pdk, $1, [
+	m4_define([pdkvar], [m4_normalize(m4_esyscmd(echo pdk | tr "a-z" "A-Z"))])
+        pdkvar[]_LOCAL_PATH=""
+        AC_ARG_WITH(pdk-local-path,
+              [AS_HELP_STRING([--with-pdk-local-path=/path/to/install/pdks], "run-time location of the PDKs")],
+              [pdkvar[]_LOCAL_PATH=$withval]
+        )
+	# Require this argument
+        AC_MSG_NOTICE([Checking whether local path is specified for 'pdk'])
+        if test "x$[]pdkvar[]_LOCAL_PATH" == "x" ; then
+	   AC_MSG_ERROR([Option --with-pdk-local-path=<path> not specified!])
+	fi
+	pdkvar[]_LOCAL_PATH=$(readlink -f $[]pdkvar[]_LOCAL_PATH)
+        AC_SUBST([]pdkvar[]_LOCAL_PATH)
+    ])
+
+    # --with-pdk-dist-path=PDK_DIST_PATH
+    m4_foreach_w(pdk, $1, [
+	m4_define([pdkvar], [m4_normalize(m4_esyscmd(echo pdk | tr "a-z" "A-Z"))])
+        pdkvar[]_DIST_PATH=""
+        AC_ARG_WITH(pdk-dist-path,
+              [AS_HELP_STRING([--with-pdk-dist-path=/path/to/install/pdks], "staging location to install the PDKs for distribution (optional)")],
+              [[]pdkvar[]_DIST_PATH=$withval]
+        )
+	# Require this argument
+        AC_MSG_NOTICE([Checking whether distribution path is specified for 'pdk'])
+        if test "x$[]pdkvar[]_DIST_PATH" == "x" ; then
+	   AC_MSG_NOTICE([Option --with-pdk-dist-path=<path> not specified.  Local install only."])
+	fi
+	pdkvar[]_DIST_PATH=$(readlink -f $[]pdkvar[]_DIST_PATH)
+        AC_SUBST([]pdkvar[]_DIST_PATH)
+    ])
+
+    # --with-pdk-link-targets=PDK_LINK_TARGETS
+    m4_foreach_w(pdk, $1, [
+	m4_define([pdkvar], [m4_normalize(m4_esyscmd(echo pdk | tr "a-z" "A-Z"))])
+	# Default link_targets = "none"
+	pdkvar[]_LINK_TARGETS="none"
+
+        AC_ARG_WITH(pdk-link-targets,
+              [AS_HELP_STRING([--with-pdk-link-targets=none|source], "make symbolic links to existing files @<:@default=none@:>@")],
+              [[]pdkvar[]_LINK_TARGETS=$with_[]pdk[]_link_targets]
+        )
+        AC_SUBST([]pdkvar[]_LINK_TARGETS)
+        AC_MSG_NOTICE([Link targets set to $[]pdkvar[]_LINK_TARGETS])
     ])
 ])
 
 AC_MSG_NOTICE([Found technology directories: M4_GET_TECHS()])
 
-M4_GEN_WITH_PDK_SOURCE_ARGS(M4_GET_TECHS())
-
-# --with-local-path=LOCAL_PATH
-AC_ARG_WITH(local-path,
-      [AS_HELP_STRING([--with-local-path=/path/to/install/pdks], "location where the PDKs will be installed")],
-      [
-       LOCAL_PATH=$with_local_path
-       AC_MSG_NOTICE([Local installation path set to $LOCAL_PATH])
-      ],
-      [
-       AC_MSG_ERROR([--with-local-path=/path/to/install/pdks is a required argument])
-      ]
-)
-AC_SUBST(LOCAL_PATH)
-
-
+M4_GEN_WITH_PDK_ARGS(M4_GET_TECHS())
 
 # Checking if (some) prerequisites are satisfied
 AM_PATH_PYTHON([3.4])
-AX_PYTHON_MODULE(distutils)
+AX_PYTHON_MODULE([distutils],[])
 
 AC_PATH_PROG(MAGIC, magic)
 if test -z "$MAGIC"; then
    AC_MSG_ERROR([You need 'magic' to generate the needed various cell views])
 fi
 
+# Check for "--with-ef-style"
+EF_STYLE=0
+AC_ARG_WITH([ef-style],
+  [AS_HELP_STRING([--with-ef-style],
+    [Use efabless style file system structure @<:@default=no@:>@])],
+  [
+    pdks_ef_style=$withval
+    if test "$withval" == "yes" -o "$withval" == "YES"; then
+        EF_STYLE=1
+    fi
+  ], )
 
+AC_SUBST(EF_STYLE)
 
 MAKEFILES=$(find .. -name "Makefile.in" | sed 's/\(.*\)\.in/\1/g')
 AC_CONFIG_FILES($MAKEFILES)
diff --git a/sky130/Makefile.in b/sky130/Makefile.in
index 1c39ec1..8485deb 100644
--- a/sky130/Makefile.in
+++ b/sky130/Makefile.in
@@ -11,9 +11,41 @@
 #
 # Instructions:
 #
-# Modify values below as needed:
+# Run "configure" from the top level directory.  Use the following
+# configuration options to match your environment:
 #
-#	VENDOR_PATH: points to vendor sources
+#	--with-sky130-source-path=<path>
+#		where <path> is the location of the Google/Skywater repository
+#		cloned from https://github.com/google/skywater-pdk.  This
+#		option is mandatory and has no default.
+#
+#	--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.
+#
+# 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
@@ -21,21 +53,16 @@
 #		    for distributed install
 #
 # Run "make" to stage the PDK for tool setup and vendor libraries
-
-# If installing into the final destination (local install):
 #
-#   Run "make install-local" to install all staged files
-#   ("make install" is equivalent to "make install-local")
-#
-# If installing into a repository to be distributed to the final destination:
-#
-#   Run "make install-dist" to install all staged files
+# 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 install log files.
 #
-# For the sake of simplicity, the "standard" local install can be done
+# For the sake of simplicity, the "standard" installation can be done
 # with the usual
 #
 #   make
@@ -54,8 +81,8 @@
 # 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
-# EF_STYLE = 1
+# 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
@@ -71,9 +98,8 @@
 # same files in that PDK, where they exist, and are copied
 # from source, where they don't.
 
-# LINK_TARGETS = source
-LINK_TARGETS = none
-# LINK_TARGETS = sky130A
+# LINK_TARGETS = source | none | sky130A
+LINK_TARGETS = @SKY130_LINK_TARGETS@
 
 # Paths:
 
@@ -82,26 +108,27 @@
 # SKYWATER_PATH = ~/gits/skywater-pdk-scratch/skywater-pdk/libraries
 # Version below is also from foss-eda-tools and is more recent than
 # the scratch repo above.
-SKYWATER_PATH = @sky130_SOURCE_PATH@
+SKYWATER_PATH = @SKY130_SOURCE_PATH@
 
-# Path to OSU standard cell library sources
+# Path to OSU standard cell library sources (to be added to configuration options).
 OSU_PATH = ~/gits/osu_130_pdk
 
 # 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 = @LOCAL_PATH@
+    LOCAL_PATH = @SKY130_LOCAL_PATH@
     CONFIG_DIR = .ef-config
     REV_DIR = ${REVISION}
 else
     # LOCAL_PATH = /usr/local/share/vlsi/SkyWater
-    LOCAL_PATH = @LOCAL_PATH@
+    LOCAL_PATH = @SKY130_LOCAL_PATH@
     CONFIG_DIR = .config
     REV_DIR = .
 endif
 
-DIST_PATH = ~/gits/ef-skywater-${TECH}
+# DIST_PATH = ~/gits/ef-skywater-${TECH}
+DIST_PATH = @SKY130_DIST_PATH@
 
 # EF process nodes created from the master sources
 SKY130A = sky130A
@@ -400,7 +427,12 @@
 	# ${ADDPROP} ${STAGING_PATH}/${SKY130A} sky130_fd_io sky130_fd_io_top_xres4v2 \
 	# 	"FIXED_BBOX 0 407 15000 40000"
 
-install: install-local
+install:
+	if test "x${DIST_PATH}" == "x" ; then
+	    ${MAKE} install-local
+	else
+	    ${MAKE} install-dist
+	fi
 
 install-local: install-local-a
 
diff --git a/sky130/netgen/sky130_setup.tcl b/sky130/netgen/sky130_setup.tcl
index bb5c574..7669f39 100644
--- a/sky130/netgen/sky130_setup.tcl
+++ b/sky130/netgen/sky130_setup.tcl
@@ -63,8 +63,7 @@
 
 set devices {mrl1 mrm1 mrm2 mrm3}
 #ifdef METAL5
-lappend devices mrm4
-lappend devices mrm5
+lappend devices mrm4 mrm5
 #endif (METAL5)
 
 foreach dev $devices {
@@ -101,9 +100,8 @@
 #-------------------------------------------
 
 set devices {nshort nlowvt sonos_e nhvnative nhv pshort plowvt phighvt phv}
-lappend devices xcnwvc
-lappend devices xcnwvc2
-lappend devices xchvnwc
+lappend devices ppu npass npd
+lappend devices xcnwvc xcnwvc2 xchvnwc
 
 foreach dev $devices {
     if {[lsearch $cells1 $dev] >= 0} {
