#!/bin/sh # Build TclKit on Linux, using a mix of dynamic and static -lstdc++/-lz #case `hostname -s` in # md72) ;; # *) echo "This should only be run on Mandrake 7.2!"; exit 1;; #esac P=`pwd` O=$P/../src mkdir -p build-tcl build-tk build-itcl build-vfs build-mk cd $P/build-tcl ../../src/tcl/unix/configure --disable-shared make libtcl8.4.a cd $P/build-tk ../../src/tk/unix/configure --enable-shared --with-tcl=$P/build-tcl make libtk8.4.so cd $P/build-itcl ../../src/itcl/itcl/configure --enable-shared --with-tcl=$P/build-tcl make libitcl3.3.so cd $P/build-vfs ../../src/vfs/configure --disable-shared --with-tcl=$P/build-tcl make libvfs1.3.a cd $P/build-mk ../../src/mk/unix/configure --disable-shared --with-tcl=$O/tcl/generic make Mk4tcl.a cd $P pwd D="-DNDEBUG -D_LARGEFILE64_SOURCE -DHAVE_STRUCT_STAT64=1 -DHAVE_TYPE_OFF64_T=1" A="-DTCL_LOCAL_APPINIT=TclKit_AppInit" I="-I. -I$O/tcl/generic -I$O/tk/generic -I$O/mk/include" L="build-tcl/libtcl8.4.a build-mk/Mk4tcl.a build-vfs/libvfs1.3.a" rm -f *.o gcc -c -O3 $I $D $TCL_DEFS $O/kit/src/*.c gcc -c -O3 $I $D $TCL_DEFS $A $O/tcl/unix/tclAppInit.c # original linker appraoch was: # g++ -static -rdynamic -o kit *.o $L -ldl -lieee -lm -lz # cmd: # g++ -v -rdynamic -o kit *.o $L -ldl -lieee -lm -lz # output: # /usr/lib/gcc-lib/i586-mandrake-linux/2.95.3/collect2 -m elf_i386 -export-dynamic -dynamic-linker /lib/ld-linux.so.2 -o kit /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/gcc-lib/i586-mandrake-linux/2.95.3/crtbegin.o -L/usr/lib/gcc-lib/i586-mandrake-linux/2.95.3 kitInit.o pwb.o rechan.o tclAppInit.o zlib.o /gigs/rw/kitbuilds/alt-md72/build-tcl/libtcl8.4.a /gigs/rw/kitbuilds/alt-md72/build-mk/Mk4tcl.a /gigs/rw/kitbuilds/alt-md72/build-vfs/libvfs1.3.a -ldl -lieee -lz -lstdc++ -lm -lgcc -lc -lgcc /usr/lib/gcc-lib/i586-mandrake-linux/2.95.3/crtend.o /usr/lib/crtn.o # manually edited (link -lz and -lstdc++ static): /usr/lib/gcc-lib/i586-mandrake-linux/2.95.3/collect2 -m elf_i386 -export-dynamic -dynamic-linker /lib/ld-linux.so.2 -o kit /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/gcc-lib/i586-mandrake-linux/2.95.3/crtbegin.o -L/usr/lib/gcc-lib/i586-mandrake-linux/2.95.3 kitInit.o pwb.o rechan.o tclAppInit.o zlib.o build-tcl/libtcl8.4.a build-mk/Mk4tcl.a build-vfs/libvfs1.3.a -ldl -lieee /usr/lib/libz.a /usr/lib/gcc-lib/i586-mandrake-linux/2.95.3/libstdc++.a -lm -lgcc -lc -lgcc /usr/lib/gcc-lib/i586-mandrake-linux/2.95.3/crtend.o /usr/lib/crtn.o strip kit strip build-itcl/libitcl3.3.so strip build-tk/libtk8.4.so rm *.o cat kit ../tars/runtime.kit >kit-temp chmod +x kit-temp ./kit-temp <<'EOF' set db [vfs::mk4::Mount ../tars/runtime.kit runtime -readonly] vfs::attributes runtime -state translucent file copy build-itcl/libitcl3.3.so runtime/lib/itcl3.3/ file copy build-tk/libtk8.4.so runtime/lib/tk8.4/ set fd [open runtime-tk.kit w] mk::file save $db $fd close $fd vfs::unmount runtime EOF cp -a kit tclkit cat runtime-tk.kit >>tclkit ls -l tclkit