tor/doc/building-tor-msvc.txt
2014-09-09 10:33:45 -04:00

123 lines
3.7 KiB
Plaintext

Building Tor with MSVC.
=======================
NOTE: This is not the preferred method for building Tor on windows: we use
mingw 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/releases
Make 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.mak
Making 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.dll
Building Zlib from source:
cd <zlib source dir>
nmake -f win32/Makefile.msc
Building 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 event
Building 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