Skip to content

Building

ronybeck edited this page Jul 31, 2020 · 11 revisions

Welcome to the Wiki for the Apollo Team's AROS work.

This page gives a quick guide into getting AROS compiling on your linux machine (yes, sorry no windows instructions just now). The AROS page has generic steps for all operating systems so check there for your platform.

Preparing your System

This guide will focus on debian based systems such as Ubuntu or Linux Mint. Perhaps some kind soul could update this with steps for other systems in the future.

First install the necessary packages for running the compilation

sudo apt-get install git-core gcc g++ make cmake gawk bison flex bzip2 netpbm autoconf automake libx11-dev libxext-dev libc6-dev liblzo2-dev libxxf86vm-dev libpng-dev libsdl1.2-dev byacc python-mako libxcursor-dev gcc-multilib libxxf86vm1:i386

Cloning the repository and Starting Compilation

There is a script for building a clean image and rom in the root of the repository.

./rebuild_rom.sh

This should result in a new aros.rom file in the AROS directory.

If you are testing small changes and wish to build the changes to the rom, you can run the script:

./rebuild_rom_quick.sh

Faster Compilation of Small Changes

Holy Cow! Compiling AROS takes a really long time! Yes, you are building an operating system and it does take time. This is annoying if you want to test a small change. Thankfully you don't need to compile everything. If you are making changes to a single component, there is a make target for compiling just that component. This is only possible once you have successfully compiled AROS once. In the case of compiling the sagagfx driver, you can issue the command

make hidd-m68k-sagagfx

This will be faster than building everything. But it can be faster still with this command:

make hidd-m68k-sagagfx-quick

Making changes and committing them to Master

When making a bigfix or any other type of change, you should first create a branch for this change with the name "feature_" or "bugfix_" at the beginning. Only a single feature/bugfix/enhancement should be added into this branch. This feature/bugfix branch should be based of master. Once development is completed and testing is successfully, it can be merged into master for final testing along side the other changes. If all works well, this branch can be submitted to the main AROS project as a pull request.

Clone this wiki locally