Build: Difference between revisions
m Ashific moved page Getting Started to Build without leaving a redirect: Getting Started must be a roadmap |
No edit summary |
||
| Line 7: | Line 7: | ||
=== For 2000/XP/2003 Users === | === For 2000/XP/2003 Users === | ||
Before initializing Razzle, you should update your build machine. If you're using Windows XP/Server 2003, and you haven't updated it yet with [https://legacyupdate.net Legacy Update], it's mandatory to install .NET Framework 1.1, because without it Razzle will fail to initialize environment normally (despite that two versions of .NET 1.1 are included in <code>tools\x86</code>). The installation files are included in <code>tools\prereq</code> folder. | Before initializing Razzle, you should update your build machine. If you're using Windows XP/Server 2003, and you haven't updated it yet with [https://legacyupdate.net Legacy Update], it's mandatory to install .NET Framework 1.1, because without it Razzle will fail to initialize environment normally (despite that two versions of .NET 1.1 are included in <code>tools\x86</code>). The installation files are included in <code>tools\prereq</code> folder. Current certificates chain haven't tested with Windows 2000 at the moment of writing. | ||
=== For modern Windows Server Users === | |||
Currently there are issues regarding .NET Framework installation on Windows Server 2022/2025 versions, which may potentially disallow you from compiling source code. In order to fix those issues, you should switch to older known Windows Server versions (at the moment of writing it's Windows Server 2003) or use client versions of Windows instead (from Windows XP to Windows 11). | |||
=== Running environment === | === Running environment === | ||
| Line 17: | Line 20: | ||
If you want to have official builds, append <code>official</code> argument. This argument is modified and removed <code>OfficialBuild</code> argument, which previously checked build machine for eligibility of building official builds. <code>official</code> argument sets necessary values for official build independently of your machine eligibility, because of it's moot behavior and requirement to be connected into legacy build servers. | If you want to have official builds, append <code>official</code> argument. This argument is modified and removed <code>OfficialBuild</code> argument, which previously checked build machine for eligibility of building official builds. <code>official</code> argument sets necessary values for official build independently of your machine eligibility, because of it's moot behavior and requirement to be connected into legacy build servers. | ||
== Build == | |||
Start to build via <code>build /cZP</code> or <code>bcz</code> (which is alias to first, so doesn't matter) | Start to build via <code>build /cZP</code> or <code>bcz</code> (which is alias to first, so doesn't matter). | ||
As an alternative, you can use <code>tools\buildx.cmd</code> script, which allows to build not only retail (fre) and debug (checked, or chk) builds, but also profile and meter builds, additionally by disabling compiler optimizations and specifically building for AMD64/IA64 architectures. The purpose of profile and meter builds is in investigations, as of time of guide enhancement. | '''Important:''' Build.exe doesn't seem to play well when building with many (up to 8) threads. If your build machine has more than that it's recommended to cap it to 8 threads maximum via the <code>-M 8</code> switch, added to the build command (eg. <code>build /cZP -M 8</code>, or <code>bcz -M 8</code>). Use 8 threads if your host/virtual machine CPU have allocated 8 cores (or less). More than 8 threads build may lead to unforeseen behavior, such as inconsistent linkage and invalid generation of pieces of code, since some build programs were written back at time when CPUs should be limited in order to preserve proper frequency. | ||
As an alternative, you can use <code>tools\buildx.cmd</code> script, which allows to build not only retail (<code>fre</code>) and debug (checked, or <code>chk</code>) builds, but also profile and meter builds, additionally by disabling compiler optimizations and specifically building for AMD64/IA64 architectures. The purpose of profile and meter builds is in investigations, as of time of guide enhancement. | |||
=== Post-build === | === Post-build === | ||
Download the Missing Binaries pack from [https://theopenxp.org/download OpenXP Download Center], which contains missing binaries both for AMD64 and x86 builds. | |||
Extract the contents of the binaries folder for the build type you're building into your build trees binaries folder (e.g. <code>D:\binaries.x86fre</code>, should have been created during the build), the 7z should contain files for all SKUs (uses <code>pidgen.dll</code> from Win2003 Enterprise, so your builds should accept Enterprise product keys), '''When asked during extraction to overwrite folders select <code>Yes</code>, but when asked to overwrite files, make sure to select <code>No</code>!''' | |||
Inside the razzle window run <code>tools\postbuild</code>. You can use <code>-sku:{sku}</code> if you want to process only specific one (no brackets!), expect <code>filechk</code> errors, if you haven't extracted missing binaries from <code>misbin.7z</code>. If you have a wish to do a full post-build, append <code>-full</code> argument | |||
==== Issues ==== | ==== Issues ==== | ||