amiga-news DEUTSCHE VERSION
.
Links| Forums| Comments| Report news
.
Chat| Polls| Newsticker| Archive
.

amiga-news.de Forum > Programmierung > AmigaOS m68k Cross Compiler für Ubuntu 22.04 einrichten (Anleitung) [ - Search - New posts - Register - Login - ]

-1- [ - Post reply - ]

2024-08-25, 21:35 h

Zettmaster
Posts: 722
User
Kleine Schritt für Schritt Anleitung um auf Ubuntu 22.04 Programme für das AmigaOS zu erstellen. (Keine Gewähr oder Haftung!)

1.) Zuerst benötigt Ihr die Dateien von

https://github.com/bebbo/amiga-gcc

Einfach die heruntergeladene *.zip Datei entpacken an einen beliebigen Ort in eurem Home Verzeichnis.

2.) Terminal öffnen und vorab die Abhängigkeiten installieren.
code:
sudo apt install make wget git gcc g++ lhasa libgmp-dev libmpfr-dev libmpc-dev flex bison gettext texinfo ncurses-dev autoconf rsync libreadline-dev

3.) Wechselt in das amiga-gcc Verzeichnis cd /pfad/zu/den/entpackten/Dateien
code:
make update

3.) Nur ausführen wenn Ihr den GCC 13.1 (empfohlen) statt dem alten GCC 6.0.5 verwenden möchtet.
code:
make branch branch=amiga13.1 mod=gcc

ansonsten Schritt 3 auslassen und hier bei beiden Varianten weiter machen. -j steht für die Anzahl der genutzten Kerne. Der Prefix wurde in diesem Fall
im eigenen Home Verzeichnis angelegt und ist somit im Bereich der eigenen Berechtigungen. Dieser kann aber beliebig gewählt werden.
Es kann durchaus über 30 Minuten dauern, bis alles durchgelaufen ist.
code:
make -all -j8 PREFIX=~/local/amiga-gcc

4.) öffnet einen Texteditor eurer Wahl. Sucht euch die Dateien .bashrc sowie .profile und fügt jeweils folgende Zeilen ein und macht einen Neustart.
code:
export AMIGA_GCC=~/local/amiga-gcc
export PATH=$PATH:$AMIGA_GCC/bin

5.) öffnet ein Terminal und gebt folgendes ein.
code:
m68k-amigaos-gcc -v

Ihr solltet jetzt folgende Ausgabe, bei euch natürlich mit anderen Pfaden, sehen.

Using built-in specs.
COLLECT_GCC=m68k-amigaos-gcc
COLLECT_LTO_WRAPPER=/home/zettmaster/local/amiga-gcc/libexec/gcc/m68k-amigaos/13.1.1/lto-wrapper
Target: m68k-amigaos
Configured with: /home/zettmaster/Entwicklung/amiga-gcc/projects/gcc/configure --prefix=/home/zettmaster/local/amiga-gcc --target=m68k-amigaos --enable-languages=c,c++,objc, --enable-version-specific-runtime-libs --disable-libssp --disable-nls --with-headers=/home/zettmaster/Entwicklung/amiga-gcc/projects/newlib-cygwin/newlib/libc/sys/amigaos/include/ --disable-shared --enable-threads=no --with-stage1-ldflags='-dynamic-libgcc -dynamic-libstdc++' --with-boot-ldflags='-dynamic-libgcc -dynamic-libstdc++'
Thread model: single
Supported LTO compression algorithms: zlib
gcc version 13.1.1 20230426 (GCC)



Herzlichen Glückwunsch! Ihr könnt nun AmigaOS Programme erstellen.

Hier die einfache Methode um eine helloworld.c Datei mit folgendem Inhalt
code:
#include <stdio.h>


int main(int arc, char **argv)
{
     printf("Hallo Amiganer! \n");
     return 0;
}

mittels
code:
m68k-amigaos-gcc -o helloworld ./helloworld.c

zu übersetzen.

Es geht aber auch mit einem Makefile (Beachtet bitte, keine Leerzeichen! Nur TABULATOREN verwenden!)

makefile Bsp:
code:
CC=m68k-amigaos-gcc
CFLAGS=
EXES=hallo
all:	$(EXES)
clean:	rm	-r	$(EXES)
hallo:	helloworld.c
	$(CC)	$(CFLAGS)	-o	$@	$?

um dieses wie folgt zu Übersetzen
code:
make -f makefile

Ihr könnt aber auch einfach "make" eingeben, funktioniert auch. Es erscheint die Datei "hallo". Viel Spaß beim Programmieren für euren Lieblingscomputer!

Schreibt eure Meinungen, Verbesserungen oder Anregungen bitte in die Kommentare. Da ich bis Dato nur auf OS4.1 (Port von dunelegacy mit BigH)
vor über 10 Jahren meine ersten Schritte getätigt habe, möchte ich nun bald ein Herzensprojekt koordinieren. Doch dazu später mehr...

Viele Grüße

Enrico
--
4x A1200, 2x PiStorm Pi4/2GB 1x PiStorm Pi3/1GB sowie einmal nackt mit Kick47.111 & OS3.2. Verwendete Betriebssysteme: Caffeine OS (3.9)+ Amikit PiStorm (3.2)

[ Dieser Beitrag wurde von Zettmaster am 25.08.2024 um 21:41 Uhr geändert. ]

[ - Answer - Quote - Direct link - ]

2024-08-26, 09:59 h

o1i
Posts: 43
User
@Zettmaster:
Ich würde noch in den CFLAGS den Optimierungslevel einstellen (-O2) und zumindest alle Warnings einschalten (-Wall).

Beim clean target würde rm -f mehr Sinn machen.

[ - Answer - Quote - Direct link - ]

2024-08-26, 11:32 h

thomas
Posts: 7718
User
@Zettmaster:

Das Hello World-Beispiel ist zur Überprüfung der Installation ungeeignet. Um ein ANSI-C-Programm zu kompilieren braucht es keine spezielle Umgebung.

Um das Erstellen eines Amiga-Programms zu testen sollte das Beispiel so aussehen:

code:
#include <proto/dos.h>

int main(int argc, char **argv)
{
     Printf("Hallo Amiganer!\n");
     return RETURN_OK;
}


oder wenn es unter Kick 1.3 laufen soll so:

code:
#include <proto/dos.h>

int main(int argc, char **argv)
{
     Write(Output(), "Hallo Amiganer!\n", 16);
     return RETURN_OK;
}


--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Answer - Quote - Direct link - ]


-1- [ - Post reply - ]


amiga-news.de Forum > Programmierung > AmigaOS m68k Cross Compiler für Ubuntu 22.04 einrichten (Anleitung) [ - Search - New posts - Register - Login - ]


.
Masthead | Privacy policy | Netiquette | Advertising | Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved.
.