# avr-gcc toolchain build notes - version 1.2 # Last updated: January 9, 2010 # Matthew Beckler - matthew at mbeckler dot org # # Based on these guides: # http://tuxgraphics.org/electronics/200901/avr-gcc-linux.shtml # http://electrons.psychogenic.com/modules/arms/art/3/AVRGCCProgrammingGuide.php # http://electrons.psychogenic.com/modules/arms/art/6/SimulatingandDebuggingAVRprograms.php # # Used a fresh install of Ubuntu 9.10 Karmic (i686) in a virtual machine. # # -------------------------------------------------------------------- # # If you have the usr_local_avr_toolchain.tar.gz and want to install that and # not go to all the trouble of building these tools, do this: # # cd /usr/local # sudo tar xvzf ~/usr_local_avr_toolchain.tar.gz # # Be sure to add /usr/local/avr/bin to your path! # You probably want to install these to work with the wnl code: # sudo apt-get install subversion scons python-pexpect # general setup cd ~ mkdir avr_build # add /usr/local/avr/bin to PATH, by adding this line to ~/.bashrc export PATH=$PATH:/usr/local/avr/bin # you should also do this for the root user, since using sudo can # reset your PATH to root's default PATH source ~/.bashrc # install newer versions of MPFR and GMP dev packages # required to build newer versions of gcc (ubuntu packages) # also should pull in 4.1 versions of gcc # The texinfo package is used while building binutils. sudo apt-get install libgmp3-dev libmpfr-dev texinfo # binutils-2.19 cd ~/avr_build wget ftp://ftp.gnu.org/gnu/binutils/binutils-2.19.tar.gz tar xvzf binutils-2.19.tar.gz cd binutils-2.19 mkdir build cd build export CC=gcc ../configure --target=avr --prefix=/usr/local/avr --disable-nsl --enable-install-libbfd --disable-werror make sudo make install # to test binutils installation: /usr/local/avr/bin/avr-as --help # gcc-core-4.2.3 cd ~/avr_build wget ftp://ftp.gnu.org/gnu/gcc/gcc-4.3.2/gcc-core-4.3.2.tar.gz tar xvzf gcc-core-4.3.2.tar.gz cd gcc-4.3.2 mkdir build cd build ../configure --target=avr --prefix=/usr/local/avr --disable-nsl --enable-languages=c --disable-libssp make # sometimes there are PATH issues with "sudo make install", # so you might try "sudo su" and then "make install". # be sure to 'exit' from the root account before continuing! sudo make install # to test: avr-gcc --version # avr-libc-1.6.4 cd ~/avr_build wget http://savannah.inetbridge.net/avr-libc/avr-libc-1.6.4.tar.bz2 tar xvjf avr-libc-1.6.4.tar.bz2 cd avr-libc-1.6.4/ mkdir build cd build export CC=avr-gcc ../configure --build=`../config.guess` --host=avr --prefix=/usr/local/avr make # again, it might work best to "sudo su" then "make install" # be sure to 'exit' from the root account before continuing! sudo make install # avrdude-5.8 sudo apt-get install flex byacc libusb-dev cd ~/avr_build wget http://nongnu.askapache.com/avrdude/avrdude-5.8.tar.gz tar xvzf avrdude-5.8.tar.gz cd avrdude-5.8 export CC=gcc ./configure --prefix=/usr/local/avr make sudo make install export CC= # TODO add udev magic to fix usb permissions for non-root user using avrdude. # gdb-6.8 sudo apt-get install libncurses5-dev # the above install fixes a warning about "no termcap library found" cd ~/avr_build wget http://ftp.gnu.org/gnu/gdb/gdb-6.8.tar.gz tar xvzf gdb-6.8.tar.gz cd gdb-6.8 ./configure --target=avr --prefix=/usr/local/avr --disable-werror make sudo make install # simulavrxx sudo apt-get install tcl-dev cvs autoconf libtool swig g++ zlib1g-dev cd ~/avr_build cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/simulavr co simulavrxx cd simulavrxx ./bootstrap ./configure --prefix=/usr/local/avr --with-bfd=/usr/local/avr # remove both references to 'examples' in the Makefile. (see diff below) vim Makefile make sudo make install # other stuff to install for wnl dev: sudo apt-get install subversion scons python-pexpect matthew@karmic-fresh:~/avr_build/simulavrxx$ diff -u Makefile Makefile_orig --- Makefile 2009-11-20 13:22:03.394709782 -0500 +++ Makefile_orig 2009-11-20 13:19:26.630713617 -0500 @@ -75,7 +75,7 @@ distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags -DIST_SUBDIRS = src doc regress +DIST_SUBDIRS = src examples doc regress DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) @@ -259,7 +259,8 @@ top_builddir = . top_srcdir = . ACLOCAL_AMFLAGS = -I m4 -SUBDIRS = src doc regress +EXAMPLES = examples +SUBDIRS = src $(EXAMPLES) doc regress EXTRA_DIST = bootstrap make_tarball README.gdb SUPPORT \ m4/README m4/avr_tcl.m4 m4/avr_swig.m4