| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 | Building Tor with MSVC.=======================NOTE: This is not the preferred method for building Tor on windows: we usemingw for our packages.Last updated 9 September 2014.Requirements:------------- * Visual Studio 2010    http://go.microsoft.com/fwlink/?LinkId=323467 * CMake 2.8.12.2    http://www.cmake.org/download/ * Perl 5.16    http://www.activestate.com/activeperl/downloads * Latest stable OpenSSL tarball    https://www.openssl.org/source/ * Latest stable zlib tarball    http://zlib.net/ * Latest stable libevent Libevent tarball    https://github.com/libevent/libevent/releasesMake sure you check signatures for all these packages.Steps:------Building OpenSSL from source as a shared library: cd <openssl source dir> perl Configure VC-WIN32 perl util\mkfiles.pl >MINFO perl util\mk1mf.pl no-asm dll VC-WIN32 >32dll.mak perl util\mkdef.pl 32 libeay > ms\libeay32.def perl util\mkdef.pl 32 ssleay > ms\ssleay32.def nmake -f 32dll.makMaking OpenSSL final package: Create <openssl final package dir>, I'd recommend using a name like <openssl source dir>-vc10. Copy the following directories and files to their respective locations  <openssl source dir>\inc32\openssl => <openssl final package dir>\include\openssl  <openssl source dir>\out32dll\libeay32.lib => <openssl final package dir>\lib\libeay32.lib  <openssl source dir>\out32dll\ssleay32.lib => <openssl final package dir>\lib\ssleay32.lib  <openssl source dir>\out32dll\libeay32.dll => <openssl final package dir>\bin\libeay32.dll  <openssl source dir>\out32dll\openssl.exe => <openssl final package dir>\bin\openssl.exe  <openssl source dir>\out32dll\ssleay32.dll => <openssl final package dir>\bin\ssleay32.dllBuilding Zlib from source: cd <zlib source dir> nmake -f win32/Makefile.mscBuilding libevent: cd <libevent source dir> mkdir build && cd build SET OPENSSL_ROOT_DIR=<openssl final package dir> cmake -G "NMake Makefiles" .. -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING="/MT /Zi /O2 /Ob1 /D NDEBUG" -DZLIB_LIBRARY:FILEPATH="<zlib source dir>\zdll.lib" -DZLIB_INCLUDE_DIR:PATH="<zlib source dir>" nmake eventBuilding Tor: Create a dir above tor source dir named build-alpha and two subdirs include and lib. Your build tree should now be similar to this one:  * build-alpha    - include    - lib  * <libevent source dir>    - build    - cmake    - ...  * <openssl source dir>    - ...    - ms    - util    - ...  * <openssl final package dir>    - bin    - include    - lib  * <tor source dir>    - ...    - src    - ...  * <zlib source dir>    - ...    - win32    - ... Copy the following dirs and files to the following locations:  <openssl final package dir>\include\openssl => build-alpha\include\openssl  <libevent source dir>\include => build-alpha\include  <libevent source dir>\WIN32-Code\nmake\event2 => build-alpha\include\event2  <zlib source dir>\z*.h => build-alpha\include\z*.h Now copy the following files to the following locations and rename them according new names:  <libevent source dir>\build\lib\event.lib => build-alpha\lib\libevent.lib  <openssl final package dir>\lib\libeay32.lib => build-alpha\lib\libcrypto.lib  <openssl final package dir>\lib\ssleay32.lib => build-alpha\lib\libssl.lib  <zlib source dir>\zdll.lib => build-alpha\lib\libz.lib And we are now ready for the build process:  cd <tor source dir>  nmake -f Makefile.nmake After the above process is completed there should be a tor.exe in <tor source dir>\src\or Copy tor.exe to desired location and also copy zlib1.dll, libeay32.dll and ssleay32.dll from built zlib and openssl packages
 |