Avoid crashing if we call num_usable_bridges() when bridges are not enabled
[tor/appveyor.git] / src / or / include.am
blob7216aba9af57b32b6c59726da1a06d1fc8cd6439
1 bin_PROGRAMS+= src/or/tor
2 noinst_LIBRARIES += \
3         src/or/libtor.a
4 if UNITTESTS_ENABLED
5 noinst_LIBRARIES += \
6         src/or/libtor-testing.a
7 endif
8 if COVERAGE_ENABLED
9 noinst_PROGRAMS+= src/or/tor-cov
10 endif
12 if BUILD_NT_SERVICES
13 tor_platform_source=src/or/ntmain.c
14 else
15 tor_platform_source=
16 endif
18 EXTRA_DIST+= src/or/ntmain.c src/or/Makefile.nmake
20 LIBTOR_A_SOURCES = \
21         src/or/addressmap.c                             \
22         src/or/bridges.c                                \
23         src/or/channel.c                                \
24         src/or/channelpadding.c                         \
25         src/or/channeltls.c                             \
26         src/or/circpathbias.c                           \
27         src/or/circuitbuild.c                           \
28         src/or/circuitlist.c                            \
29         src/or/circuitmux.c                             \
30         src/or/circuitmux_ewma.c                        \
31         src/or/circuitstats.c                           \
32         src/or/circuituse.c                             \
33         src/or/command.c                                \
34         src/or/config.c                                 \
35         src/or/confparse.c                              \
36         src/or/connection.c                             \
37         src/or/connection_edge.c                        \
38         src/or/connection_or.c                          \
39         src/or/conscache.c                              \
40         src/or/consdiff.c                               \
41         src/or/consdiffmgr.c                            \
42         src/or/control.c                                \
43         src/or/cpuworker.c                              \
44         src/or/dircollate.c                             \
45         src/or/directory.c                              \
46         src/or/dirserv.c                                \
47         src/or/dirvote.c                                \
48         src/or/dns.c                                    \
49         src/or/dnsserv.c                                \
50         src/or/fp_pair.c                                \
51         src/or/geoip.c                                  \
52         src/or/entrynodes.c                             \
53         src/or/ext_orport.c                             \
54         src/or/hibernate.c                              \
55         src/or/hs_cache.c                               \
56         src/or/hs_cell.c                                \
57         src/or/hs_circuit.c                             \
58         src/or/hs_circuitmap.c                          \
59         src/or/hs_client.c                              \
60         src/or/hs_common.c                              \
61         src/or/hs_config.c                              \
62         src/or/hs_descriptor.c                          \
63         src/or/hs_ident.c                               \
64         src/or/hs_intropoint.c                          \
65         src/or/hs_ntor.c                                \
66         src/or/hs_service.c                             \
67         src/or/keypin.c                                 \
68         src/or/main.c                                   \
69         src/or/microdesc.c                              \
70         src/or/networkstatus.c                          \
71         src/or/nodelist.c                               \
72         src/or/onion.c                                  \
73         src/or/onion_fast.c                             \
74         src/or/onion_tap.c                              \
75         src/or/shared_random.c                  \
76         src/or/shared_random_state.c            \
77         src/or/transports.c                             \
78         src/or/parsecommon.c                    \
79         src/or/periodic.c                               \
80         src/or/protover.c                               \
81         src/or/proto_cell.c                             \
82         src/or/proto_control0.c                         \
83         src/or/proto_ext_or.c                           \
84         src/or/proto_http.c                             \
85         src/or/proto_socks.c                            \
86         src/or/policies.c                               \
87         src/or/reasons.c                                \
88         src/or/relay.c                                  \
89         src/or/rendcache.c                              \
90         src/or/rendclient.c                             \
91         src/or/rendcommon.c                             \
92         src/or/rendmid.c                                \
93         src/or/rendservice.c                            \
94         src/or/rephist.c                                \
95         src/or/replaycache.c                            \
96         src/or/router.c                                 \
97         src/or/routerkeys.c                             \
98         src/or/routerlist.c                             \
99         src/or/routerparse.c                            \
100         src/or/routerset.c                              \
101         src/or/scheduler.c                              \
102         src/or/scheduler_kist.c                         \
103         src/or/scheduler_vanilla.c                      \
104         src/or/statefile.c                              \
105         src/or/status.c                                 \
106         src/or/torcert.c                                \
107         src/or/onion_ntor.c                             \
108         $(tor_platform_source)
110 src_or_libtor_a_SOURCES = $(LIBTOR_A_SOURCES)
111 src_or_libtor_testing_a_SOURCES = $(LIBTOR_A_SOURCES)
113 src_or_tor_SOURCES = src/or/tor_main.c
114 AM_CPPFLAGS += -I$(srcdir)/src/or -Isrc/or
116 src/or/tor_main.$(OBJEXT) \
117   src/or/src_or_tor_cov-tor_main.$(OBJEXT): micro-revision.i
119 AM_CPPFLAGS += -DSHARE_DATADIR="\"$(datadir)\""         \
120                 -DLOCALSTATEDIR="\"$(localstatedir)\""  \
121                 -DBINDIR="\"$(bindir)\""
123 src_or_libtor_testing_a_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_CPPFLAGS)
124 src_or_libtor_testing_a_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
126 # -L flags need to go in LDFLAGS. -l flags need to go in LDADD.
127 # This seems to matter nowhere but on windows, but I assure you that it
128 # matters a lot there, and is quite hard to debug if you forget to do it.
131 src_or_tor_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ @TOR_LDFLAGS_libevent@
132 src_or_tor_LDADD = src/or/libtor.a src/common/libor.a src/common/libor-ctime.a \
133         src/common/libor-crypto.a $(LIBKECCAK_TINY) $(LIBDONNA) \
134         src/common/libor-event.a src/trunnel/libor-trunnel.a \
135         src/trace/libor-trace.a \
136         $(rust_ldadd) \
137         @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ @TOR_OPENSSL_LIBS@ \
138         @TOR_LIB_WS32@ @TOR_LIB_GDI@ @TOR_LIB_USERENV@ \
139         @CURVE25519_LIBS@ @TOR_SYSTEMD_LIBS@ \
140         @TOR_LZMA_LIBS@ @TOR_ZSTD_LIBS@
142 if COVERAGE_ENABLED
143 src_or_tor_cov_SOURCES = src/or/tor_main.c
144 src_or_tor_cov_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_CPPFLAGS)
145 src_or_tor_cov_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
146 src_or_tor_cov_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ @TOR_LDFLAGS_libevent@
147 src_or_tor_cov_LDADD = src/or/libtor-testing.a src/common/libor-testing.a \
148         src/common/libor-ctime-testing.a \
149         src/common/libor-crypto-testing.a $(LIBKECCAK_TINY) $(LIBDONNA) \
150         src/common/libor-event-testing.a src/trunnel/libor-trunnel-testing.a \
151         @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ @TOR_OPENSSL_LIBS@ \
152         @TOR_LIB_WS32@ @TOR_LIB_GDI@ @CURVE25519_LIBS@ @TOR_SYSTEMD_LIBS@ \
153         @TOR_LZMA_LIBS@ @TOR_ZSTD_LIBS@
154 endif
156 ORHEADERS = \
157         src/or/addressmap.h                             \
158         src/or/bridges.h                                \
159         src/or/channel.h                                \
160         src/or/channelpadding.h                         \
161         src/or/channeltls.h                             \
162         src/or/circpathbias.h                           \
163         src/or/circuitbuild.h                           \
164         src/or/circuitlist.h                            \
165         src/or/circuitmux.h                             \
166         src/or/circuitmux_ewma.h                        \
167         src/or/circuitstats.h                           \
168         src/or/circuituse.h                             \
169         src/or/command.h                                \
170         src/or/config.h                                 \
171         src/or/confparse.h                              \
172         src/or/connection.h                             \
173         src/or/connection_edge.h                        \
174         src/or/connection_or.h                          \
175         src/or/conscache.h                              \
176         src/or/consdiff.h                               \
177         src/or/consdiffmgr.h                            \
178         src/or/control.h                                \
179         src/or/cpuworker.h                              \
180         src/or/dircollate.h                             \
181         src/or/directory.h                              \
182         src/or/dirserv.h                                \
183         src/or/dirvote.h                                \
184         src/or/dns.h                                    \
185         src/or/dns_structs.h                            \
186         src/or/dnsserv.h                                \
187         src/or/ext_orport.h                             \
188         src/or/fallback_dirs.inc                        \
189         src/or/fp_pair.h                                \
190         src/or/geoip.h                                  \
191         src/or/entrynodes.h                             \
192         src/or/hibernate.h                              \
193         src/or/hs_cache.h                               \
194         src/or/hs_cell.h                                \
195         src/or/hs_config.h                              \
196         src/or/hs_circuit.h                             \
197         src/or/hs_circuitmap.h                          \
198         src/or/hs_client.h                              \
199         src/or/hs_common.h                              \
200         src/or/hs_descriptor.h                          \
201         src/or/hs_ident.h                               \
202         src/or/hs_intropoint.h                          \
203         src/or/hs_ntor.h                                \
204         src/or/hs_service.h                             \
205         src/or/keypin.h                                 \
206         src/or/main.h                                   \
207         src/or/microdesc.h                              \
208         src/or/networkstatus.h                          \
209         src/or/nodelist.h                               \
210         src/or/ntmain.h                                 \
211         src/or/onion.h                                  \
212         src/or/onion_fast.h                             \
213         src/or/onion_ntor.h                             \
214         src/or/onion_tap.h                              \
215         src/or/or.h                                     \
216         src/or/shared_random.h                  \
217         src/or/shared_random_state.h            \
218         src/or/transports.h                             \
219         src/or/parsecommon.h                    \
220         src/or/periodic.h                               \
221         src/or/policies.h                               \
222         src/or/protover.h                               \
223         src/or/proto_cell.h                             \
224         src/or/proto_control0.h                         \
225         src/or/proto_ext_or.h                           \
226         src/or/proto_http.h                             \
227         src/or/proto_socks.h                            \
228         src/or/reasons.h                                \
229         src/or/relay.h                                  \
230         src/or/rendcache.h                              \
231         src/or/rendclient.h                             \
232         src/or/rendcommon.h                             \
233         src/or/rendmid.h                                \
234         src/or/rendservice.h                            \
235         src/or/rephist.h                                \
236         src/or/replaycache.h                            \
237         src/or/router.h                                 \
238         src/or/routerkeys.h                             \
239         src/or/routerlist.h                             \
240         src/or/routerkeys.h                             \
241         src/or/routerset.h                              \
242         src/or/routerparse.h                            \
243         src/or/scheduler.h                              \
244         src/or/statefile.h                              \
245         src/or/status.h                                 \
246         src/or/torcert.h
248 noinst_HEADERS+= $(ORHEADERS) micro-revision.i
250 micro-revision.i: FORCE
251         $(AM_V_at)rm -f micro-revision.tmp; \
252         if test -r "$(top_srcdir)/.git" && \
253                         test -x "`which git 2>&1;true`"; then \
254                 HASH="`cd "$(top_srcdir)" && git rev-parse --short=16 HEAD`"; \
255                 echo \"$$HASH\" > micro-revision.tmp; \
256         fi; \
257         if test ! -f micro-revision.tmp; then \
258                 if test ! -f micro-revision.i; then \
259                         echo '""' > micro-revision.i; \
260                 fi; \
261         elif test ! -f micro-revision.i || \
262                         test x"`cat micro-revision.tmp`" != x"`cat micro-revision.i`"; then \
263                 mv micro-revision.tmp micro-revision.i; \
264         fi; \
265         rm -f micro-revision.tmp; \
266         true
268 CLEANFILES+= micro-revision.i src/or/micro-revision.i micro-revision.tmp
270 FORCE: