Changes between Version 51 and Version 52 of Windows build instructions
- Timestamp:
- Jun 9, 2017 7:59:13 AM (8 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Windows build instructions
v51 v52 40 40 * the '''libxml2''' library. Sources and 32bit binaries can be downloaded from: [[BR]] 41 41 http://xmlsoft.org/downloads.html [[BR]] 42 http://xmlsoft.org/XSLT/downloads.html [[BR]]43 42 ''Use `--with-libxml2=` to specify the path for configure.vbs.'' 44 43 45 44 * the '''zlib''' library. Grab the sources from: [[BR]] 46 45 http://www.zlib.net/ [[BR]] 47 Actually the tarball comes with zlib in the `src/libs/` directory already so downloading this library is only necessary if you need a new version. In that case look for `SDK_VBOX_ZLIB_INCS` and `SDK_VBOX_ZLIB_LIBS` in Config.kmk and override these entries in your LocalConfig.kmk (see below for some notes about LocalConfig.kmk).46 Actually the tarball includes `zlib` in the `src/libs/` directory so downloading this library is only necessary if you need a more recent version. In that case look for `SDK_VBOX_ZLIB_INCS` and `SDK_VBOX_ZLIB_LIBS` in Config.kmk and override these entries in your {{{LocalConfig.kmk}}} accordingly. See [#LocalConfig below] for some notes about using {{{LocalConfig.kmk}}} to override the default build configuration). 48 47 49 48 * the '''cURL''' library. Grab the binaries from: [[BR]] … … 59 58 Normally part of the WDK: `certmgr.exe`, `makecert.exe`, `signtool.exe` and so on. 60 59 61 * ''Optional:'' '''NSIS 2.51''', only needed if you want to build the Guest Additions including the installer. Required plugins: NsSCM, AccessControl, NsProcess and nsisunz. Grab the sources or setup from: [[BR]]60 * ''Optional:'' '''NSIS 2.51''', only needed if you want to build the Guest Additions including the installer. Required plugins: `NsSCM`, `AccessContro`, `NsProcess` and `nsisunz`. Grab the sources or setup from: [[BR]] 62 61 https://sourceforge.net/projects/nsis/files/NSIS%202/2.51/ 63 62 64 63 * ''Optional:'' '''gSOAP 2.8.x''', only needed if you want to build the webservice API server. Grab the sources from: [[BR]] 65 64 http://sourceforge.net/projects/gsoap2/files/gSOAP/gSOAP%202.7.12%20stable/ [[BR]] 66 Add `VBOX_PATH_GSOAP=/path/to/gsoap-VERSION/gsoap` and `VBOX_GSOAP_INSTALLED=1` to your LocalConfig.kmk file (no autodetection from configure.vbs). 67 65 Add `VBOX_PATH_GSOAP=/path/to/gsoap-VERSION/gsoap` and `VBOX_GSOAP_INSTALLED=1` to your {{{LocalConfig.kmk}}} file (no autodetection from configure.vbs). 68 66 69 67 * ''Optional:'' '''Python 2.7.x''', only needed if you want to build Python API bindings, both webservice and COM. Grab the binaries from: [[BR]] … … 75 73 76 74 === Manual compilation of certain prerequisites === 77 If you don't find development packages of certain prerequisites it's also possible to manually compile them. For instance, there does not seem to be proper libcurl packages avaible for Windows which contain the .lib files, the .dll files as well asthe `include/` directory.75 If you don't find development packages of certain prerequisites it's also possible to manually compile them. For instance, there does not seem to be proper `libcurl` packages avaible for Windows which contain `libcurl.lib`, `libcurl.dll' files and the `include/` directory. 78 76 79 77 To manually build the cURL devel package on Windows you have to 80 1. Take care that the compiler binary path is part of the '''`PATH`''' environment variable, usually the `bin/` directory of the installation directory. That directory has to contain `cl.exe`, `link.exe`, `lib.exe`, `nmake.exe` etc. Take care to point tothe correct architecture path (amd64 or x86).78 1. Take care that the compiler binary path is part of the '''`PATH`''' environment variable, usually the `bin/` directory of the installation directory. That directory has to contain `cl.exe`, `link.exe`, `lib.exe`, `nmake.exe` etc. Take care to specify the correct architecture path (amd64 or x86). 81 79 2. Set the '''`INCLUDE`''' environment variable to include the compilers `atlmfc/include/` (ATL/MFC) and `include/` directories. 82 3. Set the '''`LIB`''' environment variable to include the compilers `atlmfc/lib/` (ATL/MFC) and `lib/` directories. Take care to point tothe correct architecture path (amd64 or x86).83 4. Set the '''`LIBPATH`''' environment variable to include the compilers `atlmfc/lib/` (ATL/MFC) directory. Take care to point tothe correct architecture path (amd64 or x86).80 3. Set the '''`LIB`''' environment variable to include the compilers `atlmfc/lib/` (ATL/MFC) and `lib/` directories. Take care to specify the correct architecture path (amd64 or x86). 81 4. Set the '''`LIBPATH`''' environment variable to include the compilers `atlmfc/lib/` (ATL/MFC) directory. Take care to specify the correct architecture path (amd64 or x86). 84 82 5. Set the '''`PATH`''' environment variable to include the (7.1) SDK `bin/` directory. Take care to point to the correct architecture path (amd64 or x86). 85 83 6. Set the '''`INCLUDE`''' environment variable to include the (7.1) SDK `include/` directory. 86 7. Set the '''`LIB`''' environment variable to include the (7.1) SDK `lib/` directory. Take care to point tothe correct architecture path (amd64 or x86).84 7. Set the '''`LIB`''' environment variable to include the (7.1) SDK `lib/` directory. Take care to specify the correct architecture path (amd64 or x86). 87 85 After all these environment variables are set up, go to the `curl-VERSION/winbuild/` directory and perform 88 86 {{{ … … 90 88 nmake /f Makefile.vc mode=dll VC=10 MACHINE=x86 91 89 }}} 92 The resulting package can be found in `libcurl-vc10-*-winssl/` directory. The configure.vbs script expects that libcurl.lib and libcurl.dll are located next to the `include/` directory. It's a good idea to copy the `libcurl-vc10-*-winssl/` directory to another place. Then use the `--with-libcurl=` parameter to tell configure.vbs the path.90 The resulting package can be found in the `libcurl-vc10-*-winssl/` directory. The configure.vbs script expects that libcurl.lib and libcurl.dll are located next to the `include/` directory. It's a good idea to copy the `libcurl-vc10-*-winssl/` directory to another place. Then use the `--with-libcurl=` parameter to specify the path for configure.vbs. 93 91 94 92 == Building !VirtualBox == … … 104 102 2. Change to the root directory of the sources and enter our build shell environment: `env.bat`. 105 103 106 3. To manually override any tool or change Config.kmk settings, create LocalConfig.kmk in the root directory of the sources and place the setting there. For instance, to create a non-hardened build ('''only for testing'''), add `VBOX_WITHOUT_HARDENING = 1` to LocalConfig.kmk.104 3. To manually override any tool or change Config.kmk settings, create {{{LocalConfig.kmk}}} in the root directory of the sources and place the setting there. See [#LocalConfig below] for an incomplete of possible settings. 107 105 108 4. To build a release package, type `kmk`. This produces the binaries in `out\win.x86\release\bin` . If you want to build a debug version, enter `kmk KBUILD_TYPE=debug`.106 4. To build a release package, type `kmk`. This produces the binaries in `out\win.x86\release\bin` (or `out\win.amd64\release\bin` on 64-bit hosts). If you want to build a debug version, enter `kmk KBUILD_TYPE=debug`. 109 107 108 5. To create an `.msi` package, type `kmk packing'. 110 109 111 110 === Using Visual C++ 2010 Express === … … 117 116 cscript configure.vbs --with-VC-Express-Edition 118 117 }}} 118 119 120 === Excluding certain features from building === #LocalConfig 121 122 Here is an incomplete list of settings which could be added to {{{LocalConfig.kmk}}}: 123 VBOX_WITH_ADDITIONS=:: 124 Don't build the !VirtualBox Guest Additions. 125 VBOX_ONLY_ADDITIONS=1:: 126 Build the Guest Additions exclusively. 127 VBOX_WITH_VALIDATIONKIT=:: 128 Don't build the !VirtualBVox validation kit. 129 VBOX_WITHOUT_HARDENING=1:: 130 Disable Windows hardening. Useful for testing. Do '''not''' use this setting for production builds! Without hardening the binaries are not signed and !VirtualBox.exe can be started straight away from the out/.../bin directory (`kmk packing` + installation not required). 119 131 120 132 === Only for 64 bit builds: setting up self signing ===