Experimental AmigaOS cross compiler for Linux / MacOSX / Windows based on GCC 6.x
ファイルへ移動
Stefan "Bebbo" Franke 26c3c8a5e0
Merge pull request #64 from MBeijer/master
update mcc_nlist.sdk
2018-04-08 22:16:50 +02:00
dejagnu DejaGNU board for testing m68k-amigaos GCC 2016-10-04 20:19:50 +02:00
examples @R using -Os 2017-07-11 13:05:21 +02:00
patches add volatile to hardware structs, add __stdargs to alib protos 2018-01-22 19:52:39 +01:00
scripts Various fixes bundled together. May fix compilation issues on Linux. 2014-02-06 17:22:19 +01:00
sdk update mcc_nlist.sdk 2018-01-19 16:25:49 +01:00
submodules update to a reasonable version from amiga-gcc 2018-04-08 22:10:30 +02:00
test updated golden test files 2017-09-05 20:29:17 +01:00
tools add support for SHN_COMMON (#50) 2016-10-09 16:31:14 +02:00
.gitignore Add missing patches. 2015-08-29 16:56:06 +02:00
.gitmodules ixemul now from git 2018-01-25 14:24:31 +01:00
.project @R support number of threads via parameter --threads=<n>, @I added eclipse projet files 2017-01-31 20:53:22 +01:00
.pydevproject @R support number of threads via parameter --threads=<n>, @I added eclipse projet files 2017-01-31 20:53:22 +01:00
.travis.yml Pull in gcc backports. Add simple test run for Travis-CI. 2016-10-16 20:16:18 +02:00
README.md Merge pull request #72 from m0ppers/windows-10-linux-subsystem-also-works 2018-04-08 22:16:37 +02:00
common.py @R g++ is back. Added some more dependencies to rebuild automatically 2017-03-25 11:45:34 +01:00
toolchain-dev Unify the way GNU Make is invoked. 2015-09-02 10:46:05 +02:00
toolchain-m68k removed --depth 1 from git clone - prepare to be obsolete 2018-02-10 09:27:35 +01:00
toolchain-ppc Update config.sub for gcc and binutils in ppc toolchain (Cygwin fix) 2017-01-17 22:16:10 +01:00
update_sub @B fix update_sub: stop after merge if branch does not exist in submodule 2017-05-28 16:22:50 +02:00

README.md

PLEASE USE amiga-gcc

AmigaOS cross compiler for Linux / Windows

THIS IS A FORK OF https://github.com/cahirwpz/amigaos-cross-toolchain - great thanks to Krystian Bacławski - but do not bother him with the changes made here!

What's different here?

  • Main focus is getting gcc 6 to work,
  • for AmigaOS with Motorola CPUs.
  • I am testing with Windows Cygwin 32 bit, Ubuntu 32/64 bit and CentOs 64 bit.
  • current version is quite usable.

Contributor: Stefan "Bebbo" Franke

Donations? Donate with PayPal.

Overview

this fork of amigaos-cross-toolchain project provides an easy way to build AmigaOS 3.x (m68k) target toolchain in a Unix-like environment.

Build process should produce following set of tools for m68k-amigaos target:

  • gcc 6 (recent version vom gcc-6-branch) [default]
  • binutils 2.14 (assembler, linker, etc.) - patched to work with gcc6 [default]
  • libnix 2.2 (standard ANSI/C library replacement for AmigaOS)
  • libm 5.4 (provides math library implementation for non-FPU Amigas)
  • AmigaOS headers & libraries & autodocs (for AmigaOS 3.9)

... also yet present is:

  • binutils 2.9.1 (assembler, linker, etc.)
  • vbcc toolchain (most recent release) including vasm, vlink and C standard library
  • IRA: portable M68000/010/020/030/040 reassembler for AmigaOS hunk-format executables, libraries, devices and raw binary files
  • vda68k: portable M68k disassembler for 68000-68060, 68851, 68881, 68882

... and following set of tools for ppc-amigaos target:

  • gcc 4.2.4
  • g++ 4.2.4
  • binutils 2.18 (assembler, linker, etc.)
  • newlib
  • clib 2.2
  • AmigaOS headers & libraries & autodocs (for AmigaOS 4.1)

Note: Patches are welcome!

Commits

I am using funny symbols in my commits:

  • @B : this is a bug fix
  • @S : <submodule(s)> look into the submodule(s) [Maybe more text]
  • @R : redesign or change which affects other files (e.g. changing a header)
  • @I : internal redesign
  • @D : debugging related changes
  • @C : comments added / remove / changed
  • @S : see submodule
  • @T : test related
  • @V : version stuff

Downloads

There is one download available now:

amiga-toolchain-centos.tgz - built for /opt/amiga (mandatory path!)

Documentation

Documentation from Free Software Fundation:

Texinfo documents from GeekGadgets converted into HTML:

AmigaOS specific documents:

Compiling

Firstly… you should have basic understanding of Unix console environment, really ;-)

Prerequisites

You have to have following packages installed in your system:

  • GNU gcc 5.x 32-bit version! or Clang
  • Python 2.7.x
  • libncurses-dev
  • python-dev 2.7
  • GNU make 4.x
  • perl 5.22
  • git
  • GNU patch
  • GNU gperf
  • GNU bison

For MacOSX users: you'll likely need to have MacPorts or Homebrew installed in order to build the toolchain.

Windows 10 64-bit with Cygwin 32bit.

Install cygwin via setup.exe and add wget. Then open cygwin shell and:

wget https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg
install apt-cyg /bin
apt-cyg install gcc-core gcc-g++ python git perl-Pod-Simple gperf patch automake make makedepend bison flex libncurses-devel python-devel gettext-devel libgmp-devel libmpc-devel libmpfr-devel
Ubuntu running on the Windows 10 Linux subsystem
sudo apt-get install gcc-core gcc-g++ flex python git perl-Pod-Simple gperf patch automake make makedepend bison flex libncurses-devel python-devel gettext-devel libgmp-devel libmpc-devel libmpfr-devel
Ubuntu 16.04 LTS 32-bit (gcc 5.4.0)
sudo apt-get install git gcc g++ python-dev gperf patch automake make bison libncurses-dev gettext libgmp-dev libmpc-dev libmpfr-dev
git clone https://github.com/bebbo/amigaos-cross-toolchain

How to build?

Warning: Building with sudo is not recommended. I'm not responsible for any damage to your system.

Follow steps listed below:

  1. Fetch amigaos-cross-toolchain project to your local drive:

    git clone git://github.com/bebbo/amigaos-cross-toolchain.git cd amigaos-cross-toolchain

  2. Run toolchain-m68k or toolchain-ppc script (with --prefix option to specify where to install the toolchain). Note, that the destination directory must be writable by the user.

    ./toolchain-m68k --prefix=/opt/m68k-amigaos build

I also suggest to use the option --threads to speedup your build.

  1. Restart on error and wait for the results :-)

  2. (optional) Install additional SDKs (e.g. AHI, CyberGraphX, Magic User Interface, etc.):

    ./toolchain-m68k --prefix=/opt/m68k-amigaos install-sdk ahi cgx mui

What if something goes wrong?

If the build process fails, please write me an e-mail. I'll try to help out. Don't forget to put into e-mail as much data about your environment as possible! It's vitally important to send me a full log from build process. You can capture it by redirecting output to a file with following command:

./toolchain-m68k build 2>&1 | tee build.log

... but remember to cleanup your build environment beforehand with:

rm -rf .build-m68k
rm -rf /opt/m68k-amigaos