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