AROS m68k-amiga: Difference between revisions
| (25 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
= Current Status =  | |||
See the [[AROS m68k-amiga Status]] page for per-machine and per-build reports.  | |||
= Make a really fast clone of all of AROS SVN, ''and'' be able to git svn dcommit =  | = Make a really fast clone of all of AROS SVN, ''and'' be able to git svn dcommit =  | ||
== Fetching AROS.git ==  | == Fetching AROS.git ==  | ||
* git clone git://repo.or.cz/AROS.git  | * git clone -o origin git://repo.or.cz/AROS.git  | ||
** About 10-15 minutes on a slow link  | ** About 10-15 minutes on a slow link  | ||
* git svn init --username=yournamehere https://svn.aros.org/svn/aros/trunk/AROS  | * git svn init --username=yournamehere https://svn.aros.org/svn/aros/trunk/AROS  | ||
| Line 14: | Line 18: | ||
* cd AROS  | * cd AROS  | ||
* git clone git://repo.or.cz/AROS-Contrib.git contrib  | |||
* git   | |||
** About 4-5 minutes later...  | ** About 4-5 minutes later...  | ||
* cd contrib  | * cd contrib  | ||
| Line 22: | Line 25: | ||
* git svn fetch (under a minute or so)  | * git svn fetch (under a minute or so)  | ||
* git checkout -b master-svn refs/remotes/git-svn  | * git checkout -b master-svn refs/remotes/git-svn  | ||
== Fetching AROS-Ports.git ==  | |||
* cd AROS  | |||
* git clone git://repo.or.cz/AROS-Ports.git ports  | |||
* cd ports  | |||
* git svn init --username=yournamehere https://svn.aros.org/svn/aros/trunk/ports  | |||
* git update-ref refs/remotes/git-svn origin/master  | |||
* git svn fetch  | |||
* git checkout -b master-svn refs/remotes/git-svn  | |||
== Working with GIT + SVN ==  | == Working with GIT + SVN ==  | ||
| Line 32: | Line 46: | ||
** Make a local branch to muck with  | ** Make a local branch to muck with  | ||
** ( code code code )  | ** ( code code code )  | ||
* git gui   | * git gui  | ||
* git svn fetch   | ** Make my local commits - no pushes at this point  | ||
* git svn rebase   | * git svn fetch  | ||
** update again, just in case  | |||
* git svn rebase  | |||
** pile my changes on top of current tip  | |||
* ( Compile test )  | * ( Compile test )  | ||
* git svn dcommit (push my changes upstream)  | * git svn dcommit (push my changes upstream)  | ||
= Toolchains =  | |||
The following procedure will set up a m68k-aros toolchain in /opt/aros-m68k:  | |||
<pre>  | |||
$ AROS=/sources/to/AROS  | |||
$ mkdir AROS.toolchain-m68k  | |||
$ cd AROS.toolchain-m68k  | |||
$ $AROS/configure --target=amiga-m68k \  | |||
                  --with-aros-toolchain-install=/opt/aros-m68k  | |||
$ make -s crosstools  | |||
</pre>  | |||
To use the precompiled toolchain:  | |||
<pre>  | |||
$ mkdir AROS.amiga-m68k  | |||
$ cd AROS.amiga-m68k  | |||
$ $AROS/configure --target=amiga-m68k \  | |||
                  --with-aros-toolchain-install=/opt/aros-m68k \  | |||
                  --with-aros-toolchain=yes \  | |||
                  --disable-crosstools  | |||
$ make -s  | |||
</pre>  | |||
= Screenshots =  | |||
== Nov 2, 2010: Frankenrom KS 3.0 ==  | |||
This is just the AROS Exec, with everything else from AmigaOS KickStart 3.0.  | |||
Doesn't boot, but does ask for a disk. The disk insertion animation  | |||
is correct, too.  | |||
[[Image:AROS-M68K-2010-10-02.png]]  | |||
== Nov 6, 2010: AROS (no KS) ROM ==  | |||
This is All AROS, no Kickstart.  | |||
AROS SVN revision r35177, GIT revision 8ce2052d684cb0951990627b0e42ca32b4ec00b1  | |||
Capable of running:  | |||
* EXILE100.ADF, md5sum f8d27184e8be07d1c9581de33d0b8b1a.  | |||
** This is a trackdisk loading, not DOS boot sector disk. DOS boot sectors are not yet fully supported.  | |||
[http://www.evillabs.net/AROS/aros-amiga-m68k-2010-11-06.rom.gz aros-amiga-m68k-2010-11-06.rom.gz]  | |||
[[Image:EXILE100.png]]  | |||
== Nov 12, 2010: AROS Shell ==  | |||
Yep, that's right. The AROS Shell prompt. Whee!  | |||
Capable of running:  | |||
* AROS Shell  | |||
* A number of trackloading games  | |||
Not yet:  | |||
* DOS loading games (no in-ROM shell to run their startup scripts)  | |||
What's horrible:  | |||
* Had to change the ABI to the Graphics/*LayerRom routines to use A4 instead of A5, due to GCC issues. That's in the EVIL.patch  | |||
* Doesn't boot if we're not strobing the serial port.  | |||
* It's a 1M ROM set.  | |||
ROMs + E-UAE configs + AROS System Floppy + EVIL.patch  | |||
[http://www.evillabs.net/AROS/AROS-r35388-EVIL.tar.gz AROS-r35388-EVIL.tar.gz]  | |||
[[Image:AROS-Shell.png]]  | |||
== Nov 25, 2010: AROS Wanderer ==  | |||
Compiled straight off the AROS mainline,  | |||
* SVN Revision r35751  | |||
* git revision 76575383d5ff841598476ee7acd27476b59df21f  | |||
* Can use the WinUAE/E-UAE RTG graphics  | |||
** You need to have the CPU be a 68020 (not 680ec20!) or better, and  | |||
** Have 24-bit addressing disabled  | |||
* Can boot up to Wanderer  | |||
** Requires 8M (ugh!) of Fast RAM  | |||
** Takes a LONG to time and lots of RAM unless you disable the copying of FONTS: to RAM:Fonts in the AROS/S/Startup-Sequence script   | |||
** VERY slow - some process is consuming 100% of the poor Amiga's CPU time.  | |||
[[Image:AROS-Wanderer.png]]  | |||
== Jan 11, 2011: AROS on Amiga 1200 + ACA 1230 ==  | |||
Compiled straight off the AROS mainline,  | |||
* SVN Revision r36531   | |||
* git revision aafc932549b0e94b33737bae58b288d3b4cd826d  | |||
Running on a PAL Amiga 1200 with an ACA 1230/56 (for MAPROMing the ext+rom images).  | |||
* No HDD support, so floppy only for now  | |||
* Still no 'Wanderer Lite', so no Workbench (can't fit Wanderer on a floppy)  | |||
* As you can see, you *can* run Intuition applications if you start them from S:Startup-Sequence, or the shell  | |||
[[Image:AROS-A1200.jpg|600px]]  | |||
== Feb 8, 2011: ELF2HUNK utility ==  | |||
Not much to see here, just a program compiled on AROS as ELF running on AOS via my ELF2HUNK utility.  | |||
* elf2hunktest.c  | |||
<pre>  | |||
#include <intuition/intuition.h>  | |||
#include <proto/exec.h>  | |||
#include <proto/dos.h>  | |||
#include <proto/intuition.h>  | |||
int main(int argc, char **argv)  | |||
{  | |||
   struct EasyStruct easy = {  | |||
       .es_StructSize = sizeof(struct EasyStruct),  | |||
       .es_Flags = 0,  | |||
       .es_Title = "Elf2Hunk works!",  | |||
       .es_TextFormat = "Really, it does.",  | |||
       .es_GadgetFormat = "Yes|No",  | |||
   };  | |||
   PutStr("Hello World\n");  | |||
   EasyRequestArgs(NULL, &easy, NULL, NULL);  | |||
   return 0;  | |||
}  | |||
</pre>  | |||
Compilation, from AROS SVN 37012:  | |||
<pre>  | |||
$ make build-tools  | |||
$ bin/linux-x86_64/tools/m68k-amiga-aros-gcc  -Werror -Os  elf2hunk-test.c -o elf2hunk-test  | |||
$ mkdir /path/to/WB3.1/AROS  | |||
$ bin/linux-x86_64/tools/elf2hunk elf2hunk-test /path/to/WB3.1/AROS/elf2hunk-test  | |||
</pre>  | |||
Run UAE with a stock Kickstart 3.1 ROM, with '/path/to/WB3.1/' mounted somewhere, and run 'elf2hunk-test' in a shell from the 'AROS' subdirectory. You should get something similar to the following:  | |||
[[Image:AROS-ELF2HUNK.png]]  | |||
This demonstrates:  | |||
* Compiling with the AROS toolchain, and deploying on AmigaOS  | |||
* Automatic loading of 'dos.library' and 'intuition.library' by the AROS C runtime.  | |||
Todo:  | |||
* Find some way to copy ELF debug information (maybe just symbols?) to HUNK  | |||
== Nov 28, 2011: OpenGL under AROS m68k ==  | |||
Finally got around to getting C++ to compile for m68k, which allows Mesa to be compiled  | |||
=== Correction: .. but it doesn't work (yet) ===  | |||
The 'tunnel' demo shown below does not use Mesa.  | |||
[[Image:AROS-OpenGL.png]]  | |||
Latest revision as of 15:47, 2 February 2013
Current Status
See the AROS m68k-amiga Status page for per-machine and per-build reports.
Make a really fast clone of all of AROS SVN, and be able to git svn dcommit
Fetching AROS.git
- git clone -o origin git://repo.or.cz/AROS.git
- About 10-15 minutes on a slow link
 
 - git svn init --username=yournamehere https://svn.aros.org/svn/aros/trunk/AROS
 - git update-ref refs/remotes/git-svn origin/master
 - git svn fetch
- This should take under 60 seconds
 
 - git checkout -b master-svn refs/remotes/git-svn
 
Fetching AROS-Contrib.git
- cd AROS
 - git clone git://repo.or.cz/AROS-Contrib.git contrib
- About 4-5 minutes later...
 
 - cd contrib
 - git svn init --username=yournamehere https://svn.aros.org/svn/aros/trunk/contrib
 - git update-ref refs/remotes/git-svn origin/master
 - git svn fetch (under a minute or so)
 - git checkout -b master-svn refs/remotes/git-svn
 
Fetching AROS-Ports.git
- cd AROS
 - git clone git://repo.or.cz/AROS-Ports.git ports
 - cd ports
 - git svn init --username=yournamehere https://svn.aros.org/svn/aros/trunk/ports
 - git update-ref refs/remotes/git-svn origin/master
 - git svn fetch
 - git checkout -b master-svn refs/remotes/git-svn
 
Working with GIT + SVN
There are many 'Using GIT with SVN' tutorials out there, but here's my workflow skeleton:
- git svn fetch
- Updates to current SVN tip
 
 - git checkout -b todays_project git-svn
- Make a local branch to muck with
 - ( code code code )
 
 - git gui
- Make my local commits - no pushes at this point
 
 - git svn fetch
- update again, just in case
 
 - git svn rebase
- pile my changes on top of current tip
 
 - ( Compile test )
 - git svn dcommit (push my changes upstream)
 
Toolchains
The following procedure will set up a m68k-aros toolchain in /opt/aros-m68k:
$ AROS=/sources/to/AROS
$ mkdir AROS.toolchain-m68k
$ cd AROS.toolchain-m68k
$ $AROS/configure --target=amiga-m68k \
                  --with-aros-toolchain-install=/opt/aros-m68k
$ make -s crosstools
To use the precompiled toolchain:
$ mkdir AROS.amiga-m68k
$ cd AROS.amiga-m68k
$ $AROS/configure --target=amiga-m68k \
                  --with-aros-toolchain-install=/opt/aros-m68k \
                  --with-aros-toolchain=yes \
                  --disable-crosstools
$ make -s
Screenshots
Nov 2, 2010: Frankenrom KS 3.0
This is just the AROS Exec, with everything else from AmigaOS KickStart 3.0.
Doesn't boot, but does ask for a disk. The disk insertion animation is correct, too.
Nov 6, 2010: AROS (no KS) ROM
This is All AROS, no Kickstart.
AROS SVN revision r35177, GIT revision 8ce2052d684cb0951990627b0e42ca32b4ec00b1
Capable of running:
- EXILE100.ADF, md5sum f8d27184e8be07d1c9581de33d0b8b1a.
- This is a trackdisk loading, not DOS boot sector disk. DOS boot sectors are not yet fully supported.
 
 
aros-amiga-m68k-2010-11-06.rom.gz
Nov 12, 2010: AROS Shell
Yep, that's right. The AROS Shell prompt. Whee!
Capable of running:
- AROS Shell
 - A number of trackloading games
 
Not yet:
- DOS loading games (no in-ROM shell to run their startup scripts)
 
What's horrible:
- Had to change the ABI to the Graphics/*LayerRom routines to use A4 instead of A5, due to GCC issues. That's in the EVIL.patch
 - Doesn't boot if we're not strobing the serial port.
 - It's a 1M ROM set.
 
ROMs + E-UAE configs + AROS System Floppy + EVIL.patch
Nov 25, 2010: AROS Wanderer
Compiled straight off the AROS mainline,
- SVN Revision r35751
 - git revision 76575383d5ff841598476ee7acd27476b59df21f
 
- Can use the WinUAE/E-UAE RTG graphics
- You need to have the CPU be a 68020 (not 680ec20!) or better, and
 - Have 24-bit addressing disabled
 
 - Can boot up to Wanderer
- Requires 8M (ugh!) of Fast RAM
 - Takes a LONG to time and lots of RAM unless you disable the copying of FONTS: to RAM:Fonts in the AROS/S/Startup-Sequence script
 - VERY slow - some process is consuming 100% of the poor Amiga's CPU time.
 
 
Jan 11, 2011: AROS on Amiga 1200 + ACA 1230
Compiled straight off the AROS mainline,
- SVN Revision r36531
 - git revision aafc932549b0e94b33737bae58b288d3b4cd826d
 
Running on a PAL Amiga 1200 with an ACA 1230/56 (for MAPROMing the ext+rom images).
- No HDD support, so floppy only for now
 - Still no 'Wanderer Lite', so no Workbench (can't fit Wanderer on a floppy)
 - As you can see, you *can* run Intuition applications if you start them from S:Startup-Sequence, or the shell
 
Feb 8, 2011: ELF2HUNK utility
Not much to see here, just a program compiled on AROS as ELF running on AOS via my ELF2HUNK utility.
- elf2hunktest.c
 
#include <intuition/intuition.h>
#include <proto/exec.h>
#include <proto/dos.h>
#include <proto/intuition.h>
int main(int argc, char **argv)
{
   struct EasyStruct easy = {
       .es_StructSize = sizeof(struct EasyStruct),
       .es_Flags = 0,
       .es_Title = "Elf2Hunk works!",
       .es_TextFormat = "Really, it does.",
       .es_GadgetFormat = "Yes|No",
   };
   PutStr("Hello World\n");
   EasyRequestArgs(NULL, &easy, NULL, NULL);
   return 0;
}
Compilation, from AROS SVN 37012:
$ make build-tools $ bin/linux-x86_64/tools/m68k-amiga-aros-gcc -Werror -Os elf2hunk-test.c -o elf2hunk-test $ mkdir /path/to/WB3.1/AROS $ bin/linux-x86_64/tools/elf2hunk elf2hunk-test /path/to/WB3.1/AROS/elf2hunk-test
Run UAE with a stock Kickstart 3.1 ROM, with '/path/to/WB3.1/' mounted somewhere, and run 'elf2hunk-test' in a shell from the 'AROS' subdirectory. You should get something similar to the following:
This demonstrates:
- Compiling with the AROS toolchain, and deploying on AmigaOS
 - Automatic loading of 'dos.library' and 'intuition.library' by the AROS C runtime.
 
Todo:
- Find some way to copy ELF debug information (maybe just symbols?) to HUNK
 
Nov 28, 2011: OpenGL under AROS m68k
Finally got around to getting C++ to compile for m68k, which allows Mesa to be compiled
Correction: .. but it doesn't work (yet)
The 'tunnel' demo shown below does not use Mesa.






