AROSAmiga Research OS

Previous Next Top of Manual blank.gif

AROS - The Amiga Research OS

    Coding Style
    HIDD Intro
    HIDD Model
    Random Ideas

AROS / config /

This directory contains the dirty stuff. Code which makes AROS live (mostly hacked up assembler code which you don't want to see). Anything is allowed inside this directory in order to make AROS work on as many hardwares as possible.


Code to make AROS work on the Amiga itself. Currently the emulation is nonexistent, but we work on boot code (found in boot/).


This is a generated include file. It's generated by AROS/configure and will appear in the include tree as aros/config.h. The following information can be found in this file:

What version of AROS should be generated ? A native (binary compatible) one (AROS_FLAVOUR_NATIVE) ? A standalone OS (AROS_FLAVOUR_STANDALONE) ? An emulation which runs under another OS (AROS_FLAVOUR_EMULATION) ? A link library which allows to link native applications (ie. ones which behave like any other app on another OS) (AROS_FLAVOUR_LINKLIB) ? Note that not all flavours are available on all hardwares/OS combinations. To use this #define, write something like #if AROS_FLAVOUR==AROS_FLAVOUR_NATIVE.


C source for kernel functions. These will not produce correct code to compile the kernel but when you compile and disassemble these, you will have a good starting point to write the assembler functions for the kernel.


Code to make AROS work as an emulation under FreeBSD.


This file is included by all makefiles and generated by AROS/configure. It defines the following Make variables:

Flags which replace $(COMMON_CFLAGS) when code for inside the AROS shell is to be compiled (not linked).
What kind of OS is this ? Values are for example linux, freebsd, hpux, netbsd, amiga, etc.
Flags which must always be passed to $(AS).
Flags, which must always appear in $(CFLAGS) for $(CC).
What flavour of AROS should be generated ? The possible values are native, standalone, emulation or linklib.
Flags, which must be passed to $(CC) when code is to be compiled which uses the native GUI (eg. -I/usr/X11R6/include).
Directory where the include files for the native GUI can be found.
Directory where link libraries for the GUI of the native OS can be found (eg. /usr/X11R6/lib).
Libraries against which to link if you need the native GUI (eg. -lX11).
Flags, which must be passed to the linker when linking code which requires the native GUI (eg. the kernel or applications for flavour linklib).
Flags which must be passed to $(CC) when code is to be linked for use in the AROS shell.
What kind of CPU is this ? Possible values are for example m68k-native, m68k-emul, i386, hppa9, etc.
Program to be called when Make wants to find out which include files should be taken into account when it's time to decide if a file must be updated or not (eg. makedepend).
Program to run on link libraries created with $(AR). Most of the time this will either be ranlib or true.
The name of the systems' assembler. You should not use this value but the context sensitive $(AS) which contains the assembler to use in the current context.
The name of the systems' C compiler. This may be different from $(CC), because $(CC) is context dependent (eg. if you compile code in the AROS shell, it's value is different from when you compile AROS kernel code).


Version of the kernel for i386 CPUs. It consists mainly of a bunch of assembler files which implement functions that can't be done in C (eg. semaphores, stack handling or task switching). Note that this is the only directory which may contain assembler files and which is different for every architecture. If you begin your work on some new architecture, make such a directory for your hardware and put all hardware dependent files in there. It is a rule that you can do anything inside this directory as long as it has no influence on the other files and directories. The directory must support the standard rules all and clean and read AROS/config/make.cfg. All files generated by the makefile should go into $(OSGENDIR).

linux/ -

No description for this entry available.


Untested assembler code for machines which have an 680x0 CPU but which are not Amigas (Mac, for example).


Assembler code for Amiga hardware.


This is compiled during the setup phase. It will determine certain features of the C compiler (alignment of fields in structures and on the stack).


Global settings for the Makefiles. Each makefile reads this file before it does anything else (well, almost... most makefiles set a path to this file first :-) ) It sets up some interesting paths:

Use this path for all files which should go into the OS itself.

Previous Next Top of Manual blank.gif

AmigaŽ is a trademark of Amiga Inc. All other trademarks belong to their respective owners.

Copyright © AROS - The Amiga Research OS
All Rights Reserved
Comments to webmaster:
Generated: Sun Oct 7, 2001