%*
%* Copyright (c) 2007 by Lukas Ruf (lukas.ruf@lpr.ch)
%*
%* Create: 2007-01-30:1703G
%* Modify: 2007-01-30:1704
%* Commit: $Id: originalproblem.tex 272 2007-03-06 21:45:29Z ruf $
%*

\chapter{Toolchain}
\label{toolchain}
Dieser Anhang enthält die nötigen Befehle zur Installation der von uns verwendeten Toolchain und gibt das zur Arbeit gehörende Script wieder, das diese Aufgabe automatisiert, TOPSY v3 kompiliert und im Emulator startet.\\
Für die Entwicklung verwendeten eine aus folgenden Hilfsmitteln bestehende Toolchain:
\begin{itemize}
	\item GNU C Compiler Version 4.1.1
	\item Newlib C-Bibliotheken Version 1.14.0
	\item GNU Binutils Linker und Assembler Version 2.17
\end{itemize}

Das folgende Script funktioniert unter der Voraussetzung, dass
\begin{itemize}
	\item die Dateien \texttt{gcc-4.1.1.tar.bz2}, \texttt{newlib-1.14.0.tar.gz} und \texttt{binutils-2.17.tar.bz2} im Arbeitsverzeichnis vorliegen, und
	\item der Compiler für die Host-Plattform bereits installiert ist und die dafür nötigen Libraries eingerichtet sind. Unter Debian Linux auf der x86-Plattform sind das die Pakete \texttt{make}, \texttt{bin86} und \texttt{build-essential}.
\end{itemize}

\begin{verbatim}
#!/bin/bash

# Entpacken der Quelldateien
tar -jxf gcc-4.1.1.tar.bz2 &
tar -zxf newlib-1.14.0.tar.gz&
tar -jxf binutils-2.17.tar.bz2

# Konfiguration und Installation von Binutils
cd binutils-2.17
./configure --target=arm-elf --prefix=`pwd`/../toolchain \
  --enable-interwork --enable-multilib --with-float=soft
make all install
cd ..
export PATH="$PATH:`pwd`/toolchain/bin"

# Konfiguration von GCC
cd gcc-4.1.1
./configure --target=arm-elf --prefix=`pwd`/../toolchain \
  --enable-interwork --enable-multilib --with-float=soft \
  --enable-languages="c,c++" --with-newlib               \
  --with-headers=../newlib-1.14.0/newlib/libc/include
make all-gcc install-gcc

# Konfiguration und Installation von Newlib
cd ../newlib-1.14.0
./configure --target=arm-elf --prefix=`pwd`/../toolchain \
  --enable-interwork --enable-multilib --with-float=soft
make all install

# Installation von GCC
cd ../gcc-4.1.1
make all install
cd ..

# Konfiguration und Installation des Emulators
./emu.sh

# Compilation von TOPSY v3
cd TopsyIXP2400
./make clean
./make ixp2400

# Starten des Emulators
../IXP-Emulator/src/arch/simarm/simarm -c simarm.cfg
\end{verbatim}
