1 |
#!/bin/bash |
2 |
|
3 |
# $Id: mktcltk,v 1.2 2004/09/27 15:59:30 kripke Exp $ |
4 |
# reduced version of older multi-option mktcltk |
5 |
# this |
6 |
# - is fixed on a given 8.4.7-based source set |
7 |
# - builds options based on the existence of source archives |
8 |
# - fully rebuilds everything it can find |
9 |
# - builds a static libtcl8.4.a, everything else shared |
10 |
# - builds non threaded and non mingw |
11 |
# |
12 |
# base and dest are defaulted everywhere for easy pasting of parts |
13 |
# |
14 |
# Tcl: |
15 |
# requires tcl8.4.7-src.tar.gz |
16 |
# optional tcllib-1.6.1.tar.bz2 tclxml-3.0.tar.gz |
17 |
# Tk: |
18 |
# requires tk8.4.7-src.tar.gz |
19 |
# optional BLT2.4z.tar.gz tix-8.1.4.tar.gz |
20 |
|
21 |
# make static tcl 8.4.7 only to get a libtcl8.4.a |
22 |
cd ${base:-/opt/TclTk} || exit |
23 |
rm -rf ${dest:-8.4.7} |
24 |
mkdir ${dest:-8.4.7} || exit |
25 |
rm -rf tcl8.4.7 |
26 |
tar xzvf tcl8.4.7-src.tar.gz |
27 |
cd ${base:-/opt/TclTk}/tcl8.4.7/unix |
28 |
./configure --prefix=${base:-/opt/TclTk}/${dest:-8.4.7} \ |
29 |
--disable-threads --disable-shared --disable-langinfo |
30 |
make |
31 |
make install |
32 |
# move it away |
33 |
cd ${base:-/opt/TclTk} |
34 |
mv ${dest:-8.4.7} ${dest:-8.4.7}.a |
35 |
|
36 |
# make dynamic tcl 8.4.7 |
37 |
cd ${base:-/opt/TclTk} |
38 |
mkdir ${dest:-8.4.7} || exit |
39 |
rm -rf tcl8.4.7 |
40 |
tar xzvf tcl8.4.7-src.tar.gz |
41 |
cd ${base:-/opt/TclTk}/tcl8.4.7/unix |
42 |
./configure --prefix=${base:-/opt/TclTk}/${dest:-8.4.7} \ |
43 |
--disable-threads --enable-shared --disable-langinfo |
44 |
make |
45 |
make install |
46 |
# needed when bulding new Tcl object types |
47 |
cp -p ${base:-/opt/TclTk}/tcl8.4.7/generic/tclInt.h \ |
48 |
${base:-/opt/TclTk}/${dest:-8.4.7}/include |
49 |
cp -p ${base:-/opt/TclTk}/tcl8.4.7/generic/tclIntDecls.h \ |
50 |
${base:-/opt/TclTk}/${dest:-8.4.7}/include |
51 |
|
52 |
# move static version to ${dest:-8.4.7}/lib.a |
53 |
# diffs: |
54 |
# tclsh8.4, libtcl8.4.so/a, libtclstub8.4.a |
55 |
# tclConfig.sh: TCL_DEFS(-DSTATIC_BUILD=1) TCL_SHARED_BUILD TCL_LIB_FILE |
56 |
cd ${base:-/opt/TclTk} |
57 |
mkdir ${dest:-8.4.7}/lib.a |
58 |
mv ${dest:-8.4.7}.a/bin/tclsh8.4 ${dest:-8.4.7}.a/lib/tclConfig.sh \ |
59 |
${dest:-8.4.7}.a/lib/libtcl8.4.a ${dest:-8.4.7}.a/lib/libtclstub8.4.a \ |
60 |
${dest:-8.4.7}/lib.a |
61 |
rm -rf ${dest:-8.4.7}.a |
62 |
|
63 |
cd ${base:-/opt/TclTk} |
64 |
if [ ! -f tcllib-1.6.1.tar.bz2 ]; then |
65 |
echo tcllib-1.6.1.tar.bz2 not found |
66 |
else |
67 |
rm -rf tcllib-1.6.1 |
68 |
tar xjvf tcllib-1.6.1.tar.bz2 |
69 |
cd ${base:-/opt/TclTk}/tcllib-1.6.1 |
70 |
./configure --prefix=${base:-/opt/TclTk}/${dest:-8.4.7} |
71 |
make install |
72 |
fi |
73 |
|
74 |
cd ${base:-/opt/TclTk} |
75 |
if [ ! -f tclxml-3.0.tar.gz ]; then |
76 |
echo tclxml-3.0.tar.gz not found |
77 |
else |
78 |
rm -rf tclxml-3.0 |
79 |
tar xzvf tclxml-3.0.tar.gz |
80 |
cd ${base:-/opt/TclTk}/tclxml-3.0 |
81 |
./configure --prefix=${base:-/opt/TclTk}/${dest:-8.4.7} \ |
82 |
--with-tcl=${base:-/opt/TclTk}/${dest:-8.4.7}/lib \ |
83 |
--with-tclinclude=${base:-/opt/TclTk}/${dest:-8.4.7}/include \ |
84 |
--disable-threads --enable-shared --disable-langinfo |
85 |
make |
86 |
make install |
87 |
fi |
88 |
|
89 |
|
90 |
cd ${base:-/opt/TclTk} |
91 |
if [ ! -f tk8.4.7-src.tar.gz ]; then |
92 |
echo tk8.4.7-src.tar.gz not found -- skipping all Tk |
93 |
exit |
94 |
fi |
95 |
|
96 |
# make dynamic tk 8.4.7 |
97 |
cd ${base:-/opt/TclTk} |
98 |
rm -rf tk8.4.7 |
99 |
tar xzvf tk8.4.7-src.tar.gz |
100 |
cd ${base:-/opt/TclTk}/tk8.4.7/unix |
101 |
./configure --prefix=${base:-/opt/TclTk}/${dest:-8.4.7} \ |
102 |
--with-tcl=${base:-/opt/TclTk}/${dest:-8.4.7}/lib \ |
103 |
--disable-threads --enable-shared |
104 |
make |
105 |
make install |
106 |
|
107 |
|
108 |
# blt has 2.4z since Oct 02 |
109 |
cd ${base:-/opt/TclTk} |
110 |
if [ ! -f BLT2.4z.tar.gz ]; then |
111 |
echo BLT2.4z.tar.gz not found |
112 |
else |
113 |
rm -rf blt2.4z |
114 |
tar xzvf BLT2.4z.tar.gz |
115 |
cd ${base:-/opt/TclTk}/blt2.4z |
116 |
./configure --prefix=${base:-/opt/TclTk}/${dest:-8.4.7} \ |
117 |
--with-tcl=${base:-/opt/TclTk}/${dest:-8.4.7}/lib \ |
118 |
--with-tk=${base:-/opt/TclTk}/${dest:-8.4.7}/lib \ |
119 |
--disable-threads --enable-shared |
120 |
make |
121 |
make install |
122 |
fi |
123 |
|
124 |
|
125 |
# tix has 8.1.4 since Dec 02 |
126 |
cd ${base:-/opt/TclTk} |
127 |
if [ ! -f tix-8.1.4.tar.gz ]; then |
128 |
echo tix-8.1.4.tar.gz not found |
129 |
else |
130 |
rm -rf tix-8.1.4 |
131 |
tar xzvf tix-8.1.4.tar.gz |
132 |
cd ${base:-/opt/TclTk}/tix-8.1.4/unix |
133 |
./configure --prefix=${base:-/opt/TclTk}/${dest:-8.4.7} \ |
134 |
--with-tclconfig=${base:-/opt/TclTk}/${dest:-8.4.7}/lib \ |
135 |
--with-tkconfig=${base:-/opt/TclTk}/${dest:-8.4.7}/lib \ |
136 |
--enable-shared |
137 |
cd ${base:-/opt/TclTk}/tix-8.1.4/unix/tk8.4 |
138 |
./configure --prefix=${base:-/opt/TclTk}/${dest:-8.4.7} \ |
139 |
--with-tclconfig=${base:-/opt/TclTk}/${dest:-8.4.7}/lib \ |
140 |
--with-tkconfig=${base:-/opt/TclTk}/${dest:-8.4.7}/lib \ |
141 |
--enable-shared |
142 |
make |
143 |
cd ${base:-/opt/TclTk}/tix-8.1.4/unix |
144 |
make install |
145 |
fi |