Austin Schuh | a273376 | 2015-09-06 17:46:50 -0700 | [diff] [blame] | 1 | # Makefile.am for libevent |
| 2 | # Copyright 2000-2007 Niels Provos |
| 3 | # Copyright 2007-2012 Niels Provos and Nick Mathewson |
| 4 | # |
| 5 | # See LICENSE for copying information. |
| 6 | |
| 7 | # 'foreign' means that we're not enforcing GNU package rules strictly. |
| 8 | # '1.7' means that we need automake 1.7 or later (and we do). |
| 9 | AUTOMAKE_OPTIONS = foreign 1.7 |
| 10 | |
| 11 | ACLOCAL_AMFLAGS = -I m4 |
| 12 | |
| 13 | # This is the "Release" of the Libevent ABI. It takes precedence over |
| 14 | # the VERSION_INFO, so that two versions of Libevent with the same |
| 15 | # "Release" are never binary-compatible. |
| 16 | # |
| 17 | # This number incremented once for the 2.0 release candidate, and |
| 18 | # will increment for each series until we revise our interfaces enough |
| 19 | # that we can seriously expect ABI compatibility between series. |
| 20 | # |
| 21 | RELEASE = -release 2.0 |
| 22 | |
| 23 | # This is the version info for the libevent binary API. It has three |
| 24 | # numbers: |
| 25 | # Current -- the number of the binary API that we're implementing |
| 26 | # Revision -- which iteration of the implementation of the binary |
| 27 | # API are we supplying? |
| 28 | # Age -- How many previous binary API versions do we also |
| 29 | # support? |
| 30 | # |
| 31 | # To increment a VERSION_INFO (current:revision:age): |
| 32 | # If the ABI didn't change: |
| 33 | # Return (current:revision+1:age) |
| 34 | # If the ABI changed, but it's backward-compatible: |
| 35 | # Return (current+1:0:age+1) |
| 36 | # If the ABI changed and it isn't backward-compatible: |
| 37 | # Return (current+1:0:0) |
| 38 | # |
| 39 | # Once an RC is out, DO NOT MAKE ANY ABI-BREAKING CHANGES IN THAT SERIES |
| 40 | # UNLESS YOU REALLY REALLY HAVE TO. |
| 41 | VERSION_INFO = 6:10:1 |
| 42 | |
| 43 | # History: RELEASE VERSION_INFO |
| 44 | # 2.0.1-alpha -- 2.0 1:0:0 |
| 45 | # 2.0.2-alpha -- 2:0:0 |
| 46 | # 2.0.3-alpha -- 2:0:0 (should have incremented; didn't.) |
| 47 | # 2.0.4-alpha -- 3:0:0 |
| 48 | # 2.0.5-beta -- 4:0:0 |
| 49 | # 2.0.6-rc -- 2.0 2:0:0 |
| 50 | # 2.0.7-rc -- 2.0 3:0:1 |
| 51 | # 2.0.8-rc -- 2.0 4:0:2 |
| 52 | # 2.0.9-rc -- 2.0 5:0:0 (ABI changed slightly) |
| 53 | # 2.0.10-stable-- 2.0 5:1:0 (No ABI change) |
| 54 | # 2.0.11-stable-- 2.0 6:0:1 (ABI changed, backward-compatible) |
| 55 | # 2.0.12-stable-- 2.0 6:1:1 (No ABI change) |
| 56 | # 2.0.13-stable-- 2.0 6:2:1 (No ABI change) |
| 57 | # 2.0.14-stable-- 2.0 6:3:1 (No ABI change) |
| 58 | # 2.0.15-stable-- 2.0 6:3:1 (Forgot to update :( ) |
| 59 | # 2.0.16-stable-- 2.0 6:4:1 (No ABI change) |
| 60 | # 2.0.17-stable-- 2.0 6:5:1 (No ABI change) |
| 61 | # 2.0.18-stable-- 2.0 6:6:1 (No ABI change) |
| 62 | # 2.0.19-stable-- 2.0 6:7:1 (No ABI change) |
| 63 | # 2.0.20-stable-- 2.0 6:8:1 (No ABI change) |
| 64 | # 2.0.21-stable-- 2.0 6:9:1 (No ABI change) |
| 65 | # 2.0.22-stable-- 2.0 6:10:1 (No ABI change) |
| 66 | # |
| 67 | # For Libevent 2.1: |
| 68 | # 2.1.1-alpha -- 2.1 1:0:0 |
| 69 | |
| 70 | |
| 71 | # ABI version history for this package effectively restarts every time |
| 72 | # we change RELEASE. Version 1.4.x had RELEASE of 1.4. |
| 73 | # |
| 74 | # Ideally, we would not be using RELEASE at all; instead we could just |
| 75 | # use the VERSION_INFO field to label our backward-incompatible ABI |
| 76 | # changes, and those would be few and far between. Unfortunately, |
| 77 | # Libevent still exposes far too many volatile structures in its |
| 78 | # headers, so we pretty much have to assume that most development |
| 79 | # series will break ABI compatibility. For now, it's simplest just to |
| 80 | # keep incrementing the RELEASE between series and resetting VERSION_INFO. |
| 81 | # |
| 82 | # Eventually, when we get to the point where the structures in the |
| 83 | # headers are all non-changing (or not there at all!), we can shift to |
| 84 | # a more normal worldview where backward-incompatible ABI changes are |
| 85 | # nice and rare. For the next couple of years, though, 'struct event' |
| 86 | # is user-visible, and so we can pretty much guarantee that release |
| 87 | # series won't be binary-compatible. |
| 88 | |
| 89 | if INSTALL_LIBEVENT |
| 90 | dist_bin_SCRIPTS = event_rpcgen.py |
| 91 | endif |
| 92 | |
| 93 | pkgconfigdir=$(libdir)/pkgconfig |
| 94 | LIBEVENT_PKGCONFIG=libevent.pc |
| 95 | |
| 96 | # These sources are conditionally added by configure.in or conditionally |
| 97 | # included from other files. |
| 98 | PLATFORM_DEPENDENT_SRC = \ |
| 99 | epoll_sub.c \ |
| 100 | arc4random.c |
| 101 | |
| 102 | EXTRA_DIST = \ |
| 103 | LICENSE \ |
| 104 | autogen.sh \ |
| 105 | event_rpcgen.py \ |
| 106 | libevent.pc.in \ |
| 107 | make-event-config.sed \ |
| 108 | Doxyfile \ |
| 109 | whatsnew-2.0.txt \ |
| 110 | Makefile.nmake test/Makefile.nmake \ |
| 111 | $(PLATFORM_DEPENDENT_SRC) |
| 112 | |
| 113 | LIBEVENT_LIBS_LA = libevent.la libevent_core.la libevent_extra.la |
| 114 | if PTHREADS |
| 115 | LIBEVENT_LIBS_LA += libevent_pthreads.la |
| 116 | LIBEVENT_PKGCONFIG += libevent_pthreads.pc |
| 117 | endif |
| 118 | if OPENSSL |
| 119 | LIBEVENT_LIBS_LA += libevent_openssl.la |
| 120 | LIBEVENT_PKGCONFIG += libevent_openssl.pc |
| 121 | endif |
| 122 | |
| 123 | if INSTALL_LIBEVENT |
| 124 | lib_LTLIBRARIES = $(LIBEVENT_LIBS_LA) |
| 125 | pkgconfig_DATA = $(LIBEVENT_PKGCONFIG) |
| 126 | else |
| 127 | noinst_LTLIBRARIES = $(LIBEVENT_LIBS_LA) |
| 128 | endif |
| 129 | |
| 130 | SUBDIRS = . include sample test |
| 131 | |
| 132 | if BUILD_WIN32 |
| 133 | |
| 134 | SYS_LIBS = -lws2_32 -lshell32 -ladvapi32 |
| 135 | SYS_SRC = win32select.c evthread_win32.c buffer_iocp.c event_iocp.c \ |
| 136 | bufferevent_async.c |
| 137 | SYS_INCLUDES = -IWIN32-Code |
| 138 | |
| 139 | else |
| 140 | |
| 141 | SYS_LIBS = |
| 142 | SYS_SRC = |
| 143 | SYS_INCLUDES = |
| 144 | |
| 145 | endif |
| 146 | |
| 147 | if SELECT_BACKEND |
| 148 | SYS_SRC += select.c |
| 149 | endif |
| 150 | if POLL_BACKEND |
| 151 | SYS_SRC += poll.c |
| 152 | endif |
| 153 | if DEVPOLL_BACKEND |
| 154 | SYS_SRC += devpoll.c |
| 155 | endif |
| 156 | if KQUEUE_BACKEND |
| 157 | SYS_SRC += kqueue.c |
| 158 | endif |
| 159 | if EPOLL_BACKEND |
| 160 | SYS_SRC += epoll.c |
| 161 | endif |
| 162 | if EVPORT_BACKEND |
| 163 | SYS_SRC += evport.c |
| 164 | endif |
| 165 | if SIGNAL_SUPPORT |
| 166 | SYS_SRC += signal.c |
| 167 | endif |
| 168 | |
| 169 | BUILT_SOURCES = include/event2/event-config.h |
| 170 | |
| 171 | include/event2/event-config.h: config.h make-event-config.sed |
| 172 | test -d include/event2 || $(MKDIR_P) include/event2 |
| 173 | $(SED) -f $(srcdir)/make-event-config.sed < config.h > $@T |
| 174 | mv -f $@T $@ |
| 175 | |
| 176 | CORE_SRC = event.c evthread.c buffer.c \ |
| 177 | bufferevent.c bufferevent_sock.c bufferevent_filter.c \ |
| 178 | bufferevent_pair.c listener.c bufferevent_ratelim.c \ |
| 179 | evmap.c log.c evutil.c evutil_rand.c strlcpy.c $(SYS_SRC) |
| 180 | EXTRA_SRC = event_tagging.c http.c evdns.c evrpc.c |
| 181 | |
| 182 | if BUILD_WITH_NO_UNDEFINED |
| 183 | NO_UNDEFINED = -no-undefined |
| 184 | MAYBE_CORE = libevent_core.la |
| 185 | else |
| 186 | NO_UNDEFINED = |
| 187 | MAYBE_CORE = |
| 188 | endif |
| 189 | |
| 190 | GENERIC_LDFLAGS = -version-info $(VERSION_INFO) $(RELEASE) $(NO_UNDEFINED) |
| 191 | |
| 192 | libevent_la_SOURCES = $(CORE_SRC) $(EXTRA_SRC) |
| 193 | libevent_la_LIBADD = @LTLIBOBJS@ $(SYS_LIBS) |
| 194 | libevent_la_LDFLAGS = $(GENERIC_LDFLAGS) |
| 195 | |
| 196 | libevent_core_la_SOURCES = $(CORE_SRC) |
| 197 | libevent_core_la_LIBADD = @LTLIBOBJS@ $(SYS_LIBS) |
| 198 | libevent_core_la_LDFLAGS = $(GENERIC_LDFLAGS) |
| 199 | |
| 200 | if PTHREADS |
| 201 | libevent_pthreads_la_SOURCES = evthread_pthread.c |
| 202 | libevent_pthreads_la_LIBADD = $(MAYBE_CORE) |
| 203 | libevent_pthreads_la_LDFLAGS = $(GENERIC_LDFLAGS) |
| 204 | endif |
| 205 | |
| 206 | libevent_extra_la_SOURCES = $(EXTRA_SRC) |
| 207 | libevent_extra_la_LIBADD = $(MAYBE_CORE) $(SYS_LIBS) |
| 208 | libevent_extra_la_LDFLAGS = $(GENERIC_LDFLAGS) |
| 209 | |
| 210 | if OPENSSL |
| 211 | libevent_openssl_la_SOURCES = bufferevent_openssl.c |
| 212 | libevent_openssl_la_LIBADD = $(MAYBE_CORE) $(OPENSSL_LIBS) |
| 213 | libevent_openssl_la_LDFLAGS = $(GENERIC_LDFLAGS) |
| 214 | endif |
| 215 | |
| 216 | noinst_HEADERS = util-internal.h mm-internal.h ipv6-internal.h \ |
| 217 | evrpc-internal.h strlcpy-internal.h evbuffer-internal.h \ |
| 218 | bufferevent-internal.h http-internal.h event-internal.h \ |
| 219 | evthread-internal.h ht-internal.h defer-internal.h \ |
| 220 | minheap-internal.h log-internal.h evsignal-internal.h evmap-internal.h \ |
| 221 | changelist-internal.h iocp-internal.h \ |
| 222 | ratelim-internal.h \ |
| 223 | WIN32-Code/event2/event-config.h \ |
| 224 | WIN32-Code/tree.h \ |
| 225 | compat/sys/queue.h |
| 226 | |
| 227 | EVENT1_HDRS = event.h evhttp.h evdns.h evrpc.h evutil.h |
| 228 | |
| 229 | if INSTALL_LIBEVENT |
| 230 | include_HEADERS = $(EVENT1_HDRS) |
| 231 | else |
| 232 | noinst_HEADERS += $(EVENT1_HDRS) |
| 233 | endif |
| 234 | |
| 235 | AM_CPPFLAGS = -I$(srcdir)/compat -I$(srcdir)/include -I./include $(SYS_INCLUDES) |
| 236 | |
| 237 | verify: check |
| 238 | |
| 239 | doxygen: FORCE |
| 240 | doxygen $(srcdir)/Doxyfile |
| 241 | FORCE: |
| 242 | |
| 243 | DISTCLEANFILES = *~ libevent.pc ./include/event2/event-config.h |
| 244 | |