488 lines
11 KiB
Markdown
488 lines
11 KiB
Markdown
|
<p align="center">
|
||
|
<img src="https://strcpy.net/libevent3.png" alt="libevent logo"/>
|
||
|
</p>
|
||
|
|
||
|
|
||
|
|
||
|
[![Appveyor Win32 Build Status](https://ci.appveyor.com/api/projects/status/ng3jg0uhy44mp7ik?svg=true)](https://ci.appveyor.com/project/libevent/libevent)
|
||
|
[![Travis Build Status](https://travis-ci.org/libevent/libevent.svg?branch=master)](https://travis-ci.org/libevent/libevent)
|
||
|
[![Coverage Status](https://coveralls.io/repos/github/libevent/libevent/badge.svg)](https://coveralls.io/github/libevent/libevent)
|
||
|
[![Join the chat at https://gitter.im/libevent/libevent](https://badges.gitter.im/libevent/libevent.svg)](https://gitter.im/libevent/libevent?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||
|
|
||
|
|
||
|
|
||
|
# 0. BUILDING AND INSTALLATION (Briefly)
|
||
|
|
||
|
## Autoconf
|
||
|
|
||
|
$ ./configure
|
||
|
$ make
|
||
|
$ make verify # (optional)
|
||
|
$ sudo make install
|
||
|
|
||
|
## CMake (General)
|
||
|
|
||
|
|
||
|
The following Libevent specific CMake variables are as follows (the values being
|
||
|
the default).
|
||
|
|
||
|
```
|
||
|
# Type of the library to build (SHARED or STATIC)
|
||
|
# Default is: SHARED for MSVC, otherwise BOTH
|
||
|
EVENT__LIBRARY_TYPE:STRING=DEFAULT
|
||
|
|
||
|
# Installation directory for CMake files
|
||
|
EVENT_INSTALL_CMAKE_DIR:PATH=lib/cmake/libevent
|
||
|
|
||
|
# Enable running gcov to get a test coverage report (only works with
|
||
|
# GCC/CLang). Make sure to enable -DCMAKE_BUILD_TYPE=Debug as well.
|
||
|
EVENT__COVERAGE:BOOL=OFF
|
||
|
|
||
|
# Defines if Libevent should build without the benchmark executables
|
||
|
EVENT__DISABLE_BENCHMARK:BOOL=OFF
|
||
|
|
||
|
# Define if Libevent should build without support for a debug mode
|
||
|
EVENT__DISABLE_DEBUG_MODE:BOOL=OFF
|
||
|
|
||
|
# Define if Libevent should not allow replacing the mm functions
|
||
|
EVENT__DISABLE_MM_REPLACEMENT:BOOL=OFF
|
||
|
|
||
|
# Define if Libevent should build without support for OpenSSL encryption
|
||
|
EVENT__DISABLE_OPENSSL:BOOL=OFF
|
||
|
|
||
|
# Disable the regress tests
|
||
|
EVENT__DISABLE_REGRESS:BOOL=OFF
|
||
|
|
||
|
# Disable sample files
|
||
|
EVENT__DISABLE_SAMPLES:BOOL=OFF
|
||
|
|
||
|
# If tests should be compiled or not
|
||
|
EVENT__DISABLE_TESTS:BOOL=OFF
|
||
|
|
||
|
# Define if Libevent should not be compiled with thread support
|
||
|
EVENT__DISABLE_THREAD_SUPPORT:BOOL=OFF
|
||
|
|
||
|
# Enables verbose debugging
|
||
|
EVENT__ENABLE_VERBOSE_DEBUG:BOOL=OFF
|
||
|
|
||
|
# When cross compiling, forces running a test program that verifies that Kqueue
|
||
|
# works with pipes. Note that this requires you to manually run the test program
|
||
|
# on the the cross compilation target to verify that it works. See CMake
|
||
|
# documentation for try_run for more details
|
||
|
EVENT__FORCE_KQUEUE_CHECK:BOOL=OFF
|
||
|
```
|
||
|
|
||
|
__More variables can be found by running `cmake -LAH <sourcedir_path>`__
|
||
|
|
||
|
|
||
|
## CMake (Windows)
|
||
|
|
||
|
Install CMake: <https://www.cmake.org>
|
||
|
|
||
|
|
||
|
$ md build && cd build
|
||
|
$ cmake -G "Visual Studio 10" .. # Or whatever generator you want to use cmake --help for a list.
|
||
|
$ start libevent.sln
|
||
|
|
||
|
## CMake (Unix)
|
||
|
|
||
|
$ mkdir build && cd build
|
||
|
$ cmake .. # Default to Unix Makefiles.
|
||
|
$ make
|
||
|
$ make verify # (optional)
|
||
|
|
||
|
|
||
|
# 1. BUILDING AND INSTALLATION (In Depth)
|
||
|
|
||
|
## Autoconf
|
||
|
|
||
|
To build Libevent, type
|
||
|
|
||
|
$ ./configure && make
|
||
|
|
||
|
|
||
|
(If you got Libevent from the git repository, you will
|
||
|
first need to run the included "autogen.sh" script in order to
|
||
|
generate the configure script.)
|
||
|
|
||
|
You can run the regression tests by running
|
||
|
|
||
|
$ make verify
|
||
|
|
||
|
Install as root via
|
||
|
|
||
|
$ make install
|
||
|
|
||
|
Before reporting any problems, please run the regression tests.
|
||
|
|
||
|
To enable low-level tracing, build the library as:
|
||
|
|
||
|
$ CFLAGS=-DUSE_DEBUG ./configure [...]
|
||
|
|
||
|
Standard configure flags should work. In particular, see:
|
||
|
|
||
|
--disable-shared Only build static libraries.
|
||
|
--prefix Install all files relative to this directory.
|
||
|
|
||
|
|
||
|
The configure script also supports the following flags:
|
||
|
|
||
|
--enable-gcc-warnings Enable extra compiler checking with GCC.
|
||
|
--disable-malloc-replacement
|
||
|
Don't let applications replace our memory
|
||
|
management functions.
|
||
|
--disable-openssl Disable support for OpenSSL encryption.
|
||
|
--disable-thread-support Don't support multithreaded environments.
|
||
|
|
||
|
## CMake (Windows)
|
||
|
|
||
|
(Note that autoconf is currently the most mature and supported build
|
||
|
environment for Libevent; the CMake instructions here are new and
|
||
|
experimental, though they _should_ be solid. We hope that CMake will
|
||
|
still be supported in future versions of Libevent, and will try to
|
||
|
make sure that happens.)
|
||
|
|
||
|
First of all install <https://www.cmake.org>.
|
||
|
|
||
|
To build Libevent using Microsoft Visual studio open the "Visual Studio Command prompt" and type:
|
||
|
|
||
|
```
|
||
|
$ cd <libevent source dir>
|
||
|
$ mkdir build && cd build
|
||
|
$ cmake -G "Visual Studio 10" .. # Or whatever generator you want to use cmake --help for a list.
|
||
|
$ start libevent.sln
|
||
|
```
|
||
|
|
||
|
In the above, the ".." refers to the dir containing the Libevent source code.
|
||
|
You can build multiple versions (with different compile time settings) from the same source tree
|
||
|
by creating other build directories.
|
||
|
|
||
|
It is highly recommended to build "out of source" when using
|
||
|
CMake instead of "in source" like the normal behaviour of autoconf for this reason.
|
||
|
|
||
|
The "NMake Makefiles" CMake generator can be used to build entirely via the command line.
|
||
|
|
||
|
To get a list of settings available for the project you can type:
|
||
|
|
||
|
```
|
||
|
$ cmake -LH ..
|
||
|
```
|
||
|
|
||
|
### GUI
|
||
|
|
||
|
CMake also provides a GUI that lets you specify the source directory and output (binary) directory
|
||
|
that the build should be placed in.
|
||
|
|
||
|
# 2. USEFUL LINKS:
|
||
|
|
||
|
For the latest released version of Libevent, see the official website at
|
||
|
<http://libevent.org/> .
|
||
|
|
||
|
There's a pretty good work-in-progress manual up at
|
||
|
<http://www.wangafu.net/~nickm/libevent-book/> .
|
||
|
|
||
|
For the latest development versions of Libevent, access our Git repository
|
||
|
via
|
||
|
|
||
|
```
|
||
|
$ git clone https://github.com/libevent/libevent.git
|
||
|
```
|
||
|
|
||
|
You can browse the git repository online at:
|
||
|
|
||
|
<https://github.com/libevent/libevent>
|
||
|
|
||
|
To report bugs, issues, or ask for new features:
|
||
|
|
||
|
__Patches__: https://github.com/libevent/libevent/pulls
|
||
|
> OK, those are not really _patches_. You fork, modify, and hit the "Create Pull Request" button.
|
||
|
> You can still submit normal git patches via the mailing list.
|
||
|
|
||
|
__Bugs, Features [RFC], and Issues__: https://github.com/libevent/libevent/issues
|
||
|
> Or you can do it via the mailing list.
|
||
|
|
||
|
There's also a libevent-users mailing list for talking about Libevent
|
||
|
use and development:
|
||
|
|
||
|
<http://archives.seul.org/libevent/users/>
|
||
|
|
||
|
# 3. ACKNOWLEDGMENTS
|
||
|
|
||
|
The following people have helped with suggestions, ideas, code or
|
||
|
fixing bugs:
|
||
|
|
||
|
* Samy Al Bahra
|
||
|
* Antony Antony
|
||
|
* Jacob Appelbaum
|
||
|
* Arno Bakker
|
||
|
* Weston Andros Adamson
|
||
|
* William Ahern
|
||
|
* Ivan Andropov
|
||
|
* Sergey Avseyev
|
||
|
* Avi Bab
|
||
|
* Joachim Bauch
|
||
|
* Andrey Belobrov
|
||
|
* Gilad Benjamini
|
||
|
* Stas Bekman
|
||
|
* Denis Bilenko
|
||
|
* Julien Blache
|
||
|
* Kevin Bowling
|
||
|
* Tomash Brechko
|
||
|
* Kelly Brock
|
||
|
* Ralph Castain
|
||
|
* Adrian Chadd
|
||
|
* Lawnstein Chan
|
||
|
* Shuo Chen
|
||
|
* Ka-Hing Cheung
|
||
|
* Andrew Cox
|
||
|
* Paul Croome
|
||
|
* George Danchev
|
||
|
* Andrew Danforth
|
||
|
* Ed Day
|
||
|
* Christopher Davis
|
||
|
* Mike Davis
|
||
|
* Frank Denis
|
||
|
* Antony Dovgal
|
||
|
* Mihai Draghicioiu
|
||
|
* Alexander Drozdov
|
||
|
* Mark Ellzey
|
||
|
* Shie Erlich
|
||
|
* Leonid Evdokimov
|
||
|
* Juan Pablo Fernandez
|
||
|
* Christophe Fillot
|
||
|
* Mike Frysinger
|
||
|
* Remi Gacogne
|
||
|
* Artem Germanov
|
||
|
* Alexander von Gernler
|
||
|
* Diego Giagio
|
||
|
* Artur Grabowski
|
||
|
* Diwaker Gupta
|
||
|
* Kuldeep Gupta
|
||
|
* Sebastian Hahn
|
||
|
* Dave Hart
|
||
|
* Greg Hazel
|
||
|
* Nicholas Heath
|
||
|
* Michael Herf
|
||
|
* Savg He
|
||
|
* Mark Heily
|
||
|
* Maxime Henrion
|
||
|
* Michael Herf
|
||
|
* Greg Hewgill
|
||
|
* Andrew Hochhaus
|
||
|
* Aaron Hopkins
|
||
|
* Tani Hosokawa
|
||
|
* Jamie Iles
|
||
|
* Xiuqiang Jiang
|
||
|
* Claudio Jeker
|
||
|
* Evan Jones
|
||
|
* Marcin Juszkiewicz
|
||
|
* George Kadianakis
|
||
|
* Makoto Kato
|
||
|
* Phua Keat
|
||
|
* Azat Khuzhin
|
||
|
* Alexander Klauer
|
||
|
* Kevin Ko
|
||
|
* Brian Koehmstedt
|
||
|
* Marko Kreen
|
||
|
* Ondřej Kuzník
|
||
|
* Valery Kyholodov
|
||
|
* Ross Lagerwall
|
||
|
* Scott Lamb
|
||
|
* Christopher Layne
|
||
|
* Adam Langley
|
||
|
* Graham Leggett
|
||
|
* Volker Lendecke
|
||
|
* Philip Lewis
|
||
|
* Zhou Li
|
||
|
* David Libenzi
|
||
|
* Yan Lin
|
||
|
* Moshe Litvin
|
||
|
* Simon Liu
|
||
|
* Mitchell Livingston
|
||
|
* Hagne Mahre
|
||
|
* Lubomir Marinov
|
||
|
* Abilio Marques
|
||
|
* Nicolas Martyanoff
|
||
|
* Abel Mathew
|
||
|
* Nick Mathewson
|
||
|
* James Mansion
|
||
|
* Nicholas Marriott
|
||
|
* Andrey Matveev
|
||
|
* Caitlin Mercer
|
||
|
* Dagobert Michelsen
|
||
|
* Andrea Montefusco
|
||
|
* Mansour Moufid
|
||
|
* Mina Naguib
|
||
|
* Felix Nawothnig
|
||
|
* Trond Norbye
|
||
|
* Linus Nordberg
|
||
|
* Richard Nyberg
|
||
|
* Jon Oberheide
|
||
|
* John Ohl
|
||
|
* Phil Oleson
|
||
|
* Alexey Ozeritsky
|
||
|
* Dave Pacheco
|
||
|
* Derrick Pallas
|
||
|
* Tassilo von Parseval
|
||
|
* Catalin Patulea
|
||
|
* Patrick Pelletier
|
||
|
* Simon Perreault
|
||
|
* Dan Petro
|
||
|
* Pierre Phaneuf
|
||
|
* Amarin Phaosawasdi
|
||
|
* Ryan Phillips
|
||
|
* Dimitre Piskyulev
|
||
|
* Pavel Plesov
|
||
|
* Jon Poland
|
||
|
* Roman Puls
|
||
|
* Nate R
|
||
|
* Robert Ransom
|
||
|
* Balint Reczey
|
||
|
* Bert JW Regeer
|
||
|
* Nate Rosenblum
|
||
|
* Peter Rosin
|
||
|
* Maseeb Abdul Qadir
|
||
|
* Wang Qin
|
||
|
* Alex S
|
||
|
* Gyepi Sam
|
||
|
* Hanna Schroeter
|
||
|
* Ralf Schmitt
|
||
|
* Mike Smellie
|
||
|
* Steve Snyder
|
||
|
* Nir Soffer
|
||
|
* Dug Song
|
||
|
* Dongsheng Song
|
||
|
* Hannes Sowa
|
||
|
* Joakim Soderberg
|
||
|
* Joseph Spadavecchia
|
||
|
* Kevin Springborn
|
||
|
* Harlan Stenn
|
||
|
* Andrew Sweeney
|
||
|
* Ferenc Szalai
|
||
|
* Brodie Thiesfield
|
||
|
* Jason Toffaletti
|
||
|
* Brian Utterback
|
||
|
* Gisle Vanem
|
||
|
* Bas Verhoeven
|
||
|
* Constantine Verutin
|
||
|
* Colin Watt
|
||
|
* Zack Weinberg
|
||
|
* Jardel Weyrich
|
||
|
* Jay R. Wren
|
||
|
* Zack Weinberg
|
||
|
* Mobai Zhang
|
||
|
* Alejo
|
||
|
* Alex
|
||
|
* Taral
|
||
|
* propanbutan
|
||
|
* masksqwe
|
||
|
* mmadia
|
||
|
* yangacer
|
||
|
* Andrey Skriabin
|
||
|
* basavesh.as
|
||
|
* billsegall
|
||
|
* Bill Vaughan
|
||
|
* Christopher Wiley
|
||
|
* David Paschich
|
||
|
* Ed Schouten
|
||
|
* Eduardo Panisset
|
||
|
* Jan Heylen
|
||
|
* jer-gentoo
|
||
|
* Joakim Söderberg
|
||
|
* kirillDanshin
|
||
|
* lzmths
|
||
|
* Marcus Sundberg
|
||
|
* Mark Mentovai
|
||
|
* Mattes D
|
||
|
* Matyas Dolak
|
||
|
* Neeraj Badlani
|
||
|
* Nick Mathewson
|
||
|
* Rainer Keller
|
||
|
* Seungmo Koo
|
||
|
* Thomas Bernard
|
||
|
* Xiao Bao Clark
|
||
|
* zeliard
|
||
|
* Zonr Chang
|
||
|
* Kurt Roeckx
|
||
|
* Seven
|
||
|
* Simone Basso
|
||
|
* Vlad Shcherban
|
||
|
* Tim Hentenaar
|
||
|
* Breaker
|
||
|
* johnsonlee
|
||
|
* Philip Prindeville
|
||
|
* Vis Virial
|
||
|
* Andreas Gustafsson
|
||
|
* Andrey Okoshkin
|
||
|
* an-tao
|
||
|
* baixiangcpp
|
||
|
* Bernard Spil
|
||
|
* Bogdan Harjoc
|
||
|
* Carlo Marcelo Arenas Belón
|
||
|
* David Benjamin
|
||
|
* David Disseldorp
|
||
|
* Dmitry Alimov
|
||
|
* Dominic Chen
|
||
|
* dpayne
|
||
|
* ejurgensen
|
||
|
* Fredrik Strupe
|
||
|
* Gonçalo Ribeiro
|
||
|
* James Synge
|
||
|
* Jan Beich
|
||
|
* Jesse Fang
|
||
|
* Jiri Luznicky
|
||
|
* José Luis Millán
|
||
|
* Kiyoshi Aman
|
||
|
* Leo Zhang
|
||
|
* lightningkay
|
||
|
* Luke Dashjr
|
||
|
* Marcin Szewczyk
|
||
|
* Maximilian Brunner
|
||
|
* Maya Rashish
|
||
|
* Murat Demirten
|
||
|
* Nathan French
|
||
|
* Nikolay Edigaryev
|
||
|
* Philip Herron
|
||
|
* Redfoxmoon
|
||
|
* stenn
|
||
|
* SuckShit
|
||
|
* The Gitter Badger
|
||
|
* tim-le
|
||
|
* Vincent JARDIN
|
||
|
* Xiang Zhang
|
||
|
* Xiaozhou Liu
|
||
|
* yongqing.jiao
|
||
|
* Enji Cooper
|
||
|
* linxiaohui
|
||
|
* Seong-Joong Kim
|
||
|
* Tobias Stoeckmann
|
||
|
* Yury Korzhetsky
|
||
|
* zhuizhuhaomeng
|
||
|
* Pierce Lopez
|
||
|
* yuangongji
|
||
|
* Keith Smiley
|
||
|
* jeremyerb
|
||
|
* Fabrice Fontaine
|
||
|
* wenyg
|
||
|
* Aleksandr-Melnikov
|
||
|
* ayuseleznev
|
||
|
* chenguolong
|
||
|
* Dimo Markov
|
||
|
* dota17
|
||
|
* fanquake
|
||
|
* Jan Kasiak
|
||
|
* Kamil Rytarowski
|
||
|
* Mario Emmenlauer
|
||
|
* Michael Davidsaver
|
||
|
* mohuang
|
||
|
* Nick Grifka
|
||
|
* Nicolas J. Bouliane
|
||
|
* Paul Osborne
|
||
|
* Philip Homburg
|
||
|
* Wataru Ashihara
|
||
|
* William A Rowe Jr
|
||
|
* yangyongsheng
|
||
|
|
||
|
|
||
|
If we have forgotten your name, please contact us.
|