/[webpac]/openisis/current/tcl/maketcltk
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /openisis/current/tcl/maketcltk

Parent Directory Parent Directory | Revision Log Revision Log


Revision 237 - (show annotations)
Mon Mar 8 17:43:12 2004 UTC (20 years ago) by dpavlin
File size: 5045 byte(s)
initial import of openisis 0.9.0 vendor drop

1 #!/bin/bash
2
3 # $Id: maketcltk,v 1.14 2003/04/28 16:03:43 kripke Exp $
4 #
5 # sample how to build Tcl/Tk
6 # we can build shared or static versions,
7 # however, --disable-threads seems to break some tests ...
8 #
9
10
11 # recommended wish build:
12 # maketcltk -thr 8.3.5 tclx8.3.5 tix-8.1.4 blt2.4z tcllib-1.3 tclxml-2.6
13 # maketcltk -mingw 8.3.5
14 # make -C tkhtml
15
16 # other examples
17 # maketcltk -thr 8.4.2 oratcl-4-1-branch
18 # maketcltk -thr 8.3.5 oratcl3.3
19 # maketcltk 8.3.4 oratcl3.3
20 #
21
22 # for dir in tcl tclx tix blt incrtcl oratcl; do
23 # http://belnet.dl.sourceforge.net/sourceforge/$dir
24 # done
25
26
27 unset TCLLIBPATH
28 CC=gcc; export CC
29
30 calledas="$0 $*"
31
32 base=`pwd`/
33 case "$1" in
34 -base) base="$2"; shift 2;;
35 esac
36
37 mingw=false
38 static=false
39 case "$1" in
40 -mingw) mingw=true; shift;;
41 -a) static=true; shift;;
42 *) [ -n "$WIN32" ] && mingw=true;;
43 esac
44
45 tclsubdir=unix
46 other=win
47 w=
48 CFG=--enable-gcc
49 if $mingw; then
50 static=true
51 tclsubdir=win
52 other=unix
53 w=.w
54 if [ -d $HOME/mingw/bin ]; then
55 PATH=$HOME/mingw/bin:$HOME/mingw/i386-mingw32msvc/bin:$PATH
56 elif [ -d /opt/cross-tools/bin ]; then
57 PATH=/opt/cross-tools/bin:/opt/cross-tools/i386-mingw32msvc/bin:$PATH
58 else
59 echo "could not find mingw installation. suggest you link $HOME/mingw to it">&2
60 exit 1
61 fi
62 WIN32=yes
63 export PATH WIN32
64 CFG="$CFG --cache-file=config.cross.cache --host=i386-mingw32msvc"
65 CFG="$CFG --target=i386-mingw32msvc --build=i386-linux"
66 fi
67
68 case "$remake" in
69 true);;
70 *) remake=false;;
71 esac
72
73 thr=--disable-threads
74 t=
75 case "$1" in
76 -thr) thr=--enable-threads; t=.t; shift;;
77 esac
78
79 ver=${1:-8.3.5}
80 for arg; do
81 case "$arg" in
82 tclxml*) tclxml="$arg";;
83 tclx*) tclx="$arg";;
84 oratcl*) oratcl="$arg";;
85 tix*) tix="$arg";;
86 blt*) blt="$arg";;
87 tcllib*) tcllib="$arg";;
88 esac
89 done
90
91
92
93 makepkg () {
94 echo "### makepkg $*"
95 pfx=$1
96 pkg=$2
97 cfg=$3
98 shift 3
99 (
100 $remake && ( cd $pkg/$other; make clean distclean; )
101 cd $pkg/$tclsubdir
102 $remake && rm config.{cache,log,status}
103 $remake && make distclean
104 echo CC=gcc $cfg $CFG --prefix=$pfx $thr "$@"
105 [ -f config.status ] || $cfg $CFG --prefix=$pfx $thr "$@"
106 $remake && make clean
107 make install
108 );# popd
109 }
110
111
112 maketix () {
113 echo "### maketix $*"
114 pfx=$1
115 pkg=$2
116 shift 2
117 with="--with-tclconfig=$dir/lib --with-tkconfig=$dir/lib"
118 # should be able to figure it out
119 # with="$with --with-tclinclude=$dir/include --with-tkinclude=$dir/include"
120 (
121 $remake && ( cd $pkg/$other; make clean distclean; )
122 cd $pkg/$tclsubdir
123 $remake && make distclean
124 echo CC=gcc ./configure --prefix=$pfx $thr $with "$@"
125 [ -f config.status ] || ./configure --prefix=$pfx $thr $with "$@"
126 # figure out subdir
127 case "$pfx" in
128 *8.4*) subdir=tk8.4;;
129 *) subdir=tk8.3;;
130 esac
131 echo "# tix subdir $subdir"
132 cd $subdir
133 $remake && make distclean
134 echo CC=gcc ./configure $CFG --prefix=$pfx $thr $with "$@"
135 ./configure $CFG --prefix=$pfx $thr $with "$@"
136 make install
137 cd ..
138 make install
139 );# popd
140 }
141
142 makeblt () {
143 echo "### makeblt $*"
144 pfx=$1
145 pkg=$2
146 shift 2
147 (
148 cd $pkg
149 $remake && rm config.{cache,log,status}
150 # make distclean
151 echo CC=gcc ./configure $CFG --prefix=$pfx $thr "$@"
152 [ -f config.status ] || ./configure $CFG --prefix=$pfx $thr "$@"
153 $remake && make clean
154 make ;# important to make first, else bltsh is missing!
155 make install
156 );# popd
157 }
158
159 makexml () {
160 echo "### makexml $*"
161 pfx=$1
162 pkg=$2
163 shift 2
164 (
165 cd $pkg
166 $remake && rm config.{cache,log,status}
167 $remake && make distclean
168 echo CC=gcc ./configure $CFG --prefix=$pfx $thr "$@"
169 [ -f config.status ] || ./configure $CFG --prefix=$pfx $thr "$@"
170 $remake && make clean
171 make install
172 );# popd
173 }
174
175 makeall () {
176 sfx=$1
177 shr=$2
178 dir=$base$ver$sfx
179 mkdir $dir
180 echo "### $calledas"
181 if [ -d "tk$ver" ]; then
182 mktk=true
183 usetk="--enable-tk --with-tk=$dir/lib"
184 else
185 mktk=false
186 usetk="--disable-tk --without-tk"
187 fi
188 echo tail -f $dir/makeall.log
189 $remake && [ -f $dir/makeall.log ] && mv $dir/makeall.log $dir/makeall.log.old
190 exec >>$dir/makeall.log 2>&1
191 echo "### $calledas"
192 makepkg $dir tcl$ver ./configure $shr
193 $mktk && makepkg $dir tk$ver ./configure $shr --with-tcl=$dir/lib
194 [ -n "$tclx" ] && makepkg $dir $tclx ./configure $shr \
195 --with-tcl=$dir/lib $usetk
196 [ -n "$oratcl" ] && makepkg $dir $oratcl ../configure $shr --with-tcl=$dir/lib
197 if $mktk; then
198 [ -n "$tkhtml" ] && maketkhtml $dir $tkhtml
199 [ -n "$tix" ] && maketix $dir "$tix" $shr
200 [ -n "$blt" ] && makeblt $dir "$blt" $shr \
201 --with-tcl=$dir/lib --with-tk=$dir/lib
202 fi
203 if [ -n "$tcllib" ]; then
204 echo "### tcllib $tcllib"
205 (cd $tcllib && ./install.sh $dir)
206 fi
207 if [ -n "$tclxml" ]; then
208 ver=${tclxml#tclxml}
209 makexml $dir "$tclxml" $shr --with-tcl=$dir/lib
210 [ -d "tcldom-$ver" ] \
211 && makexml $dir "tcldom-$ver" $shr --with-tcl=$dir/lib
212 if false; then # requires gnome libxslt, libxml2
213 cat $dir/lib/TcldomConfig.sh $dir/lib/TclxmlConfig.sh \
214 >$dir/lib/tcldomxmlConfig.sh
215 [ -d "tclxslt-$ver" ] \
216 && makexml $dir "tclxslt-$ver" $shr --with-tcl=$dir/lib
217 fi
218 fi
219 }
220
221 if $static; then # only used for building binary dist ...
222 makeall $w$t.a --disable-shared
223 else
224 makeall $w$t.so --enable-shared
225 fi

Properties

Name Value
svn:executable

  ViewVC Help
Powered by ViewVC 1.1.26