Wednesday 11 August 2010

LAP - X - Part 3, Protocol Headers & Utils

We'll now move on to the first part of the actual X build, the Protocol headers. I do not exactly know what these are, but I assume they are the same type of thing as the Linux headers which we required to install from the Kernel sources at the beginning of the toolchain and actual builds.

Once we have our Xorg variables set we need to run the following command in the [/sources/xorg/proto] directory:

for package in $(grep -v '^#' ../proto-7.5-2.wget)
do
packagedir=${package%.tar.bz2}
tar -xvf $package
cd $packagedir
./configure $XORG_CONFIG
make install
cd ..
rm -rvf $packagedir
done 2>&1 | tee -a ../proto-7.5-2-compile.log

That looks complicated, but it really isn't. First of all it uses [grep] to search through the [.wget] file for all the filenames that we are going to use. It then assigns each filename in turn to the variable [package]. I presume that the [packagedir] variable is assigned the name of the file without the [tar.bz2] bit at the end. Thankfully none of these packages are gzipped, or uncompress to a stupid folder name, otherwise this would be much harder. We then uncompress and move into the resulting folder. We then run configure using the variable we set before - so the configure command is really short. Apparently there is no make command, we just [make install]. Then we come out of the folder and remove it. All of the output is logged using [tee] to a log file.

Lets make a script for this. I have added the [1] to the name, to remind myself about the install order once I have rebooted to the Amiga Key and am actually running all these scripts:

sudo cat > inst_1_proto.sh << "ARSE" 
cd /sources/xorg/proto
for package in $(grep -v '^#' ../proto-7.5-2.wget)
do
packagedir=${package%.tar.bz2}
tar -xvf $package
cd $packagedir
./configure $XORG_CONFIG
make install
cd ..
rm -rvf $packagedir
done 2>&1 | tee -a ../proto-7.5-2-compile.log
echo "Next: ~/inst_2_util.sh"
ARSE
chmod +x ./inst_1_proto.sh
sudo mv ./inst_1_proto.sh /media/lfs/root

Note that at the beginning of the script it changes into the correct directory, so it does not actually matter where you execute the script from, it will make its way to the proper place before running all the commands.

Now we are going to do exactly the name thing, but for the Utilities package. Surprisingly enough this package contains utilities. Having a browse through the descriptions in BLFS, it seems that these are mostly geared towards the installation of X rather than running it. The command we are going to run is:

for package in $(grep -v '^#' ../util-7.5-2.wget)
do
packagedir=${package%.tar.bz2}
tar -xvf $package
cd $packagedir
./configure $XORG_CONFIG
make $CORES_TO_USE
make install
cd ..
rm -rvf $packagedir
done 2>&1 | tee -a ../util-7.5-2-compile.log

The difference with this command is the addition of a [make] step - otherwise it is just the same (with the obvious substitution of [util] for [proto] of course. Lets script this bad boy up. I have put in an [echo] command at the end to remind myself what to do next.

sudo cat > inst_2_util.sh << "ARSE" 
cd /sources/xorg/util
for package in $(grep -v '^#' ../util-7.5-2.wget)
do
packagedir=${package%.tar.bz2}
tar -xvf $package
cd $packagedir
./configure $XORG_CONFIG
make $CORES_TO_USE
make install
cd ..
rm -rvf $packagedir
done 2>&1 | tee -a ../util-7.5-2-compile.log
echo "Now do libXau and libXdmcp with the configure option XORG_CONFIG.  You can check libXau.  Then run ~/inst_ed.sh"
ARSE
chmod +x ./inst_2_util.sh
sudo mv ./inst_2_util.sh /media/lfs/root

No comments:

Post a Comment