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: