diff options
author | Steve Bennett <steveb@workware.net.au> | 2017-09-17 19:58:37 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2017-09-21 16:32:04 +1000 |
commit | ca82a715e435685aa047f169c2896c3559d53828 (patch) | |
tree | f308c83b43dfd175415f07d8709a3a7d3eb30f97 | |
parent | e1aa8a826c1976c2ad91002cb1396db3b506868c (diff) | |
download | jimtcl-ca82a715e435685aa047f169c2896c3559d53828.zip jimtcl-ca82a715e435685aa047f169c2896c3559d53828.tar.gz jimtcl-ca82a715e435685aa047f169c2896c3559d53828.tar.bz2 |
configure: Improve module selection
Modules/extensions are now explicitly marked as optional
(and enabled with --full), or off (must be explicitly
enabled with --with-mod/--with-ext)
This means that now binary and tclprefix are correctly
not enabled by default, and zlib is enabled with --full.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
-rw-r--r-- | auto.def | 28 | ||||
-rw-r--r-- | autosetup/local.tcl | 13 |
2 files changed, 26 insertions, 15 deletions
@@ -44,17 +44,21 @@ options { tclcompat - Tcl compatible read, gets, puts, parray, case, ... namespace - Tcl compatible namespace support - These are disabled by default: + These are disabled by default, but enabled by --full: oo - Jim OO extension tree - OO tree structure, similar to tcllib ::struct::tree binary - Tcl-compatible 'binary' command + tclprefix - Support for the tcl::prefix command + ensemble - Support for the ensemble command + zlib - Interface to zlib + + These are disabled unless explicitly enabled: + readline - Interface to libreadline rlprompt - Tcl wrapper around the readline extension mk - Interface to Metakit - tclprefix - Support for the tcl::prefix command sqlite3 - Interface to sqlite3 - zlib - Interface to zlib win32 - Interface to win32 } with-out-jim-ext: {without-ext:"default|ext1 ext2 ..."} => { @@ -293,13 +297,14 @@ if {[opt-val docdir] ne ""} { # Attributes of the extensions # tcl=Pure Tcl extension # static=Can't be built as a module -# optional=Not selected by default +# off=Off unless explicitly enabled +# optional=Off by default, but selected by --full # cpp=Is a C++ extension global extdb dict set extdb attrs { aio { static } array {} - binary { tcl } + binary { tcl optional } clock {} eventloop { static } exec { static } @@ -308,7 +313,7 @@ dict set extdb attrs { history {} interp { } load { static } - mk { cpp optional } + mk { cpp off } namespace { static } nshelper { tcl optional } oo { tcl } @@ -316,19 +321,19 @@ dict set extdb attrs { package { static } posix {} readdir {} - readline { optional } + readline { off } regexp {} - rlprompt { tcl optional } - sdl { optional } + rlprompt { tcl off } + sdl { off } signal { static } - sqlite3 { optional } + sqlite3 { off } zlib { optional } stdlib { tcl static } syslog {} tclcompat { tcl static } tclprefix { optional } tree { tcl } - win32 { optional } + win32 { off } } # Additional information about certain extensions @@ -380,6 +385,7 @@ set withinfo(without) [join [opt-val {without-ext with-out-jim-ext}]] set withinfo(ext) [join [opt-val {with-ext with-jim-ext}]] set withinfo(mod) [join [opt-val {with-mod with-jim-extmod}]] set withinfo(nodefault) 0 +set withinfo(optional) [opt-bool full] if {$withinfo(without) eq "default"} { set withinfo(without) {} set withinfo(nodefault) 1 diff --git a/autosetup/local.tcl b/autosetup/local.tcl index e9e5a1d..9517b27 100644 --- a/autosetup/local.tcl +++ b/autosetup/local.tcl @@ -180,15 +180,20 @@ proc check-extensions {} { set withinfo(maybe) {} # Now work out the default status. We have. - # normal case, include !optional if possible - # --without=default, don't include optional + # normal case, include !off, !optional if possible + # --full, include !off if possible + # --without=default, don't include optional or off if {$withinfo(nodefault)} { lappend withinfo(maybe) stdlib } else { foreach i $extlist { - if {![ext-has $i optional]} { - lappend withinfo(maybe) $i + if {[ext-has $i off]} { + continue } + if {[ext-has $i optional] && !$withinfo(optional)} { + continue + } + lappend withinfo(maybe) $i } } |