diff --git a/.gitignore b/.gitignore
index 04e839b..0cb02a5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,6 +14,8 @@
 scripts/*
 !scripts/configure
 !scripts/configure.ac
+!scripts/tools.txt
+!scripts/rl
 **/Makefile
 **/Makefile.am
 
diff --git a/VERSION b/VERSION
index 87903b6..00572ce 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.0.93
+1.0.94
diff --git a/scripts/configure b/scripts/configure
index 235b881..5841a66 100755
--- a/scripts/configure
+++ b/scripts/configure
@@ -597,6 +597,11 @@
 PYTHON_PREFIX
 PYTHON_VERSION
 PYTHON
+QFLOW_DISABLED
+OPENLANE_DISABLED
+NETGEN_DISABLED
+MAGIC_DISABLED
+KLAYOUT_DISABLED
 SKY130_LINK_TARGETS
 SKY130_DIST_PATH
 SKY130_LOCAL_PATH
@@ -646,6 +651,11 @@
 with_sky130_local_path
 with_sky130_dist_path
 with_sky130_link_targets
+enable_klayout
+enable_magic
+enable_netgen
+enable_openlane
+enable_qflow
 with_ef_style
 '
       ac_precious_vars='build_alias
@@ -1257,6 +1267,21 @@
    esac
   cat <<\_ACEOF
 
+Optional Features:
+  --disable-option-checking  ignore unrecognized --enable/--with options
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --enable-klayout --disable-klayout
+                          Enable or disable klayout [default=enabled]
+  --enable-magic --disable-magic
+                          Enable or disable magic [default=enabled]
+  --enable-netgen --disable-netgen
+                          Enable or disable netgen [default=enabled]
+  --enable-openlane --disable-openlane
+                          Enable or disable openlane [default=enabled]
+  --enable-qflow --disable-qflow
+                          Enable or disable qflow [default=enabled]
+
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
@@ -1711,6 +1736,10 @@
 # detect PDKs based on directories that include Makefile.in files
 
 
+# define tools to install setup files for.  This does not imply that the tools are
+# available on the system;  just that open_pdks will install the setup files for them.
+
+
 # check for the source and install paths for each PDK.
 
 
@@ -1840,7 +1869,87 @@
 
 
 
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: Tools enabled for PDK setup installation: klayout magic netgen openlane qflow" >&5
+$as_echo "$as_me: Tools enabled for PDK setup installation: klayout magic netgen openlane qflow" >&6;}
+
+
+
+
+
+        KLAYOUT_DISABLED=0
+        # Check whether --enable-klayout was given.
+if test "${enable_klayout+set}" = set; then :
+  enableval=$enable_klayout;
+                if test "$enableval" == "no" -o "$enableval" == "NO"; then
+                    KLAYOUT_DISABLED=1
+                fi
+
+fi
+
+
+
+
+
+        MAGIC_DISABLED=0
+        # Check whether --enable-magic was given.
+if test "${enable_magic+set}" = set; then :
+  enableval=$enable_magic;
+                if test "$enableval" == "no" -o "$enableval" == "NO"; then
+                    MAGIC_DISABLED=1
+                fi
+
+fi
+
+
+
+
+
+        NETGEN_DISABLED=0
+        # Check whether --enable-netgen was given.
+if test "${enable_netgen+set}" = set; then :
+  enableval=$enable_netgen;
+                if test "$enableval" == "no" -o "$enableval" == "NO"; then
+                    NETGEN_DISABLED=1
+                fi
+
+fi
+
+
+
+
+
+        OPENLANE_DISABLED=0
+        # Check whether --enable-openlane was given.
+if test "${enable_openlane+set}" = set; then :
+  enableval=$enable_openlane;
+                if test "$enableval" == "no" -o "$enableval" == "NO"; then
+                    OPENLANE_DISABLED=1
+                fi
+
+fi
+
+
+
+
+
+        QFLOW_DISABLED=0
+        # Check whether --enable-qflow was given.
+if test "${enable_qflow+set}" = set; then :
+  enableval=$enable_qflow;
+                if test "$enableval" == "no" -o "$enableval" == "NO"; then
+                    QFLOW_DISABLED=1
+                fi
+
+fi
+
+
+
+
+
 # Checking if (some) prerequisites are satisfied
