diff --git a/scripts/configure b/scripts/configure
index 63178f2..cf9794e 100755
--- a/scripts/configure
+++ b/scripts/configure
@@ -2101,32 +2101,17 @@
 
 
         SKY130_SOURCE_PATH=""
-        SKY130_LOCAL_PATH=""
+        SKY130_LOCAL_PATH="/usr/share/pdk"
         SKY130_DIST_PATH=""
         SKY130_LINK_TARGETS="none"
-
-        pdk_find() {
-            FOUND=0
-            for path in /opt/pdks/sky130 /usr/share/pdks/sky130 /usr/local/share/pdks/sky130; do
-                if [ -d $path ] ; then
-                    echo "Found sky130 in $path, using this installation..."
-                    export SKY130_SOURCE_PATH=$path
-                    export SKY130_FOUND=1
-                    FOUND=1
-                fi
-            done
-            if [ "$FOUND" = "0" ]; then
-                export SKY130_SOURCE_PATH=../sources/sky130-pdk
-                export SKY130_FOUND=0
-            fi
-        }
+        SKY130_AUTO="0"
 
         # Check whether --enable-sky130-sky130 was given.
 if test "${enable_sky130_pdk+set}" = set; then :
   enableval=$enable_sky130_pdk;
                 if test "$enableval" == "yes" -o "$enableval" == "YES"; then
-		    echo "Looking for sky130 in usual places"
-                    pdk_find
+                    export SKY130_SOURCE_PATH=../sources/sky130-pdk
+            	    SKY130_AUTO="1"
                 elif test "$enableval" == "no" -o "$enableval" == "NO"; then
                     echo "Disabling sky130..."
                 else
@@ -2145,7 +2130,7 @@
 	    fi
             # Basic check that the PDK path exists, unless depending on Makefile
 	    # to download it automatically.
