Changes between Initial Version and Version 1 of CompileWithWxWidgets


Ignore:
Timestamp:
Apr 25, 2009, 4:29:33 PM (15 years ago)
Author:
Ageless
Comment:

Old style building the client + wxWidgets

Legend:

Unmodified
Added
Removed
Modified
  • CompileWithWxWidgets

    v1 v1  
     1== Building the BOINC client fully by hand; Windows ==
     2
     3=== Building the client with Visual Studio 2005 and Visual Studio 2005 Express Edition. ===
     4
     5Software Prerequisites:
     6 * Download and install [http://msdn2.microsoft.com/en-us/express/aa975050.aspx Visual C++ 2005 Express Edition] (part of Visual Studio 8 Express).
     7  * After it downloaded and "installed", go to your local \Visual Studio 8\Microsoft Visual C++ 2005 Express Edition - ENU\ directory and click setup.exe, which will install VC++ 2005 Express Edition in earnest.
     8
     9 * Update to [http://www.microsoft.com/downloads/details.aspx?FamilyId=7B0B0339-613A-46E6-AB4D-080D4D4A8C4E&displaylang=en Visual Studio Service 2005 Express Edition Service Pack 1]
     10 * When using the full version of Visual Studio 2005, update to [http://www.microsoft.com/downloads/details.aspx?FamilyId=BB4A75AB-E2D4-4C96-B39D-37BAF6B5B1DC&displaylang=en Visual Studio 2005 Team Suite Service Pack 1]
     11 * When using Visual C++ 2005 Express Edition, you will also need to download and install [http://www.microsoft.com/downloads/details.aspx?FamilyId=0BAF2B35-C656-4969-ACE8-E4C0C0716ADB Windows Platform Server 2003 R2 Platform SDK].
     12  * See this [http://msdn.microsoft.com/en-us/windowsserver/bb980924.aspx article] for further details.
     13 * [SourceCode Download the current BOINC source code].
     14 * Download [http://www.wxwidgets.org/ wxWidgets]. wxWidgets 2.6.4 is no longer needed.
     15 * Install the wxWidgets source according to instructions on the web site.
     16
     17   || Build Target  || Build Platform || wxWidget Version || Environment Variable ||
     18   || Release       || Win32          || 2.8.x            || WXWIN                ||
     19   || Release       || x64            || 2.8.x            || WXWINX64             ||
     20   || Debug         || Win32          || 2.8.x            || WXWIN                ||
     21   || Debug         || x64            || 2.8.x            || WXWINX64             ||
     22
     23 * In Windows, Start->(Settings)->Control Panel->System, select Advanced; click Environment Variables. Under 'User variables' click New. Create a variable named 'wxwin' with value 'c:\wx' (or wherever you installed it). Then restart Visual Studio.
     24
     25{{{
     26Example Environment Variables:
     27WXWIN=C:\Src\SDKs\wx28
     28WXWINX64=C:\Src\SDKs\wx28x64
     29}}}
     30
     31 * Build wxWidgets. See [wxWidgets:Compiling_WxWidgets Compiling wxWidgets] for details. You'll need to compile both the Debug and Release targets.
     32 * When done, go File->Close Solution.
     33 * Then go File->Open Solution-><BOINCSRCDIR/>\win_build\boinc.sln and press Open.
     34 * Set up Visual Studio to use the correct platform. From the drop-down menu choose either Win32 (for 32 bit platforms) or x64 (for 64 bit platforms) and choose to make it a Release/Debug version.
     35 * Additional linker dependencies for Visual C++ Express (right click the project name, properties, Linker, Input, double click the ||...|| box on Additonal Dependencies and add those missing).
     36   * boinc_dll
     37    * advapi32.lib
     38    * user32.lib
     39    * kernel32.lib
     40   * boinc
     41    * advapi32.lib
     42    * gdi32.lib
     43    * user32.lib
     44    * kernel32.lib
     45   * boincmgr
     46    * ole32.lib
     47    * oleaut32.lib
     48 * Go to the Build menu, Build Solution.
     49
     50All files will be built to <BOINCSRCDIR/>\win_build\Build\Win32\Release (or Build\x64\Release for 64 bit versions).
     51Versions compiled with Visual C++ 2005 Express use the optimizing compiler. Benchmarks are the same as on versions released by Berkeley. The above steps will always build a development version, if you want to change this, edit <BOINCSCRDIR/>\version.h
     52
     53
     54=== Building the client with Visual Studio 2008 and Visual Studio 2008 Express Edition. ===
     55
     56Software Prerequisites:
     57 * Download and install [http://www.microsoft.com/express/download/default.aspx C++ 2008 Express Edition] (part of Visual Studio 9 Express).
     58 * Update it to [http://www.microsoft.com/downloads/details.aspx?FamilyId=F3FBB04E-92C2-4701-B4BA-92E26E408569&displaylang=en Service Pack 1].
     59 * When using the full version of Visual Studio 2008, use [http://www.microsoft.com/downloads/details.aspx?FamilyId=FBEE1648-7106-44A7-9649-6D9F6D58056E this link] to update to Service Pack 1.
     60
     61To be backward compatible with VS 2005 versions and be able to build BOINC for older than Windows XP versions, you will need to download and install:
     62 * The [http://www.microsoft.com/downloads/details.aspx?FamilyId=0BAF2B35-C656-4969-ACE8-E4C0C0716ADB Windows Platform Server 2003 R2 Platform SDK].
     63 * Update it with the [http://www.microsoft.com/express/download/default.aspx MSDN Express Library] for the Express Edition.
     64 * Use the [http://www.microsoft.com/downloads/details.aspx?FamilyID=7bbe5eda-5062-4ebb-83c7-d3c5ff92a373&DisplayLang=en MSDN Library for Visual Studio 2008 SP1] for the full version (DVD ISO file).
     65
     66 * Download and install [http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en the Microsoft Visual C++ 2008 Redistributable Package].
     67 * Update that to [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en Service Pack 1] (Watch out, it uses the same file name as the original one!)
     68
     69All the service packs for Visual Studio Express Edition ''cannot'' be downloaded through Windows Update.
     70
     71 * [SourceCode Download the current BOINC source code].
     72 * Download [http://www.wxwidgets.org/ wxWidgets]. wxWidgets 2.6.4 is no longer needed.
     73 * Install the wxWidgets source according to instructions on the web site.
     74
     75   || Build Target  || Build Platform || wxWidget Version || Environment Variable ||
     76   || Release       || Win32          || 2.8.x            || WXWIN                ||
     77   || Release       || x64            || 2.8.x            || WXWINX64             ||
     78   || Debug         || Win32          || 2.8.x            || WXWIN                ||
     79   || Debug         || x64            || 2.8.x            || WXWINX64             ||
     80
     81 * In Windows, Start->(Settings)->Control Panel->System, select Advanced; click Environment Variables. Under 'User variables' click New. Create a variable named 'wxwin' with value 'c:\wx' (or wherever you installed it). Then restart Visual Studio.
     82
     83{{{
     84Example Environment Variables:
     85WXWIN=C:\Src\SDKs\wx28
     86WXWINPRODX64=C:\Src\SDKs\wx26x64
     87}}}
     88
     89 * Build wxWidgets. See [wxWidgets:Compiling_WxWidgets Compiling wxWidgets] for details. You'll need to compile both the Debug and Release targets.
     90 * When done, go File->Close Solution.
     91 * Then go File->Open Solution-><BOINCSRCDIR/>\win_build\boinc.sln and press Open.
     92 * Set up Visual Studio to use the correct platform. From the drop-down menu choose either Win32 (for 32 bit platforms) or x64 (for 64 bit platforms) and choose to make it a Release/Debug version.
     93 * For Visual C++ 2008 Express Edition it is necessary to include preprocessor macros to direct the compiler to build for the correct Windows version (this was apparently introduced for Windows Vista).  E.g. in Project -> <project_name> Properties, I needed to add these entries to Configuration Properties -> C/C++ -> Preprocessor -> Preprocessor Definitions:  _WIN32_WINNT=0x0501 and NTDDI_VERSION=0x05010200 -- see sdkddkver.h in the SDK include directory for macro values.
     94 * Additional linker (Linker -> Input) dependencies for Visual C++ Express
     95   * boinc_dll
     96    * advapi32.lib
     97    * user32.lib
     98    * kernel32.lib
     99   * boinc
     100    * advapi32.lib
     101    * gdi32.lib
     102    * user32.lib
     103    * kernel32.lib
     104   * boincmgr
     105    * ole32.lib
     106    * oleaut32.lib
     107 * Go to the Build menu, Build Solution.
     108
     109All files will be built to <BOINCSRCDIR/>\win_build\Build\Win32\Release (or Build\x64\Release for 64 bit versions).
     110Versions compiled with Visual C++ 2008 Express use the optimizing compiler. Benchmarks are the same as on versions released by Berkeley. The above steps will always build a development version, if you want to change this, edit <BOINCSCRDIR/>\version.h
     111
     112You can easily ignore all of the warnings that you get when building. Most of them are for the eyes of the developers.
     113
     114=== Building library files for use with BOINC built on VS 2008 ===
     115
     116Next we're building the library files so they work with your compiled client.
     117For this, we need to download the source code for [http://www.openssl.org/source/openssl-0.9.8k.tar.gz OpenSSL], [http://www.zlib.net/zlib-1.2.3.tar.gz Zlib] and [http://curl.haxx.se/download/curl-7.19.4.tar.gz libCurl] (direct links to latest stable versions. If a link doesn't work, go to its homepage and choose a mirror).
     118
     119Unzip the files to easy to reach directories. In the next examples I'll use c:\openssl\, c:\zlib\ and c:\curl\ as the directories of choice. Especially for the OpenSSL directory, make sure you have '''no''' spaces anywhere in the path, use hyphens or underscores if need be or else the command line build will break. For the write up I am assuming to use the 32bit option only. If you want to use the 64bit option, make sure you substitute Win32 with Win64 wherever mentioned.
     120
     121
     122==== zlib ====
     123
     124In Visual C++ go File->Open->Project/Solution, navigate to c:\zlib\projects\visualc6\ and choose zlib.dsw
     125If it asks to save to the sln file or to convert the present files, answer yes to everything.
     126
     127In the class view list choose zlib, then click Build->Project configuration.
     128Set Active solution configuration to DLL Release.
     129Make sure at least zlib is selected.
     130Make sure the Platform is set to Win32.
     131Click Close.
     132
     133Click Project->Properties.
     134Make sure that the Configuration shows DLL Release or (Active)DLL Release.
     135Click OK
     136
     137Click Build->Clean solution.
     138
     139Next click Build->Batch build.
     140Click the Project column so all zlib options are at the top, select only the DLL Release|Win32 option in the Build column. Check that the rest of the Build options are not selected.
     141click Build.
     142
     143When done click File->Close solution.
     144File->Exit to exit the program.
     145
     146The output files will be in the c:\zlib\projects\visualc6\Win32_DLL_Release\ directory, you will need the zlib1.dll file.
     147
     148==== Curl ====
     149
     150In Visual C++ go File->Open->Project/Solution, navigate to c:\curl\ and choose vc6curl.dsw
     151If it asks to convert the present files, answer yes to everything.
     152
     153In the class view list choose libcurl, then click Build->Project configuration.
     154Set Active solution configuration to using libcurl DLL Release.
     155Make sure libcurl is selected in the Build column.
     156click close.
     157
     158Click Project->Properties.
     159Make sure that the Configuration shows Release or (Active)Release.
     160Make sure the Platform is set to Win32.
     161Click Apply, click OK
     162
     163Click Build->Clean solution.
     164
     165Next click Build->Batch build.
     166Click the Projects column header so all libcurl options are at the top.
     167Select only the libcurl with DLL Release|Win32 in the Build column. Check that the rest of the Build options are not selected.
     168Click Build.
     169
     170When done click File->Close solution.
     171File->Exit to exit the program.
     172
     173The output files will be in the c:\curl\lib\DLL-Release\ directory, you will need the libcurl.dll file.
     174
     175
     176==== OpenSSL ====
     177
     178Lots of command line prompt work here. First off, read c:\openssl\INSTALL.W32 (for Windows 32bit) or \INSTALL.W64 (for Windows 64bit). It'll be explained in there as well how to do this, but in a more rudimentary form.
     179
     180You will need to get Perl to build OpenSSL. Any Perl will do, but if not sure, then use [http://www.activestate.com/activeperl/ ActivePerl]. It'll install by default to your C:\ drive (C:\Perl)
     181
     182You now need the Visual C++ command prompt, so start up Visual C++ 2008 (Express Edition).
     183Go Tools->Visual Studio 2008 Command Prompt.
     184
     185If the line before the blinking cursor shows another drive than c:, we'll have to go to c: first:
     186 * Type '''c:''' in the command line window and press '''Enter'''.
     187
     188Else continue from here.
     189 * Type '''cd\openssl''' and press '''Enter'''.
     190 * Type '''perl Configure VC-WIN32 --prefix=c:/openssl/''' and press '''Enter'''. (make sure to use the forward slashes '/', not the backslashes '\' in this path, as the next script is using Unix paths, not Windows paths.)
     191 * Type '''ms\do_masm''' and press '''Enter'''.
     192 * Type '''nmake -f ms\ntdll.mak''' and press '''Enter'''.
     193
     194Although the perl Configure script and the do_masm batchfile will work from a normal command line window, the nmake script will not! Hence why you best run all from the VC++ command line window.
     195
     196The output files will be in the c:\openssl\out32dll\ directory, you will need the libeay32.dll and ssleay32.dll files.