diff --git a/README.md b/README.md
index 89f929f..e5d34ae 100644
--- a/README.md
+++ b/README.md
@@ -58,7 +58,7 @@
 the need to declare an install target or run "make install".  However, it is
 recommended to declare a target location and install there, using
 
-    ./configure --enable-[PDK_name]-pdk=[path] --with-[PDK_name]-local-path=[path]
+    ./configure --prefix=[/opt/pdks] --enable-[PDK_name]-pdk=[path]
 
 followed by "make" and "make install".
 
diff --git a/common/staging_install.py b/common/staging_install.py
index 52dad2e..be8d9e3 100755
--- a/common/staging_install.py
+++ b/common/staging_install.py
@@ -1,29 +1,54 @@
 #!/usr/bin/env python3
-#
-# staging_install.py
-#
-# This file copies the staging area created by foundry_install.py
-# into the target directory area, changing paths to match the target,
-# and creating symbolic links where requested and allowed.
-#
-# Options:
-#    -link_from <type>	Make symbolic links to vendor files from target
-#			Types are: "none", "source", or a PDK name.
-#			Default "none" (copy all files from source)
-#    -ef_format		Use efabless naming (libs.ref/techLEF),
-#			otherwise use generic naming (libs.tech/lef)
-#
-#    -staging <path>	Path to staging top level directory
-#    -target <path>	Path to target top level directory
-#    -local <path>	For distributed installs, this is the local
-#			path to target top level directory.
-#    -source <path>     Path to original source top level directory,
-#                       if link_from is "source".  This option may
-#                       be called multiple times if there are multiple
-#                       sources.
-#    -variable <name>	Specify a variable name that is used for the
-#			target path.  This variable name must be enforced
-#			in setup scripts like .magicrc
+
+"""
+staging_install.py [options...]
+
+This file copies the staging area created by foundry_install.py
+into the target directory area, changing paths to match the target,
+and creating symbolic links where requested and allowed.
+
+Options:
+  -staging <path>    Path to staging top level directory that the files
+                     will be installed from.
+
+  -target <path>     Final install path in system file system.
+
+                     Normally, '$(prefix)/pdks/<unique pdk name>'.
+
+                     If -local is not given, this will be the top level
+                     directory location the files are installed too.
+
+  -local <path>      Actual file system location to write the files too.
+                     The result can then be packaged and distributed.
+
+                     For usage with things like package managers and other
+                     administrator installation tooling.  The resulting
+                     files still need to be installed at '-target' on the
+                     final system.
+
+                     Think 'DESTDIR', see
+                     https://www.gnu.org/prep/standards/html_node/DESTDIR.html
+
+  -source <path>     Path to original source top level directory, if
+                     link_from is "source".  This option may be called
+                     multiple times if there are multiple sources.
+
+  -variable <name>   Specify a variable name that is used for the
+                     target path.  This variable name must be enforced
+                     in setup scripts like .magicrc
+
+Less common options:
+  -link_from <type>  Make symbolic links to vendor files from target.
+
+                     Types are: "none", "source", or a PDK name.
+
+                     Default "none" (copy all files from source)
+
+  -ef_format         Use efabless naming (libs.ref/techLEF),
+                     otherwise use generic naming (libs.tech/lef)
+
+If <target> is unspecified then <name> is used for the target.
+"""
 
 import re
 import os
@@ -38,20 +63,6 @@
 # in Python 3.8 and up ONLY using "dirs_exist_ok=True".
 from distutils.dir_util import copy_tree
 
-def usage():
-    print("staging_install.py [options...]")
-    print("   -link_from <name> Make symbolic links from target to <name>")
-    print("                     where <name> can be 'source' or a PDK name.")
-    print("                     Default behavior is to copy all files.")
-    print("   -copy             Copy files from source to target (default)")
-    print("   -ef_format        Use efabless naming conventions for local directories")
-    print("")
-    print("   -staging <path>   Path to top of staging directory tree")
-    print("   -target <path>    Path to top of target directory tree")
-    print("   -local <path>	Local path to top of target directory tree for distributed install")
-    print("")
-    print(" If <target> is unspecified then <name> is used for the target.")
-
 def makeuserwritable(filepath):
     if os.path.exists(filepath):
         st = os.stat(filepath)
@@ -225,7 +236,7 @@
 
     if len(sys.argv) == 1:
         print("No options given to staging_install.py.")
-        usage()
+        print(__doc__)
         sys.exit(0)
 
     optionlist = []
diff --git a/scripts/configure b/scripts/configure
index 80d66e5..aed9348 100755
--- a/scripts/configure
+++ b/scripts/configure
@@ -585,7 +585,6 @@
 PACKAGE_BUGREPORT='github.com/RTimothyEdwards/open_pdks'
 PACKAGE_URL=''
 
-ac_default_prefix=/usr/share
 ac_subst_vars='LTLIBOBJS
 LIBOBJS
 EF_STYLE
