summaryrefslogtreecommitdiff
path: root/compiler/create_crosscompiler.sh
blob: 381fcdf699f7cbd5d235c71b935cbaea8e63c1b2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/bin/bash
export PREFIX=/home/indigo/projects/small/indigo_os/compiler/indigo_gcc
export TARGET=x86_64-elf
export PATH="$PREFIX/bin:$PATH"

export JOBS=7

mkdir -p indigo_gcc/
mkdir -p src/

mkdir src/packs
mkdir src/build_binutils
mkdir src/build_gcc



#download the latest binutils
lftp -c "set xfer:clobber on; connect ftp.gnu.org; get -O src/packs/ gnu/binutils/$(lftp -c 'connect ftp.gnu.org; ls gnu/binutils/binutils*.tar.gz' | awk '{print $NF}' | sort -V | tail -n 1)"

#download gcc
# TODO clean up this script so we only need one connection

latest_gcc=$(lftp -c 'connect ftp.gnu.org; ls -d gnu/gcc/gcc-*' | grep -E "^d" | awk '{print $NF}' | sort -V | tail -1)
lftp -c "set xfer:clobber on; connect ftp.gnu.org; get -O src/packs/ gnu/gcc/$latest_gcc/$latest_gcc.tar.gz"

cd src/packs/

for f in *tar.gz; do 
  tar -xf "$f"
done

cd ../build_binutils
../packs/binutils-*/configure --target=$TARGET --enable-interwork --enable-multilib --disable-nls --disable-werror --prefix="$PREFIX" &&
make -j$JOBS all install 2>&1 | tee binutils_build_log
make install

cd ../build_gcc
../packs/gcc-*/configure --target=$TARGET --prefix="$PREFIX" --disable-nls --disable-libssp --enable-languages=c --without-headers &&
make -j$JOBS all-gcc &&
make -j$JOBS all-target-libgcc &&
make install-gcc
make install-target-libgcc