1This directory builds a verto library with only a private built-in 2module, for use when the system has no installed verto library. The 3bundled verto cannot dynamically load modules. From the upstream 4libverto, we take only verto.c and verto-libev.c, and we only build 5the former; the latter is stored here for comparison purposes. We use 6a stub implementation of module.c to disable dynamic loading support. 7 8This private module uses an embedded libev with renamed symbols (so we 9don't leak libev symbols into the namespace on platforms where we 10can't control the export list). libev has built-in support for this 11kind of embedding, so we don't have to modify the libev sources. 12Following libev's documentation, the following files have been copied 13from the ev sources: 14 15 ev.h 16 ev_vars.h 17 ev_wrap.h 18 ev.c 19 ev_select.c 20 ev_poll.c 21 ev_win32.c 22 Symbols.ev 23 24(Symbols.ev wasn't included in the 4.04 tar file due to an oversight, 25so it is taken from the appropriate tag in libev's source repository.) 26 27To rename the exported symbols, we create rename.h from Symbols.ev. 28We also use Symbols.ev to construct the library export list. 29(Renaming libev's symbols would be unnecessary if libev's embedding 30had support for making its API symbols static, but it currently does 31not.) The source file verto-k5ev.c wraps ev.c with appropriate 32embedding defines, and then defines the libverto module functions 33using the slightly modified contents of libverto's verto-libev.c. The 34resulting module table is embedded into verto.c using the 35BUILTIN_MODULE define. 36 37The libverto and libev upstream project pages are at: 38 39 https://github.com/latchset/libverto/ 40 http://software.schmorp.de/pkg/libev.html 41