Mercurial
annotate third_party/sqlite3/autosetup/teaish/feature.tcl @ 186:8cf4ec5e2191 hg-web
Fixed merge conflict.
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Fri, 23 Jan 2026 22:38:59 -0800 |
| parents | 589bab390fb4 |
| children |
| rev | line source |
|---|---|
|
167
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
1 ######################################################################## |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
2 # 2025 April 7 |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
3 # |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
4 # The author disclaims copyright to this source code. In place of |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
5 # a legal notice, here is a blessing: |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
6 # |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
7 # * May you do good and not evil. |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
8 # * May you find forgiveness for yourself and forgive others. |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
9 # * May you share freely, never taking more than you give. |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
10 # |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
11 ######################################################################## |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
12 # ----- @module feature-tests.tcl ----- |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
13 # @section TEA-ish collection of feature tests. |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
14 # |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
15 # Functions in this file with a prefix of teaish__ are |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
16 # private/internal APIs. Those with a prefix of teaish- are |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
17 # public APIs. |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
18 |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
19 |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
20 # @teaish-check-libz |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
21 # |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
22 # Checks for zlib.h and the function deflate in libz. If found, |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
23 # prepends -lz to the extension's ldflags and returns 1, else returns |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
24 # 0. It also defines LDFLAGS_LIBZ to the libs flag. |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
25 # |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
26 proc teaish-check-libz {} { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
27 teaish-check-cached "Checking for libz" { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
28 set rc 0 |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
29 if {[msg-quiet cc-check-includes zlib.h] && [msg-quiet proj-check-function-in-lib deflate z]} { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
30 teaish-ldflags-prepend [define LDFLAGS_LIBZ [get-define lib_deflate]] |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
31 undefine lib_deflate |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
32 incr rc |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
33 } |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
34 expr $rc |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
35 } |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
36 } |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
37 |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
38 # @teaish-check-librt ?funclist? |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
39 # |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
40 # Checks whether -lrt is needed for any of the given functions. If |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
41 # so, appends -lrt via [teaish-ldflags-prepend] and returns 1, else |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
42 # returns 0. It also defines LDFLAGS_LIBRT to the libs flag or an |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
43 # empty string. |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
44 # |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
45 # Some systems (ex: SunOS) require -lrt in order to use nanosleep. |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
46 # |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
47 proc teaish-check-librt {{funclist {fdatasync nanosleep}}} { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
48 teaish-check-cached -nostatus "Checking whether ($funclist) need librt" { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
49 define LDFLAGS_LIBRT "" |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
50 foreach func $funclist { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
51 if {[msg-quiet proj-check-function-in-lib $func rt]} { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
52 set ldrt [get-define lib_${func}] |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
53 undefine lib_${func} |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
54 if {"" ne $ldrt} { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
55 teaish-ldflags-prepend -r [define LDFLAGS_LIBRT $ldrt] |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
56 msg-result $ldrt |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
57 return 1 |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
58 } else { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
59 msg-result "no lib needed" |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
60 return 1 |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
61 } |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
62 } |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
63 } |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
64 msg-result "not found" |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
65 return 0 |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
66 } |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
67 } |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
68 |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
69 # @teaish-check-stdint |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
70 # |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
71 # A thin proxy for [cc-with] which checks for <stdint.h> and the |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
72 # various fixed-size int types it declares. It defines HAVE_STDINT_T |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
73 # to 0 or 1 and (if it's 1) defines HAVE_XYZ_T for each XYZ int type |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
74 # to 0 or 1, depending on whether its available. |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
75 proc teaish-check-stdint {} { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
76 teaish-check-cached "Checking for stdint.h" { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
77 msg-quiet cc-with {-includes stdint.h} \ |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
78 {cc-check-types int8_t int16_t int32_t int64_t intptr_t \ |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
79 uint8_t uint16_t uint32_t uint64_t uintptr_t} |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
80 } |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
81 } |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
82 |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
83 # @teaish-is-mingw |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
84 # |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
85 # Returns 1 if building for mingw, else 0. |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
86 proc teaish-is-mingw {} { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
87 return [expr { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
88 [string match *mingw* [get-define host]] && |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
89 ![file exists /dev/null] |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
90 }] |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
91 } |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
92 |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
93 # @teaish-check-libdl |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
94 # |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
95 # Checks for whether dlopen() can be found and whether it requires |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
96 # -ldl for linking. If found, returns 1, defines LDFLAGS_DLOPEN to the |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
97 # linker flags (if any), and passes those flags to |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
98 # teaish-ldflags-prepend. It unconditionally defines HAVE_DLOPEN to 0 |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
99 # or 1 (the its return result value). |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
100 proc teaish-check-dlopen {} { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
101 teaish-check-cached -nostatus "Checking for dlopen()" { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
102 set rc 0 |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
103 set lfl "" |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
104 if {[cc-with {-includes dlfcn.h} { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
105 cctest -link 1 -declare "extern char* dlerror(void);" -code "dlerror();"}]} { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
106 msg-result "-ldl not needed" |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
107 incr rc |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
108 } elseif {[cc-check-includes dlfcn.h]} { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
109 incr rc |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
110 if {[cc-check-function-in-lib dlopen dl]} { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
111 set lfl [get-define lib_dlopen] |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
112 undefine lib_dlopen |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
113 msg-result " dlopen() needs $lfl" |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
114 } else { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
115 msg-result " - dlopen() not found in libdl. Assuming dlopen() is built-in." |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
116 } |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
117 } else { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
118 msg-result "not found" |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
119 } |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
120 teaish-ldflags-prepend [define LDFLAGS_DLOPEN $lfl] |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
121 define HAVE_DLOPEN $rc |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
122 } |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
123 } |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
124 |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
125 # |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
126 # @teaish-check-libmath |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
127 # |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
128 # Handles the --enable-math flag. Returns 1 if found, else 0. |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
129 # If found, it prepends -lm (if needed) to the linker flags. |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
130 proc teaish-check-libmath {} { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
131 teaish-check-cached "Checking for libc math library" { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
132 set lfl "" |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
133 set rc 0 |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
134 if {[msg-quiet proj-check-function-in-lib ceil m]} { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
135 incr rc |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
136 set lfl [get-define lib_ceil] |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
137 undefine lib_ceil |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
138 teaish-ldflags-prepend $lfl |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
139 msg-checking "$lfl " |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
140 } |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
141 define LDFLAGS_LIBMATH $lfl |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
142 expr $rc |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
143 } |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
144 } |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
145 |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
146 # @teaish-import-features ?-flags? feature-names... |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
147 # |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
148 # For each $name in feature-names... it invokes: |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
149 # |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
150 # use teaish/feature/$name |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
151 # |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
152 # to load TEAISH_AUTOSETUP_DIR/feature/$name.tcl |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
153 # |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
154 # By default, if a proc named teaish-check-${name}-options is defined |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
155 # after sourcing a file, it is called and its result is passed to |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
156 # proj-append-options. This can be suppressed with the -no-options |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
157 # flag. |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
158 # |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
159 # Flags: |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
160 # |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
161 # -no-options: disables the automatic running of |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
162 # teaish-check-NAME-options, |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
163 # |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
164 # -run: if the function teaish-check-NAME exists after importing |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
165 # then it is called. This flag must not be used when calling this |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
166 # function from teaish-options. This trumps both -pre and -post. |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
167 # |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
168 # -pre: if the function teaish-check-NAME exists after importing |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
169 # then it is passed to [teaish-checks-queue -pre]. |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
170 # |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
171 # -post: works like -pre but instead uses[teaish-checks-queue -post]. |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
172 proc teaish-import-features {args} { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
173 set pk "" |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
174 set doOpt 1 |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
175 proj-parse-simple-flags args flags { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
176 -no-options 0 {set doOpt 0} |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
177 -run 0 {expr 1} |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
178 -pre 0 {set pk -pre} |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
179 -post 0 {set pk -post} |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
180 } |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
181 # |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
182 # TODO: never import the same module more than once. The "use" |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
183 # command is smart enough to not do that but we would need to |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
184 # remember whether or not any teaish-check-${arg}* procs have been |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
185 # called before, and skip them. |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
186 # |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
187 if {$flags(-run) && "" ne $pk} { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
188 proj-error "Cannot use both -run and $pk" \ |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
189 " (called from [proj-scope 1])" |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
190 } |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
191 |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
192 foreach arg $args { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
193 uplevel "use teaish/feature/$arg" |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
194 if {$doOpt} { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
195 set n "teaish-check-${arg}-options" |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
196 if {[llength [info proc $n]] > 0} { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
197 if {"" ne [set x [$n]]} { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
198 options-add $x |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
199 } |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
200 } |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
201 } |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
202 if {$flags(-run)} { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
203 set n "teaish-check-${arg}" |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
204 if {[llength [info proc $n]] > 0} { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
205 uplevel 1 $n |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
206 } |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
207 } elseif {"" ne $pk} { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
208 set n "teaish-check-${arg}" |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
209 if {[llength [info proc $n]] > 0} { |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
210 teaish-checks-queue {*}$pk $n |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
211 } |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
212 } |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
213 } |
|
589bab390fb4
[ThirdParty] Added sqlite3 to the third_party.
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
214 } |