Overview
| Comment: | Updated to support output to exe |
|---|---|
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
3c45d1d05084629c47f91f432bf20de7 |
| User & Date: | rkeene on 2014-06-18 17:03:25.808 |
| Other Links: | manifest | tags |
Context
|
2014-06-18
| ||
| 17:26 | Updated to produce working shared objects and executables (might need more stuff for Windows) check-in: ff53d13ed7 user: rkeene tags: trunk | |
| 17:03 | Updated to support output to exe check-in: 3c45d1d050 user: rkeene tags: trunk | |
| 05:05 | Updated to allow output to file (DLL/SO) to work -- but segfaults check-in: c208e3c07f user: rkeene tags: trunk | |
Changes
Modified tcc4tcl.tcl
from [0ac3e6cbbe]
to [54d1a42bf7].
| ︙ | |||
20 21 22 23 24 25 26 | 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | + + + - + + |
set handle ::tcc4tcl::tcc_[incr count]
set tcc_handle ::tcc4tcl::tcc_[incr count]
if {$output == ""} {
set type "memory"
} else {
if {$pkgName == ""} {
set type "exe"
} else {
|
| ︙ | |||
80 81 82 83 84 85 86 87 88 89 90 91 92 93 | 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | + + + + + + + + + + + + + + + |
"memory" {
tcc compile $state(code)
foreach {procname cname} $state(procs) {
tcc command $procname $cname
}
}
"exe" {
if {[info exists state(procs)] && [llength $state(procs)] > 0} {
append state(code) "int _initProcs(Tcl_Interp *interp) \{\n"
foreach {procname cname} $state(procs) {
append state(code) " Tcl_CreateObjCommand(interp, \"$procname\", $cname, NULL, NULL);"
}
append state(code) "\}"
}
tcc compile $state(code)
tcc output_file $state(filename)
}
"dll" {
append state(code) "int [string totitle $state(package)]_Init(Tcl_Interp *interp) \{\n"
append state(code) "#ifdef USE_TCL_STUBS\n"
append state(code) " if (Tcl_InitStubs(interp, \"8.4\" , 0) == 0L) \{\n"
append state(code) " return TCL_ERROR;\n"
append state(code) " \}\n"
append state(code) "#endif\n"
|
| ︙ |