@@ -662,8 +661,6 @@
 ac_user_opts='
 enable_option_checking
 enable_sky130_pdk
-with_sky130_dist_path
-with_sky130_local_path
 with_sky130_link_targets
 enable_klayout
 enable_magic
@@ -1362,11 +1359,6 @@
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-sky130-dist-path=/path/to/install/sky130
-                          "staging location to install the PDK for
-                          distribution (optional)"
-  --with-sky130-local-path=/path/to/install/sky130
-                          "run-time location of the PDK"
   --with-sky130-link-targets=none|source
                           "make symbolic links to existing files
                           [default=none]"
@@ -1933,7 +1925,7 @@
 if ${am_cv_python_version+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"`
+  am_cv_python_version=`$PYTHON -c "import sys; print('%u.%u' % sys.version_info[:2])"`
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5
 $as_echo "$am_cv_python_version" >&6; }
@@ -2205,7 +2197,7 @@
 
 
         SKY130_SOURCE_PATH=""
-        SKY130_LOCAL_PATH="/usr/share/pdk"
+        SKY130_LOCAL_PATH="${datadir}/pdk"
         SKY130_DIST_PATH=""
         SKY130_LINK_TARGETS="none"
         SKY130_AUTO="0"
@@ -2270,50 +2262,6 @@
 $as_echo "$as_me: PDK 'sky130' will be downloaded automatically during make." >&6;}
 	    fi
 
-            # --with-pdk-dist-path=PDK_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
-
-
-            # "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;}
-                SKY130_DIST_PATH=""
-            else
-                SKY130_DIST_PATH=`realpath $SKY130_DIST_PATH`
-            fi
-
-            # --with-pdk-local-path=PDK_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
-                SKY130_LOCAL_PATH=""
-            else
-            	{ $as_echo "$as_me:${as_lineno-$LINENO}: Install path for 'sky130' is $SKY130_LOCAL_PATH" >&5
-$as_echo "$as_me: Install path for 'sky130' is $SKY130_LOCAL_PATH" >&6;}
-		# If dist-path is specified then do not try to expand local-path
-		if test "$SKY130_DIST_PATH" == "" ; then
-		    SKY130_LOCAL_PATH=`realpath $SKY130_LOCAL_PATH`
-		fi
-            fi
-
             # --with-pdk-link-targets=PDK_LINK_TARGETS
 
 # Check whether --with-sky130-link-targets was given.
diff --git a/scripts/configure.ac b/scripts/configure.ac
index 972bd37..5fdc3ef 100755
--- a/scripts/configure.ac
+++ b/scripts/configure.ac
@@ -1,6 +1,6 @@
 AC_INIT([open_pdks], [1.0], [github.com/RTimothyEdwards/open_pdks])
 
-AC_PREFIX_DEFAULT(/usr/share)
+AC_CONFIG_MACRO_DIR(m4)
 
 ## REQUIRES: https://www.gnu.org/software/autoconf-archive/ax_python_module.html#ax_python_module
 AM_PATH_PYTHON([3.4])
@@ -36,8 +36,6 @@
         m4_define([pdkvar], [m4_normalize(m4_esyscmd(echo pdk | tr "a-z-" "A-Z_"))])
 
         pdkvar[]_SOURCE_PATH=""
-        pdkvar[]_LOCAL_PATH="/usr/share/[pdk]"
-        pdkvar[]_DIST_PATH=""
         pdkvar[]_LINK_TARGETS="none"
         pdkvar[]_AUTO="0"
 
@@ -55,7 +53,6 @@
             ], [
             ]
         )
-	    # # Require this argument
 
         if @<:@ "$[]pdkvar[]_SOURCE_PATH" != "" @:>@; then
             pdkvar[]_SOURCE_PATH=`realpath $[]pdkvar[]_SOURCE_PATH`
@@ -76,40 +73,6 @@
 		AC_MSG_NOTICE([PDK 'pdk' will be downloaded automatically during make.])
 	    fi
 
-            # --with-pdk-dist-path=PDK_DIST_PATH
-            AC_ARG_WITH(pdk-dist-path,
-                [AS_HELP_STRING([--with-pdk-dist-path=/path/to/install/pdk], "staging location to install the PDK 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.])
-                pdkvar[]_DIST_PATH=""
-            else
-                pdkvar[]_DIST_PATH=`realpath $[]pdkvar[]_DIST_PATH`
-            fi
-
-            # --with-pdk-local-path=PDK_LOCAL_PATH
-            AC_ARG_WITH(pdk-local-path,
-                [AS_HELP_STRING([--with-pdk-local-path=/path/to/install/pdk], "run-time location of the PDK")],
-                [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!])
-                pdkvar[]_LOCAL_PATH=""
-            else
-            	AC_MSG_NOTICE([Install path for 'pdk' is $[]pdkvar[]_LOCAL_PATH])
-		# If dist-path is specified then do not try to expand local-path
-		if test "$[]pdkvar[]_DIST_PATH" == "" ; then
-		    pdkvar[]_LOCAL_PATH=`realpath $[]pdkvar[]_LOCAL_PATH`
-		fi
-            fi
-
             # --with-pdk-link-targets=PDK_LINK_TARGETS
             AC_ARG_WITH(pdk-link-targets,
                 [AS_HELP_STRING([--with-pdk-link-targets=none|source], "make symbolic links to existing files @<:@default=none@:>@")],
@@ -120,8 +83,6 @@
         fi
 
         AC_SUBST(pdkvar[]_SOURCE_PATH)
-        AC_SUBST(pdkvar[]_LOCAL_PATH)
-        AC_SUBST(pdkvar[]_DIST_PATH)
         AC_SUBST(pdkvar[]_LINK_TARGETS)
     ])
 ])
