avra 1.3.0 kompilieren

Avra ist ein Open Source Assembler-Programm für die Mikrocontroller der Atmel AVR RISC Familie. Da mich das Thema Mikrocontroller wieder gepackt habe, habe ich den ganzen dazugehörigen Krempel (Evaluations-Board, Programmer, ...) hervorgeholt und die notwendige Software auf meinen Computer wieder eingerichtet. In den kommenden Tagen werde ich hier auch ein kleines Einsteiger-Tutorial posten, welches die absoluten Basics darstellt.
Leider ist die avra Version, die auch aktuelle Linux-Distros, wie bspw. mein Fedora 18 anbieten (Version 1.2.3), schon etwas angestaubt. So unterstützt dieses avra noch nicht den ATtiny13-Controller, mit denen ich in Zukunft aber was machen wollte. Glücklicherweise bietet die avra Projektseite eine aktuellere Version 1.3.0 (die ist aber auch schon wieder von 2010!), die u.a. diesen Controller unterstützt. Diese Version kann man sich (nur) als Quellcode herunterladen, um es auf seinem System der Wahl zu installieren. Das war zumindest bei mir mit kleineren Hindernissen verbunden. Letztlich habe ich es hinbekommen. Wie ich das ging, möchte ich im Folgenden Beschreiben beschreiben.

  1. Zunächst holen wir uns wie gesagt das Archiv mit dem Quellcode und den Build-Utilities von hier .
  2. Jetzt öffnen wir ein Terminalfensterchen, wechseln in das Verzeichnis der Downloaddatei und entpacken das Archiv mit 'tar -xjvf avra-1.3.0.tar.bz2'.
  3. Anschließend steigen wir in das angelegte Verzeichnis ab mit 'cd avra-1.3.0'. Es schadet bestimmt nicht, einen Blick in die Textdateien INSTALL und README zu werfen.
  4. Jetzt müssen wir in das Verzeichnis mit den Source-Dateien (Quellcode) wechseln, das ist src/.
  5. Wenn wir jetzt nach der Anleitung in der Datei INSTALL vorgehen und ein './configure' eingeben, bricht die Installation mit der Meldung ab, daß die Datei install.sh nicht gefunden werden konnte. Was hier genau falsch ist, weiß ich nicht. Aber hier habe ich gefunden, daß man in einem solchen Fall das Problem dadurch beheben kann, daß man Reconfiguration mit dem Befehl 'autoreconf -f -i -Wall,no-obsolete' durchführt. Bei mir sieht die Ausgabe wie folgt aus:
    $ autoreconf -f -i -Wall,no-obsolete
    configure.in:3: installing './install-sh'
    configure.in:3: installing './missing'
    Makefile.am: installing './INSTALL'
    Makefile.am: error: required file './NEWS' not found
    Makefile.am: error: required file './README' not found
    Makefile.am: error: required file './AUTHORS' not found
    Makefile.am: error: required file './ChangeLog' not found
    Makefile.am: installing './COPYING' using GNU General Public License v3 file
    Makefile.am:     Consider adding the COPYING file to the version control system
    Makefile.am:     for your code, to avoid questions about which license your project uses
    Makefile.am: installing './depcomp'
    autoreconf: automake failed with exit status: 1
    Offensichtlich fehlen ihm noch ein paar Dateien - also geben wir sie ihm! Im gleichen Verzeichnis führt Ihr nacheinander folgende Befehle aus:
    $ touch NEWS
    $ ln -s ../README README
    $ ln -s ../AUTHORS AUTHORS
    $ touch ChangeLog
    Das legt im Verzeichnis src/ die fehlenden Dateien an, so daß das Programm automake in den folgenden Schritten nicht meckert. Der Rest ist Standard.
  6. Führe nun die beiden folgenden Befehle aus:
    $ make
    $ sudo make install
  7. Jetzt sollte das Programm avra installiert sein. Leider funktionieren die mit avra mitgelieferten Include-Files nicht. Eine Lösung dazu habe ich aber hier in einem gesonderten Artikel beschrieben, auf den ich verweisen möchte.

Viel Spaß beim Programmieren!