amiga-gcc ist eine C/C++ Cross-Compiler Suite, die Amiga-Programmierern die GNU Compiler Collection gcc und den C-Compiler VBCC, aber auch Werkzeuge wie vamos unter Linux, Windows und macOS zur Verfügung stellt. Die Suite kommt mit zwei vollständigen C-Entwicklungsumgebungen inklusive der Standard-Header und integrierten Erweiterungsbibliotheken, wie z.B. MUI und ReAction, für AmigaOS 1.3 bis AmigaOS 3.2 daher und kann als ein neuer Standard bei der Entwicklung von Programmen auf dem Commodore Amiga (68k) betrachtet werden.
Stefan ‚Bebbo‘ Franke, Autor der Cross-Compiler Suite, stellt amiga-gcc auf seiner Website kostenlos zur Verfügung. Um die Suite unter debian Linux zu installieren, genügen einige wenige Schritte – und ein bisschen Geduld. Auf einem durchschnittlichen PC dauert es mit einer schnellen Internet-Verbindung bummelig 40 Minuten, um Alles herunter zu laden, zu übersetzen und einzurichten.
Vorbereitungen
Zunächst muss das System auf den aktuellen Stand gebracht und einige Abhängigkeiten installiert werden:
git clone https://franke.ms/git/bebbo/amiga-gcc
cd amiga-gcc
make PREFIX=~/amiga NDK=3.2 update
make PREFIX=~/amiga NDK=3.2 all -j8
make PREFIX=~/amiga NDK=3.2 vbcc -j8
make PREFIX=~/amiga NDK=3.2 vlink -j8
Anpassen der Pfade, Setzen von Aliases
Damit amiga-gcc und seine Komponenten einwandfrei aus jedem Pfad heraus arbeiten, müssen die Pfade dem System bekannt gemacht werden. Bei der Gelegenheit kannst du auch gleich ein paar Aliases setzen, die dir Tipparbeit ersparen. Füge am Ende deiner ~.bashrc das Folgende ein:
# Bebbo's amiga-gcc
export VBCC=~/amiga
export AMIGA_GCC=~/amiga
export PATH=$AMIGA_GCC:$AMIGA_GCC/bin:$PATH
alias agcc='m68k-amigaos-gcc'
alias ag++='m68k-amigaos-g++'
alias astrip='m68k-amigaos-strip'
Mache die Änderungen anschließend deiner Shell bekannt:
source ~/.bashrc
Testen der Installation
Gib das folgende, kurze Listing ein und speichere es unter dem Namen hello.c
Beachte, dass unser Beispiel-Listing so nicht fehlerfrei compiliert werden kann! Unter AmigaOS 1.3 ist zum Einen die Verzeichnisstruktur der Header-Files anders aufgebaut und zum Anderen gab es zu dieser Zeit die interne Printf()-Routine noch nicht. Du musst das Programm also umschreiben:
amiga-gcc ist eine C/C++ Cross-Compiler Suite, die Amiga-Programmierern die GNU Compiler Collection gcc und den C-Compiler VBCC, aber auch Werkzeuge wie vamos unter Linux, Windows und macOS zur Verfügung stellt. Die Suite kommt mit zwei vollständigen C-Entwicklungsumgebungen inklusive der Standard-Header und integrierten Erweiterungsbibliotheken, wie z.B. MUI und ReAction, für AmigaOS 1.3 bis AmigaOS 3.2 daher und kann als ein neuer Standard bei der Entwicklung von Programmen auf dem Commodore Amiga (68k) betrachtet werden.
Stefan ‚Bebbo‘ Franke, genialer Programmierer und Schöpfer der amiga-gcc Cross Compiler Toolchain, hat vor einiger Zeit aus Protest seine Repositorien auf GitHub entfernt:
„As a sign of protest against the refusal to restore 2FA accounts, this account is now empty. Some repos are back on https://franke.ms/git/bebbo“
Amiga-Programmierer, die nicht auf den Komfort und die Geschwindigkeit seiner Werkzeuge verzichten wollen, finden amiga-gcc und weitere Werkzeuge nun auf seiner Homepage:
amiga-gcc is a C/C++ cross-compiler suite that provides Amiga programmers with the GNU Compiler Collection gcc and the C compiler VBCC, as well as tools such as vamosunder Linux, Windows, and macOS. The suite comes with two complete C development environments, including standard headers and integrated extension libraries such as MUI and ReAction, for AmigaOS 1.3 to AmigaOS 3.2, and can be considered a new standard for developing programs on the Commodore Amiga (68k).
Unfortunately Stefan ‘Bebbo’ Franke, brilliant programmer and creator of the amiga-gcc cross compiler toolchain, removed his repositories from GitHub some time ago in protest against GitHub restrictions.
Nevertheless, the tool chain can still be obtained by the follwing links:
Auf dem Commodore Amiga besitzen gut geschrieben Programme einen Versions-String, der über die Shell mit dem Befehl ‚version <progname> file full‘abgefragt werden werden kann.
Gerade dann, wenn man als C-Programmierer zu Testzwecken verschiedene C-Compiler verwendet kann es hilfreich sein, ein Template zu schreiben, um einen solchen Versions-String automatisch zu generieren. Man kann ein solches Template z. B. unter ‚S:myHeader.txt‘ ablegen und bei Bedarf einfach in den Texteditor laden.
Um einen Versions-String per Macro mit dem Programmnamen, der Versionsnummer, dem aktuellen Compilerdatum und Informationen zum verwendeten Compiler zu erstellen, geht man so vor:
Natürlich könnte man den Versions-String auch einfach so schreiben:
const char *version ="\o$VER: meinProgramm ((01. April 2025)) - (SAS/C) - Copyright by IchSelbst\n";
Man müsste dann halt den String jedesmal verändern wenn die Programmversion wechselt oder ein anderer C-Compiler benutzt wird. Da ist es schon komfortabler, wenn man sich ein entsprechenes Makro angelegt hat.
Ich selbst verwende bei der Programmentwicklung grundsätzlich Templates, da mir das viel Arbeit für Kommentare usw. erspart. Für meine mit dem ReBuild GUI Designer entworfenen Projekte sieht mein Standard-Template so aus: