|bebbo 8f5cf79c39||2 weeks ago|
|baseboards||2 years ago|
|lib||4 years ago|
|patches||2 weeks ago|
|sdk||2 weeks ago|
|setup||8 months ago|
|.gitignore||2 years ago|
|.project||3 years ago|
|.travis.yml||1 month ago|
|Dockerfile||1 year ago|
|Makefile||4 weeks ago|
|README.md||2 months ago|
|disable_implicite_rules.mk||4 years ago|
The GNU C-Compiler with Binutils and other useful tools for cross development
This is a Makefile based approach to build the same files as in the old amigaos-toolchain to reduce the build time.
Right now these tools are build:
sudo yum install wget gcc gcc-c++ python git perl-Pod-Simple gperf patch autoconf automake make makedepend bison flex ncurses-devel gmp-devel mpfr-devel libmpc-devel gettext-devel texinfo rsync
sudo apt install make wget git gcc g++ lhasa libgmp-dev libmpfr-dev libmpc-dev flex bison gettext texinfo ncurses-dev autoconf rsync
If building with a normal user, the
PREFIX directory must be writable (default is
/opt/amiga). You can add the user to an appropriate group.
Install Homebrew (https://brew.sh/) or any other package manager first. The compiler will be installed together with XCode. Once XCode and Homebrew are up install the required packages:
brew install bash wget make lhasa gmp mpfr libmpc flex gettext texinfo gcc make autoconf
By default macOS uses an outdated version of bash. Therefore, on macOS host always pass the the SHELL=/usr/local/bin/bash parameter (or any other valid path pointing to bash), e.g.:
make all SHELL=/usr/local/bin/bash
On macOS it may be also necessary to point to the brew version of gcc make and autoconf, e.g.:
CC=gcc-9 CXX=g++-9 gmake all SHELL=/usr/local/bin/bash
ALSO NOTE If you want
m68k-amigaos-gdb then you have to build it with
Native build on M1 Mac has proved difficult at this stage for a number of reasons. I filed (and closed) a separate issue.
We can, however, get an x86 version of the toolchain working on M1 with these steps.
/usr/sbin/softwareupdate --install-rosetta --agree-to-license
arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)". Ensure
/usr/local/binis early in your path.
arch -x86_64 brew install bash wget make lhasa gmp mpfr libmpc flex gettext texinfo gcc make autoconf
git clone email@example.com:bebbo/amiga-gcc ; cd amiga-gcc
CC=gcc-10 CXX=g++-10 SHELL=/usr/local/bin/bash arch -x86_64 gmake clean update all.
Install cygwin via setup.exe and add wget. Then open cygwin shell and run:
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 rsync
Precompiled suite with installer: http://franke.ms/download/setup-amiga-gcc.exe
pacman -S git base-devel gcc flex gmp-devel mpc-devel mpfr-devel ncurses-devel rsync
Also note that you MUST cd into an absolute path e.g.
cd /c/msys64/home/test/amiga-gcc/ before running make, or builds may fail, because some files aren't found correctly (that's a msys2 bug).
same as normal ubuntu
git clone https://github.com/bebbo/amiga-gcc cd amiga-gcc make update
make help display this help make all build and install all make <target> builds a target: binutils, gcc, fd2sfd, fd2pragma, ira, sfdc, vbcc, vlink, libnix, ixemul, libgcc make clean remove the build folder make clean-<target> remove the target's build folder make clean-prefix remove all content from the prefix folder make update perform git pull for all targets make update-<target> perform git pull for the given target
display which targets can be build, you'll mostly use
to use NDK3.2 add
NDK=3.2 to the make parameters
The default prefix is
/opt/amiga. You may specify a different prefix by adding
PREFIX=yourprefix to make command. E.g.
make all PREFIX=/here/or/there
The build performs the installation automatically, there is no separate
make install step. Because of this, you must make sure that the target
PREFIX directory is writable for the user who is doing the build.
PREFIX directory points to a directory where the user already has appropriate permissions the below steps can be ommited and the directory will be created by the build process.
sudo mkdir /opt/amiga sudo chgrp users /opt/amiga sudo chmod 775 /opt/amiga sudo usermod -a -G users username
After adding the user to the group, you may have to logout and login again to apply the changes to your user.
make all. Also add -j to speedup the build.
make clean make clean-prefix date; make all -j3 >&b.log; date
takes roughly 10 minutes on my laptop running ubuntu. takes forever running cygwin on windows^^.
If you plan to develop for Kickstart 1.3 you should use
-mcrt=nix13 in your compiler commandline
m68k-amigaos-gcc test.cpp -mcrt=nix13
The include files for 1.3 - which are picked up by the compiler if
-mcrt=nix13 is used - can be found at