diff --git a/scripts/m4/ax_python_module.m4 b/scripts/m4/ax_python_module.m4
new file mode 100644
index 0000000..f0f873d
--- /dev/null
+++ b/scripts/m4/ax_python_module.m4
@@ -0,0 +1,56 @@
+# ===========================================================================
+#     https://www.gnu.org/software/autoconf-archive/ax_python_module.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+#   AX_PYTHON_MODULE(modname[, fatal, python])
+#
+# DESCRIPTION
+#
+#   Checks for Python module.
+#
+#   If fatal is non-empty then absence of a module will trigger an error.
+#   The third parameter can either be "python" for Python 2 or "python3" for
+#   Python 3; defaults to Python 3.
+#
+# LICENSE
+#
+#   Copyright (c) 2008 Andrew Collier
+#
+#   Copying and distribution of this file, with or without modification, are
+#   permitted in any medium without royalty provided the copyright notice
+#   and this notice are preserved. This file is offered as-is, without any
+#   warranty.
+
+#serial 9
+
+AU_ALIAS([AC_PYTHON_MODULE], [AX_PYTHON_MODULE])
+AC_DEFUN([AX_PYTHON_MODULE],[
+    if test -z $PYTHON;
+    then
+        if test -z "$3";
+        then
+            PYTHON="python3"
+        else
+            PYTHON="$3"
+        fi
+    fi
+    PYTHON_NAME=`basename $PYTHON`
+    AC_MSG_CHECKING($PYTHON_NAME module: $1)
+    $PYTHON -c "import $1" 2>/dev/null
+    if test $? -eq 0;
+    then
+        AC_MSG_RESULT(yes)
+        eval AS_TR_CPP(HAVE_PYMOD_$1)=yes
+    else
+        AC_MSG_RESULT(no)
+        eval AS_TR_CPP(HAVE_PYMOD_$1)=no
+        #
+        if test -n "$2"
+        then
+            AC_MSG_ERROR(failed to find required module $1)
+            exit 1
+        fi
+    fi
+])
diff --git a/sky130/Makefile.in b/sky130/Makefile.in
index 883b80e..6576f3c 100644
--- a/sky130/Makefile.in
+++ b/sky130/Makefile.in
@@ -21,18 +21,6 @@
 #		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
@@ -129,15 +117,10 @@
 #	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 install" to install all staged files.
 #
 # Run "make clean" to remove all staging files.
 #
@@ -156,6 +139,10 @@
 MV = mv
 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)
@@ -184,6 +171,8 @@
 
 STAGING_PATH = $(shell pwd)/build
 
+SHARED_PDKS_PATH = $(datadir)/pdks
+
 # 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
@@ -227,24 +216,18 @@
 # 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}
+    DIST_LINK_TARGETS = ${SHARED_PDKS_PATH}/${LINK_TARGETS}
 else
     DIST_LINK_TARGETS = ${LINK_TARGETS}
 endif
@@ -391,13 +374,17 @@
 # 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}
+ifneq ($(DESTDIR), )
+INSTALL = ../common/staging_install.py -local $(DESTDIR)
+else
 INSTALL = ../common/staging_install.py ${EF_FORMAT}
+endif
 
 # 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 =
+TOOLS = 
 
 # KLAYOUT_DISABLED = 0 | 1
 KLAYOUT_DISABLED = @KLAYOUT_DISABLED@
@@ -1133,56 +1120,23 @@
 			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: install-a
 
-install-local: install-local-a
-
-install-local-a:
+install-a:
 	echo "Starting SKY130 PDK migration on "`date` > ${SKY130A}_install.log
-	${INSTALL} -source ${STAGING_PATH}/${SKY130A} \
-		-target ${LOCAL_PATH}/${SKY130A} \
+	${INSTALL} \
+		-source ${STAGING_PATH}/${SKY130A} \
+		-target ${SHARED_PDKS_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
+uninstall: uninstall-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} ; \
+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"
 
@@ -1199,4 +1153,32 @@
 	# Legacy name
 	${RM} ${SKY130A}_migrate.log
 
+# Old aliases 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
