diff options
author | Steve Bennett <steveb@workware.net.au> | 2011-11-08 17:38:37 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2011-11-08 17:42:58 +1000 |
commit | f02ea986bd70ecbb8486950893d61b4e0bd8cc60 (patch) | |
tree | c7b1a449fe56e04e470a2c1b36bff8e7481ba1bd /autosetup/cc.tcl | |
parent | 05e51ed5447b83badfd8ed550c7386b68eb94919 (diff) | |
download | jimtcl-f02ea986bd70ecbb8486950893d61b4e0bd8cc60.zip jimtcl-f02ea986bd70ecbb8486950893d61b4e0bd8cc60.tar.gz jimtcl-f02ea986bd70ecbb8486950893d61b4e0bd8cc60.tar.bz2 |
Update autosetup, especially for include deps
Correctly detect sys/socket.h and netinet/in.h on OpenBSD
Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'autosetup/cc.tcl')
-rw-r--r-- | autosetup/cc.tcl | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/autosetup/cc.tcl b/autosetup/cc.tcl index 707e69c..a046184 100644 --- a/autosetup/cc.tcl +++ b/autosetup/cc.tcl @@ -113,10 +113,34 @@ proc cc-check-some-feature {list script} { # Checks that the given include files can be used proc cc-check-includes {args} { cc-check-some-feature $args { - cctest -includes $each + set with {} + if {[dict exists $::autosetup(cc-include-deps) $each]} { + set deps [dict keys [dict get $::autosetup(cc-include-deps) $each]] + msg-quiet cc-check-includes $deps + foreach i $deps { + if {[have-feature $i]} { + lappend with $i + } + } + } + if {[llength $with]} { + cc-with [list -includes $with] { + cctest -includes $each + } + } else { + cctest -includes $each + } } } +# @cc-include-needs include required +# +# Ensures that when checking for 'include', a check is first +# made for 'required', and if found, it is #included +proc cc-include-needs {file depfile} { + dict set ::autosetup(cc-include-deps) $file $depfile 1 +} + # @cc-check-types type ... # # Checks that the types exist. @@ -374,7 +398,7 @@ proc cc-with {settings args} { set rc [catch {uplevel 1 [lindex $args 0]} result info] cc-store-settings $save if {$rc != 0} { - return $result -code [dict get $info -code] + return -code [dict get $info -code] $result } return $result } @@ -648,6 +672,7 @@ define CCACHE [find-an-executable [get-env CCACHE ccache]] # Initial cctest settings cc-store-settings {-cflags {} -includes {} -declare {} -link 0 -lang c -libs {} -code {}} +set autosetup(cc-include-deps) {} msg-result "C compiler...[get-define CCACHE] [get-define CC] [get-define CFLAGS]" if {[get-define CXX] ne "false"} { |