blob: 4a05b484eaaa22f1c02aef790a6a3ecd96a93f32 [file] [log] [blame]
Brian Silvermanaa651172015-09-26 17:39:06 -04001licenses(['notice'])
2
Brian Silvermane296d002015-10-12 02:28:11 -04003load('/tools/build_rules/select', 'compiler_select', 'address_size_select')
Austin Schuh23da18b2015-10-11 20:52:49 -07004
Brian Silvermanaa651172015-09-26 17:39:06 -04005cc_library(
6 name = 'libevent',
7 visibility = ['//visibility:public'],
8 srcs = [
9 'select.c',
10 'poll.c',
11 'epoll.c',
12 'signal.c',
13
14 'event.c',
15 'evthread.c',
16 'buffer.c',
17 'bufferevent.c',
18 'bufferevent_sock.c',
19 'bufferevent_filter.c',
20 'bufferevent_pair.c',
21 'listener.c',
22 'bufferevent_ratelim.c',
23 'evmap.c',
24 'log.c',
25 'evutil.c',
26 'evutil_rand.c',
27 'strlcpy.c',
28
29 'event_tagging.c',
30 'http.c',
31 'evdns.c',
32 'evrpc.c',
33
34 'evthread_pthread.c',
35
Brian Silvermanaa651172015-09-26 17:39:06 -040036 #'compat/sys/queue.h',
37 ] + glob([
38 '*-internal.h',
Brian Silvermanb2215d02015-11-23 19:10:15 -050039 'include/event2/*.h',
Brian Silvermanaa651172015-09-26 17:39:06 -040040 ]),
Brian Silvermanb2215d02015-11-23 19:10:15 -050041 textual_hdrs = [
42 'arc4random.c',
43 ],
Brian Silvermanaa651172015-09-26 17:39:06 -040044 hdrs = [
45 'event.h',
46 'evhttp.h',
47 'evdns.h',
48 'evrpc.h',
49 'evutil.h',
50 ],
51 includes = ['.', 'include'],
Brian Silvermane296d002015-10-12 02:28:11 -040052 defines = [
53 '_EVENT_HAVE_ARPA_INET_H=1',
54 '_EVENT_HAVE_CLOCK_GETTIME=1',
55 '_EVENT_HAVE_DECL_CTL_KERN=1',
56 '_EVENT_HAVE_DECL_KERN_ARND=0',
57 '_EVENT_HAVE_DECL_KERN_RANDOM=1',
58 '_EVENT_HAVE_DECL_RANDOM_UUID=1',
59 '_EVENT_HAVE_DLFCN_H=1',
60 '_EVENT_HAVE_EPOLL=1',
61 '_EVENT_HAVE_EPOLL_CTL=1',
62 '_EVENT_HAVE_EVENTFD=1',
63 '_EVENT_HAVE_FCNTL=1',
64 '_EVENT_HAVE_FCNTL_H=1',
65 '_EVENT_HAVE_FD_MASK=1',
66 '_EVENT_HAVE_GETADDRINFO=1',
67 '_EVENT_HAVE_GETEGID=1',
68 '_EVENT_HAVE_GETEUID=1',
69 '_EVENT_HAVE_GETNAMEINFO=1',
70 '_EVENT_HAVE_GETPROTOBYNUMBER=1',
71 '_EVENT_HAVE_GETTIMEOFDAY=1',
72 '_EVENT_HAVE_INET_ATON=1',
73 '_EVENT_HAVE_INET_NTOP=1',
74 '_EVENT_HAVE_INET_PTON=1',
75 '_EVENT_HAVE_INTTYPES_H=1',
76 '_EVENT_HAVE_MEMORY_H=1',
77 '_EVENT_HAVE_MMAP=1',
78 '_EVENT_HAVE_NETDB_H=1',
79 '_EVENT_HAVE_NETINET_IN_H=1',
80 '_EVENT_HAVE_PIPE=1',
81 '_EVENT_HAVE_POLL=1',
82 '_EVENT_HAVE_POLL_H=1',
83 '_EVENT_HAVE_PTHREADS=1',
84 '_EVENT_HAVE_PUTENV=1',
85 '_EVENT_HAVE_SA_FAMILY_T=1',
86 '_EVENT_HAVE_SELECT=1',
87 '_EVENT_HAVE_SENDFILE=1',
88 '_EVENT_HAVE_SETENV=1',
89 '_EVENT_HAVE_SETFD=1',
90 '_EVENT_HAVE_SIGACTION=1',
91 '_EVENT_HAVE_SIGNAL=1',
92 '_EVENT_HAVE_SPLICE=1',
93 '_EVENT_HAVE_STDARG_H=1',
94 '_EVENT_HAVE_STDDEF_H=1',
95 '_EVENT_HAVE_STDINT_H=1',
96 '_EVENT_HAVE_STDLIB_H=1',
97 '_EVENT_HAVE_STRINGS_H=1',
98 '_EVENT_HAVE_STRING_H=1',
99 '_EVENT_HAVE_STRSEP=1',
100 '_EVENT_HAVE_STRTOK_R=1',
101 '_EVENT_HAVE_STRTOLL=1',
102 '_EVENT_HAVE_STRUCT_ADDRINFO=1',
103 '_EVENT_HAVE_STRUCT_IN6_ADDR=1',
104 '_EVENT_HAVE_STRUCT_IN6_ADDR_S6_ADDR16=1',
105 '_EVENT_HAVE_STRUCT_IN6_ADDR_S6_ADDR32=1',
106 '_EVENT_HAVE_STRUCT_SOCKADDR_IN6=1',
107 '_EVENT_HAVE_STRUCT_SOCKADDR_STORAGE=1',
108 '_EVENT_HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=1',
109 '_EVENT_HAVE_SYSCTL=1',
110 '_EVENT_HAVE_SYS_EPOLL_H=1',
111 '_EVENT_HAVE_SYS_EVENTFD_H=1',
112 '_EVENT_HAVE_SYS_IOCTL_H=1',
113 '_EVENT_HAVE_SYS_MMAN_H=1',
114 '_EVENT_HAVE_SYS_PARAM_H=1',
115 '_EVENT_HAVE_SYS_QUEUE_H=1',
116 '_EVENT_HAVE_SYS_SELECT_H=1',
117 '_EVENT_HAVE_SYS_SENDFILE_H=1',
118 '_EVENT_HAVE_SYS_SOCKET_H=1',
119 '_EVENT_HAVE_SYS_STAT_H=1',
120 '_EVENT_HAVE_SYS_SYSCTL_H=1',
121 '_EVENT_HAVE_SYS_TIME_H=1',
122 '_EVENT_HAVE_SYS_TYPES_H=1',
123 '_EVENT_HAVE_SYS_UIO_H=1',
124 '_EVENT_HAVE_SYS_WAIT_H=1',
125 '_EVENT_HAVE_TAILQFOREACH=1',
126 '_EVENT_HAVE_TIMERADD=1',
127 '_EVENT_HAVE_TIMERCLEAR=1',
128 '_EVENT_HAVE_TIMERCMP=1',
129 '_EVENT_HAVE_TIMERISSET=1',
130 '_EVENT_HAVE_UINT16_T=1',
131 '_EVENT_HAVE_UINT32_T=1',
132 '_EVENT_HAVE_UINT64_T=1',
133 '_EVENT_HAVE_UINT8_T=1',
134 '_EVENT_HAVE_UINTPTR_T=1',
135 '_EVENT_HAVE_UMASK=1',
136 '_EVENT_HAVE_UNISTD_H=1',
137 '_EVENT_HAVE_UNSETENV=1',
138 '_EVENT_HAVE_VASPRINTF=1',
Brian Silvermane296d002015-10-12 02:28:11 -0400139 '_EVENT_SIZEOF_INT=4',
140 '_EVENT_SIZEOF_LONG=8',
141 '_EVENT_SIZEOF_SHORT=2',
142 '_EVENT_STDC_HEADERS=1',
143 '_EVENT_TIME_WITH_SYS_TIME=1',
144
145 '_EVENT_NUMERIC_VERSION=0x02001600',
146 '_EVENT_VERSION=\\"2.0.22-stable\\"',
147 ] + address_size_select({
148 '32': [
149 '_EVENT_SIZEOF_LONG_LONG=4',
150 '_EVENT_SIZEOF_OFF_T=4',
151 '_EVENT_SIZEOF_PTHREAD_T=4',
152 '_EVENT_SIZEOF_SIZE_T=4',
153 '_EVENT_SIZEOF_VOID_P=4',
154 ],
155 '64': [
156 '_EVENT_SIZEOF_LONG_LONG=8',
157 '_EVENT_SIZEOF_OFF_T=8',
158 '_EVENT_SIZEOF_PTHREAD_T=8',
159 '_EVENT_SIZEOF_SIZE_T=8',
160 '_EVENT_SIZEOF_VOID_P=8',
161 ],
162 }),
163
Brian Silvermanaa651172015-09-26 17:39:06 -0400164 copts = [
165 '-Ithird_party/libevent/compat',
166 '-Ithird_party/libevent/include',
Brian Silvermanf1cff392015-10-11 19:36:18 -0400167
168 # TODO(Brian): Fix the places in the code it uses char* as an intermediate
169 # type while doing offsetof stuff.
170 '-Wno-cast-align',
171
172 '-Wno-unused-parameter',
173 '-Wno-format-nonliteral',
174 '-Wno-cast-qual',
Brian Silvermanf1cff392015-10-11 19:36:18 -0400175 '-Wno-unused-function',
Austin Schuh23da18b2015-10-11 20:52:49 -0700176 ] + compiler_select({
177 'gcc': [],
178 'clang': ['-Wno-incompatible-pointer-types-discards-qualifiers']
179 }),
Brian Silvermane296d002015-10-12 02:28:11 -0400180 )