mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 13:13:44 +01:00
Add instructions for building Tor with MSVC.
Written by "NewEraCracker" on ticket 13081; I've added a note that this is not our preferred or supported build method.
This commit is contained in:
parent
2997908228
commit
4e98ec8149
116
doc/building-tor-msvc.txt
Normal file
116
doc/building-tor-msvc.txt
Normal file
@ -0,0 +1,116 @@
|
||||
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/
|
||||
* Zlib 1.2.8 tarball
|
||||
http://zlib.net/
|
||||
* Libevent 2.1 tarball
|
||||
https://github.com/libevent/libevent/releases
|
||||
|
||||
Make sure you check signatures on 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 followin locations:
|
||||
|
||||
<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
|
Loading…
Reference in New Issue
Block a user