Trac is being migrated to new services! Issues can be found in our new
YouTrack instance and WIKI pages can be found on our
website.
- Timestamp:
-
Oct 15, 2011, 3:27:40 PM (12 years ago)
- Author:
-
itsnotabigtruck
- Comment:
-
Additional updates - pending testing build process with the (free) Windows SDK 7.1
Legend:
- Unmodified
- Added
- Removed
- Modified
-
|
v34
|
v35
|
|
| 9 | 9 | == Prerequisites == |
| 10 | 10 | |
| | 11 | 1. '''Get GNU Patch:'''[[BR]]Download [http://gnuwin32.sourceforge.net/packages/patch.htm Patch] from the !GnuWin32 project. Note that Windows thinks that "patch.exe" is a patch for a program and will prompt you to UAC elevate it whenever you use it (see [http://math.nist.gov/oommf/software-patchsets/patch_on_Windows7.html this page]). |
| 11 | 12 | 1. '''Get the Windows SDK:'''[[BR]]Download the [https://www.microsoft.com/download/en/details.aspx?id=8279 Windows SDK for Windows 7 SP1] and install it to the default location. |
| 12 | 13 | 1. '''Get the Windows Driver Kit (WDK):'''[[BR]]Download the [https://www.microsoft.com/download/en/details.aspx?displaylang=en&id=11800 WDK for Windows 7 SP1] and install it to the default location. |
| … |
… |
|
| 14 | 15 | 1. '''Get Network Security Services (NSS):'''[[BR]]Download the latest version of [ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/ NSS] (currently 3.12.11 w/ CKBI 1.87) and extract it to the same location. |
| 15 | 16 | 1. '''Get MozillaBuild:'''[[BR]]Download the latest version of [ftp://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/MozillaBuildSetup-Latest.exe MozillaBuild] and install it to `c:\devel\mozilla-build`. |
| | 17 | |
| | 18 | == Apply patches == |
| | 19 | |
| | 20 | Download the [http://code.google.com/p/xchat-wdk/source/browse/ext/nss-wdk/nss-wdk.patch?name=wdk WDK build patch] from the [http://code.google.com/p/xchat-wdk/ XChat-WDK project]. Open a command prompt at your NSS/NSPR directory and run `"c:\path\to\patch.exe" -p1 --binary -i nss-wdk.patch`. |
| 16 | 21 | |
| 17 | 22 | == Choose build configuration == |
| … |
… |
|
| 23 | 28 | |
| 24 | 29 | You can toggle them with environmental variables. Here's the matrix: |
| | 30 | |
| 25 | 31 | {{{ |
| 26 | 32 | #!rst |
| 27 | | +-----------+----------------+-----------------+ |
| 28 | | | |USE_DEBUG_RTL= |USE_DEBUG_RTL=1 | |
| 29 | | +===========+================+=================+ |
| 30 | | |BUILD_OPT= |WINNT6.1_DBG.OBJ|WINNT6.1_DBG.OBJD| |
| 31 | | +-----------+----------------+-----------------+ |
| 32 | | |BUILD_OPT=1|WINNT6.1_OPT.OBJ|N/A | |
| 33 | | +-----------+----------------+-----------------+ |
| | 33 | +---------------+--------------------+---------------------+ |
| | 34 | | |``USE_DEBUG_RTL=`` |``USE_DEBUG_RTL=1`` | |
| | 35 | +===============+====================+=====================+ |
| | 36 | |``BUILD_OPT=`` |``WINNT6.1_DBG.OBJ``|``WINNT6.1_DBG.OBJD``| |
| | 37 | +---------------+--------------------+---------------------+ |
| | 38 | |``BUILD_OPT=1``|``WINNT6.1_OPT.OBJ``|``N/A`` | |
| | 39 | +---------------+--------------------+---------------------+ |
| 34 | 40 | }}} |
| 35 | 41 | |
| 36 | 42 | The version after WINNT is the version of your current OS (you can check it with the `winver` command). WINNT6.1 assumes you're building on Windows 7. The default setting is an unoptimized build with the release RTL (WINNT6.1_DBG.OBJ). |
| 37 | 43 | |
| 38 | | '''WARNING''': it seems the builder considers any variable as 1 if it's set. So if you enter |
| 39 | | {{{ |
| 40 | | set BUILD_OPT=0 |
| 41 | | }}} |
| 42 | | you'll get an optimized build although you wanted a debug one. The answer lies in `mozilla\security\coreconf\WIN32.mk`. They check variables with ifdefs, which is just plain wrong (or they should mention it this way in the documentation). |
| 43 | | |
| 44 | | '''Solution''': set a variable only if you want the related build. Here's the table for seeing what you actually have to enter and what you'll get: |
| 45 | | || || ||USE_DEBUG_RTL=1||BUILD_OPT=1|| |
| 46 | | ||OS_TARGET=WIN95||WIN954.0_DBG.OBJ||WIN954.0_DBG.OBJD||WIN954.0_OPT.OBJ|| |
| 47 | | ||OS_TARGET=WINNT||WINNT6.1_DBG.OBJ||WINNT6.1_DBG.OBJD||WINNT6.1_OPT.OBJ|| |
| 48 | | OS_TARGET is an exception and isn't affected by this error because it's not numerical, so the script checks for its value instead of its existence. As a sidenote, BUILD_OPT seems to have a higher priority than USE_DEBUG_RTL, so if you enter |
| 49 | | {{{ |
| 50 | | set BUILD_OPT=1 |
| 51 | | set USE_DEBUG_RTL=1 |
| 52 | | }}} |
| 53 | | you'll get an optimized build without linking with the debug RTL. In case you want, for example, a debug build after an optimized, you can unset the variable by setting it without a value, such as: |
| 54 | | |
| 55 | | {{{ |
| 56 | | set BUILD_OPT= |
| 57 | | }}} |
| | 44 | '''WARNING''': it seems the builder considers an option to be enabled if it's set, so if you enter `set BUILD_OPT=0` you'll get an optimized build, not a debug one. The answer lies in `mozilla\security\coreconf\WIN32.mk`. They check variables with ifdefs, which is just plain wrong (or they should mention it this way in the documentation). |
| 58 | 45 | |
| 59 | 46 | More info about the build variables can be found on the [https://developer.mozilla.org/en/NSS_reference/Building_and_installing_NSS/Build_instructions Build instructions] page of the Mozilla Developer Central. |
| 60 | 47 | |
| 61 | 48 | == Build NSS == |
| | 49 | |
| | 50 | ''To be updated with DDK build instructions'' |
| 62 | 51 | |
| 63 | 52 | The easiest way to do this with consistent results is to make a build script (the following is what the binary included with Pidgin is built with): |
| … |
… |
|
| 97 | 86 | The build will likely not complete successfully due to hardcoded library paths and other problems in the build system (it will bail out building `.../cmd/bltest`). If it gets that far, it has already built the various libraries successfully. |
| 98 | 87 | |
| 99 | | The resulting binaries will be placed in `c:\devel\pidgin-devel\win32-dev\nss-3.12.8\mozilla\dist`. The contents of `private` and `public` are the same across all configurations so they can be distributed separately. |
| | 88 | The resulting binaries will be placed in `c:\devel\pidgin-devel\win32-dev\nss-3.12.8\mozilla\dist`. The contents of `private` and `public` are the same across all configurations so they can be distributed separately. The following files need to be distributed with Pidgin: |
| | 89 | |
| | 90 | * `libnspr4.dll` |
| | 91 | * `libplds4.dll` |
| | 92 | * `libplc4.dll` |
| | 93 | * `nssutil3.dll` |
| | 94 | * `freebl3.dll` |
| | 95 | * `sqlite3.dll` |
| | 96 | * `softokn3.dll` |
| | 97 | * `nss3.dll` |
| | 98 | * `ssl3.dll` |
| | 99 | * `nssckbi.dll` |
| | 100 | * `softokn3.chk` |
| | 101 | * `freebl3.chk` |
All information, including names and email addresses, entered onto this website or sent to mailing lists affiliated with this website will be public. Do not post confidential information, especially passwords!