Further refined the configuration options to make the alphanumeric
library and xschem setups enabled by default, and to make the local
install location /usr/share/pdk/ by default. So the configuration
line has been simplified to "configure --enable-sky130-pdk".
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: