Difference between revisions of "AVR toolchain compilation"
m |
|||
Line 2: | Line 2: | ||
Create a new directory, where the toolchain source files will be stored temporarily. |
Create a new directory, where the toolchain source files will be stored temporarily. |
||
⚫ | |||
Run the following script! You will be asked for a password, as sudo command is used. User account with administrator (sudo) rights is required. [http://www.gnu.org/software/wget/ wget] tool is required to fetch source files from [http://www.gnu.org/software/software.html GNU] sites. You can compile wget from sources on both: Linux and MacOS platforms. |
Run the following script! You will be asked for a password, as sudo command is used. User account with administrator (sudo) rights is required. [http://www.gnu.org/software/wget/ wget] tool is required to fetch source files from [http://www.gnu.org/software/software.html GNU] sites. You can compile wget from sources on both: Linux and MacOS platforms. |
||
Line 15: | Line 13: | ||
PATH="$PREFIX/bin:$PATH" |
PATH="$PREFIX/bin:$PATH" |
||
# GCC and GAS patches |
|||
# Patches |
|||
⚫ | |||
tar -xvzf avr-new-device-patch.tar.gz |
tar -xvzf avr-new-device-patch.tar.gz |
||
Revision as of 10:23, 20 April 2011
This document is an adapted version of AVR libc tutorial.
Create a new directory, where the toolchain source files will be stored temporarily.
Run the following script! You will be asked for a password, as sudo command is used. User account with administrator (sudo) rights is required. wget tool is required to fetch source files from GNU sites. You can compile wget from sources on both: Linux and MacOS platforms.
#!/bin/bash # will be installed under /usr/local. Change here, if other destination is needed export PREFIX=/usr/local PATH="$PREFIX/bin:$PATH" # GCC and GAS patches wget http://jupiter.cs.fmf.lu.lv/kursi/bst/avr-new-device-patch.tar.gz tar -xvzf avr-new-device-patch.tar.gz # GMP: echo "Fetching GMP, required by GCC..." wget -c ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-4.3.2.tar.bz2 bunzip2 -c gmp-4.3.2.tar.bz2 | tar xf - mkdir gmp-4.3.2/obj cd gmp-4.3.2/obj echo "Building GMP..." ../configure --prefix=$PREFIX make sudo make install cd ../.. # MPFR: echo "Fetching MPFR, required by GCC..." wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2 bunzip2 -c mpfr-2.4.2.tar.bz2 | tar xf - mkdir mpfr-2.4.2/obj cd mpfr-2.4.2/obj echo "Building MPFR..." ../configure --prefix=$PREFIX make sudo make install cd ../.. # MPC: echo "Fetching MPC, required by GCC..." wget -c ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-0.8.1.tar.gz tar -xzf mpc-0.8.1.tar.gz mkdir mpc-0.8.1/obj cd mpc-0.8.1/obj echo "Building MPC..." ../configure --prefix=$PREFIX make sudo make install cd ../.. # BINUTILS: echo "Fetching binutils..." wget -c http://ftp.gnu.org/gnu/binutils/binutils-2.20.tar.gz tar -xzf binutils-2.20.tar.gz cd binutils-2.20 cp ../gas-patch-newdevices.patch ./ echo "Building binutils..." patch -p0 < gas-patch-newdevices.patch mkdir obj-avr cd obj-avr ../configure --prefix=$PREFIX --target=avr --disable-nls --disable-werror make sudo make install cd ../.. # GCC: echo "Fetching GCC…" wget -c http://ftp.gnu.org/gnu/gcc/gcc-4.5.0/gcc-core-4.5.0.tar.gz tar -xzf gcc-core-4.5.0.tar.gz cd gcc-4.5.0 cp ../gcc-new-device-support.patch ./ echo "Building GCC..." patch -p0 < gcc-new-device-support.patch mkdir obj-avr cd obj-avr ../configure --prefix=$PREFIX --target=avr --enable-languages=c,c++ --disable-nls --disable-libssp --with-dwarf2