0) Common settings
cpu=alpha
export PATH=/cross/$cpu-freebsd-gnu-tools/bin:$PATH

# Target directory
mkdir /cross/$cpu-freebsd-gnu
# Cross-build tools
mkdir /cross/$cpu-freebsd-gnu-tools

1) binutils

mkdir /gnu/build/build-binutils-$cpu
cd /gnu/build/build-binutils-$cpu
../binutils-2.12.90.0.7/configure --enable-shared --disable-nls --target=$cpu-freebsd-gnu --prefix=/cross/$cpu-freebsd-gnu-tools
make
make install
cd ..
rm -rf /gnu/build/build-binutils-$cpu

2) A few symlinks.

ln -s ../../$cpu-freebsd-gnu/include /cross/$cpu-freebsd-gnu-tools/$cpu-freebsd-gnu/include

mkdir -p /cross/$cpu-freebsd-gnu/lib
mv /cross/$cpu-freebsd-gnu-tools/$cpu-freebsd-gnu/lib/ldscripts /cross/$cpu-freebsd-gnu/lib/ldscripts
rmdir /cross/$cpu-freebsd-gnu-tools/$cpu-freebsd-gnu/lib
ln -s ../../$cpu-freebsd-gnu/lib /cross/$cpu-freebsd-gnu-tools/$cpu-freebsd-gnu/lib

3) gcc, part 1: $cpu-freebsd-gnu-gcc and cc1

This is necessary for step 4.

mkdir /gnu/build/build-gcc-$cpu
cd /gnu/build/build-gcc-$cpu

/packages2/gcc-3.1/configure --enable-shared --disable-nls --target=$cpu-freebsd-gnu --prefix=/cross/$cpu-freebsd-gnu-tools --with-local-prefix=/cross/$cpu-freebsd-gnu/local --with-as=/cross/$cpu-freebsd-gnu-tools/bin/$cpu-freebsd-gnu-as --with-gnu-as --with-ld=/cross/$cpu-freebsd-gnu-tools/bin/$cpu-freebsd-gnu-ld --with-gnu-ld --enable-languages=c
make
make -k install
[keep the directory for finishing later]

4) glibc, round 1, install header files

mkdir /gnu/build/build-glibc-$cpu
cd /gnu/build/build-glibc-$cpu
/packages2/glibc-2.2.5/configure --host=$cpu-freebsd-gnu --build=i386-pc-freebsd --prefix=/cross/$cpu-freebsd-gnu --disable-profile
# Not yet --enable-add-ons
make
make -k install
cd ..
rm -rf /gnu/build/build-glibc-$cpu

touch /cross/$cpu-freebsd-gnu/include/gnu/stubs.h

5) gcc, part 2: libgcc.a

cd /gnu/build/build-gcc-$cpu
make
install gcc/libgcc.a /cross/$cpu-freebsd-gnu-tools/lib/gcc-lib/$cpu-freebsd-gnu/3.1/libgcc.a
install gcc/libgcc_eh.a /cross/$cpu-freebsd-gnu-tools/lib/gcc-lib/$cpu-freebsd-gnu/3.1/libgcc_eh.a
[keep the directory for finishing later]

6) glibc, round 2:

Redo step 4. The first round was not optimal, because configure was confused
by the absence of libgcc.

mkdir /gnu/build/build-glibc-$cpu
cd /gnu/build/build-glibc-$cpu
/packages2/glibc-2.2.5/configure --host=$cpu-freebsd-gnu --build=i386-pc-freebsd-gnu --prefix=/cross/$cpu-freebsd-gnu --disable-profile
# Not yet --enable-add-ons
make
make install

7) gcc, part 3

cd /gnu/build/build-gcc-$cpu
make
make install
