<module name="bootcd" type="iso">
</module>
</project></programlisting></para>
+ </section>
+
+ <section>
+ <title>XInclude</title>
+
+ <para>XML files used by <command>rbuild</command> are modular and use
+ XInclude to include other chunks of XML in the top-level
+ <filename>ReactOS.xml</filename> file. The namespace used by XInclude is
+ <literal>xi</literal>.</para>
- <section>
- <title>XInclude</title>
+ <section id="element.xi.include">
+ <title>xi:include</title>
- <para>XML files used by <command>rbuild</command> are modular and use
- XInclude to include other chunks of XML in the top-level ReactOS.xml
- file. The namespace used by XInclude is <literal>xi</literal>.</para>
+ <para>It is possible to split an XML build file over several files.
+ The include element in the <literal>xi</literal> namespace is used to
+ accomplish this.</para>
<section>
- <title>xi:include</title>
+ <title>Syntax</title>
+
+ <programlisting><xi:include href="<replaceable>config.xml</replaceable>">
+ <xi:fallback>
+ <xi:include href="<replaceable>config.template.xml</replaceable>" />
+ </xi:fallback>
+</xi:include></programlisting>
+ </section>
- <para>It is possible to split an XML build file over several files.
- The include element in the <literal>xi</literal> namespace is used
- to accomplish this.</para>
+ <section>
+ <title>Attributes</title>
- <section>
- <title>Syntax</title>
+ <para><variablelist>
+ <varlistentry>
+ <term>href</term>
- <programlisting> <xi:include href="config.xml">
- <xi:fallback>
- <xi:include href="config.template.xml" />
- </xi:fallback>
- </xi:include></programlisting>
- </section>
+ <listitem>
+ <para>Name of XML build file to include. The filename is
+ relative to the location of the current XML build
+ file.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist></para>
+ </section>
+
+ <section>
+ <title>Value</title>
- <section>
- <title>Attributes</title>
+ <para>None.</para>
+ </section>
- <para><variablelist>
- <varlistentry>
- <term>href</term>
+ <section>
+ <title>Children</title>
- <listitem>
- <para>Name of XML build file to include. The filename is
- relative to the location of the current XML build
- file.</para>
- </listitem>
- </varlistentry>
- </variablelist></para>
- </section>
+ <para><link linkend="???">xi:fallback</link>.</para>
+ </section>
+ </section>
- <section>
- <title>Value</title>
+ <section id="element.xi.fallback">
+ <title>xi:fallback</title>
- <para>None.</para>
- </section>
+ <para>This element is used to provide the name of an alternate file
+ that is to be included if the first include file did not
+ exists.</para>
- <section>
- <title>Elements</title>
+ <section>
+ <title>Syntax</title>
- <para>xi:fallback</para>
- </section>
+ <programlisting><xi:fallback>
+ <xi:include href="<replaceable>config.template.xml</replaceable>" />
+</xi:fallback></programlisting>
</section>
<section>
- <title>xi:fallback</title>
+ <title>Attributes</title>
- <para>This element is used to provide the name of an alternate file
- that is to be included if the first include file did not
- exists.</para>
+ <para>None.</para>
+ </section>
- <section>
- <title>Attributes</title>
+ <section>
+ <title>Value</title>
- <para>None.</para>
- </section>
+ <para>None.</para>
+ </section>
- <section>
- <title>Value</title>
+ <section>
+ <title>Parents</title>
- <para>None.</para>
- </section>
+ <para><link linkend="element.xi.include">xi:include</link>.</para>
+ </section>
- <section>
- <title>Elements</title>
+ <section>
+ <title>Children</title>
- <para>xi:include</para>
- </section>
+ <para><link linkend="element.xi.include">xi:include</link>.</para>
</section>
</section>
+ </section>
- <section>
- <title xreflabel="element_project">Project element</title>
+ <section>
+ <title>Element reference</title>
- <para>There can be one <sgmltag class="element">project</sgmltag> per
- top-level XML build file. A project can only be defined in a top-level
- XML build file.</para>
+ <section id="element.bootstrap">
+ <title>Bootstrap element</title>
+
+ <para>A bootstrap element specifies that the generated file should be
+ put on the bootable CD as a bootstrap file.</para>
<section>
<title>Syntax</title>
- <para><programlisting><project name="ReactOS" makefile="Makefile.auto" xmlns:xi="http://www.w3.org/2001/XInclude">
- ...
-</project></programlisting></para>
+ <para><programlisting><bootstrap base="reactos" nameoncd="halmp.dll" /></programlisting></para>
</section>
<section>
<para><variablelist>
<varlistentry>
- <term>name</term>
+ <term>base</term>
<listitem>
- <para>Name of the project.</para>
+ <para>Put file in this directory on the bootable CD. This
+ attribute is optional.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>makefile</term>
+ <term>nameoncd</term>
<listitem>
- <para>Filename of the GNU makefile that is to be
- created.</para>
+ <para>Name of file on the bootable CD. This attribute is
+ optional.</para>
</listitem>
</varlistentry>
</variablelist></para>
</section>
<section>
- <title>Elements</title>
+ <title>Children</title>
- <para><link linkend="element_define">define</link>, <link
- linkend="element_directory">directory</link>, <link
- linkend="element_if">if</link>, <link
- linkend="element_include">include</link>, <link
- linkend="element_module">module</link>, <link
- linkend="element_property">property</link>.</para>
+ <para>None.</para>
</section>
</section>
- <section>
- <title xreflabel="element_module">Module element</title>
+ <section id="element.cdfile">
+ <title>CDFile element</title>
- <para>There can be zero or more <sgmltag
- class="element">module</sgmltag>s per XML build file.</para>
+ <para>A cdfile element specifies the name of a file that is to be put
+ on the bootable CD.</para>
<section>
<title>Syntax</title>
- <para><programlisting><module if="${MP}" ifnot="${MP}" name="msvcrt" type="win32dll" extension=".dll" entrypoint="_DllMain@12" baseaddress="0x70000000" mangledsymbols="true" installbase="system32" installname="msvcrt.dll" usewrc="false" warnings="true" aliasof="module1">
- ...
-</module></programlisting></para>
+ <para><programlisting><cdfile base="reactos" nameoncd="ReadMe.txt">ReadMe.txt</cdfile></programlisting></para>
</section>
<section>
<para><variablelist>
<varlistentry>
- <term>if</term>
+ <term>base</term>
<listitem>
- <para>If the value is 1, then the module is enabled,
- otherwise it is disabled. A disabled module is not
- processed.</para>
+ <para>Put file in this directory on the bootable CD. This
+ attribute is optional.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>ifnot</term>
+ <term>nameoncd</term>
<listitem>
- <para>If the value is 1, then the module is disabled,
- otherwise it is enabled. A disabled module is not
- processed.</para>
+ <para>Name of file on the bootable CD. This attribute is
+ optional.</para>
</listitem>
</varlistentry>
+ </variablelist></para>
+ </section>
- <varlistentry>
- <term>name</term>
+ <section>
+ <title>Value</title>
- <listitem>
- <para>Name of the module. Also the base name of the
- generated file if such file is generated for the particular
- module type.</para>
- </listitem>
- </varlistentry>
+ <para>Name of file.</para>
+ </section>
- <varlistentry>
- <term>type</term>
+ <section>
+ <title>Children</title>
- <listitem>
- <para>Type of module. See below for an explanation of module
- types. <emphasis><emphasis>The module type determines the
- actions that is to be carried out to process the module. The
- defined module types are seen
- below:</emphasis></emphasis></para>
+ <para>None.</para>
+ </section>
+ </section>
- <table>
- <title>Module Types</title>
+ <section id="element.component">
+ <title>Component element</title>
- <tgroup cols="6">
- <thead>
- <row>
- <entry>Value</entry>
+ <para>A component element specifies that imports from a library are to
+ be stubbed so tests can be run without actually calling the functions
+ in the library. This element can only be used for modules of type
+ test.</para>
- <entry>Output name suffix</entry>
+ <section>
+ <title>Syntax</title>
- <entry>Entrypoint</entry>
+ <para><programlisting><component name="ntdll.dll">
+ ...
+</component></programlisting></para>
+ </section>
- <entry>Baseaddress</entry>
+ <section>
+ <title>Attributes</title>
- <entry>Mangledsymbols</entry>
+ <para><variablelist>
+ <varlistentry>
+ <term>name</term>
- <entry>Description</entry>
- </row>
- </thead>
+ <listitem>
+ <para>Name of library.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist></para>
+ </section>
- <tbody>
- <row>
- <entry>buildtool</entry>
+ <section>
+ <title>Value</title>
- <entrytbl cols="2">
- <tbody>
- <row>
- <entry><filename>.exe</filename> (Windows)</entry>
+ <para>None.</para>
+ </section>
- <entry>none (Linux)</entry>
- </row>
- </tbody>
- </entrytbl>
+ <section>
+ <title>Children</title>
- <entry>-</entry>
+ <para><link linkend="element.symbol">symbol</link>.</para>
+ </section>
+ </section>
- <entry>-</entry>
+ <section id="element.define">
+ <title>Define element</title>
- <entry>-</entry>
+ <para>A define element specifies the name and (optionally) value of a
+ define for the C/C++ compiler and resource compiler.</para>
- <entry>Builds a tool that can be run (invoked) when
- building ReactOS.</entry>
- </row>
+ <section>
+ <title>Syntax</title>
- <row>
- <entry>staticlibrary</entry>
+ <para><programlisting><define name="<replaceable>WINVER</replaceable>"><replaceable>0x501</replaceable></define></programlisting></para>
+ </section>
- <entry><filename>.a</filename></entry>
+ <section>
+ <title>Attributes</title>
- <entry>-</entry>
+ <para><variablelist>
+ <varlistentry>
+ <term>name</term>
- <entry>-</entry>
+ <listitem>
+ <para>Name of define.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist></para>
+ </section>
- <entry>-</entry>
+ <section>
+ <title>Value</title>
- <entry>Builds a static library containing object
- files that can be linked together with other
- modules.</entry>
- </row>
+ <para>Value of define. The value is optional.</para>
+ </section>
- <row>
- <entry>objectlibrary</entry>
+ <section>
+ <title>Children</title>
- <entry><filename>.o</filename></entry>
+ <para>None.</para>
+ </section>
+ </section>
- <entry>-</entry>
+ <section id="element.dependency">
+ <title>Dependency element</title>
- <entry>-</entry>
+ <para>A dependency element specifies the name of a module (usually of
+ type buildtool) that is to be processed before the current
+ module.</para>
- <entry>-</entry>
+ <section>
+ <title>Syntax</title>
- <entry>Builds object files that can be linked
- together with other modules.</entry>
- </row>
+ <para><programlisting><dependency><replaceable>OtherModule</replaceable></dependency></programlisting></para>
+ </section>
- <row>
- <entry>kernel</entry>
+ <section>
+ <title>Attributes</title>
- <entry><filename>.exe</filename></entry>
+ <para>None.</para>
+ </section>
- <entry><function>_NtProcessStartup</function></entry>
+ <section>
+ <title>Value</title>
- <entry>-</entry>
+ <para>Name of module.</para>
+ </section>
- <entry>-</entry>
+ <section>
+ <title>Children</title>
- <entry>Builds
- <filename>ntoskrnl.exe</filename>.</entry>
- </row>
+ <para>None.</para>
+ </section>
+ </section>
- <row>
- <entry>kernelmodedll</entry>
+ <section id="element.directory">
+ <title>Directory element</title>
- <entry><filename>.dll</filename></entry>
+ <para>A directory element specifies the name of a subdirectory.</para>
- <entry><function>_DriverEntry@8</function></entry>
+ <section>
+ <title>Syntax</title>
- <entry>-</entry>
+ <para><programlisting><directory name="<replaceable>MyDirectory</replaceable>">
+ ...
+</directory></programlisting></para>
+ </section>
- <entry>-</entry>
+ <section>
+ <title>Attributes</title>
- <entry>Builds a kernel-mode DLL.</entry>
- </row>
+ <para><variablelist>
+ <varlistentry>
+ <term>name</term>
- <row>
- <entry>kernelmodedriver</entry>
-
- <entry><filename>.sys</filename></entry>
-
- <entry><function>_DriverEntry@8</function></entry>
-
- <entry>-</entry>
-
- <entry>-</entry>
-
- <entry>Builds a kernel-mode driver.</entry>
- </row>
-
- <row>
- <entry>nativedll</entry>
-
- <entry><filename>.dll</filename></entry>
-
- <entry><function>_DllMainCRTStartup@12</function></entry>
-
- <entry>-</entry>
-
- <entry>-</entry>
-
- <entry>Builds a native DLL.</entry>
- </row>
-
- <row>
- <entry>win32dll</entry>
-
- <entry><filename>.dll</filename></entry>
-
- <entry><function>_DllMain@12</function></entry>
-
- <entry>-</entry>
-
- <entry>-</entry>
-
- <entry>Builds a Win32 DLL.</entry>
- </row>
-
- <row>
- <entry>win32cui</entry>
-
- <entry><filename>.exe</filename></entry>
-
- <entry><function>_mainCRTStartup</function></entry>
-
- <entry>-</entry>
-
- <entry>-</entry>
-
- <entry>Builds a Win32 console executable.</entry>
- </row>
-
- <row>
- <entry>win32gui</entry>
-
- <entry><filename>.exe</filename></entry>
-
- <entry><function>_WinMainCRTStartup</function></entry>
-
- <entry>-</entry>
-
- <entry>-</entry>
-
- <entry>Builds a Win32 GUI executable.</entry>
- </row>
-
- <row>
- <entry>bootloader</entry>
-
- <entry>-</entry>
-
- <entry>-</entry>
-
- <entry>-</entry>
-
- <entry>-</entry>
-
- <entry>Builds a bootloader.</entry>
- </row>
-
- <row>
- <entry>bootsector</entry>
-
- <entry>-</entry>
-
- <entry>-</entry>
-
- <entry>-</entry>
+ <listitem>
+ <para>Name of directory.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist></para>
+ </section>
- <entry>-</entry>
+ <section>
+ <title>Value</title>
- <entry>Builds one or more bootsector binaries. The
- entrypoint, baseaddress, and mangledsymbols module
- attributes are not applicable for this module
- type.</entry>
- </row>
+ <para>None.</para>
+ </section>
- <row>
- <entry>iso</entry>
+ <section>
+ <title>Children</title>
- <entry>-</entry>
+ <para><link linkend="element.cdfile">cdfile</link>, <link
+ linkend="element.directory">directory</link>, <link
+ linkend="element.file">file</link>, <link
+ linkend="element.if">if</link>, <link
+ linkend="element.pch">pch</link>, <link
+ linkend="element.property">property</link>.</para>
+ </section>
+ </section>
- <entry>-</entry>
+ <section id="element.file">
+ <title>File element</title>
- <entry>-</entry>
+ <para>A file element specifies the name of a file that is to be
+ processed.</para>
- <entry>-.</entry>
+ <section>
+ <title>Syntax</title>
- <entry>Builds a bootable CD.</entry>
- </row>
+ <para><programlisting><file><replaceable>MyFile.c</replaceable></file></programlisting></para>
+ </section>
- <row>
- <entry>test</entry>
+ <section>
+ <title>Attributes</title>
- <entry>.exe</entry>
+ <para>None.</para>
+ </section>
- <entry>_mainCRTStartup</entry>
+ <section>
+ <title>Value</title>
- <entry>-</entry>
+ <para>Name of file.</para>
+ </section>
- <entry>-</entry>
+ <section>
+ <title>Children</title>
- <entry>Builds a testsuite.</entry>
- </row>
+ <para>None.</para>
+ </section>
+ </section>
- <row>
- <entry>rpcserver</entry>
+ <section id="element.if">
+ <title>If element</title>
- <entry><filename>.o</filename></entry>
+ <para>An if element allows for conditional processing of other
+ elements.</para>
- <entry>-</entry>
+ <section>
+ <title>Syntax</title>
- <entry>-</entry>
+ <para><programlisting><if property="<replaceable>DBG</replaceable>" value="<replaceable>1</replaceable>">
+ ...
+</if></programlisting></para>
+ </section>
- <entry>-</entry>
+ <section>
+ <title>Attributes</title>
- <entry>Generates and builds server code for an RPC
- interface.</entry>
- </row>
+ <para><variablelist>
+ <varlistentry>
+ <term>property</term>
- <row>
- <entry>rpcclient</entry>
+ <listitem>
+ <para>Name of the property that is to be evaluated.</para>
+ </listitem>
+ </varlistentry>
- <entry><filename>.o</filename></entry>
+ <varlistentry>
+ <term>value</term>
- <entry>-</entry>
+ <listitem>
+ <para>Value to compare to the value of the property. If the
+ property has the specified value, then the subelements are
+ processed.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist></para>
+ </section>
- <entry>-</entry>
+ <section>
+ <title>Value</title>
- <entry>-</entry>
+ <para>None.</para>
+ </section>
- <entry>Generates and builds client code for an RPC
- interface.</entry>
- </row>
+ <section>
+ <title>Children</title>
- <row>
- <entry>alias</entry>
+ <para><link linkend="element.compilerflag">compilerflag</link>,
+ <link linkend="element.define">define</link>, <link
+ linkend="element.directory">directory</link>, <link
+ linkend="element.file">file</link>, <link
+ linkend="element.if">if</link>, <link
+ linkend="element.include">include</link>, <link
+ linkend="element.property">property</link>.</para>
+ </section>
+ </section>
- <entry>-</entry>
+ <section id="element.importlibrary">
+ <title>Importlibrary element</title>
- <entry>-</entry>
+ <para>An importlibrary element specifies that an import library should
+ be generated which other modules can use to link with the current
+ module.</para>
- <entry>-</entry>
+ <section>
+ <title>Syntax</title>
- <entry>-</entry>
+ <para><programlisting><importlibrary definition="<replaceable>MyModule.def</replaceable>" /></programlisting></para>
+ </section>
- <entry>Module is an alias for another module. This
- module type is the only module type for which the
- aliasof attribute is applicable. Only the module
- install functionality is aliased.</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </listitem>
- </varlistentry>
+ <section>
+ <title>Attributes</title>
+ <para><variablelist>
<varlistentry>
- <term>extension</term>
+ <term>definition</term>
<listitem>
- <para>Extension of the generated file if such file is
- generated for the particular module type.</para>
+ <para>Filename of definition file
+ (<filename>.def</filename>) used to generate the import
+ library. The filename is relative to the current
+ module.</para>
</listitem>
</varlistentry>
+ </variablelist></para>
+ </section>
- <varlistentry>
- <term>entrypoint</term>
+ <section>
+ <title>Value</title>
- <listitem>
- <para>Entrypoint symbol of the generated file if such file
- is generated for the particular module type.</para>
- </listitem>
- </varlistentry>
+ <para>None.</para>
+ </section>
- <varlistentry>
- <term>baseaddress</term>
+ <section>
+ <title>Children</title>
- <listitem>
- <para>Base address of the generated file if such file is
- generated for the particular module type.</para>
- </listitem>
- </varlistentry>
+ <para>None.</para>
+ </section>
+ </section>
- <varlistentry>
- <term>mangledsymbols</term>
+ <section id="element.include">
+ <title>Include element</title>
- <listitem>
- <para>Controls wether or not to pass --kill-at to dlltool.
- If this attribute has the value false then --kill-at is
- passed to dlltool. If the value is true, then --kill-at is
- not passed to dlltool. If the generated file exports C++
- classes then this need to be true.</para>
- </listitem>
- </varlistentry>
+ <para>An include element specifies an include directory for the C/C++
+ compiler and resource compiler.</para>
- <varlistentry>
- <term>installbase</term>
+ <section>
+ <title>Syntax</title>
- <listitem>
- <para>Base directory of the generated file in the
- installation directory. This attribute is optional.</para>
- </listitem>
- </varlistentry>
+ <para><programlisting><include base="<replaceable>MyLibraryModule</replaceable>"><replaceable>include</replaceable></include></programlisting></para>
+ </section>
+ <section>
+ <title>Attributes</title>
+
+ <para><variablelist>
<varlistentry>
- <term>installname</term>
+ <term>base</term>
<listitem>
- <para>Name of generated file in the installation directory.
- This attribute is optional, but if not specified, the
- generated file is not copied to the installation
- directory.</para>
+ <para>Module or project which the value of this element is
+ relative to. This attribute is optional. If left out, the
+ include directory is relative to the position of the
+ top-level XML build file.</para>
</listitem>
</varlistentry>
+ </variablelist></para>
+ </section>
- <varlistentry>
- <term>usewrc</term>
+ <section>
+ <title>Value</title>
- <listitem>
- <para>Use WRC to compile resources if true. If false,
- windres is used. This attribute is optional. If not
- specified, WRC will be used.</para>
- </listitem>
- </varlistentry>
+ <para>Relative include directory.</para>
+ </section>
- <varlistentry>
- <term>warnings</term>
+ <section>
+ <title>Children</title>
- <listitem>
- <para>Error out if false and at least one warning is emitted
- during building of this module. This attribute is optional.
- If not specified, it is assumed to be false.</para>
- </listitem>
- </varlistentry>
+ <para>None.</para>
+ </section>
+ </section>
+
+ <section id="element.input">
+ <title>Input element</title>
+
+ <para>An input element specifies a group of filenames that is to be
+ passed as parameters to a build tool. Input filename parameters are
+ located after output filename parameters on the command line.</para>
- <varlistentry>
- <term>aliasof</term>
+ <section>
+ <title>Syntax</title>
- <listitem>
- <para>Name of module that is aliased.</para>
- </listitem>
- </varlistentry>
- </variablelist></para>
+ <para><programlisting><input>
+ ...
+</input></programlisting></para>
+ </section>
+
+ <section>
+ <title>Attributes</title>
+
+ <para>None.</para>
</section>
<section>
</section>
<section>
- <title>Elements</title>
+ <title>Parents</title>
+
+ <para><link linkend="element.invoke">invoke</link>.</para>
+ </section>
+
+ <section>
+ <title>Children</title>
- <para><link linkend="element_bootstrap">bootstrap</link>, <link
- linkend="element_component">component</link>, <link
- linkend="element_define">define</link>, <link
- linkend="element_dependency">dependency</link>, <link
- linkend="element_directory">directory</link>, <link
- linkend="element_file">file</link>, <link
- linkend="element_if">if</link>, <link
- linkend="element_importlibrary">importlibrary</link>, <link
- linkend="element_include">include</link>, <link
- linkend="element_invoke">invoke</link>, <link
- linkend="element_library">library</link>, <link
- linkend="element_property">property</link>.</para>
+ <para><link linkend="element.inputfile">inputfile</link>.</para>
</section>
</section>
- <section>
- <title xreflabel="element_bootstrap">Bootstrap element</title>
+ <section id="element.inputfile">
+ <title>Inputfile element</title>
- <para>A bootstrap element specifies that the generated file should be
- put on the bootable CD as a bootstrap file.</para>
+ <para>An inputfile element specifies a filename that is to be passed
+ as a parameter to a build tool.</para>
<section>
<title>Syntax</title>
- <para><programlisting><bootstrap base="reactos" nameoncd="halmp.dll" /></programlisting></para>
+ <para><programlisting><inputfile><replaceable>ntoskrnl.mc</replaceable></inputfile></programlisting></para>
</section>
<section>
<para><variablelist>
<varlistentry>
- <term>base</term>
-
- <listitem>
- <para> Put file in this directory on the bootable CD. This
- attribute is optional.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>nameoncd</term>
+ <term>switches</term>
<listitem>
- <para> Name of file on the bootable CD. This attribute is
- optional.</para>
+ <para>Switches that is passed as parameters just before the
+ filename. This attribute is optional.</para>
</listitem>
</varlistentry>
</variablelist></para>
<section>
<title>Value</title>
- <para>None.</para>
+ <para>Name of file that is to be passed as a parameter to the build
+ tool.</para>
+ </section>
+
+ <section>
+ <title>Parents</title>
+
+ <para><link linkend="element.input">input</link>.</para>
</section>
<section>
- <title>Elements</title>
+ <title>Children</title>
<para>None.</para>
</section>
</section>
- <section>
- <title xreflabel="element_cdfile">CDFile element</title>
+ <section id="element.installfile">
+ <title>Installfile element</title>
- <para>A cdfile element specifies the name of a file that is to be put
- on the bootable CD.</para>
+ <para>An installfile element specifies the name of a file that is to
+ be installed when using '<command>make install</command>'.</para>
<section>
<title>Syntax</title>
- <para><programlisting><cdfile base="reactos" nameoncd="ReadMe.txt">ReadMe.txt</cdfile></programlisting></para>
+ <para><programlisting><installfile base="<replaceable>reactos</replaceable>" newname="<replaceable>ReadMe.txt</replaceable>"><replaceable>ReadMe.txt</replaceable></installfile></programlisting></para>
</section>
<section>
<term>base</term>
<listitem>
- <para> Put file in this directory on the bootable CD. This
- attribute is optional.</para>
+ <para>Put file in this directory within the install
+ directory. This attribute is optional.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>nameoncd</term>
+ <term>newname</term>
<listitem>
- <para>Name of file on the bootable CD. This attribute is
- optional.</para>
+ <para>Name of file within the install directory. This
+ attribute is optional.</para>
</listitem>
</varlistentry>
</variablelist></para>
</section>
<section>
- <title>Elements</title>
+ <title>Children</title>
<para>None.</para>
</section>
</section>
- <section>
- <title xreflabel="element_component">Component element</title>
+ <section id="element.invoke">
+ <title>Invoke element</title>
- <para>A component element specifies that imports from a library are to
- be stubbed so tests can be run without actually calling the functions
- in the library. This element can only be used for modules of type
- test.</para>
+ <para>An invoke element specifies the name of a module which is to be
+ executed before the current module is processed.</para>
<section>
<title>Syntax</title>
- <para><programlisting><component name="ntdll.dll">
- ...
-</component></programlisting></para>
+ <para><programlisting><invoke module="<replaceable>wmc</replaceable>">
+ <input>
+ <inputfile><replaceable>ntoskrnl.mc</replaceable></inputfile>
+ </input>
+ <output>
+ <outputfile switches="<replaceable>-H</replaceable>"><replaceable>../include/reactos/bugcodes.h</replaceable></outputfile>
+ <outputfile switches="<replaceable>-o</replaceable>"><replaceable>bugcodes.rc</replaceable></outputfile>
+ </output>
+</invoke></programlisting></para>
</section>
<section>
<para><variablelist>
<varlistentry>
- <term>name</term>
+ <term>module</term>
<listitem>
- <para>Name of library.</para>
+ <para>Name of the module to execute.</para>
</listitem>
</varlistentry>
</variablelist></para>
</section>
<section>
- <title>Elements</title>
+ <title>Children</title>
- <para><link linkend="element_symbol">symbol</link>.</para>
+ <para><link linkend="element.input">input</link>, <link
+ linkend="element.output">output</link>.</para>
</section>
</section>
- <section>
- <title xreflabel="element_symbol">Symbol element</title>
+ <section id="element.library">
+ <title>Library element</title>
- <para>A symbol element specifies an imported function from a library
- that is to be stubbed so tests can be run without actually calling the
- function in the library.</para>
+ <para>A library element specifies the name of another module which is
+ to be linked with the current module.</para>
<section>
<title>Syntax</title>
- <para><programlisting><symbol newname="RtlAllocateHeap">HeapAlloc@12</symbol></programlisting></para>
+ <para><programlisting><library><replaceable>MyLibraryModule</replaceable></library></programlisting></para>
</section>
<section>
<title>Attributes</title>
- <para><variablelist>
- <varlistentry>
- <term>newname</term>
+ <para>None.section</para>
+ </section>
- <listitem>
- <para>New name of symbol. This attribute is optional.</para>
- </listitem>
- </varlistentry>
- </variablelist></para>
+ <section>
+ <title>Parents</title>
+
+ <para><link linkend="element.module">module</link>.</para>
+ </section>
+
+ <section>
+ <title>Children</title>
+
+ <para>None.</para>
+ </section>
+ </section>
+
+ <section id="element.linkerflag">
+ <title>Linkerflag element</title>
+
+ <para>A likerflag element specifies flags to be passed to the linker
+ tool.</para>
+
+ <section>
+ <title>Syntax</title>
+
+ <para><programlisting><linkerflag><replaceable>-lgcc</replaceable></linkerflag></programlisting></para>
+ </section>
+
+ <section>
+ <title>Attributes</title>
+
+ <para>None.</para>
</section>
<section>
<title>Value</title>
- <para>Name of symbol.</para>
+ <para>The switches to pass to the linker.</para>
</section>
<section>
- <title>Elements</title>
+ <title>Children</title>
<para>None.</para>
</section>
</section>
- <section>
- <title xreflabel="element_define">Define element</title>
+ <section id="element.module">
+ <title>Module element</title>
+
+ <para>There can be zero or more <sgmltag
+ class="element">module</sgmltag>s per XML build file.</para>
+
+ <section>
+ <title>Syntax</title>
+
+ <para><programlisting><module if="${MP}" ifnot="${MP}" name="msvcrt" type="win32dll" extension=".dll" entrypoint="_DllMain@12" baseaddress="0x70000000" mangledsymbols="true" installbase="system32" installname="msvcrt.dll" usewrc="false" warnings="true" aliasof="module1">
+ ...
+</module></programlisting></para>
+ </section>
+
+ <section>
+ <title>Attributes</title>
+
+ <para><variablelist>
+ <varlistentry>
+ <term>if</term>
+
+ <listitem>
+ <para>If the value is 1, then the module is enabled,
+ otherwise it is disabled. A disabled module is not
+ processed.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>ifnot</term>
+
+ <listitem>
+ <para>If the value is 1, then the module is disabled,
+ otherwise it is enabled. A disabled module is not
+ processed.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>name</term>
+
+ <listitem>
+ <para>Name of the module. Also the base name of the
+ generated file if such file is generated for the particular
+ module type.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>type</term>
+
+ <listitem>
+ <para>Type of module. See below for an explanation of module
+ types. <emphasis><emphasis>The module type determines the
+ actions that is to be carried out to process the module. The
+ defined module types are seen
+ below:</emphasis></emphasis></para>
+
+ <table>
+ <title>Module Types</title>
+
+ <tgroup cols="6">
+ <thead>
+ <row>
+ <entry>Value</entry>
+
+ <entry>Output name suffix</entry>
+
+ <entry>Entrypoint</entry>
+
+ <entry>Baseaddress</entry>
+
+ <entry>Mangledsymbols</entry>
+
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>buildtool</entry>
+
+ <entrytbl cols="2">
+ <tbody>
+ <row>
+ <entry><filename>.exe</filename> (Windows)</entry>
+
+ <entry>none (Linux)</entry>
+ </row>
+ </tbody>
+ </entrytbl>
+
+ <entry>-</entry>
+
+ <entry>-</entry>
+
+ <entry>-</entry>
+
+ <entry>Builds a tool that can be run (invoked) when
+ building ReactOS.</entry>
+ </row>
+
+ <row>
+ <entry>staticlibrary</entry>
+
+ <entry><filename>.a</filename></entry>
+
+ <entry>-</entry>
+
+ <entry>-</entry>
+
+ <entry>-</entry>
+
+ <entry>Builds a static library containing object
+ files that can be linked together with other
+ modules.</entry>
+ </row>
+
+ <row>
+ <entry>objectlibrary</entry>
+
+ <entry><filename>.o</filename></entry>
+
+ <entry>-</entry>
+
+ <entry>-</entry>
+
+ <entry>-</entry>
+
+ <entry>Builds object files that can be linked
+ together with other modules.</entry>
+ </row>
+
+ <row>
+ <entry>kernel</entry>
+
+ <entry><filename>.exe</filename></entry>
+
+ <entry><function>_NtProcessStartup</function></entry>
+
+ <entry>-</entry>
- <para>A define element specifies the name and (optionally) value of a
- define for the C/C++ compiler and resource compiler.</para>
+ <entry>-</entry>
- <section>
- <title>Syntax</title>
+ <entry>Builds
+ <filename>ntoskrnl.exe</filename>.</entry>
+ </row>
- <para><programlisting><define name="WINVER">0x501</define></programlisting></para>
- </section>
+ <row>
+ <entry>kernelmodedll</entry>
- <section>
- <title>Attributes</title>
+ <entry><filename>.dll</filename></entry>
- <para><variablelist>
- <varlistentry>
- <term>name</term>
+ <entry><function>_DriverEntry@8</function></entry>
- <listitem>
- <para> Name of define.</para>
- </listitem>
- </varlistentry>
- </variablelist></para>
- </section>
+ <entry>-</entry>
- <section>
- <title>Value</title>
+ <entry>-</entry>
- <para>Value of define. The value is optional.</para>
- </section>
+ <entry>Builds a kernel-mode DLL.</entry>
+ </row>
- <section>
- <title>Elements</title>
+ <row>
+ <entry>kernelmodedriver</entry>
- <para>None.</para>
- </section>
- </section>
+ <entry><filename>.sys</filename></entry>
- <section>
- <title xreflabel="element_dependency">Dependency element</title>
+ <entry><function>_DriverEntry@8</function></entry>
- <para>A dependency element specifies the name of a module (usually of
- type buildtool) that is to be processed before the current
- module.</para>
+ <entry>-</entry>
- <section>
- <title>Syntax</title>
+ <entry>-</entry>
- <para><programlisting><dependency>OtherModule</dependency></programlisting></para>
- </section>
+ <entry>Builds a kernel-mode driver.</entry>
+ </row>
- <section>
- <title>Attributes</title>
+ <row>
+ <entry>nativedll</entry>
- <para>None.</para>
- </section>
+ <entry><filename>.dll</filename></entry>
- <section>
- <title>Value</title>
+ <entry><function>_DllMainCRTStartup@12</function></entry>
- <para>Name of module.</para>
- </section>
+ <entry>-</entry>
- <section>
- <title>Elements</title>
+ <entry>-</entry>
- <para>None.</para>
- </section>
- </section>
+ <entry>Builds a native DLL.</entry>
+ </row>
- <section>
- <title xreflabel="element_directory">Directory element</title>
+ <row>
+ <entry>win32dll</entry>
- <para>A directory element specifies the name of a subdirectory.</para>
+ <entry><filename>.dll</filename></entry>
- <section>
- <title>Syntax</title>
+ <entry><function>_DllMain@12</function></entry>
- <para><programlisting><directory name="<replaceable>MyDirectory</replaceable>">
- ...
-</directory></programlisting></para>
- </section>
+ <entry>-</entry>
- <section>
- <title>Attributes</title>
+ <entry>-</entry>
- <para><variablelist>
- <varlistentry>
- <term>name</term>
+ <entry>Builds a Win32 DLL.</entry>
+ </row>
- <listitem>
- <para>Name of directory.</para>
- </listitem>
- </varlistentry>
- </variablelist></para>
- </section>
+ <row>
+ <entry>win32cui</entry>
- <section>
- <title>Value</title>
+ <entry><filename>.exe</filename></entry>
- <para>None.</para>
- </section>
+ <entry><function>_mainCRTStartup</function></entry>
- <section>
- <title>Elements</title>
+ <entry>-</entry>
- <para><link linkend="element_cdfile">cdfile</link>, <link
- linkend="element_directory">directory</link>, <link
- linkend="element_file">file</link>, <link
- linkend="element_if">if</link>, <link
- linkend="element_property">property</link>.</para>
- </section>
- </section>
+ <entry>-</entry>
- <section>
- <title xreflabel="element_file">File element</title>
+ <entry>Builds a Win32 console executable.</entry>
+ </row>
- <para>A file element specifies the name of a file that is to be
- processed.</para>
+ <row>
+ <entry>win32gui</entry>
- <section>
- <title>Syntax</title>
+ <entry><filename>.exe</filename></entry>
- <para><programlisting><file><replaceable>MyFile.c</replaceable></file></programlisting></para>
- </section>
+ <entry><function>_WinMainCRTStartup</function></entry>
- <section>
- <title>Attributes</title>
+ <entry>-</entry>
- <para>None.</para>
- </section>
+ <entry>-</entry>
- <section>
- <title>Value</title>
+ <entry>Builds a Win32 GUI executable.</entry>
+ </row>
- <para>Name of file.</para>
- </section>
+ <row>
+ <entry>bootloader</entry>
- <section>
- <title>Elements</title>
+ <entry>-</entry>
- <para>None.</para>
- </section>
- </section>
+ <entry>-</entry>
- <section>
- <title xreflabel="element_if">If element</title>
+ <entry>-</entry>
- <para>An if element allows for conditional processing of other
- elements.</para>
+ <entry>-</entry>
- <section>
- <title>Syntax</title>
+ <entry>Builds a bootloader.</entry>
+ </row>
- <para><programlisting><if property="DBG" value="1">
- ...
-</if></programlisting></para>
- </section>
+ <row>
+ <entry>bootsector</entry>
- <section>
- <title>Attributes</title>
+ <entry>-</entry>
- <para><variablelist>
- <varlistentry>
- <term>property</term>
+ <entry>-</entry>
- <listitem>
- <para>Name of the property that is to be evaluated.</para>
- </listitem>
- </varlistentry>
+ <entry>-</entry>
- <varlistentry>
- <term>value</term>
+ <entry>-</entry>
- <listitem>
- <para>Value to compare to the value of the property. If the
- property has the specified value, then the subelements are
- processed.</para>
- </listitem>
- </varlistentry>
- </variablelist></para>
- </section>
+ <entry>Builds one or more bootsector
+ binaries.</entry>
+ </row>
- <section>
- <title>Value</title>
+ <row>
+ <entry>iso</entry>
- <para>None.</para>
- </section>
+ <entry>-</entry>
- <section>
- <title>Elements</title>
+ <entry>-</entry>
- <para><link linkend="element_compilerflag">compilerflag</link>,
- <link linkend="element_define">define</link>, <link
- linkend="element_directory">directory</link>, <link
- linkend="element_file">file</link>, <link
- linkend="element_if">if</link>, <link
- linkend="element_include">include</link>, <link
- linkend="element_property">property</link>.</para>
- </section>
- </section>
+ <entry>-</entry>
- <section>
- <title xreflabel="element_importlibrary">Importlibrary element</title>
+ <entry>-.</entry>
- <para>An importlibrary element specifies that an import library should
- be generated which other modules can use to link with the current
- module.</para>
+ <entry>Builds a bootable CD.</entry>
+ </row>
- <section>
- <title>Syntax</title>
+ <row>
+ <entry>test</entry>
- <para><programlisting><importlibrary definition="<replaceable>MyModule.def</replaceable>" /></programlisting></para>
- </section>
+ <entry>.exe</entry>
- <section>
- <title>Attributes</title>
+ <entry>_mainCRTStartup</entry>
- <para><variablelist>
- <varlistentry>
- <term>definition</term>
+ <entry>-</entry>
- <listitem>
- <para>Filename of definition file
- (<filename>.def</filename>) used to generate the import
- library. The filename is relative to the current
- module.</para>
- </listitem>
- </varlistentry>
- </variablelist></para>
- </section>
+ <entry>-</entry>
- <section>
- <title>Value</title>
+ <entry>Builds a testsuite.</entry>
+ </row>
- <para>None.</para>
- </section>
+ <row>
+ <entry>rpcserver</entry>
- <section>
- <title>Elements</title>
+ <entry><filename>.o</filename></entry>
- <para>None.</para>
- </section>
- </section>
+ <entry>-</entry>
- <section>
- <title xreflabel="element_include">Include element</title>
+ <entry>-</entry>
- <para>An include element specifies an include directory for the C/C++
- compiler and resource compiler.</para>
+ <entry>-</entry>
- <section>
- <title>Syntax</title>
+ <entry>Generates and builds server code for an RPC
+ interface.</entry>
+ </row>
- <para><programlisting><include base="<replaceable>MyLibraryModule</replaceable>"><replaceable>include</replaceable></include></programlisting></para>
- </section>
+ <row>
+ <entry>rpcclient</entry>
- <section>
- <title>Attributes</title>
+ <entry><filename>.o</filename></entry>
- <para><variablelist>
- <varlistentry>
- <term>base</term>
+ <entry>-</entry>
+
+ <entry>-</entry>
- <listitem>
- <para>Module or project which the value of this element is
- relative to. This attribute is optional. If left out, the
- include directory is relative to the position of the
- top-level xml build file.</para>
- </listitem>
- </varlistentry>
- </variablelist></para>
- </section>
+ <entry>-</entry>
- <section>
- <title>Value</title>
+ <entry>Generates and builds client code for an RPC
+ interface.</entry>
+ </row>
- <para>Relative include directory.</para>
- </section>
+ <row>
+ <entry>alias</entry>
- <section>
- <title>Elements</title>
+ <entry>-</entry>
- <para>None.</para>
- </section>
- </section>
+ <entry>-</entry>
- <section>
- <title xreflabel="element_installfile">Installfile element</title>
+ <entry>-</entry>
- <para>An installfile element specifies the name of a file that is to
- be installed when using '<command>make install</command>'.</para>
+ <entry>-</entry>
- <section>
- <title>Syntax</title>
+ <entry>Module is an alias for another module. This
+ module type is the only module type for which the
+ aliasof attribute is applicable. Only the module
+ install functionality is aliased.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </listitem>
+ </varlistentry>
- <para><programlisting><installfile base="<replaceable>reactos</replaceable>" newname="<replaceable>ReadMe.txt</replaceable>"><replaceable>ReadMe.txt</replaceable></installfile></programlisting></para>
- </section>
+ <varlistentry>
+ <term>extension</term>
- <section>
- <title>Attributes</title>
+ <listitem>
+ <para>Extension of the generated file if such file is
+ generated for the particular module type.</para>
+ </listitem>
+ </varlistentry>
- <para><variablelist>
<varlistentry>
- <term>base</term>
+ <term>entrypoint</term>
<listitem>
- <para>Put file in this directory within the install
- directory. This attribute is optional.</para>
+ <para>Entrypoint symbol of the generated file if such file
+ is generated for the particular module type.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>newname</term>
+ <term>baseaddress</term>
<listitem>
- <para>Name of file within the install directory. This
- attribute is optional.</para>
+ <para>Base address of the generated file if such file is
+ generated for the particular module type.</para>
</listitem>
</varlistentry>
- </variablelist></para>
- </section>
- <section>
- <title>Value</title>
+ <varlistentry>
+ <term>mangledsymbols</term>
- <para>Name of file.</para>
- </section>
+ <listitem>
+ <para>Controls wether or not to pass --kill-at to dlltool.
+ If this attribute has the value false then --kill-at is
+ passed to dlltool. If the value is true, then --kill-at is
+ not passed to dlltool. If the generated file exports C++
+ classes then this need to be true.</para>
+ </listitem>
+ </varlistentry>
- <section>
- <title>Elements</title>
+ <varlistentry>
+ <term>installbase</term>
- <para>None.</para>
- </section>
- </section>
+ <listitem>
+ <para>Base directory of the generated file in the
+ installation directory. This attribute is optional.</para>
+ </listitem>
+ </varlistentry>
- <section>
- <title xreflabel="element_invoke">Invoke element</title>
+ <varlistentry>
+ <term>installname</term>
- <para>An invoke element specifies the name of a module which is to be
- executed before the current module is processed.</para>
+ <listitem>
+ <para>Name of generated file in the installation directory.
+ This attribute is optional, but if not specified, the
+ generated file is not copied to the installation
+ directory.</para>
+ </listitem>
+ </varlistentry>
- <section>
- <title>Syntax</title>
+ <varlistentry>
+ <term>usewrc</term>
- <para><programlisting><invoke module="wmc">
- <input>
- <inputfile>ntoskrnl.mc</inputfile>
- </input>
- <output>
- <outputfile switches="-H">../include/reactos/bugcodes.h</outputfile>
- <outputfile switches="-o">bugcodes.rc</outputfile>
- </output>
-</invoke></programlisting></para>
- </section>
+ <listitem>
+ <para>Use WRC to compile resources if true. If false,
+ windres is used. This attribute is optional. If not
+ specified, WRC will be used.</para>
+ </listitem>
+ </varlistentry>
- <section>
- <title>Attributes</title>
+ <varlistentry>
+ <term>warnings</term>
+
+ <listitem>
+ <para>Error out if false and at least one warning is emitted
+ during building of this module. This attribute is optional.
+ If not specified, it is assumed to be false.</para>
+ </listitem>
+ </varlistentry>
- <para><variablelist>
<varlistentry>
- <term>module</term>
+ <term>aliasof</term>
<listitem>
- <para>Name of the module to execute.</para>
+ <para>Name of module that is aliased.</para>
</listitem>
</varlistentry>
</variablelist></para>
</section>
<section>
- <title>Elements</title>
+ <title>Parents</title>
+
+ <para><link linkend="element.project">project</link>.</para>
+ </section>
+
+ <section>
+ <title>Children</title>
- <para><link linkend="element_input">input</link>, <link
- linkend="element_output">output</link>.</para>
+ <para><link linkend="element.bootstrap">bootstrap</link>, <link
+ linkend="element.component">component</link>, <link
+ linkend="element.define">define</link>, <link
+ linkend="element.dependency">dependency</link>, <link
+ linkend="element.directory">directory</link>, <link
+ linkend="element.file">file</link>, <link
+ linkend="element.if">if</link>, <link
+ linkend="element.importlibrary">importlibrary</link>, <link
+ linkend="element.include">include</link>, <link
+ linkend="element.invoke">invoke</link>, <link
+ linkend="element.library">library</link>, <link
+ linkend="element.property">property</link>.</para>
</section>
</section>
- <section>
- <title xreflabel="element_input">Input element</title>
+ <section id="element.output">
+ <title>Output element</title>
- <para>An input element specifies a group of filenames that is to be
- passed as parameters to a build tool. Input filename parameters are
- located after output filename parameters on the command line.</para>
+ <para>An output element specifies a group of filenames that is to be
+ passed as parameters to a build tool. Output filename parameters are
+ located before input filename parameters on the command line.</para>
<section>
<title>Syntax</title>
- <para><programlisting><input>
+ <para><programlisting><output>
...
-</input></programlisting></para>
+</output></programlisting></para>
</section>
<section>
</section>
<section>
- <title>Elements</title>
+ <title>Parents</title>
+
+ <para><link linkend="element.invoke">invoke</link></para>
+ </section>
+
+ <section>
+ <title>Children</title>
- <para><link linkend="element_inputfile">inputfile</link>.</para>
+ <para><link linkend="element.outputfile">outputfile</link>.</para>
</section>
</section>
- <section>
- <title xreflabel="element_inputfile">Inputfile element</title>
+ <section id="element.outputfile">
+ <title>Outputfile element</title>
- <para>An inputfile element specifies a filename that is to be passed
+ <para>An outputfile element specifies a filename that is to be passed
as a parameter to a build tool.</para>
<section>
<title>Syntax</title>
- <para><programlisting><inputfile><replaceable>ntoskrnl.mc</replaceable></inputfile></programlisting></para>
+ <para><programlisting><outputfile switches="<replaceable>-H</replaceable>"><replaceable>../include/reactos/bugcodes.h</replaceable></outputfile></programlisting></para>
</section>
<section>
<term>switches</term>
<listitem>
- <para>Switches that is passed as parameters just before the
+ <para>Switches that are passed as parameters just before the
filename. This attribute is optional.</para>
</listitem>
</varlistentry>
</section>
<section>
- <title>Elements</title>
+ <title>Parents</title>
+
+ <para><link linkend="element.output">output</link>.</para>
+ </section>
+
+ <section>
+ <title>Children</title>
<para>None.</para>
</section>
</section>
- <section>
- <title xreflabel="element_output">Output element</title>
+ <section id="element.pch">
+ <title>Pch element</title>
- <para>An output element specifies a group of filenames that is to be
- passed as parameters to a build tool. Output filename parameters are
- located before input filename parameters on the command line.</para>
+ <para>A pch element specifies a GCC precompiled header file.</para>
<section>
<title>Syntax</title>
- <para><programlisting><output>
- ...
-</output></programlisting></para>
+ <para><programlisting><pch><replaceable>ntdll.h</replaceable></pch></programlisting></para>
</section>
<section>
<section>
<title>Value</title>
- <para>None.</para>
+ <para>Name of the include file to be precompiled.</para>
</section>
<section>
- <title>Elements</title>
+ <title>Children</title>
- <para><link linkend="element_outputfile">outputfile</link>.</para>
+ <para>None.</para>
</section>
</section>
- <section>
- <title xreflabel="element_outputfile">Outputfile element</title>
+ <section id="element.project">
+ <title>Project element</title>
- <para>An outputfile element specifies a filename that is to be passed
- as a parameter to a build tool.</para>
+ <para>There can be one <sgmltag class="element">project</sgmltag> per
+ top-level XML build file. A project can only be defined in a top-level
+ XML build file.</para>
<section>
<title>Syntax</title>
- <para><programlisting><outputfile switches="<replaceable>-H</replaceable>"><replaceable>../include/reactos/bugcodes.h</replaceable></outputfile></programlisting></para>
+ <para><programlisting><project name="ReactOS" makefile="Makefile.auto" xmlns:xi="http://www.w3.org/2001/XInclude">
+ ...
+</project></programlisting></para>
</section>
<section>
<para><variablelist>
<varlistentry>
- <term>switches</term>
+ <term>name</term>
<listitem>
- <para>Switches that are passed as parameters just before the
- filename. This attribute is optional.</para>
+ <para>Name of the project.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>makefile</term>
+
+ <listitem>
+ <para>Filename of the GNU makefile that is to be
+ created.</para>
</listitem>
</varlistentry>
</variablelist></para>
<section>
<title>Value</title>
- <para>Name of file that is to be passed as a parameter to the build
- tool.</para>
+ <para>None.</para>
</section>
<section>
- <title>Elements</title>
+ <title>Parents</title>
- <para>None.</para>
+ <para>None. This is the top-level (root) element of
+ <filename>ReactOS.xml</filename> file.</para>
+ </section>
+
+ <section>
+ <title>Children</title>
+
+ <para><link linkend="element.define">define</link>, <link
+ linkend="element.directory">directory</link>, <link
+ linkend="element.if">if</link>, <link
+ linkend="element.include">include</link>, <link
+ linkend="element.module">module</link>, <link
+ linkend="element.property">property</link>.</para>
</section>
</section>
- <section>
- <title xreflabel="element_library">Library element</title>
+ <section id="element.property">
+ <title>Property element</title>
- <para>A library element specifies the name of another module which is
- to be linked with the current module.</para>
+ <para>A property element specifies the name and value of a property
+ that can be used for conditional processing of the XML build
+ file.</para>
<section>
<title>Syntax</title>
- <para><programlisting><library><replaceable>MyLibraryModule</replaceable></library></programlisting></para>
+ <para><programlisting><property name="<replaceable>mypropertyname</replaceable>" value="<replaceable>mypropertyvalue</replaceable>" /></programlisting></para>
</section>
<section>
<title>Attributes</title>
- <para>None.</para>
+ <para><variablelist>
+ <varlistentry>
+ <term>name</term>
+
+ <listitem>
+ <para>Name of property.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>value</term>
+
+ <listitem>
+ <para>Value of property.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist></para>
</section>
<section>
<title>Value</title>
- <para>Name of the module to link with.</para>
+ <para>None.</para>
+ </section>
+
+ <section>
+ <title>Parents</title>
+
+ <para></para>
</section>
<section>
- <title>Elements</title>
+ <title>Children</title>
<para>None.</para>
</section>
</section>
- <section>
- <title>Property element</title>
+ <section id="element.symbol">
+ <title>Symbol element</title>
- <para>A property element specifies the name and value of a property
- that can be used for conditional processing of the XML build
- file.</para>
+ <para>A symbol element specifies an imported function from a library
+ that is to be stubbed so tests can be run without actually calling the
+ function in the library.</para>
<section>
<title>Syntax</title>
- <para><programlisting><property name="<replaceable>mypropertyname</replaceable>" value="<replaceable>mypropertyvalue</replaceable>" /></programlisting></para>
+ <para><programlisting><symbol newname="<replaceable>RtlAllocateHeap</replaceable>"><replaceable>HeapAlloc@12</replaceable></symbol></programlisting></para>
</section>
<section>
<para><variablelist>
<varlistentry>
- <term>name</term>
-
- <listitem>
- <para>Name of property.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>value</term>
+ <term>newname</term>
<listitem>
- <para>Value of property.</para>
+ <para>New name of symbol. This attribute is optional.</para>
</listitem>
</varlistentry>
</variablelist></para>
<section>
<title>Value</title>
- <para>None.</para>
+ <para>Name of symbol.</para>
</section>
<section>
- <title>Elements</title>
+ <title>Children</title>
<para>None.</para>
</section>
</section>
</section>
+ </chapter>
- <bibliography>
- <title>Bibliography</title>
+ <bibliography>
+ <title>Bibliography</title>
- <bibliomixed><title><ulink
- url="http://www.w3.org/TR/2004/REC-xml-20040204/">Extensible Markup
- Language (XML) 1.0 (Third Edition)</ulink></title><releaseinfo>W3C
- Recommendation</releaseinfo><author>
- <firstname>François</firstname>
+ <bibliomixed><title><ulink
+ url="http://www.w3.org/TR/2004/REC-xml-20040204/">Extensible Markup
+ Language (XML) 1.0 (Third Edition)</ulink></title><releaseinfo>W3C
+ Recommendation</releaseinfo><author>
+ <firstname>François</firstname>
- <surname>Yergeau</surname>
- </author><author>
- <firstname>Tim</firstname>
+ <surname>Yergeau</surname>
+ </author><author>
+ <firstname>Tim</firstname>
- <surname>Bray</surname>
- </author><author>
- <firstname>Jean</firstname>
+ <surname>Bray</surname>
+ </author><author>
+ <firstname>Jean</firstname>
- <surname>Paoli</surname>
- </author><author>
- <firstname>C. M.</firstname>
+ <surname>Paoli</surname>
+ </author><author>
+ <firstname>C. M.</firstname>
- <surname>Sperberg-McQueen</surname>
- </author><author>
- <firstname>Eve</firstname>
+ <surname>Sperberg-McQueen</surname>
+ </author><author>
+ <firstname>Eve</firstname>
- <surname>Maler</surname>
- </author><date>4th February 2004</date></bibliomixed>
+ <surname>Maler</surname>
+ </author><date>4th February 2004</date></bibliomixed>
- <bibliomixed><title><ulink
- url="http://www.w3.org/TR/2004/REC-xinclude-20041220/">XML Inclusions
- (XInclude) Version 1.0 </ulink></title><releaseinfo>W3C
- Recommendation</releaseinfo><editor>
- <firstname>Jonathan</firstname>
+ <bibliomixed><title><ulink
+ url="http://www.w3.org/TR/2004/REC-xinclude-20041220/">XML Inclusions
+ (XInclude) Version 1.0 </ulink></title><releaseinfo>W3C
+ Recommendation</releaseinfo><editor>
+ <firstname>Jonathan</firstname>
- <surname>Marsh</surname>
+ <surname>Marsh</surname>
- <affiliation>
- <orgname>Microsoft</orgname>
- </affiliation>
+ <affiliation>
+ <orgname>Microsoft</orgname>
+ </affiliation>
- <email><jmarsh@microsoft.com></email>
- </editor><editor>
- <firstname>David</firstname>
+ <email>jmarsh@microsoft.com</email>
+ </editor><editor>
+ <firstname>David</firstname>
- <surname>Orchard</surname>
+ <surname>Orchard</surname>
- <affiliation>
- <orgname>BEA Systems</orgname>
- </affiliation>
+ <affiliation>
+ <orgname>BEA Systems</orgname>
+ </affiliation>
- <email><dorchard@bea.com></email>
- </editor>20 December 2004</bibliomixed>
- </bibliography>
- </chapter>
+ <email>dorchard@bea.com</email>
+ </editor>20 December 2004</bibliomixed>
+ </bibliography>
</book>
\ No newline at end of file