Building ReactOS
This page describes the steps necessary to build ReactOS.
Contents
Getting all you need
Setting up a Build Environment
For building ReactOS you also need the official ReactOS Build Environment. Please download and install it from that page.
Make sure that no interfering build environment (such as MSYS) is in your PATH environment variable when building.
Getting a Working Copy
The first step in building ReactOS is getting a copy of the source code.
You can use the exported release source code, but since you are reading this, you are probably interested in keeping up to date with the latest changes, so you will want a "working copy" of ReactOS. To get a working copy of ReactOS, please read the Subversion page.
If you do not use a separate SVN client, the command
ssvn create
from within the build environment will download it.
Prerequisites
Notice: You should temporarily disable your antivirus before proceeding, because some of them detect ReactOS's as infected system files. |
Before building either the tools or ReactOS itself the output location must be created and prepared. This is an easy step and involves only one command. This command is located in the root of recent revisions of the source code and can be run either from the root directory itself or any other directory you want the build your sources in. Please make sure you are running it from within ReactOS BE:
Linux/Unix
Run:
configure.sh
cd output-MinGW-i386
Windows or ReactOS
Run:
configure.cmd
cd output-MinGW-i386
After executing, folder output-MinGW-i386 will be created in root of ReactOS tree. You will be redirected to it.
Building Tools
To build the branch, build tools must be compiled first. This only needs to be done for the first build and whenever there is a change to the build tools.
From your output directory, go to host-tools. Follow specific instruction for your compiler.
cd host-tools
ninja all
With the build tools compiled, ReactOS can now be compiled.
Building ReactOS on Windows or ReactOS*
Change to the "reactos" folder located inside output-MinGW-i386 (i.e. reactos\output-MinGW-i386\reactos):
cd ..\reactos
ninja COMMANDS
Replace "COMMANDS" with the desired build commands, such as bootcd
or livecd
, listed below:
* Perhaps, some functions of RosBE may not work on ReactOS. If so, please have a look on our Jira page whether this problem is already reported or not.
Building ReactOS on Unix/Linux
Change to the "reactos" folder located inside output-MinGW-i386 (i.e. reactos/output-MinGW-i386/reactos):
cd ../../output-MinGW-i386/reactos
ninja COMMANDS
Combining the above steps together:
Replace "COMMANDS" with the desired build commands, such as bootcd
or livecd
, listed below:
Commands
After you have started a Build Environment Command Prompt, there are certain commands available.
Invoking a build
ninja
or ninja all
This command builds all binaries of ReactOS. They will be placed in the created output directory created by the configure command. (default: output-MinGW-i386/reactos) All source files, which did not change since the last build, will not be built again.
ninja bootcd
This command works like make, but also generates a bootable ReactOS ISO file (bootcd.iso) placed into the output directory. It is wise to tag your Boot-CDs with the revision they were built from if you need to keep many ReactOS ISOs.
ninja livecd
This command generates livecd.iso in the output directory. This is the ReactOS Live-CD that runs completely from the CD-ROM.
Adding modules to the build process
There are several modules you can add to the build process. For example rosapps contains some additional applications not included by default.
The page Building Modules describes, which modules exist and how to add them to the build process.
See also
- Build Environment - another tutorial how to build ReactOS
- Building with MSVC
- Building MINGW-w64
- Building with Ninja latest build method, RosBE v2.1