Difference between revisions of "Building ReactOS"
m (don't use highlighting where it isn't useful) |
m (CORE-12931 is fixed and Git reportedly installs.) |
||
(16 intermediate revisions by 11 users not shown) | |||
Line 10: | Line 10: | ||
<!-- {{Notice|Due to a current bug, the build environment can not use a build folder that contains spaces in its path name.<br /> | <!-- {{Notice|Due to a current bug, the build environment can not use a build folder that contains spaces in its path name.<br /> | ||
Under Windows XP and 2003 you must change the default location of "C:\Documents and Settings\[username]\reactos\".}} --> | Under Windows XP and 2003 you must change the default location of "C:\Documents and Settings\[username]\reactos\".}} --> | ||
− | === Optional: | + | === Optional: Set Up Visual Studio === |
− | If you want to use Visual Studio to compile | + | If you want to use Visual Studio to compile ReactOS, you need to get one of the supported version, which is VS2010 and later. You can download the free Community Edition of Visual Studio 2015. To compile with VS, open the appropriate VS command prompt and follow the same instructions as for building with the GCC based ReactOS build environment. Note that you still need the ReactOS build environment, which contains CMake and some additional tools, or you can install the latest version of CMake yourself, but that is not recommended. If you experience problems with the configure stage, e.g. the compiler is reported to not be working, please check if you have installed any additional Windows SDKs or WDK and try again after removing them. |
=== Getting a Working Copy === | === Getting a Working Copy === | ||
Line 17: | Line 17: | ||
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. | 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 [[ | + | To get a working copy of ReactOS, please read the [[ReactOS_Git_For_Dummies|ReactOS Git For Dummies]] page. |
− | + | You need to have [https://git-scm.com/ Git] installed on your system. The command | |
− | + | git clone https://github.com/reactos/reactos.git | |
− | from within the | + | from within the command prompt will download it. |
== Prerequisites == | == Prerequisites == | ||
− | {{Notice| | + | For building ReactOS you will need at least 2 GB of RAM, preferably 4 GB. |
+ | If you are [[Building ReactOS on a cloud node instance|building on a cloud server instance]] having less than 2 GB of RAM, you might find that your SSH connection to the cloud node is forcibly closed during the "./configure" step. This is usually caused by running out-of-memory during the CMake configure step. | ||
+ | |||
+ | {{Notice|It is recommended to temporarily disable your antivirus before proceeding, because some of them detect some of ReactOS' system files (in particular, crtdll.dll) as being infected.}} | ||
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: | 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: | ||
Line 32: | Line 35: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
configure.sh | configure.sh | ||
− | cd output-MinGW-i386 | + | cd output-MinGW-i386/reactos |
</syntaxhighlight> | </syntaxhighlight> | ||
Line 43: | Line 46: | ||
After executing, folder <tt>output-MinGW-i386</tt> will be created in root of ReactOS tree. You will be redirected to it. | After executing, folder <tt>output-MinGW-i386</tt> will be created in root of ReactOS tree. You will be redirected to it. | ||
If you want to build in a different folder, cd to that folder first and then execute | If you want to build in a different folder, cd to that folder first and then execute | ||
− | < | + | <syntaxhighlight lang="dos"> |
<path_to_source>\configure.cmd | <path_to_source>\configure.cmd | ||
− | </ | + | </syntaxhighlight> |
− | configure.cmd currently | + | configure.cmd currently supports the following options: |
− | < | + | * <code>/?</code> displays help |
− | < | + | * <code>Codeblocks</code> creates a CodeBlocks solution |
− | < | + | * <code>Eclipse</code> creates an Eclipse solution |
− | < | + | * <code>Makefiles</code> creates (n)make files |
− | < | + | * <code>clang</code> Uses clang instead of gcc |
− | < | + | * <code>VSSolution</code> Creates a Visual Studio solution |
− | < | + | * <code>RTC</code> enables extra runtime checks |
You can additionally specify any number of cmake command line options, like "-DSYMBOL=VALUE". | You can additionally specify any number of cmake command line options, like "-DSYMBOL=VALUE". | ||
=== Building ReactOS on Windows or ReactOS* === | === Building ReactOS on Windows or ReactOS* === | ||
− | From the build folder (e.g. reactos\output-MinGW-i386) | + | From the build folder (e.g. reactos\output-MinGW-i386) enter the following command: |
− | < | + | <syntaxhighlight lang="dos"> |
ninja COMMANDS | ninja COMMANDS | ||
− | </ | + | </syntaxhighlight> |
Replace "COMMANDS" with the desired build commands, such as <code>bootcd</code> or <code>livecd</code>, listed below: | Replace "COMMANDS" with the desired build commands, such as <code>bootcd</code> or <code>livecd</code>, listed below: | ||
Line 69: | Line 72: | ||
=== Building ReactOS on Unix/Linux === | === Building ReactOS on Unix/Linux === | ||
− | < | + | <syntaxhighlight lang="dos"> |
ninja COMMANDS | ninja COMMANDS | ||
− | </ | + | </syntaxhighlight> |
Combining the above steps together: | Combining the above steps together: | ||
Replace "COMMANDS" with the desired build commands, such as <code>bootcd</code> or <code>livecd</code>, listed below: | Replace "COMMANDS" with the desired build commands, such as <code>bootcd</code> or <code>livecd</code>, listed below: |
Revision as of 14:31, 29 December 2018
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.
Optional: Set Up Visual Studio
If you want to use Visual Studio to compile ReactOS, you need to get one of the supported version, which is VS2010 and later. You can download the free Community Edition of Visual Studio 2015. To compile with VS, open the appropriate VS command prompt and follow the same instructions as for building with the GCC based ReactOS build environment. Note that you still need the ReactOS build environment, which contains CMake and some additional tools, or you can install the latest version of CMake yourself, but that is not recommended. If you experience problems with the configure stage, e.g. the compiler is reported to not be working, please check if you have installed any additional Windows SDKs or WDK and try again after removing them.
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 ReactOS Git For Dummies page.
You need to have Git installed on your system. The command
git clone https://github.com/reactos/reactos.git
from within the command prompt will download it.
Prerequisites
For building ReactOS you will need at least 2 GB of RAM, preferably 4 GB. If you are building on a cloud server instance having less than 2 GB of RAM, you might find that your SSH connection to the cloud node is forcibly closed during the "./configure" step. This is usually caused by running out-of-memory during the CMake configure step.
Notice: It is recommended to temporarily disable your antivirus before proceeding, because some of them detect some of ReactOS' system files (in particular, crtdll.dll) as being infected. |
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/reactos
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. If you want to build in a different folder, cd to that folder first and then execute
<path_to_source>\configure.cmd
configure.cmd currently supports the following options:
/?
displays helpCodeblocks
creates a CodeBlocks solutionEclipse
creates an Eclipse solutionMakefiles
creates (n)make filesclang
Uses clang instead of gccVSSolution
Creates a Visual Studio solutionRTC
enables extra runtime checks
You can additionally specify any number of cmake command line options, like "-DSYMBOL=VALUE".
Building ReactOS on Windows or ReactOS*
From the build folder (e.g. reactos\output-MinGW-i386) enter the following command:
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
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.
ninja hybridcd
This command generates hybridcd.iso in the output directotry. This is a hybrid cd of ReactOS
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