1 |
dpavlin |
604 |
#!/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 |