diff --git a/scripts/configure b/scripts/configure
index 824d296..b0e3e58 100755
--- a/scripts/configure
+++ b/scripts/configure
@@ -588,9 +588,13 @@
 ac_subst_vars='LTLIBOBJS
 LIBOBJS
 EF_STYLE
+SKY130_OSU_T18_PATH
+SKY130_OSU_T15_PATH
+SKY130_OSU_T12_PATH
+SKY130_OSU_PATH
+SKY130_SRAM_MACROS_PATH
 XSCHEM_SKY130_PATH
 SKY130_ML_XX_HD_PATH
-SKY130_SRAM_MACROS_PATH
 PATCH
 MAGIC
 XSCHEM_DISABLED
@@ -666,9 +670,13 @@
 enable_openlane
 enable_qflow
 enable_xschem
-enable_sram_sky130
 enable_alpha_sky130
 enable_xschem_sky130
+enable_sram_sky130
+enable_osu_sky130
+enable_osu_t12_sky130
+enable_osu_t15_sky130
+enable_osu_t18_sky130
 with_ef_style
 '
       ac_precious_vars='build_alias
@@ -1327,15 +1335,27 @@
                 Enable or disable xschem setup [default=enabled]
 
 
-  --enable-sram-sky130[=path]
-                          Install sky130_sram_macros. If path is omitted, it'll be
-                          downloaded. [default=enabled]
   --enable-alpha-sky130[=path]
-                          Install sky130_ml_xx_hd. If path is omitted, it'll be
-                          downloaded. [default=enabled]
+                          Install sky130_ml_xx_hd. If path is omitted, the repository
+                          will be downloaded. [default=enabled]
   --enable-xschem-sky130[=path]
-                          Install xschem_sky130. If path is omitted, it'll be
-                          downloaded. [default=enabled]
+                          Install xschem_sky130. If path is omitted, the repository
+                          will be downloaded. [default=enabled]
+  --enable-sram-sky130[=path]
+                          Install sky130_sram_macros. If path is omitted, the repository
+                          will be downloaded. [default=enabled]
+  --enable-osu-sky130[=path]
+                          Install sky130_osu. If path is omitted, the repository
+                          will be downloaded. [default=enabled]
+  --enable-osu-t12-sky130[=path]
+                          Install sky130_osu_t12. If path is omitted, the repository
+                          will be downloaded. [default=enabled]
+  --enable-osu-t15-sky130[=path]
+                          Install sky130_osu_t15. If path is omitted, the repository
+                          will be downloaded. [default=enabled]
+  --enable-osu-t18-sky130[=path]
+                          Install sky130_osu_t18. If path is omitted, the repository
+                          will be downloaded. [default=enabled]
 
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
@@ -2441,46 +2461,7 @@
 # Other installations (libraries or tools if applicable)
 
 
-
-
-
-
-
-
-    # echo target targetvar flag location
-
-    SKY130_SRAM_MACROS_PATH=""
-
-    # Check whether --enable-sram-sky130 was given.
-if test "${enable_sram_sky130+set}" = set; then :
-  enableval=$enable_sram_sky130;
-            if test "$enableval" == "yes" -o "$enableval" == "YES"; then
-                { $as_echo "$as_me:${as_lineno-$LINENO}: Package 'sky130_sram_macros' will be installed automatically during make." >&5
-$as_echo "$as_me: Package 'sky130_sram_macros' will be installed automatically during make." >&6;}
-        	export SKY130_SRAM_MACROS_PATH=../sources/sky130_sram_macros
-            elif test "$enableval" == "no" -o "$enableval" == "NO"; then
-                { $as_echo "$as_me:${as_lineno-$LINENO}: Disabling package 'sky130_sram_macros'" >&5
-$as_echo "$as_me: Disabling package 'sky130_sram_macros'" >&6;}
-    		export SKY130_SRAM_MACROS_PATH=""
-            else
-                SKY130_SRAM_MACROS_PATH=$enableval
-                { $as_echo "$as_me:${as_lineno-$LINENO}: Enabling package 'sky130_sram_macros' at $SKY130_SRAM_MACROS_PATH" >&5
-$as_echo "$as_me: Enabling package 'sky130_sram_macros' at $SKY130_SRAM_MACROS_PATH" >&6;}
-            fi
-            SKY130_SRAM_MACROS_PATH=`realpath $SKY130_SRAM_MACROS_PATH`
-
-else
-
-            { $as_echo "$as_me:${as_lineno-$LINENO}: Package 'sky130_sram_macros' will be installed automatically during make." >&5
-$as_echo "$as_me: Package 'sky130_sram_macros' will be installed automatically during make." >&6;}
-	    SKY130_SRAM_MACROS_PATH=../sources/sky130_sram_macros
-
-
-fi
-
-
-
-
+# Optional installations (like the above, but disabled by default)
 
 
 
