1<p align="center"> 2 <img src="https://strcpy.net/libevent3.png" alt="libevent logo"/> 3</p> 4 5 6 7[![Appveyor Win32 Build Status](https://ci.appveyor.com/api/projects/status/github/libevent/libevent?branch=master&svg=true)](https://ci.appveyor.com/project/nmathewson/libevent) 8[![Travis Build Status](https://travis-ci.org/libevent/libevent.svg?branch=master)](https://travis-ci.org/libevent/libevent) 9[![Coverage Status](https://coveralls.io/repos/github/libevent/libevent/badge.svg)](https://coveralls.io/github/libevent/libevent) 10 11 12 13# 0. BUILDING AND INSTALLATION (Briefly) 14 15## Autoconf 16 17 $ ./configure 18 $ make 19 $ make verify # (optional) 20 $ sudo make install 21 22## Cmake (General) 23 24 25The following Libevent specific Cmake variables are as follows (the values being 26the default). 27 28``` 29# Installation directory for executables 30EVENT_INSTALL_BIN_DIR:PATH=bin 31 32# Installation directory for CMake files 33EVENT_INSTALL_CMAKE_DIR:PATH=lib/cmake/libevent 34 35## Installation directory for header files 36EVENT_INSTALL_INCLUDE_DIR:PATH=include 37 38## Installation directory for libraries 39EVENT_INSTALL_LIB_DIR:PATH=lib 40 41## Define if libevent should be built with shared libraries instead of archives 42EVENT__BUILD_SHARED_LIBRARIES:BOOL=OFF 43 44# Enable running gcov to get a test coverage report (only works with 45# GCC/CLang). Make sure to enable -DCMAKE_BUILD_TYPE=Debug as well. 46EVENT__COVERAGE:BOOL=OFF 47 48# Defines if libevent should build without the benchmark exectuables 49EVENT__DISABLE_BENCHMARK:BOOL=OFF 50 51# Define if libevent should build without support for a debug mode 52EVENT__DISABLE_DEBUG_MODE:BOOL=OFF 53 54# Define if libevent should not allow replacing the mm functions 55EVENT__DISABLE_MM_REPLACEMENT:BOOL=OFF 56 57# Define if libevent should build without support for OpenSSL encrpytion 58EVENT__DISABLE_OPENSSL:BOOL=ON 59 60# Disable the regress tests 61EVENT__DISABLE_REGRESS:BOOL=OFF 62 63# Disable sample files 64EVENT__DISABLE_SAMPLES:BOOL=OFF 65 66# If tests should be compiled or not 67EVENT__DISABLE_TESTS:BOOL=OFF 68 69# Define if libevent should not be compiled with thread support 70EVENT__DISABLE_THREAD_SUPPORT:BOOL=OFF 71 72# Enables verbose debugging 73EVENT__ENABLE_VERBOSE_DEBUG:BOOL=OFF 74 75# When crosscompiling forces running a test program that verifies that Kqueue 76# works with pipes. Note that this requires you to manually run the test program 77# on the the cross compilation target to verify that it works. See cmake 78# documentation for try_run for more details 79EVENT__FORCE_KQUEUE_CHECK:BOOL=OFF 80 81# set EVENT_STAGE_VERSION 82EVENT__STAGE_VERSION:STRING=beta 83``` 84 85__More variables can be found by running `cmake -LAH <sourcedir_path>`__ 86 87 88## CMake (Windows) 89 90Install CMake: <http://www.cmake.org> 91 92 93 $ md build && cd build 94 $ cmake -G "Visual Studio 10" .. # Or whatever generator you want to use cmake --help for a list. 95 $ start libevent.sln 96 97## CMake (Unix) 98 99 $ mkdir build && cd build 100 $ cmake .. # Default to Unix Makefiles. 101 $ make 102 $ make verify # (optional) 103 104 105# 1. BUILDING AND INSTALLATION (In Depth) 106 107## Autoconf 108 109To build libevent, type 110 111 $ ./configure && make 112 113 114 (If you got libevent from the git repository, you will 115 first need to run the included "autogen.sh" script in order to 116 generate the configure script.) 117 118You can run the regression tests by running 119 120 $ make verify 121 122Install as root via 123 124 $ make install 125 126Before reporting any problems, please run the regression tests. 127 128To enable the low-level tracing build the library as: 129 130 $ CFLAGS=-DUSE_DEBUG ./configure [...] 131 132Standard configure flags should work. In particular, see: 133 134 --disable-shared Only build static libraries 135 --prefix Install all files relative to this directory. 136 137 138The configure script also supports the following flags: 139 140 --enable-gcc-warnings Enable extra compiler checking with GCC. 141 --disable-malloc-replacement 142 Don't let applications replace our memory 143 management functions 144 --disable-openssl Disable support for OpenSSL encryption. 145 --disable-thread-support Don't support multithreaded environments. 146 147## CMake (Windows) 148 149(Note that autoconf is currently the most mature and supported build 150enviroment for libevent; the cmake instructions here are new and 151experimental, though they _should_ be solid. We hope that cmake will 152still be supported in future versions of Libevent, and will try to 153make sure that happens.) 154 155First of all install <http://www.cmake.org>. 156 157To build libevent using Microsoft Visual studio open the "Visual Studio Command prompt" and type: 158 159``` 160$ cd <libevent source dir> 161$ mkdir build && cd build 162$ cmake -G "Visual Studio 10" .. # Or whatever generator you want to use cmake --help for a list. 163$ start libevent.sln 164``` 165 166In the above, the ".." refers to the dir containing the Libevent source code. 167You can build multiple versions (with different compile time settings) from the same source tree 168by creating other build directories. 169 170It is highly recommended to build "out of source" when using 171CMake instead of "in source" like the normal behaviour of autoconf for this reason. 172 173The "NMake Makefiles" CMake generator can be used to build entirely via the command line. 174 175To get a list of settings available for the project you can type: 176 177``` 178$ cmake -LH .. 179``` 180 181### GUI 182 183CMake also provides a GUI that lets you specify the source directory and output (binary) directory 184that the build should be placed in. 185 186### OpenSSL support 187 188To build Libevent with OpenSSL support you will need to have OpenSSL binaries available when building, 189these can be found here: <http://www.openssl.org/related/binaries.html> 190 191# 2. USEFUL LINKS: 192 193For the latest released version of Libevent, see the official website at 194<http://libevent.org/> . 195 196There's a pretty good work-in-progress manual up at 197 <http://www.wangafu.net/~nickm/libevent-book/> . 198 199For the latest development versions of Libevent, access our Git repository 200via 201 202``` 203$ git clone https://github.com/libevent/libevent.git 204``` 205 206You can browse the git repository online at: 207 208<https://github.com/libevent/Libevent> 209 210To report bugs, issues, or ask for new features: 211 212__Patches__: https://github.com/libevent/libevent/pulls 213> OK, those are not really _patches_ You fork, modify, and hit the "Create Pull Request" button. 214> You can still submit normal git patchs via the mailing list. 215 216__Bugs, Features [RFC], and Issus__: https://github.com/libevent/libevent/issues 217> Or you can do it via the mailing list. 218 219There's also a libevent-users mailing list for talking about Libevent 220use and development: 221 222<http://archives.seul.org/libevent/users/> 223 224# 3. ACKNOWLEDGMENTS 225 226The following people have helped with suggestions, ideas, code or 227fixing bugs: 228 229 * Samy Al Bahra 230 * Antony Antony 231 * Jacob Appelbaum 232 * Arno Bakker 233 * Weston Andros Adamson 234 * William Ahern 235 * Ivan Andropov 236 * Sergey Avseyev 237 * Avi Bab 238 * Joachim Bauch 239 * Andrey Belobrov 240 * Gilad Benjamini 241 * Stas Bekman 242 * Denis Bilenko 243 * Julien Blache 244 * Kevin Bowling 245 * Tomash Brechko 246 * Kelly Brock 247 * Ralph Castain 248 * Adrian Chadd 249 * Lawnstein Chan 250 * Shuo Chen 251 * Ka-Hing Cheung 252 * Andrew Cox 253 * Paul Croome 254 * George Danchev 255 * Andrew Danforth 256 * Ed Day 257 * Christopher Davis 258 * Mike Davis 259 * Frank Denis 260 * Antony Dovgal 261 * Mihai Draghicioiu 262 * Alexander Drozdov 263 * Mark Ellzey 264 * Shie Erlich 265 * Leonid Evdokimov 266 * Juan Pablo Fernandez 267 * Christophe Fillot 268 * Mike Frysinger 269 * Remi Gacogne 270 * Artem Germanov 271 * Alexander von Gernler 272 * Diego Giagio 273 * Artur Grabowski 274 * Diwaker Gupta 275 * Kuldeep Gupta 276 * Sebastian Hahn 277 * Dave Hart 278 * Greg Hazel 279 * Nicholas Heath 280 * Michael Herf 281 * Savg He 282 * Mark Heily 283 * Maxime Henrion 284 * Michael Herf 285 * Greg Hewgill 286 * Andrew Hochhaus 287 * Aaron Hopkins 288 * Tani Hosokawa 289 * Jamie Iles 290 * Xiuqiang Jiang 291 * Claudio Jeker 292 * Evan Jones 293 * Marcin Juszkiewicz 294 * George Kadianakis 295 * Makoto Kato 296 * Phua Keat 297 * Azat Khuzhin 298 * Alexander Klauer 299 * Kevin Ko 300 * Brian Koehmstedt 301 * Marko Kreen 302 * Ondřej Kuzník 303 * Valery Kyholodov 304 * Ross Lagerwall 305 * Scott Lamb 306 * Christopher Layne 307 * Adam Langley 308 * Graham Leggett 309 * Volker Lendecke 310 * Philip Lewis 311 * Zhou Li 312 * David Libenzi 313 * Yan Lin 314 * Moshe Litvin 315 * Simon Liu 316 * Mitchell Livingston 317 * Hagne Mahre 318 * Lubomir Marinov 319 * Abilio Marques 320 * Nicolas Martyanoff 321 * Abel Mathew 322 * Nick Mathewson 323 * James Mansion 324 * Nicholas Marriott 325 * Andrey Matveev 326 * Caitlin Mercer 327 * Dagobert Michelsen 328 * Andrea Montefusco 329 * Mansour Moufid 330 * Mina Naguib 331 * Felix Nawothnig 332 * Trond Norbye 333 * Linus Nordberg 334 * Richard Nyberg 335 * Jon Oberheide 336 * John Ohl 337 * Phil Oleson 338 * Alexey Ozeritsky 339 * Dave Pacheco 340 * Derrick Pallas 341 * Tassilo von Parseval 342 * Catalin Patulea 343 * Patrick Pelletier 344 * Simon Perreault 345 * Dan Petro 346 * Pierre Phaneuf 347 * Amarin Phaosawasdi 348 * Ryan Phillips 349 * Dimitre Piskyulev 350 * Pavel Plesov 351 * Jon Poland 352 * Roman Puls 353 * Nate R 354 * Robert Ransom 355 * Balint Reczey 356 * Bert JW Regeer 357 * Nate Rosenblum 358 * Peter Rosin 359 * Maseeb Abdul Qadir 360 * Wang Qin 361 * Alex S 362 * Gyepi Sam 363 * Hanna Schroeter 364 * Ralf Schmitt 365 * Mike Smellie 366 * Steve Snyder 367 * Nir Soffer 368 * Dug Song 369 * Dongsheng Song 370 * Hannes Sowa 371 * Joakim Soderberg 372 * Joseph Spadavecchia 373 * Kevin Springborn 374 * Harlan Stenn 375 * Andrew Sweeney 376 * Ferenc Szalai 377 * Brodie Thiesfield 378 * Jason Toffaletti 379 * Brian Utterback 380 * Gisle Vanem 381 * Bas Verhoeven 382 * Constantine Verutin 383 * Colin Watt 384 * Zack Weinberg 385 * Jardel Weyrich 386 * Jay R. Wren 387 * Zack Weinberg 388 * Mobai Zhang 389 * Alejo 390 * Alex 391 * Taral 392 * propanbutan 393 * masksqwe 394 * mmadia 395 * yangacer 396 * Andrey Skriabin 397 * basavesh.as 398 * billsegall 399 * Bill Vaughan 400 * Christopher Wiley 401 * David Paschich 402 * Ed Schouten 403 * Eduardo Panisset 404 * Jan Heylen 405 * jer-gentoo 406 * Joakim Söderberg 407 * kirillDanshin 408 * lzmths 409 * Marcus Sundberg 410 * Mark Mentovai 411 * Mattes D 412 * Matyas Dolak 413 * Neeraj Badlani 414 * Nick Mathewson 415 * Rainer Keller 416 * Seungmo Koo 417 * Thomas Bernard 418 * Xiao Bao Clark 419 * zeliard 420 * Zonr Chang 421 * Kurt Roeckx 422 * Seven 423 * Simone Basso 424 * Vlad Shcherban 425 * Tim Hentenaar 426 427If we have forgotten your name, please contact us. 428