blob: b070a8d8464642e1b48b59d5d0b043241738cb7f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
|
#
# This script is intended to be run in the top directory
# with: tclsh starkit.tcl.
# It needs a tclkit and the sdx command as a starkit in the path.
#
set MAJOR_VERSION @MAJOR_VERSION@
set MINOR_VERSION @MINOR_VERSION@
set PATCHLEVEL @PATCHLEVEL@
#
# Starkit structure
#
# demo.tcl
# lib
# tkimg1.3
# files from the Tkimg starkit
# TkzincX.Y
# Copyright
# demos
# demos files and sub-directories
# Linux-x86
# Tkzinc.so
# pkgIndex.tcl
# Windows-x86
# Tkzinc.dll
# zincGraphics.tcl
# zincLogo.tcl
# zincText.tcl
# main.tcl
#
proc Windows-x86-Compile {} {
set cwd [pwd]
puts "Compiling for Windows $cwd..."
cd win
if { [catch { exec tclsh package.tcl clean } result] } {
puts $result
exit
}
if { [catch { exec tclsh package.tcl subst } result] } {
puts $result
exit
}
if { [catch { exec tclsh package.tcl tcl } result] } {
puts $result
exit
}
#
# Copy the dll in the root dir for updateKit.
file copy -force [glob -directory buildtcl Tkzinc*.dll] [file join $cwd Tkzinc.dll]
cd $cwd
}
proc Linux-x86-Compile {} {
}
proc updateKit { TkzincVfs } {
global MAJOR_VERSION MINOR_VERSION PATCHLEVEL
set zincPath [file join $TkzincVfs lib Tkzinc$MAJOR_VERSION.$MINOR_VERSION]
set version $MAJOR_VERSION.$MINOR_VERSION.$PATCHLEVEL
set winVersion $MAJOR_VERSION$MINOR_VERSION$PATCHLEVEL
file copy -force [file join starkit demo.tcl] [file join starkit main.tcl] $TkzincVfs
set zincPath [file join $TkzincVfs lib Tkzinc$MAJOR_VERSION.$MINOR_VERSION]
file mkdir $zincPath
file copy -force Copyright \
[file join library zincGraphics.tcl] \
[file join library zincLogo.tcl] \
[file join library zincText.tcl] \
$zincPath
set demosPath [file join $zincPath demos]
file mkdir $demosPath
foreach f [glob -directory demos *.tcl] {
file copy -force $f $demosPath
}
file delete -force [file join $demosPath data] [file join $demosPath images]
file copy -force [file join demos zinc-widget] [file join demos data] [file join demos images] $demosPath
#
# Emit a merged pkgIndex.tcl
#
set fOut [open [file join $zincPath pkgIndex.tcl] w]
puts $fOut "proc Platform {} {"
puts -nonewline $fOut [info body Platform]
puts $fOut "}"
set fIn [open [file join library pkgIndex.tcl]]
foreach line [split [read $fIn] \n] {
if {![regexp {^\s*$|^#} $line]} {
puts $fOut $line
}
}
close $fIn
puts -nonewline $fOut "package ifneeded Tkzinc $version "
puts $fOut {[list load [file join $dir [Platform] Tkzinc[info sharedlibext]]]}
close $fOut
#
# Copy the platform dependent libraries
#
if { [file exists libTkzinc$version.so] } {
set platformPath [file join $zincPath Linux-x86]
file mkdir $platformPath
file copy -force libTkzinc$version.so [file join $platformPath Tkzinc.so]
}
if { [file exists Tkzinc.dll] } {
set platformPath [file join $zincPath Windows-x86]
file mkdir $platformPath
file copy -force Tkzinc.dll [file join $platformPath Tkzinc.dll]
}
}
proc Platform {} {
global tcl_platform
set plat [lindex $tcl_platform(os) 0]
set mach $tcl_platform(machine)
switch -glob -- $mach {
sun4* { set mach sparc }
intel -
i*86* { set mach x86 }
"Power Macintosh" { set mach ppc }
}
switch -- $plat {
AIX { set mach ppc }
HP-UX { set mach hppa }
}
return "$plat-$mach"
}
#
# Build the current platform variant
[Platform]-Compile
set TkzincVfs Tkzinc.vfs
set TkzincKit Tkzinc.kit
set cwd [pwd]
cd ..
if { ! [file exists $TkzincVfs] } {
if { [file exists $TkzincKit] } {
exec sdx unwrap $TkzincKit
} else {
puts "Unable to find either Tkzinc.kit or Tkzinc.vfs in .. , giving up."
exit
}
}
cd $cwd
updateKit [file join .. $TkzincVfs]
puts "Now wrapping the starkit"
cd ..
exec sdx wrap $TkzincKit
|