Aros/Developer/Docs/building
Building AROS in Different Directories
It is possible, and the preferred method, to configure and build AROS in a directory other than the working copy. For example ..
$ svn co https://svn.aros.org/svn/aros/trunk/AROS aros-src
$ cd aros-src
$ mkdir ../build
$ cd ../build
$ ../aros-src/configure [...with options as appropriate...]
$ make
puts the AROS working copy in the directory "aros-src" and builds it in a separate, parallel directory "build".
Why would you want to do this? Well there are a number of reasons...
- You may want to separate the source and object code and only
- backup the source / avoid "polluting" the working copy with
- files generated during the build.
- You may want to put the build directory and the working
- copy on different physical disks to improve performance.
- You may want to remote mount the working copy on multiple
- machines, and build for different machines from the same
- working copy.
- You may want to build multiple configurations from the
- same working copy (and at the same time!).
The last reason above is possibly the most useful. For instance you can have builds for separate architectures and/or debug builds each using the same working copy. Using multiple build directories you can rebuild any or all configurations after an edit without the need to either clean and reconfigure, or identify and copy changes into another working copy.
NB:- If you have previously built AROS inside the working copy you will need to delete all obsolete generated files from the source tree before attempting to configure/build in another directory. The reason for this is some parts will detect the existing file in the source tree before the correct version and attempt to use that. It is best to delete the bin/ directory as well as all files that shouldnt exist when the following command is used ..
svn status --no-ignore
Delete any files which are ignored/not supposed to be there (unless they are your own projects files).
[TIP]
If you are compiling multiple AROS builds from the same working dir, the following
configure option will make them use a common location to download external sources to
--with-portssources=<path to common location>
It is best to use a separate directory outside of both the working dir and build dir(s)
to store these files - so that if you delete a build or the working dir you will still
have the files and not need to download them every time.