@@ -2570,6 +2551,212 @@
 
 
 
+
+
+
+
+    # echo target targetvar flag location
+
+    SKY130_SRAM_MACROS_PATH=""
+
+    # Check whether --enable-sram-sky130 was given.
+if test "${enable_sram_sky130+set}" = set; then :
+  enableval=$enable_sram_sky130;
+            if test "$enableval" == "yes" -o "$enableval" == "YES"; then
+                { $as_echo "$as_me:${as_lineno-$LINENO}: Package 'sky130_sram_macros' will be installed automatically during make." >&5
+$as_echo "$as_me: Package 'sky130_sram_macros' will be installed automatically during make." >&6;}
+        	export SKY130_SRAM_MACROS_PATH=../sources/sky130_sram_macros
+            elif test "$enableval" == "no" -o "$enableval" == "NO"; then
+                { $as_echo "$as_me:${as_lineno-$LINENO}: Disabling package 'sky130_sram_macros'" >&5
+$as_echo "$as_me: Disabling package 'sky130_sram_macros'" >&6;}
+    		export SKY130_SRAM_MACROS_PATH=""
+            else
+                SKY130_SRAM_MACROS_PATH=$enableval
+                { $as_echo "$as_me:${as_lineno-$LINENO}: Enabling package 'sky130_sram_macros' at $SKY130_SRAM_MACROS_PATH" >&5
+$as_echo "$as_me: Enabling package 'sky130_sram_macros' at $SKY130_SRAM_MACROS_PATH" >&6;}
+            fi
+            SKY130_SRAM_MACROS_PATH=`realpath $SKY130_SRAM_MACROS_PATH`
+
+else
+
+            { $as_echo "$as_me:${as_lineno-$LINENO}: Package 'sky130_sram_macros' will not be installed." >&5
+$as_echo "$as_me: Package 'sky130_sram_macros' will not be installed." >&6;}
+
+
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+    # echo target targetvar flag location
+
+    SKY130_OSU_PATH=""
+
+    # Check whether --enable-osu-sky130 was given.
+if test "${enable_osu_sky130+set}" = set; then :
+  enableval=$enable_osu_sky130;
+            if test "$enableval" == "yes" -o "$enableval" == "YES"; then
+                { $as_echo "$as_me:${as_lineno-$LINENO}: Package 'sky130_osu' will be installed automatically during make." >&5
+$as_echo "$as_me: Package 'sky130_osu' will be installed automatically during make." >&6;}
+        	export SKY130_OSU_PATH=../sources/sky130_osu
+            elif test "$enableval" == "no" -o "$enableval" == "NO"; then
+                { $as_echo "$as_me:${as_lineno-$LINENO}: Disabling package 'sky130_osu'" >&5
+$as_echo "$as_me: Disabling package 'sky130_osu'" >&6;}
+    		export SKY130_OSU_PATH=""
+            else
+                SKY130_OSU_PATH=$enableval
+                { $as_echo "$as_me:${as_lineno-$LINENO}: Enabling package 'sky130_osu' at $SKY130_OSU_PATH" >&5
+$as_echo "$as_me: Enabling package 'sky130_osu' at $SKY130_OSU_PATH" >&6;}
+            fi
+            SKY130_OSU_PATH=`realpath $SKY130_OSU_PATH`
+
+else
+
+            { $as_echo "$as_me:${as_lineno-$LINENO}: Package 'sky130_osu' will not be installed." >&5
+$as_echo "$as_me: Package 'sky130_osu' will not be installed." >&6;}
+
+
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+    # echo target targetvar flag location
+
+    SKY130_OSU_T12_PATH=""
+
+    # Check whether --enable-osu-t12-sky130 was given.
+if test "${enable_osu_t12_sky130+set}" = set; then :
+  enableval=$enable_osu_t12_sky130;
+            if test "$enableval" == "yes" -o "$enableval" == "YES"; then
+                { $as_echo "$as_me:${as_lineno-$LINENO}: Package 'sky130_osu_t12' will be installed automatically during make." >&5
+$as_echo "$as_me: Package 'sky130_osu_t12' will be installed automatically during make." >&6;}
+        	export SKY130_OSU_T12_PATH=../sources/sky130_osu_t12
+            elif test "$enableval" == "no" -o "$enableval" == "NO"; then
+                { $as_echo "$as_me:${as_lineno-$LINENO}: Disabling package 'sky130_osu_t12'" >&5
+$as_echo "$as_me: Disabling package 'sky130_osu_t12'" >&6;}
+    		export SKY130_OSU_T12_PATH=""
+            else
+                SKY130_OSU_T12_PATH=$enableval
+                { $as_echo "$as_me:${as_lineno-$LINENO}: Enabling package 'sky130_osu_t12' at $SKY130_OSU_T12_PATH" >&5
+$as_echo "$as_me: Enabling package 'sky130_osu_t12' at $SKY130_OSU_T12_PATH" >&6;}
+            fi
+            SKY130_OSU_T12_PATH=`realpath $SKY130_OSU_T12_PATH`
+
+else
+
+            { $as_echo "$as_me:${as_lineno-$LINENO}: Package 'sky130_osu_t12' will not be installed." >&5
+$as_echo "$as_me: Package 'sky130_osu_t12' will not be installed." >&6;}
+
+
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+    # echo target targetvar flag location
+
+    SKY130_OSU_T15_PATH=""
+
+    # Check whether --enable-osu-t15-sky130 was given.
+if test "${enable_osu_t15_sky130+set}" = set; then :
+  enableval=$enable_osu_t15_sky130;
+            if test "$enableval" == "yes" -o "$enableval" == "YES"; then
+                { $as_echo "$as_me:${as_lineno-$LINENO}: Package 'sky130_osu_t15' will be installed automatically during make." >&5
+$as_echo "$as_me: Package 'sky130_osu_t15' will be installed automatically during make." >&6;}
+        	export SKY130_OSU_T15_PATH=../sources/sky130_osu_t15
+            elif test "$enableval" == "no" -o "$enableval" == "NO"; then
+                { $as_echo "$as_me:${as_lineno-$LINENO}: Disabling package 'sky130_osu_t15'" >&5
+$as_echo "$as_me: Disabling package 'sky130_osu_t15'" >&6;}
+    		export SKY130_OSU_T15_PATH=""
+            else
+                SKY130_OSU_T15_PATH=$enableval
+                { $as_echo "$as_me:${as_lineno-$LINENO}: Enabling package 'sky130_osu_t15' at $SKY130_OSU_T15_PATH" >&5
+$as_echo "$as_me: Enabling package 'sky130_osu_t15' at $SKY130_OSU_T15_PATH" >&6;}
+            fi
+            SKY130_OSU_T15_PATH=`realpath $SKY130_OSU_T15_PATH`
+
+else
+
+            { $as_echo "$as_me:${as_lineno-$LINENO}: Package 'sky130_osu_t15' will not be installed." >&5
+$as_echo "$as_me: Package 'sky130_osu_t15' will not be installed." >&6;}
+
+
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+    # echo target targetvar flag location
+
+    SKY130_OSU_T18_PATH=""
+
+    # Check whether --enable-osu-t18-sky130 was given.
+if test "${enable_osu_t18_sky130+set}" = set; then :
+  enableval=$enable_osu_t18_sky130;
+            if test "$enableval" == "yes" -o "$enableval" == "YES"; then
+                { $as_echo "$as_me:${as_lineno-$LINENO}: Package 'sky130_osu_t18' will be installed automatically during make." >&5
+$as_echo "$as_me: Package 'sky130_osu_t18' will be installed automatically during make." >&6;}
+        	export SKY130_OSU_T18_PATH=../sources/sky130_osu_t18
+            elif test "$enableval" == "no" -o "$enableval" == "NO"; then
+                { $as_echo "$as_me:${as_lineno-$LINENO}: Disabling package 'sky130_osu_t18'" >&5
+$as_echo "$as_me: Disabling package 'sky130_osu_t18'" >&6;}
+    		export SKY130_OSU_T18_PATH=""
+            else
+                SKY130_OSU_T18_PATH=$enableval
+                { $as_echo "$as_me:${as_lineno-$LINENO}: Enabling package 'sky130_osu_t18' at $SKY130_OSU_T18_PATH" >&5
+$as_echo "$as_me: Enabling package 'sky130_osu_t18' at $SKY130_OSU_T18_PATH" >&6;}
+            fi
+            SKY130_OSU_T18_PATH=`realpath $SKY130_OSU_T18_PATH`
+
+else
+
+            { $as_echo "$as_me:${as_lineno-$LINENO}: Package 'sky130_osu_t18' will not be installed." >&5
+$as_echo "$as_me: Package 'sky130_osu_t18' will not be installed." >&6;}
+
+
+fi
+
+
+
+
+
+
+
+
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: Tools enabled for PDK setup installation: klayout magic netgen irsim openlane qflow xschem" >&5
 $as_echo "$as_me: Tools enabled for PDK setup installation: klayout magic netgen irsim openlane qflow xschem" >&6;}
 
