blob: dbc644d1720ce42a5e991f3f20993353b5e35149 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
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
https://go.microsoft.com/fwlink/?LinkId=323467
* CMake 2.8.12.2
https://www.cmake.org/download/
* Perl 5.16
https://www.activestate.com/activeperl/downloads
* Latest stable OpenSSL tarball
https://www.openssl.org/source/
* Latest stable zlib tarball
https://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
|