tar -xzvf $LFS/sources/tcl8.5.8-src.tar.gz cd tcl8.5.8
Note, we have to use the [z] option instead of [j] because this is a gzipped file, not a bzip2'd file. Also, note that, helpfully, when you unpack the file it unpacks to /tcl8.5.8, NOT /tcl8.5.8-src as you may have been led to believe.
If you have a look in the folder you will not find a configure script, you need to change to the unix directory first, before running what is now a standard configure/make command.
cd unix ./configure --prefix=/tools make $CORES_TO_USE
Something we have touched on in passing so far are test suites. These are command that you run on compiled software AFTER compilation but BEFORE installation. They are supposed to tell you if something has gone wrong, but in my experience they give you lots of frightening looking warnings which actually have no significance at all. Ordinarily with the toolchain software we do not need to bother with running tests – other than the careful tests that GCC is working properly. Still, we want to be thorough so lets do one now:
TZ=UTC make test
The [TZ=UTC] bit means Timezone=Universal Central Time. The output of all that makes no sense to me whatsoever, but there do not appear to be any ERROR ERROR MUST KILL HUMAN RACE type messages. Now just install the compiled programs:
make install
The software that we are installing comes with stuff called 'debugging symbols' included. I am not entirely sure what these are, but in my mind they are little signs that programs hold up when they have turned pear shaped saying things like 'ooops' and 'my bad', and 'I shouldn't have done that should I?'. These are not necessary, because I have no fucking intention of debugging any thing. Later on we will be removing these debugging symbols to free up space. We need to write enable one of the files we just installed so that we can change it later on.
chmod -v u+w /tools/lib/libtcl8.5.so
That [ch]anges the [mod]e of the file by allowing the current [u]ser to [w]rite to it. Next we need to install Tcl's private headers. I am not entirely sure what a private header is, but it probably involves a sealed room and a prostitute.
make install-private-headers
The program we have installed has its version number attached to it, which means some other software may not be able to find it, so lets just symbolic link away the problem, and then clean up.
ln -sv tclsh8.5 /tools/bin/tclsh cd ../.. rm -rvf tcl8.5.8
Next up is Expect. This is an extension to the TCL package we just installed.
tar -xzvf $LFS/sources/expect-5.43.0.tar.gz cd expect-5.43
Patch away a bug that causes problems with GCC, and some sort of other bug that the book is curiously reticent about.
patch -Np1 -i $LFS/sources/expect-5.43.0-spawn-1.patch patch -Np1 -i $LFS/sources/expect-5.43.0-tcl_8.5.5_fix-1.patch
Warning, more sed crap coming up! Again, we edit a file (the configure script) to force it not to use the host system stuff, and then run the configure script.
cp -v configure{,.orig} sed 's:/usr/local/bin:/bin:' configure.orig > configure ./configure --prefix=/tools --with-tcl=/tools/lib --with-tclinclude=/tools/include --with-x=no
The first two options make sure that this extension to TCL knows about the TCL we have just installed. The last option tells it that we have not yet installed the 'X' window system.
make make test
I've not bothered with the $CORES setting for this, as it takes a whopping 7 seconds to run on my 1.6Ghz celeron single threaded. I ended up with:
Files with failing tests: logfile.test send.test spawn.test
I have done everything right so far, so I am going to ignore that. And according to the book failures are not surprising and not critical. So why did we run the tests again? Anyway, when we install the software we tell it not to install any scripts:
make SCRIPTS="" install cd .. rm -rvf expect-5.43
Next is DejaGNU. This is a package based on TCL and Expect which assist with running tests.
tar -xzvf $LFS/sources/dejagnu-1.4.4.tar.gz cd dejagnu-1.4.4 ./configure --prefix=/tools make install make check
The output of the check is unclear, it tells me that it expected 62 tests to pass, but brilliantly fails to tell me how many actually passed. That's it though, just the clear up to go.
cd .. rm -rvf dejagnu-1.4.4
No comments:
Post a Comment