diff --git a/scripts/configure.ac b/scripts/configure.ac
index be17018..63de958 100755
--- a/scripts/configure.ac
+++ b/scripts/configure.ac
@@ -168,7 +168,7 @@
         flag,
         AS_HELP_STRING(
             [--enable-flag@<:@=path@:>@],
-            [Install target. If path is omitted, it'll be downloaded. @<:@default=enabled@:>@]
+            [Install target. If path is omitted, the repository will be downloaded. @<:@default=enabled@:>@]
         ), [
             if test "$enableval" == "yes" -o "$enableval" == "YES"; then
                 AC_MSG_NOTICE([Package 'target' will be installed automatically during make.])
@@ -192,10 +192,53 @@
     AC_SUBST(targetvar[]_PATH)
 ])
 
-M4_GEN_INSTALLATION(sky130_sram_macros, sram-sky130, ../sources)
+# Optional installations (like the above, but disabled by default)
+AC_DEFUN([M4_OPT_INSTALLATION], [
+    m4_define([target], $1)
+    m4_define([targetvar], [m4_normalize(m4_esyscmd(echo target | tr "a-z-" "A-Z_"))])
+    m4_define([flag], $2)
+    m4_define([location], $3)
+
+    # echo target targetvar flag location
+
+    targetvar[]_PATH=""
+
+    AC_ARG_ENABLE(
+        flag,
+        AS_HELP_STRING(
+            [--enable-flag@<:@=path@:>@],
+            [Install target. If path is omitted, the repository will be downloaded. @<:@default=enabled@:>@]
+        ), [
+            if test "$enableval" == "yes" -o "$enableval" == "YES"; then
+                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 package 'target'])
+    		export targetvar[]_PATH=""
+            else
+                targetvar[]_PATH=$enableval
+                AC_MSG_NOTICE([Enabling package 'target' at $[]targetvar[]_PATH])
+            fi
+            targetvar[]_PATH=`realpath $[]targetvar[]_PATH`
+        ],[
+            AC_MSG_NOTICE([Package 'target' will not be installed.])
+	]
+    )
+
+    $4
+
+    AC_SUBST(targetvar[]_PATH)
+])
+
 M4_GEN_INSTALLATION(sky130_ml_xx_hd, alpha-sky130, ../sources)
 M4_GEN_INSTALLATION(xschem_sky130, xschem-sky130, ../sources)
 
