remember the best mode seen so far, otherwise the last in the list is always taken
[cake.git] / config / contents.xml
blob7c505a786ca34afd943bf5f4773f0a5f588b3b2c
1 <contents>
2 <item>
3     <dir>amiga</dir>
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>).
8 </item>
10 <item>
11     <file>config.h</file>
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>
17         <description>
18         <li>
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>,
30                 write something like
31                 <code>#if AROS_FLAVOUR==AROS_FLAVOUR_NATIVE</code>.
32         </li>
34         </description>
36 </item>
38 <item>
39     <dir>dummy</dir>
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.
45 </item>
47 <item>
48     <dir>freebsd</dir>
49     Code to make AROS work as an emulation under
50         FreeBSD.
52 </item>
54 <item>
55     <file>host.cfg</file>
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>
60         <description>
61         <li>
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).
65         </li>
67         <li>
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.
72         </li>
74         <li>
75         <item>$(COMMON_AFLAGS)</item> Flags which must always be passed
76                 to <shell>$(AS)</shell>.
78         </li>
80         <li>
81         <item>$(COMMON_CFLAGS)</item> Flags, which must always appear
82                 in <shell>$(CFLAGS)</shell> for <shell>$(CC)</shell>.
84         </li>
86         <li>
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>.
92         </li>
94         <li>
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>).
100         </li>
102         <li>
103         <item>$(GUI_INCDIR)</item> Directory where the include files for
104                 the native GUI can be found.
106         </li>
108         <li>
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>).
113         </li>
115         <li>
116         <item>$(GUI_LIBFLAGS)</item> Libraries against which to link
117                 if you need the native GUI (eg.
118                 <shell>-lX11</shell>).
120         </li>
122         <li>
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
126                 linklib).
128         </li>
130         <li>
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.
135         </li>
137         <li>
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.
142         </li>
144         <li>
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>).
151         </li>
153         <li>
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>.
158         </li>
160         <li>
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.
166         </li>
168         <li>
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).
175         </li>
176         </description>
178 </item>
180 <item>
181     <dir>i386</dir>
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>.
197 </item>
199 <item>
200     <file>linux/ -</file>
201     
203 </item>
205 <item>
206     <dir>m68k-emul</dir>
207     Untested assembler code for machines which have an
208         680x0 CPU but which are not Amigas (Mac, for example).
210 </item>
212 <item>
213     <dir>m68k-native</dir>
214     Assembler code for Amiga hardware.
216 </item>
218 <item>
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
222     on the stack).
223 </item>
225 <item>
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>
232         <description>
233         <li>
234         <item>$(OSGENDIR)</item> Use this path for all files which should go
235                 into the OS itself.
236         </li>
237         </description>
239 </item>
240 </contents>