diff options
author | Steve Bennett <steveb@workware.net.au> | 2019-07-04 12:06:01 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2019-11-06 17:42:55 +1000 |
commit | dc4ba7770d580800634f90b67a24e077b4a26d98 (patch) | |
tree | 8cc4f220d7fb7cfd5dd1b78d2cd278e79fabdf12 /autosetup | |
parent | 0104b324bc89ab1dce883be1e3b5510296c695ea (diff) | |
download | jimtcl-dc4ba7770d580800634f90b67a24e077b4a26d98.zip jimtcl-dc4ba7770d580800634f90b67a24e077b4a26d98.tar.gz jimtcl-dc4ba7770d580800634f90b67a24e077b4a26d98.tar.bz2 |
build: improve build for shared objects
Rather than listing the build rules for each shared object
(loadable module) in the Makefile template, generate the build
rules in configure.
Also, if an extension is configured as a module, any automatic
dependencies required by the extension are configured as modules
by default.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'autosetup')
-rw-r--r-- | autosetup/local.tcl | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/autosetup/local.tcl b/autosetup/local.tcl index 9517b27..ba2bb3d 100644 --- a/autosetup/local.tcl +++ b/autosetup/local.tcl @@ -32,7 +32,7 @@ proc ext-get-status {ext} { return ? } -proc check-extension-status {ext required} { +proc check-extension-status {ext required {asmodule 0}} { global withinfo set status [ext-get-status $ext] @@ -79,7 +79,13 @@ proc check-extension-status {ext required} { } } - if {$ext in $withinfo(mod)} { + # asmodule=1 means that the parent is a module so + # any automatically selected dependencies should also be modules + if {$asmodule == 0 && $ext in $withinfo(mod)} { + set asmodule 1 + } + + if {$asmodule} { # This is a module, so ignore LIBS # LDLIBS_$ext will contain the appropriate libs for this module define LIBS $LIBS @@ -88,7 +94,7 @@ proc check-extension-status {ext required} { if {$depinfo(n) == 0} { # Now extension dependencies foreach i [ext-get $ext dep] { - set status [check-extension-status $i $required] + set status [check-extension-status $i $required $asmodule] #puts "$ext: dep $i $required => $status" incr depinfo($status) if {$depinfo(n)} { @@ -108,8 +114,8 @@ proc check-extension-status {ext required} { return [ext-set-status $ext n] } - # Selected as a module? - if {$ext in $withinfo(mod)} { + # Selected as a module directly or because of a parent dependency? + if {$asmodule} { if {[ext-has $ext tcl]} { # Easy, a Tcl module msg-result "Extension $ext...tcl" |