4 Code to make AROS work on the Amiga itself. Currently
5 the emulation is nonexistent, but we work on boot code
6 (found in <shell>boot/</shell>).
12 <p>This is a generated include file. It's generated by
13 <filename>AROS/configure</filename> and will appear in the include
14 tree as <filename>aros/config.h</filename>. The following information
15 can be found in this file:</p>
19 <item>AROS_FLAVOUR</item> What version of AROS should be
20 generated ? A native (binary compatible) one
21 (AROS_FLAVOUR_NATIVE) ? A standalone OS
22 (AROS_FLAVOUR_STANDALONE) ? An emulation which
23 runs under another OS (AROS_FLAVOUR_EMULATION) ?
24 A link library which allows to link native
25 applications (ie. ones which behave like any
26 other app on another OS) (AROS_FLAVOUR_LINKLIB) ?
28 Note that not all flavours are available on all
29 hardwares/OS combinations. To use this <code>#define</code>,
31 <code>#if AROS_FLAVOUR==AROS_FLAVOUR_NATIVE</code>.
40 C source for kernel functions. These will not produce
41 correct code to compile the kernel but when you compile
42 and disassemble these, you will have a good starting point
43 to write the assembler functions for the kernel.
49 Code to make AROS work as an emulation under
56 <p>This file is included by all makefiles and
57 generated by <filename>AROS/configure</filename>. It defines the
58 following Make variables:</p>
62 <item>$(APP_CFLAGS)</item> Flags which replace
63 <shell>$(COMMON_CFLAGS)</shell> when code for inside
64 the AROS shell is to be compiled (not linked).
68 <item>$(ARCH)</item> What kind of OS is this ? Values are
69 for example <shell>linux</shell>, <shell>freebsd</shell>,
70 <shell>hpux</shell>, <shell>netbsd</shell>, <shell>amiga</shell>, etc.
75 <item>$(COMMON_AFLAGS)</item> Flags which must always be passed
76 to <shell>$(AS)</shell>.
81 <item>$(COMMON_CFLAGS)</item> Flags, which must always appear
82 in <shell>$(CFLAGS)</shell> for <shell>$(CC)</shell>.
87 <item>$(FLAVOUR)</item> What flavour of AROS should be
88 generated ? The possible values are <shell>native</shell>,
89 <shell>standalone</shell>, <shell>emulation</shell> or
90 <shell>linklib</shell>.
95 <item>$(GUI_CCFLAGS)</item> Flags, which must be passed to
96 $(CC) when code is to be compiled which
97 uses the native GUI (eg.
98 <shell>-I/usr/X11R6/include</shell>).
103 <item>$(GUI_INCDIR)</item> Directory where the include files for
104 the native GUI can be found.
109 <item>$(GUI_LIBDIR)</item> Directory where link libraries for the
110 GUI of the native OS can be found (eg.
111 <shell>/usr/X11R6/lib</shell>).
116 <item>$(GUI_LIBFLAGS)</item> Libraries against which to link
117 if you need the native GUI (eg.
118 <shell>-lX11</shell>).
123 <item>$(GUI_LDFLAGS)</item> Flags, which must be passed to the
124 linker when linking code which requires the native
125 GUI (eg. the kernel or applications for flavour
131 <item>$(ILDFLAGS)</item> Flags which must be passed to
132 <shell>$(CC)</shell> when code is to be linked
133 for use in the AROS shell.
138 <item>$(KERNEL)</item> What kind of CPU is this ? Possible
139 values are for example <shell>m68k-native</shell>,
140 <shell>m68k-emul</shell>, <shell>i386</shell>, <shell>hppa9</shell>, etc.
145 <item>$(MKDEPEND)</item> Program to be called when Make
146 wants to find out which include files should
147 be taken into account when it's time to decide
148 if a file must be updated or not (eg.
149 <filename>makedepend</filename>).
154 <item>$(RANLIB)</item> Program to run on link libraries created
155 with <shell>$(AR)</shell>. Most of the time this will
156 either be <filename>ranlib</filename> or <filename>true</filename>.
161 <item>$(SYS_AS)</item> The name of the systems' assembler.
162 You should not use this value but the context
163 sensitive <shell>$(AS)</shell> which contains the
164 assembler to use in the current context.
169 <item>$(SYS_CC)</item> The name of the systems' C compiler. This
170 may be different from <shell>$(CC)</shell>, because
171 <shell>$(CC)</shell> is context dependent (eg. if you
172 compile code in the AROS shell, it's value is
173 different from when you compile AROS kernel code).
182 Version of the kernel for i386 CPUs. It consists
183 mainly of a bunch of assembler files which implement
184 functions that can't be done in C (eg. semaphores, stack
185 handling or task switching). Note that this is the only
186 directory which may contain assembler files and which is
187 different for every architecture. If you begin your work on
188 some new architecture, make such a directory for your
189 hardware and put all hardware dependent files in there. It
190 is a rule that you can do anything inside this directory as
191 long as it has no influence on the other files and
192 directories. The directory must support the standard rules
193 <shell>all</shell> and <shell>clean</shell> and read
194 <filename>AROS/config/make.cfg</filename>. All files generated by the
195 makefile should go into <filename>$(OSGENDIR)</filename>.
200 <file>linux/ -</file>
207 Untested assembler code for machines which have an
208 680x0 CPU but which are not Amigas (Mac, for example).
213 <dir>m68k-native</dir>
214 Assembler code for Amiga hardware.
219 <file>machine.c</file>
220 This is compiled during the setup phase. It will determine certain
221 features of the C compiler (alignment of fields in structures and
226 <file>make.cfg</file>
227 <p>Global settings for the Makefiles. Each makefile reads this
228 file before it does anything else (well, almost... most
229 makefiles set a path to this file first :-) ) It sets up some
230 interesting paths:</p>
234 <item>$(OSGENDIR)</item> Use this path for all files which should go