+## REQUIRES: https://www.gnu.org/software/autoconf-archive/ax_python_module.html#ax_python_module
 
 
 
diff --git a/scripts/configure.ac b/scripts/configure.ac
index aacc866..b615f48 100755
--- a/scripts/configure.ac
+++ b/scripts/configure.ac
@@ -3,6 +3,10 @@
 # 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" " "))])
 
+# define tools to install setup files for.  This does not imply that the tools are
+# available on the system;  just that open_pdks will install the setup files for them.
+m4_define([M4_GET_TOOLS], [m4_normalize(m4_esyscmd(cat ./tools.txt | tr "\n" " "))])
+
 # check for the source and install paths for each PDK.
 AC_DEFUN([M4_GEN_WITH_PDK_ARGS],
 [
@@ -93,7 +97,32 @@
 
 M4_GEN_WITH_PDK_ARGS(M4_GET_TECHS())
 
+AC_DEFUN([M4_GEN_WITH_TOOLS], [
+    m4_foreach_w(tool, $1, [
+        m4_define([toolvar], [m4_normalize(m4_esyscmd(echo tool | tr "a-z" "A-Z"))])
+
+        toolvar[]_DISABLED=0
+        AC_ARG_ENABLE(tool,
+            AS_HELP_STRING(
+                --enable-tool --disable-tool,
+                Enable or disable tool @<:@default=enabled@:>@
+            ),
+            [
+                if test "$enableval" == "no" -o "$enableval" == "NO"; then
+                    toolvar[]_DISABLED=1
+                fi
+            ],
+        )
+        AC_SUBST(toolvar[]_DISABLED)
+    ])
+])
+
+AC_MSG_NOTICE([Tools enabled for PDK setup installation: M4_GET_TOOLS()])
+
+M4_GEN_WITH_TOOLS(M4_GET_TOOLS())
+
 # Checking if (some) prerequisites are satisfied
+## REQUIRES: https://www.gnu.org/software/autoconf-archive/ax_python_module.html#ax_python_module
 AM_PATH_PYTHON([3.4])
 AX_PYTHON_MODULE([distutils],[])
 
diff --git a/scripts/tools.txt b/scripts/tools.txt
new file mode 100644
index 0000000..c679f92
--- /dev/null
+++ b/scripts/tools.txt
@@ -0,0 +1,5 @@
+klayout
+magic
+netgen
+openlane
+qflow
\ No newline at end of file
diff --git a/sky130/Makefile.in b/sky130/Makefile.in
index a33c113..9092a37 100644
--- a/sky130/Makefile.in
+++ b/sky130/Makefile.in
@@ -46,10 +46,6 @@
 #		cloned from https://github.com/google/skywater-pdk.  This
 #		option is mandatory and has no default.
 #
-#
-# NOTE:  The comments below are for features that have not yet been
-# implemented.
-#
 # 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
@@ -73,6 +69,10 @@
 #	--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 libraries and tool setups that can be enabled are the following:
 #
 #	--enable-skywater-pdk[=<path>]
@@ -132,7 +132,7 @@
 MV = mv
 
 REVISION    = `git describe --long`
-TECH        = sky130
+TECH	= sky130
 
 # If EF_STYLE is set to 1, then efabless naming conventions are
 # used, otherwise the generic naming conventions are used.
@@ -263,7 +263,38 @@
 ADDPROP = ../common/insert_property.py ${EF_FORMAT}
 
 # List the EDA tools to install local setup files for
-TOOLS = magic qflow netgen klayout openlane
+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
+
 
 all: all-a
 
