Support for non-standard module base addresses
[reactos.git] / reactos / tools / rbuild / rbuild.txt
index 2587a8e..121622c 100644 (file)
@@ -3,21 +3,16 @@ ReactOS Build System Documentation
 \r
 Building ReactOS\r
 ----------------\r
-To generate GNU make makefiles for building ReactOS do the following:\r
+To generate GNU make makefiles and building ReactOS do the following:\r
 \r
        1) Go to the top-level reactos directory\r
-       2) Run the command: mingw32-make -C tools\reactos\r
-       3) Run the command: tools\rbuild\rbuild mingw\r
-\r
-This will generate Makefile.auto in the current directory. Now run the following command:\r
-\r
-       mingw32-make -f Makefile.auto\r
+       2) Run the command: mingw32-make\r
 \r
 This will start building ReactOS.\r
 \r
 To build a bootable CD run the following command:\r
 \r
-       mingw32-make -f Makefile.auto bootcd\r
+       mingw32-make bootcd\r
 \r
 This will create ReactOS.iso in the top-level reactos directory.\r
 \r
@@ -112,7 +107,7 @@ Module element
 There can be zero or more modules per xml build file.\r
 \r
 Syntax:\r
-       <module name="msvcrt" type="win32dll" extension=".dll" entrypoint="_DllMain@12" mangledsymbols="true">\r
+       <module name="msvcrt" type="win32dll" extension=".dll" entrypoint="_DllMain@12" baseaddress="0x70000000" mangledsymbols="true">\r
                ...\r
        </module>\r
 \r
@@ -120,7 +115,8 @@ Attributes:
        name - Name of the module. Also the base name of the generated file if such file is generated for the particular module type.\r
        type - Type of module. See below for an explanation of module types.\r
        extension - Extension of the generated file if such file is generated for the particular module type.\r
-       entrypoint - Entrypoint for the generated file if such file is generated for the particular module type.\r
+       entrypoint - Entrypoint symbol of the generated file if such file is generated for the particular module type.\r
+       baseaddress - Base address of the generated file if such file is generated for the particular module type.\r
        mangledsymbols - 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.\r
 \r
 Value:\r
@@ -133,18 +129,18 @@ Elements:
 Module types\r
 ------------\r
 The module type determines the actions that is to be carried out to process the module. The defined module types are seen below:\r
-       buildtool - Builds a tool that can be run (invoked) when building ReactOS. Default extension is .exe when building on Windows and nothing when building on Linux. The entrypoint module attribute is not applicable for this module type.\r
-       staticlibrary - Builds a static library containing object files that can be linked together with other modules. Default extension is .a. The entrypoint module attribute is not applicable for this module type.\r
-       objectlibrary - Builds object files that can be linked together with other modules. Default extension is .o. The entrypoint module attribute is not applicable for this module type.\r
+       buildtool - Builds a tool that can be run (invoked) when building ReactOS. Default extension is .exe when building on Windows and nothing when building on Linux. The entrypoint, baseaddress, and mangledsymbols module attributes are not applicable for this module type.\r
+       staticlibrary - Builds a static library containing object files that can be linked together with other modules. Default extension is .a. The entrypoint, baseaddress, and mangledsymbols module attributes are not applicable for this module type.\r
+       objectlibrary - Builds object files that can be linked together with other modules. Default extension is .o. The entrypoint, baseaddress, and mangledsymbols module attributes are not applicable for this module type.\r
        kernel - Builds ntoskrnl.exe. Default extension is .exe. Default entrypoint is _NtProcessStartup. \r
        kernelmodedll - Builds a kernel-mode DLL. Default extension is .dll. Default entrypoint is _DriverEntry@8.\r
        kernelmodedriver - Builds a kernel-mode driver. Default extension is .sys. Default entrypoint is _DriverEntry@8.\r
        nativedll - Builds a native DLL. Default extension is .dll. Default entrypoint is _DllMainCRTStartup@12.\r
        win32dll - Builds a Win32 DLL. Default extension is .dll. Default entrypoint is _DllMain@12.\r
-       win32gui - Builds a Win32 GUI executable. Default extension is .exe. Default entrypoint is _WinMainCRTStartup.\r
-       bootloader - Builds a bootloader. The extension and entrypoint module attributes are not applicable for this module type.\r
-       bootsector - Builds one or more bootsector binaries. The extension and entrypoint module attributes are not applicable for this module type.\r
-       iso - Builds a bootable CD. The extension and entrypoint module attributes are not applicable for this module type\r
+       win32gui - Builds a Win32 GUI executable. Default extension is .exe. Default entrypoint is _WinMainCRTStartup. The baseaddress module attribute is not applicable for this module type.\r
+       bootloader - Builds a bootloader. The entrypoint, baseaddress, and mangledsymbols module attributes are not applicable for this module type.\r
+       bootsector - Builds one or more bootsector binaries. The entrypoint, baseaddress, and mangledsymbols module attributes are not applicable for this module type.\r
+       iso - Builds a bootable CD. The entrypoint, baseaddress, and mangledsymbols module attributes are not applicable for this module type.\r
 \r
 \r
 Define element\r