+M4_OPT_INSTALLATION(sky130_sram_macros, sram-sky130, ../sources)
+M4_OPT_INSTALLATION(sky130_osu, osu-sky130, ../sources)
+M4_OPT_INSTALLATION(sky130_osu_t12, osu-t12-sky130, ../sources)
+M4_OPT_INSTALLATION(sky130_osu_t15, osu-t15-sky130, ../sources)
+M4_OPT_INSTALLATION(sky130_osu_t18, osu-t18-sky130, ../sources)
+
 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_"))])
diff --git a/scripts/download.sh b/scripts/download.sh
index 1bfadc1..a4188d9 100755
--- a/scripts/download.sh
+++ b/scripts/download.sh
@@ -1,10 +1,10 @@
-#!/bin/sh
+#!/bin/bash
 #
 # download.sh --
 #	Download a tarball from the specified URL to the specified target
 #	directory, untar it, and remove the tarball file.
 #
-#	Usage:  download.sh <url> <target_dir>
+#	Usage:  download.sh <url> <target_dir> [<strip>]
 #
 # where:
 #
@@ -13,6 +13,8 @@
 #		tarball will be downloaded to the directory above this,
 #		untarred while renaming to <target_dir>, and then the tarball
 #		file will be deleted.
+#	<strip> is the number of directory levels to strip off the front of the
+#		tarball contents.  Defaults to 1 if not specified.
 #
 
 # Neither curl or wget are guaranteed to be included in all *nix systems,
@@ -39,7 +41,14 @@
 echo "Downloading $1 to $2"
 $DL_CMD $2.tar.gz $1
 
+if [ $# -gt 2 ]; then
+    snum=$3
+else
+    snum=1
+fi
+
 mkdir -p $2
-tar -xf $2.tar.gz --strip-components 1 -C $2
+echo "Untarring and removing $2.tar.gz"
+tar -xf $2.tar.gz --strip-components $snum -C $2
 rm $2.tar.gz
 exit 0