-            if [ "$SKY130_FOUND" == "1" ]; then
+            if [ "$SKY130_AUTO" = "0" ]; then
                 { $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`
@@ -2197,6 +2182,8 @@
                 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;}
                 SKY130_LOCAL_PATH=`realpath $SKY130_LOCAL_PATH`
             fi
 
@@ -2209,7 +2196,6 @@
 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;}
@@ -2461,19 +2447,27 @@
 if test "${enable_alpha_sky130+set}" = set; then :
   enableval=$enable_alpha_sky130;
             if test "$enableval" == "yes" -o "$enableval" == "YES"; then
-                { $as_echo "$as_me:${as_lineno-$LINENO}: Option 'sky130_ml_xx_hd' will be installed automatically during make." >&5
-$as_echo "$as_me: Option 'sky130_ml_xx_hd' will be installed automatically during make." >&6;}
+                { $as_echo "$as_me:${as_lineno-$LINENO}: Package 'sky130_ml_xx_hd' will be installed automatically during make." >&5
+$as_echo "$as_me: Package 'sky130_ml_xx_hd' will be installed automatically during make." >&6;}
         	export SKY130_ML_XX_HD_PATH=../sources/sky130_ml_xx_hd
             elif test "$enableval" == "no" -o "$enableval" == "NO"; then
-                { $as_echo "$as_me:${as_lineno-$LINENO}: Disabling option 'sky130_ml_xx_hd'" >&5
-$as_echo "$as_me: Disabling option 'sky130_ml_xx_hd'" >&6;}
+                { $as_echo "$as_me:${as_lineno-$LINENO}: Disabling package 'sky130_ml_xx_hd'" >&5
+$as_echo "$as_me: Disabling package 'sky130_ml_xx_hd'" >&6;}
+    		export SKY130_ML_XX_HD_PATH=""
             else
                 SKY130_ML_XX_HD_PATH=$enableval
-                { $as_echo "$as_me:${as_lineno-$LINENO}: Enabling option 'sky130_ml_xx_hd' at $SKY130_ML_XX_HD_PATH" >&5
-$as_echo "$as_me: Enabling option 'sky130_ml_xx_hd' at $SKY130_ML_XX_HD_PATH" >&6;}
+                { $as_echo "$as_me:${as_lineno-$LINENO}: Enabling package 'sky130_ml_xx_hd' at $SKY130_ML_XX_HD_PATH" >&5
+$as_echo "$as_me: Enabling package 'sky130_ml_xx_hd' at $SKY130_ML_XX_HD_PATH" >&6;}
             fi
             SKY130_ML_XX_HD_PATH=`realpath $SKY130_ML_XX_HD_PATH`
 
+else
+
+            { $as_echo "$as_me:${as_lineno-$LINENO}: Package 'sky130_ml_xx_hd' will be installed automatically during make." >&5
+$as_echo "$as_me: Package 'sky130_ml_xx_hd' will be installed automatically during make." >&6;}
+	    SKY130_ML_XX_HD_PATH=../sources/sky130_ml_xx_hd
+
+
 fi
 
 
@@ -2495,19 +2489,27 @@
 if test "${enable_xschem_sky130+set}" = set; then :
   enableval=$enable_xschem_sky130;
             if test "$enableval" == "yes" -o "$enableval" == "YES"; then
-                { $as_echo "$as_me:${as_lineno-$LINENO}: Option 'xschem_sky130' will be installed automatically during make." >&5
-$as_echo "$as_me: Option 'xschem_sky130' will be installed automatically during make." >&6;}
+                { $as_echo "$as_me:${as_lineno-$LINENO}: Package 'xschem_sky130' will be installed automatically during make." >&5
+$as_echo "$as_me: Package 'xschem_sky130' will be installed automatically during make." >&6;}
         	export XSCHEM_SKY130_PATH=../sources/xschem_sky130
             elif test "$enableval" == "no" -o "$enableval" == "NO"; then
-                { $as_echo "$as_me:${as_lineno-$LINENO}: Disabling option 'xschem_sky130'" >&5
-$as_echo "$as_me: Disabling option 'xschem_sky130'" >&6;}
+                { $as_echo "$as_me:${as_lineno-$LINENO}: Disabling package 'xschem_sky130'" >&5
+$as_echo "$as_me: Disabling package 'xschem_sky130'" >&6;}
+    		export XSCHEM_SKY130_PATH=""
             else
                 XSCHEM_SKY130_PATH=$enableval
-                { $as_echo "$as_me:${as_lineno-$LINENO}: Enabling option 'xschem_sky130' at $XSCHEM_SKY130_PATH" >&5
-$as_echo "$as_me: Enabling option 'xschem_sky130' at $XSCHEM_SKY130_PATH" >&6;}
+                { $as_echo "$as_me:${as_lineno-$LINENO}: Enabling package 'xschem_sky130' at $XSCHEM_SKY130_PATH" >&5
+$as_echo "$as_me: Enabling package 'xschem_sky130' at $XSCHEM_SKY130_PATH" >&6;}
             fi
             XSCHEM_SKY130_PATH=`realpath $XSCHEM_SKY130_PATH`
 
+else
+
+            { $as_echo "$as_me:${as_lineno-$LINENO}: Package 'xschem_sky130' will be installed automatically during make." >&5
+$as_echo "$as_me: Package 'xschem_sky130' will be installed automatically during make." >&6;}
+	    XSCHEM_SKY130_PATH=../sources/xschem_sky130
+
+
 fi
 
 
diff --git a/scripts/configure.ac b/scripts/configure.ac
index 3dbc09a..98a0e69 100755
--- a/scripts/configure.ac
+++ b/scripts/configure.ac
@@ -26,32 +26,17 @@
         m4_define([pdkvar], [m4_normalize(m4_esyscmd(echo pdk | tr "a-z-" "A-Z_"))])
 
         pdkvar[]_SOURCE_PATH=""
-        pdkvar[]_LOCAL_PATH=""
+        pdkvar[]_LOCAL_PATH="/usr/share/[pdk]"
         pdkvar[]_DIST_PATH=""
         pdkvar[]_LINK_TARGETS="none"
-
-        pdk_find() {
-            FOUND=0
-            for path in /opt/pdks/pdk /usr/share/pdks/pdk /usr/local/share/pdks/pdk; do
-                if @<:@ -d $path @:>@ ; then
-                    echo "Found pdk in $path, using this installation..."
-                    export pdkvar[]_SOURCE_PATH=$path
-                    export pdkvar[]_FOUND=1
-                    FOUND=1
-                fi
-            done
-            if @<:@ "$FOUND" = "0" @:>@; then
-                export pdkvar[]_SOURCE_PATH=../sources/pdk-[pdk]
-                export pdkvar[]_FOUND=0
-            fi
-        }
+        pdkvar[]_AUTO="0" 
 
         AC_ARG_ENABLE(pdk-[pdk],
             [AS_HELP_STRING([--enable-pdk-[pdk]=@<:@/path/to/pdk/@:>@ --disable-pdk-[pdk]], "location of the source files for the pdk (pdks with a [pdk]_url file can automatically download them if the path is omitted)")],
             [
                 if test "$enableval" == "yes" -o "$enableval" == "YES"; then
-		    echo "Looking for pdk in usual places"
-                    pdk_find
+                    export pdkvar[]_SOURCE_PATH=../sources/pdk-[pdk]
+            	    pdkvar[]_AUTO="1" 
                 elif test "$enableval" == "no" -o "$enableval" == "NO"; then
                     echo "Disabling pdk..."
                 else
@@ -70,7 +55,7 @@
 	    fi
             # Basic check that the PDK path exists, unless depending on Makefile
 	    # to download it automatically.
-            if @<:@ "$[]pdkvar[]_FOUND" == "1" @:>@; then
+            if @<:@ "$[]pdkvar[]_AUTO" = "0" @:>@; then
                 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])
@@ -93,6 +78,7 @@
                 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])
                 pdkvar[]_LOCAL_PATH=`realpath $[]pdkvar[]_LOCAL_PATH`
             fi
 
@@ -101,7 +87,6 @@
                 [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'])
@@ -184,17 +169,20 @@
             [Install target. If path is omitted, it'll be downloaded. @<:@default=disabled@:>@]
         ), [
             if test "$enableval" == "yes" -o "$enableval" == "YES"; then
-                AC_MSG_NOTICE([Option 'target' will be installed automatically during make.])
+                AC_MSG_NOTICE([Package 'target' will be installed automatically during make.])
         	export targetvar[]_PATH=location/target
             elif test "$enableval" == "no" -o "$enableval" == "NO"; then
-                AC_MSG_NOTICE([Disabling option 'target'])
+                AC_MSG_NOTICE([Disabling package 'target'])
+    		export targetvar[]_PATH=""
             else
                 targetvar[]_PATH=$enableval
-                AC_MSG_NOTICE([Enabling option 'target' at $[]targetvar[]_PATH])
+                AC_MSG_NOTICE([Enabling package 'target' at $[]targetvar[]_PATH])
             fi
             targetvar[]_PATH=`realpath $[]targetvar[]_PATH`
-        ],
-        []
+        ],[
+            AC_MSG_NOTICE([Package 'target' will be installed automatically during make.])
+	    targetvar[]_PATH=location/target
+	]
     )
 
     $4
diff --git a/sky130/README b/sky130/README
index 059eeef..32c14ab 100644
--- a/sky130/README
+++ b/sky130/README
@@ -27,16 +27,15 @@
     Open_PDKs SKY130 Installation: Most people will want to run the following
     for PDK installation:
 
-	./configure --enable-sky130-pdk --enable-alpha-sky130 \
-		--enable-xschem-sky130 --with-sky130-local-path=/usr/share/pdks
+	./configure --enable-sky130-pdk
 	make
 	sudo make install
 
     This will download and install the SkyWater SKY130 PDK, the SKY130 setup
     files for xschem, and a third-party library containing alphanumeric layouts.
-    If you prefer an installation in your user space, then replace /usr/share/pdks
-    with some alternative like ~/pdks, and "make install" does not need to be
-    run sudo.
+    If you prefer an installation in your user space, then use configure option
+    "--with-sky130-local-path=<path>" with <path> being some alternative like
+    ~/pdks, and "make install" does not need to be run sudo.
 
     With he above configuration line, the PDK files will be installed into
     the path
@@ -131,7 +130,6 @@
     directory.  The mandatory configure options are as follows:
 
 	--enable-sky130-pdk[=/path/to/sky130/pdk/source]
-	--with-sky130-local-path=/path/to/install/pdks
 
     See below for details.
 
@@ -174,7 +172,9 @@
 		a distribution installation, this is the local name of
 		the path to the PDK after it has been distributed to
 		the host computers (This should have been set by the
-		option --with-local-path= passed to configure).
+		option --with-local-path= passed to configure).  If not
+		specified, then the default <path> is /usr/share/pdks/,
+		so the PDK will be installed as /usr/share/pdks/sky130A/.
 
 	--with-sky130-dist-path=<path>
 		The path to the location of the installed files prior to
@@ -185,15 +185,17 @@
 	--enable-alpha-sky130[=<path>] 
 		The path to the sky130_ml_xx_hd library, a third-party
 		library containing layouts of alphanumeric characters
-		for adding text to layout.  If the path is not
-		specified, then the library will be downloaded from
-		github automatically.
+		for adding text to layout.  If the configuration option
+		or the path is not specified, then the library will be
+		downloaded from github automatically.  To disable this
+		package, use "--disable-alpha-sky130".
 
 	--enable-xschem-sky130[=<path>]
 		The path to the SKY130 setup for the xschem schematic
-		entry/schematic capture tool.  If the path is not
-		specified, then the library will be downloaded from
-		github automatically.
+		entry/schematic capture tool.  If the configuration
+		option or the path is not specified, then the library
+		will be downloaded from github automatically.  To disable
+		this package, use "--disable-xschem-sky130".
 
 Step 2:
 	Run:
