AROS m68k-amiga: Difference between revisions

From www.evillabs.net
Jump to navigation Jump to search
 
(12 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
* Remove the '/contrib' line from .gitignore
* git clone git://repo.or.cz/AROS-Contrib.git contrib
* git submodule add git://repo.or.cz/AROS-Contrib.git contrib
** 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 40: Line 54:
* ( 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 =
= Screenshots =
Line 120: Line 159:
* As you can see, you *can* run Intuition applications if you start them from S:Startup-Sequence, or the shell
* As you can see, you *can* run Intuition applications if you start them from S:Startup-Sequence, or the shell


[[Image:AROS-A1200.png]]
[[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

Fetching AROS-Contrib.git

Fetching AROS-Ports.git


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

AROS-r35388-EVIL.tar.gz

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.