1 dnl Copyright (c) 2001-2004, Roger Dingledine
2 dnl Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson
3 dnl Copyright (c) 2007-2012, The Tor Project, Inc.
4 dnl See LICENSE for licensing information
6 AC_INIT([tor],[0.2.4.0-alpha-dev])
7 AC_CONFIG_SRCDIR([src/or/main.c])
9 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
10 AC_CONFIG_HEADERS([orconfig.h])
14 if test -f /etc/redhat-release ; then
15 if test -f /usr/kerberos/include ; then
16 CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include"
20 # Not a no-op; we want to make sure that CPPFLAGS is set before we use
21 # the += operator on it in src/or/Makefile.am
22 CPPFLAGS="$CPPFLAGS -I\${top_srcdir}/src/common"
24 #XXXX020 We should make these enabled or not, before 0.2.0.x-final
25 AC_ARG_ENABLE(buf-freelists,
26 AS_HELP_STRING(--disable-buf-freelists, disable freelists for buffer RAM))
27 AC_ARG_ENABLE(openbsd-malloc,
28 AS_HELP_STRING(--enable-openbsd-malloc, Use malloc code from openbsd. Linux only))
29 AC_ARG_ENABLE(instrument-downloads,
30 AS_HELP_STRING(--enable-instrument-downloads, Instrument downloads of directory resources etc.))
31 AC_ARG_ENABLE(static-openssl,
32 AS_HELP_STRING(--enable-static-openssl, Link against a static openssl library. Requires --with-openssl-dir))
33 AC_ARG_ENABLE(static-libevent,
34 AS_HELP_STRING(--enable-static-libevent, Link against a static libevent library. Requires --with-libevent-dir))
35 AC_ARG_ENABLE(static-zlib,
36 AS_HELP_STRING(--enable-static-zlib, Link against a static zlib library. Requires --with-zlib-dir))
37 AC_ARG_ENABLE(static-tor,
38 AS_HELP_STRING(--enable-static-tor, Create an entirely static Tor binary. Requires --with-openssl-dir and --with-libevent-dir and --with-zlib-dir))
40 if test "$enable_static_tor" = "yes"; then
41 enable_static_libevent="yes";
42 enable_static_openssl="yes";
43 enable_static_zlib="yes";
44 CFLAGS="$CFLAGS -static"
47 if test x$enable_buf_freelists != xno; then
48 AC_DEFINE(ENABLE_BUF_FREELISTS, 1,
49 [Defined if we try to use freelists for buffer RAM chunks])
51 AM_CONDITIONAL(USE_OPENBSD_MALLOC, test x$enable_openbsd_malloc = xyes)
52 if test x$enable_instrument_downloads = xyes; then
53 AC_DEFINE(INSTRUMENT_DOWNLOADS, 1,
54 [Defined if we want to keep track of how much of each kind of resource we download.])
57 AC_ARG_ENABLE(transparent,
58 AS_HELP_STRING(--disable-transparent, disable transparent proxy support),
59 [case "${enableval}" in
60 yes) transparent=true ;;
61 no) transparent=false ;;
62 *) AC_MSG_ERROR(bad value for --enable-transparent) ;;
63 esac], [transparent=true])
65 AC_ARG_ENABLE(asciidoc,
66 AS_HELP_STRING(--disable-asciidoc, don't use asciidoc (disables building of manpages)),
67 [case "${enableval}" in
70 *) AC_MSG_ERROR(bad value for --disable-asciidoc) ;;
71 esac], [asciidoc=true])
73 # By default, we're not ready to ship a NAT-PMP aware Tor
74 AC_ARG_ENABLE(nat-pmp,
75 AS_HELP_STRING(--enable-nat-pmp, enable NAT-PMP support),
76 [case "${enableval}" in
79 * ) AC_MSG_ERROR(bad value for --enable-nat-pmp) ;;
80 esac], [natpmp=false])
82 # By default, we're not ready to ship a UPnP aware Tor
84 AS_HELP_STRING(--enable-upnp, enable UPnP support),
85 [case "${enableval}" in
88 * ) AC_MSG_ERROR(bad value for --enable-upnp) ;;
92 AC_ARG_ENABLE(threads,
93 AS_HELP_STRING(--disable-threads, disable multi-threading support))
95 if test x$enable_threads = x; then
98 # Don't try multithreading on solaris -- cpuworkers seem to lock.
99 AC_MSG_NOTICE([You are running Solaris; Sometimes threading makes
100 cpu workers lock up here, so I will disable threads.])
101 enable_threads="no";;
103 enable_threads="yes";;
107 if test "$enable_threads" = "yes"; then
108 AC_DEFINE(ENABLE_THREADS, 1, [Defined if we will try to use multithreading])
113 AC_DEFINE(_REENTRANT, 1, [Define on some platforms to activate x_r() functions in time.h])
117 AC_ARG_ENABLE(gcc-warnings,
118 AS_HELP_STRING(--enable-gcc-warnings, enable verbose warnings))
119 AC_ARG_ENABLE(gcc-warnings-advisory,
120 AS_HELP_STRING(--enable-gcc-warnings-advisory, [enable verbose warnings, excluding -Werror]))
122 dnl Adam shostack suggests the following for Windows:
123 dnl -D_FORTIFY_SOURCE=2 -fstack-protector-all
124 dnl Others suggest '/gs /safeseh /nxcompat /dynamicbase' for non-gcc on Windows
125 dnl This requires that we use gcc and that we add -O2 to the CFLAGS.
126 AC_ARG_ENABLE(gcc-hardening,
127 AS_HELP_STRING(--disable-gcc-hardening, disable compiler security checks))
129 dnl Linker hardening options
130 dnl Currently these options are ELF specific - you can't use this with MacOSX
131 AC_ARG_ENABLE(linker-hardening,
132 AS_HELP_STRING(--disable-linker-hardening, disable linker security fixups))
134 AC_ARG_ENABLE(local-appdata,
135 AS_HELP_STRING(--enable-local-appdata, default to host local application data paths on Windows))
136 if test "$enable_local_appdata" = "yes"; then
137 AC_DEFINE(ENABLE_LOCAL_APPDATA, 1,
138 [Defined if we default to host local appdata paths on Windows])
142 AC_ARG_ENABLE(tor2web-mode,
143 AS_HELP_STRING(--enable-tor2web-mode, support tor2web non-anonymous mode),
144 [if test x$enableval = xyes; then
145 CFLAGS="$CFLAGS -D ENABLE_TOR2WEB_MODE=1"
148 AC_ARG_ENABLE(bufferevents,
149 AS_HELP_STRING(--enable-bufferevents, use Libevent's buffered IO.))
151 dnl check for the correct "ar" when cross-compiling
152 AN_MAKEVAR([AR], [AC_PROG_AR])
153 AN_PROGRAM([ar], [AC_PROG_AR])
154 AC_DEFUN([AC_PROG_AR], [AC_CHECK_TOOL([AR], [ar], [ar])])
162 dnl autoconf 2.59 appears not to support AC_PROG_SED
163 AC_CHECK_PROG([SED],[sed],[sed],[/bin/false])
165 dnl check for asciidoc and a2x
166 AC_PATH_PROG([ASCIIDOC], [asciidoc], none)
167 AC_PATH_PROG([A2X], [a2x], none)
169 AM_CONDITIONAL(USE_ASCIIDOC, test x$asciidoc = xtrue)
171 AM_CONDITIONAL(USE_FW_HELPER, test x$natpmp = xtrue || test x$upnp = xtrue)
172 AM_CONDITIONAL(NAT_PMP, test x$natpmp = xtrue)
173 AM_CONDITIONAL(MINIUPNPC, test x$upnp = xtrue)
176 ifdef([AC_C_FLEXIBLE_ARRAY_MEMBER], [
177 AC_C_FLEXIBLE_ARRAY_MEMBER
179 dnl Maybe we've got an old autoconf...
180 AC_CACHE_CHECK([for flexible array members],
184 struct abc { int a; char b[]; };
186 struct abc *def = malloc(sizeof(struct abc)+sizeof(char));
189 [tor_cv_c_flexarray=yes],
190 [tor_cv_c_flexarray=no])])
191 if test $tor_cv_flexarray = yes ; then
192 AC_DEFINE([FLEXIBLE_ARRAY_MEMBER], [], [Define to nothing if C supports flexible array members, and to 1 if it does not.])
194 AC_DEFINE([FLEXIBLE_ARRAY_MEMBER], [1], [Define to nothing if C supports flexible array members, and to 1 if it does not.])
198 AC_PATH_PROG([SHA1SUM], [sha1sum], none)
199 AC_PATH_PROG([OPENSSL], [openssl], none)
202 AC_ARG_WITH(tor-user,
203 [ --with-tor-user=NAME Specify username for tor daemon ],
211 AC_ARG_WITH(tor-group,
212 [ --with-tor-group=NAME Specify group name for tor daemon ],
220 dnl If _WIN32 is defined and non-zero, we are building for win32
221 AC_MSG_CHECKING([for win32])
222 AC_RUN_IFELSE([AC_LANG_SOURCE([
223 int main(int c, char **v) {
234 bwin32=true; AC_MSG_RESULT([yes]),
235 bwin32=false; AC_MSG_RESULT([no]),
236 bwin32=cross; AC_MSG_RESULT([cross])
239 if test "$bwin32" = cross; then
240 AC_MSG_CHECKING([for win32 (cross)])
241 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
243 int main(int c, char **v) {return 0;}
246 int main(int c, char **v) {return x(y);}
249 bwin32=true; AC_MSG_RESULT([yes]),
250 bwin32=false; AC_MSG_RESULT([no]))
253 AM_CONDITIONAL(BUILD_NT_SERVICES, test x$bwin32 = xtrue)
255 dnl Enable C99 when compiling with MIPSpro
256 AC_MSG_CHECKING([for MIPSpro compiler])
257 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(, [
258 #if (defined(__sgi) && defined(_COMPILER_VERSION))
263 bmipspro=false; AC_MSG_RESULT(no),
264 bmipspro=true; AC_MSG_RESULT(yes))
266 if test "$bmipspro" = true; then
267 CFLAGS="$CFLAGS -c99"
272 AC_SEARCH_LIBS(socket, [socket network])
273 AC_SEARCH_LIBS(gethostbyname, [nsl])
274 AC_SEARCH_LIBS(dlopen, [dl])
275 AC_SEARCH_LIBS(inet_aton, [resolv])
277 AC_SEARCH_LIBS([clock_gettime], [rt])
278 if test "$LIBS" != "$saved_LIBS"; then
279 # Looks like we need -lrt for clock_gettime().
283 if test "$enable_threads" = "yes"; then
284 AC_SEARCH_LIBS(pthread_create, [pthread])
285 AC_SEARCH_LIBS(pthread_detach, [pthread])
288 dnl -------------------------------------------------------------------
289 dnl Check for functions before libevent, since libevent-1.2 apparently
290 dnl exports strlcpy without defining it in a header.
322 if test "$enable_threads" = "yes"; then
323 AC_CHECK_HEADERS(pthread.h)
324 AC_CHECK_FUNCS(pthread_create)
327 dnl ------------------------------------------------------
328 dnl Where do you live, libevent? And how do we call you?
330 if test "$bwin32" = true; then
331 TOR_LIB_WS32=-lws2_32
332 TOR_LIB_IPHLPAPI=-liphlpapi
333 # Some of the cargo-cults recommend -lwsock32 as well, but I don't
334 # think it's actually necessary.
340 AC_SUBST(TOR_LIB_WS32)
341 AC_SUBST(TOR_LIB_GDI)
342 AC_SUBST(TOR_LIB_IPHLPAPI)
344 dnl We need to do this before we try our disgusting hack below.
345 AC_CHECK_HEADERS([sys/types.h])
347 dnl This is a disgusting hack so we safely include older libevent headers.
348 AC_CHECK_TYPE(u_int64_t, unsigned long long)
349 AC_CHECK_TYPE(u_int32_t, unsigned long)
350 AC_CHECK_TYPE(u_int16_t, unsigned short)
351 AC_CHECK_TYPE(u_int8_t, unsigned char)
353 tor_libevent_pkg_redhat="libevent"
354 tor_libevent_pkg_debian="libevent-dev"
355 tor_libevent_devpkg_redhat="libevent-devel"
356 tor_libevent_devpkg_debian="libevent-dev"
358 dnl On Gnu/Linux or any place we require it, we'll add librt to the Libevent
359 dnl linking for static builds.
360 STATIC_LIBEVENT_FLAGS=""
361 if test "$enable_static_libevent" = "yes"; then
362 if test "$have_rt" = yes; then
363 STATIC_LIBEVENT_FLAGS=" -lrt "
367 TOR_SEARCH_LIBRARY(libevent, $trylibeventdir, [-levent $STATIC_LIBEVENT_FLAGS $TOR_LIB_WS32], [
369 #include <winsock2.h>
372 #include <sys/time.h>
373 #include <sys/types.h>
374 #include <event.h>], [
376 #include <winsock2.h>
378 void exit(int); void *event_init(void);],
381 {WSADATA d; WSAStartup(0x101,&d); }
383 event_init(); exit(0);
384 ], [--with-libevent-dir], [/opt/libevent])
386 dnl Now check for particular libevent functions.
388 save_LDFLAGS="$LDFLAGS"
389 save_CPPFLAGS="$CPPFLAGS"
390 LIBS="-levent $STATIC_LIBEVENT_FLAGS $TOR_LIB_WS32 $LIBS"
391 LDFLAGS="$TOR_LDFLAGS_libevent $LDFLAGS"
392 CPPFLAGS="$TOR_CPPFLAGS_libevent $CPPFLAGS"
393 AC_CHECK_FUNCS(event_get_version event_get_version_number event_get_method event_set_log_callback evdns_set_outgoing_bind_address event_base_loopexit)
394 AC_CHECK_MEMBERS([struct event.min_heap_idx], , ,
398 AC_CHECK_HEADERS(event2/event.h event2/dns.h event2/bufferevent_ssl.h)
401 LDFLAGS="$save_LDFLAGS"
402 CPPFLAGS="$save_CPPFLAGS"
405 AM_CONDITIONAL(USE_EXTERNAL_EVDNS, test x$ac_cv_header_event2_dns_h = xyes)
407 if test "$enable_static_libevent" = "yes"; then
408 if test "$tor_cv_library_libevent_dir" = "(system)"; then
409 AC_MSG_ERROR("You must specify an explicit --with-libevent-dir=x option when using --enable-static-libevent")
411 TOR_LIBEVENT_LIBS="$TOR_LIBDIR_libevent/libevent.a $STATIC_LIBEVENT_FLAGS"
414 TOR_LIBEVENT_LIBS="-levent"
417 dnl This isn't the best test for Libevent 2.0.3-alpha. Once it's released,
418 dnl we can do much better.
419 if test "$enable_bufferevents" = "yes" ; then
420 if test "$ac_cv_header_event2_bufferevent_ssl_h" != "yes" ; then
421 AC_MSG_ERROR([You've asked for bufferevent support, but you're using a version of Libevent without SSL support. This won't work. We need Libevent 2.0.8-rc or later, and you don't seem to even have Libevent 2.0.3-alpha.])
424 CPPFLAGS="$CPPFLAGS $TOR_CPPFLAGS_libevent"
426 # Check for the right version. First see if version detection works.
427 AC_MSG_CHECKING([whether we can detect the Libevent version])
428 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
429 #include <event2/event.h>
430 #if !defined(LIBEVENT_VERSION_NUMBER) || LIBEVENT_VERSION_NUMBER < 10
436 ])], [event_version_number_works=yes; AC_MSG_RESULT([yes]) ],
437 [event_version_number_works=no; AC_MSG_RESULT([no])])
438 if test "$event_version_number_works" != 'yes'; then
439 AC_MSG_WARN([Version detection on Libevent seems broken. Your Libevent installation is probably screwed up or very old.])
441 AC_MSG_CHECKING([whether Libevent is new enough for bufferevents])
442 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
443 #include <event2/event.h>
444 #if !defined(LIBEVENT_VERSION_NUMBER) || LIBEVENT_VERSION_NUMBER < 0x02000d00
450 ])], [ AC_MSG_RESULT([yes]) ],
451 [ AC_MSG_RESULT([no])
452 AC_MSG_ERROR([Libevent does not seem new enough to support bufferevents. We require 2.0.13-stable or later]) ] )
458 LDFLAGS="$save_LDFLAGS"
459 CPPFLAGS="$save_CPPFLAGS"
461 AM_CONDITIONAL(USE_BUFFEREVENTS, test "$enable_bufferevents" = "yes")
462 if test "$enable_bufferevents" = "yes"; then
463 AC_DEFINE(USE_BUFFEREVENTS, 1, [Defined if we're going to use Libevent's buffered IO API])
464 if test "$enable_static_libevent" = "yes"; then
465 TOR_LIBEVENT_LIBS="$TOR_LIBDIR_libevent/libevent_openssl.a $TOR_LIBEVENT_LIBS"
467 TOR_LIBEVENT_LIBS="-levent_openssl $TOR_LIBEVENT_LIBS"
470 AC_SUBST(TOR_LIBEVENT_LIBS)
472 dnl ------------------------------------------------------
473 dnl Where do you live, libm?
475 dnl On some platforms (Haiku/BeOS) the math library is
476 dnl part of libroot. In which case don't link against lm
479 AC_SEARCH_LIBS(pow, [m], , AC_MSG_ERROR([Could not find pow in libm or libc.]))
480 if test "$ac_cv_search_pow" != "none required"; then
481 TOR_LIB_MATH="$ac_cv_search_pow"
484 AC_SUBST(TOR_LIB_MATH)
486 dnl ------------------------------------------------------
487 dnl Where do you live, openssl? And how do we call you?
489 tor_openssl_pkg_redhat="openssl"
490 tor_openssl_pkg_debian="libssl"
491 tor_openssl_devpkg_redhat="openssl-devel"
492 tor_openssl_devpkg_debian="libssl-dev"
494 ALT_openssl_WITHVAL=""
496 [ --with-ssl-dir=PATH Obsolete alias for --with-openssl-dir ],
498 if test "x$withval" != xno && test "x$withval" != "x" ; then
499 ALT_openssl_WITHVAL="$withval"
503 TOR_SEARCH_LIBRARY(openssl, $tryssldir, [-lssl -lcrypto $TOR_LIB_GDI],
504 [#include <openssl/rand.h>],
505 [void RAND_add(const void *buf, int num, double entropy);],
506 [RAND_add((void*)0,0,0); exit(0);], [],
507 [/usr/local/openssl /usr/lib/openssl /usr/local/ssl /usr/lib/ssl /usr/local /usr/athena /opt/openssl])
509 dnl XXXX check for OPENSSL_VERSION_NUMBER == SSLeay()
511 if test "$enable_static_openssl" = "yes"; then
512 if test "$tor_cv_library_openssl_dir" = "(system)"; then
513 AC_MSG_ERROR("You must specify an explicit --with-openssl-dir=x option when using --enable-static-openssl")
515 TOR_OPENSSL_LIBS="$TOR_LIBDIR_openssl/libssl.a $TOR_LIBDIR_openssl/libcrypto.a"
518 TOR_OPENSSL_LIBS="-lssl -lcrypto"
520 AC_SUBST(TOR_OPENSSL_LIBS)
522 dnl ------------------------------------------------------
523 dnl Where do you live, zlib? And how do we call you?
525 tor_zlib_pkg_redhat="zlib"
526 tor_zlib_pkg_debian="zlib1g"
527 tor_zlib_devpkg_redhat="zlib-devel"
528 tor_zlib_devpkg_debian="zlib1g-dev"
530 TOR_SEARCH_LIBRARY(zlib, $tryzlibdir, [-lz],
532 [const char * zlibVersion(void);],
533 [zlibVersion(); exit(0);], [--with-zlib-dir],
536 if test "$enable_static_zlib" = "yes"; then
537 if test "$tor_cv_library_zlib_dir" = "(system)"; then
538 AC_MSG_ERROR("You must specify an explicit --with-zlib-dir=x option when
539 using --enable-static-zlib")
541 TOR_ZLIB_LIBS="$TOR_LIBDIR_zlib/libz.a"
546 AC_SUBST(TOR_ZLIB_LIBS)
548 dnl ---------------------------------------------------------------------
549 dnl Now that we know about our major libraries, we can check for compiler
550 dnl and linker hardening options. We need to do this with the libraries known,
551 dnl since sometimes the linker will like an option but not be willing to
552 dnl use it with a build of a library.
554 all_ldflags_for_check="$TOR_LDFLAGS_zlib $TOR_LDFLAGS_openssl $TOR_LDFLAGS_libevent"
555 all_libs_for_check="$TOR_ZLIB_LIBS $TOR_LIB_MATH $TOR_LIBEVENT_LIBS $TOR_OPENSSL_LIBS $TOR_LIB_WS32 $TOR_LIB_GDI"
557 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [
558 #if !defined(__clang__)
560 #endif])], have_clang=yes, have_clang=no)
562 if test x$enable_gcc_hardening != xno; then
563 CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2"
564 if test x$have_clang = xyes; then
565 TOR_CHECK_CFLAGS(-Qunused-arguments)
567 TOR_CHECK_CFLAGS(-fstack-protector-all)
568 TOR_CHECK_CFLAGS(-Wstack-protector)
569 TOR_CHECK_CFLAGS(-fwrapv)
570 TOR_CHECK_CFLAGS(--param ssp-buffer-size=1)
571 if test "$bwin32" = "false"; then
572 TOR_CHECK_CFLAGS(-fPIE)
573 TOR_CHECK_LDFLAGS(-pie, "$all_ldflags_for_check", "$all_libs_for_check")
577 if test x$enable_linker_hardening != xno; then
578 TOR_CHECK_LDFLAGS(-z relro -z now, "$all_ldflags_for_check", "$all_libs_for_check")
581 dnl ------------------------------------------------------
582 dnl Where do you live, libnatpmp? And how do we call you?
583 dnl There are no packages for Debian or Redhat as of this patch
585 if test "$natpmp" = "true"; then
586 AC_DEFINE(NAT_PMP, 1, [Define to 1 if we are building with nat-pmp.])
587 TOR_SEARCH_LIBRARY(libnatpmp, $trylibnatpmpdir, [-lnatpmp $TOR_LIB_WS32 $TOR_LIB_IPHLPAPI],
588 [#include <natpmp.h>],
592 #include <natpmp.h>],
595 natpmpresp_t response;
596 r = initnatpmp(&natpmp, 0, 0);],
597 [printf("initnatpmp() returned %d (%s)\n", r, r?"FAILED":"SUCCESS");
599 [--with-libnatpmp-dir],
604 dnl ------------------------------------------------------
605 dnl Where do you live, libminiupnpc? And how do we call you?
606 dnl There are no packages for Debian or Redhat as of this patch
608 if test "$upnp" = "true"; then
609 AC_DEFINE(MINIUPNPC, 1, [Define to 1 if we are building with UPnP.])
611 dnl Before we call TOR_SEARCH_LIBRARY we'll do a quick compile test
612 dnl to see if we have miniupnpc-1.5 or -1.6
613 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <miniupnpc/miniupnpc.h>],
614 [upnpDiscover(1, 0, 0, 0);exit(0);])],[miniupnpc15="true"],[miniupnpc15="false"])
616 if test "$miniupnpc15" = "true" ; then
617 AC_DEFINE([MINIUPNPC15],[1],[libminiupnpc version 1.5 found])
618 TOR_SEARCH_LIBRARY(libminiupnpc, $trylibminiupnpcdir, [-lminiupnpc $TOR_LIB_WS32 $TOR_LIB_IPHLPAPI],
619 [#include <miniupnpc/miniwget.h>
620 #include <miniupnpc/miniupnpc.h>
621 #include <miniupnpc/upnpcommands.h>],
622 [void upnpDiscover(int delay, const char * multicastif,
623 const char * minissdpdsock, int sameport);],
624 [upnpDiscover(1, 0, 0, 0); exit(0);],
625 [--with-libminiupnpc-dir],
628 TOR_SEARCH_LIBRARY(libminiupnpc, $trylibminiupnpcdir, [-lminiupnpc $TOR_LIB_WS32 $TOR_LIB_IPHLPAPI],
629 [#include <miniupnpc/miniwget.h>
630 #include <miniupnpc/miniupnpc.h>
631 #include <miniupnpc/upnpcommands.h>],
632 [void upnpDiscover(int delay, const char * multicastif,
633 const char * minissdpdsock, int sameport, int ipv6, int * error);],
634 [upnpDiscover(1, 0, 0, 0, 0, 0); exit(0);],
635 [--with-libminiupnpc-dir],
640 dnl Make sure to enable support for large off_t if available.
655 , , AC_MSG_WARN(Some headers were not found, compilation may fail. If compilation succeeds, please send your orconfig.h to the developers so we can fix this warning.))
657 dnl These headers are not essential
694 AC_CHECK_HEADERS(sys/param.h)
696 AC_CHECK_HEADERS(net/if.h, net_if_found=1, net_if_found=0,
697 [#ifdef HAVE_SYS_TYPES_H
698 #include <sys/types.h>
700 #ifdef HAVE_SYS_SOCKET_H
701 #include <sys/socket.h>
703 AC_CHECK_HEADERS(net/pfvar.h, net_pfvar_found=1, net_pfvar_found=0,
704 [#ifdef HAVE_SYS_TYPES_H
705 #include <sys/types.h>
707 #ifdef HAVE_SYS_SOCKET_H
708 #include <sys/socket.h>
713 AC_CHECK_HEADERS(linux/netfilter_ipv4.h,
714 linux_netfilter_ipv4=1, linux_netfilter_ipv4=0,
715 [#ifdef HAVE_SYS_TYPES_H
716 #include <sys/types.h>
718 #ifdef HAVE_SYS_SOCKET_H
719 #include <sys/socket.h>
724 #ifdef HAVE_LINUX_TYPES_H
725 #include <linux/types.h>
727 #ifdef HAVE_NETINET_IN6_H
728 #include <netinet/in6.h>
730 #ifdef HAVE_NETINET_IN_H
731 #include <netinet/in.h>
734 if test x$transparent = xtrue ; then
736 if test x$net_if_found = x1 && test x$net_pfvar_found = x1 ; then
739 if test x$linux_netfilter_ipv4 = x1 ; then
742 if test x$transparent_ok = x1 ; then
743 AC_DEFINE(USE_TRANSPARENT, 1, "Define to enable transparent proxy support")
746 AC_DEFINE(OPENBSD, 1, "Define to handle pf on OpenBSD properly") ;;
749 AC_MSG_NOTICE([Transparent proxy support enabled, but missing headers.])
753 AC_CHECK_MEMBERS([struct timeval.tv_sec], , ,
754 [#ifdef HAVE_SYS_TYPES_H
755 #include <sys/types.h>
757 #ifdef HAVE_SYS_TIME_H
758 #include <sys/time.h>
761 dnl In case we aren't given a working stdint.h, we'll need to grow our own.
764 AC_CHECK_SIZEOF(int8_t)
765 AC_CHECK_SIZEOF(int16_t)
766 AC_CHECK_SIZEOF(int32_t)
767 AC_CHECK_SIZEOF(int64_t)
768 AC_CHECK_SIZEOF(uint8_t)
769 AC_CHECK_SIZEOF(uint16_t)
770 AC_CHECK_SIZEOF(uint32_t)
771 AC_CHECK_SIZEOF(uint64_t)
772 AC_CHECK_SIZEOF(intptr_t)
773 AC_CHECK_SIZEOF(uintptr_t)
775 dnl AC_CHECK_TYPES([int8_t, int16_t, int32_t, int64_t, uint8_t, uint16_t, uint32_t, uint64_t, intptr_t, uintptr_t])
777 AC_CHECK_SIZEOF(char)
778 AC_CHECK_SIZEOF(short)
780 AC_CHECK_SIZEOF(long)
781 AC_CHECK_SIZEOF(long long)
782 AC_CHECK_SIZEOF(__int64)
783 AC_CHECK_SIZEOF(void *)
784 AC_CHECK_SIZEOF(time_t)
785 AC_CHECK_SIZEOF(size_t)
787 AC_CHECK_TYPES([uint, u_char, ssize_t])
789 dnl used to include sockaddr_storage, but everybody has that.
790 AC_CHECK_TYPES([struct in6_addr, struct sockaddr_in6, sa_family_t], , ,
791 [#ifdef HAVE_SYS_TYPES_H
792 #include <sys/types.h>
794 #ifdef HAVE_NETINET_IN_H
795 #include <netinet/in.h>
797 #ifdef HAVE_NETINET_IN6_H
798 #include <netinet/in6.h>
800 #ifdef HAVE_SYS_SOCKET_H
801 #include <sys/socket.h>
804 #define _WIN32_WINNT 0x0501
805 #define WIN32_LEAN_AND_MEAN
806 #if defined(_MSC_VER) && (_MSC_VER < 1300)
809 #include <winsock2.h>
810 #include <ws2tcpip.h>
814 AC_CHECK_MEMBERS([struct in6_addr.s6_addr32, struct in6_addr.s6_addr16, struct sockaddr_in.sin_len, struct sockaddr_in6.sin6_len], , ,
815 [#ifdef HAVE_SYS_TYPES_H
816 #include <sys/types.h>
818 #ifdef HAVE_NETINET_IN_H
819 #include <netinet/in.h>
821 #ifdef HAVE_NETINET_IN6_H
822 #include <netinet/in6.h>
824 #ifdef HAVE_SYS_SOCKET_H
825 #include <sys/socket.h>
828 #define _WIN32_WINNT 0x0501
829 #define WIN32_LEAN_AND_MEAN
830 #if defined(_MSC_VER) && (_MSC_VER < 1300)
833 #include <winsock2.h>
834 #include <ws2tcpip.h>
839 AC_CHECK_TYPES([rlim_t], , ,
840 [#ifdef HAVE_SYS_TYPES_H
841 #include <sys/types.h>
843 #ifdef HAVE_SYS_TIME_H
844 #include <sys/time.h>
846 #ifdef HAVE_SYS_RESOURCE_H
847 #include <sys/resource.h>
851 AC_CACHE_CHECK([whether time_t is signed], tor_cv_time_t_signed, [
852 AC_RUN_IFELSE([AC_LANG_SOURCE([
853 #ifdef HAVE_SYS_TYPES_H
854 #include <sys/types.h>
856 #ifdef HAVE_SYS_TIME_H
857 #include <sys/time.h>
862 int main(int c, char**v) { if (((time_t)-1)<0) return 1; else return 0; }])],
863 tor_cv_time_t_signed=no, tor_cv_time_t_signed=yes, tor_cv_time_t_signed=cross)
866 if test "$tor_cv_time_t_signed" = cross; then
867 AC_MSG_NOTICE([Cross compiling: assuming that time_t is signed.])
870 if test "$tor_cv_time_t_signed" != no; then
871 AC_DEFINE([TIME_T_IS_SIGNED], 1,
872 [Define to 1 iff time_t is signed])
875 AC_CACHE_CHECK([whether size_t is signed], tor_cv_size_t_signed, [
876 AC_RUN_IFELSE([AC_LANG_SOURCE([
877 #ifdef HAVE_SYS_TYPES_H
878 #include <sys/types.h>
880 int main(int c, char**v) { if (((size_t)-1)<0) return 1; else return 0; }])],
881 tor_cv_size_t_signed=no, tor_cv_size_t_signed=yes, tor_cv_size_t_signed=cross)
884 if test "$tor_cv_size_t_signed" = cross; then
885 AC_MSG_NOTICE([Cross compiling: assuming that size_t is not signed.])
888 if test "$tor_cv_size_t_signed" = yes; then
889 AC_MSG_ERROR([You have a signed size_t; that's grossly nonconformant.])
892 AC_CHECK_SIZEOF(socklen_t, , [AC_INCLUDES_DEFAULT()
893 #ifdef HAVE_SYS_SOCKET_H
894 #include <sys/socket.h>
898 # We want to make sure that we _don't_ have a cell_t defined, like IRIX does.
900 AC_CHECK_SIZEOF(cell_t)
902 # Now make sure that NULL can be represented as zero bytes.
903 AC_CACHE_CHECK([whether memset(0) sets pointers to NULL], tor_cv_null_is_zero,
904 [AC_RUN_IFELSE([AC_LANG_SOURCE(
905 [[#include <stdlib.h>
911 int main () { char *p1,*p2; p1=NULL; memset(&p2,0,sizeof(p2));
912 return memcmp(&p1,&p2,sizeof(char*))?1:0; }]])],
913 [tor_cv_null_is_zero=yes],
914 [tor_cv_null_is_zero=no],
915 [tor_cv_null_is_zero=cross])])
917 if test "$tor_cv_null_is_zero" = cross ; then
918 # Cross-compiling; let's hope that the target isn't raving mad.
919 AC_MSG_NOTICE([Cross-compiling: we'll assume that NULL is represented as a sequence of 0-valued bytes.])
922 if test "$tor_cv_null_is_zero" != no; then
923 AC_DEFINE([NULL_REP_IS_ZERO_BYTES], 1,
924 [Define to 1 iff memset(0) sets pointers to NULL])
927 # And what happens when we malloc zero?
928 AC_CACHE_CHECK([whether we can malloc(0) safely.], tor_cv_malloc_zero_works,
929 [AC_RUN_IFELSE([AC_LANG_SOURCE(
930 [[#include <stdlib.h>
936 int main () { return malloc(0)?0:1; }]])],
937 [tor_cv_malloc_zero_works=yes],
938 [tor_cv_malloc_zero_works=no],
939 [tor_cv_malloc_zero_works=cross])])
941 if test "$tor_cv_malloc_zero_works" = cross; then
942 # Cross-compiling; let's hope that the target isn't raving mad.
943 AC_MSG_NOTICE([Cross-compiling: we'll assume that we need to check malloc() arguments for 0.])
946 if test "$tor_cv_malloc_zero_works" = yes; then
947 AC_DEFINE([MALLOC_ZERO_WORKS], 1,
948 [Define to 1 iff malloc(0) returns a pointer])
951 # whether we seem to be in a 2s-complement world.
952 AC_CACHE_CHECK([whether we are using 2s-complement arithmetic], tor_cv_twos_complement,
953 [AC_RUN_IFELSE([AC_LANG_SOURCE(
954 [[int main () { int problem = ((-99) != (~99)+1);
955 return problem ? 1 : 0; }]])],
956 [tor_cv_twos_complement=yes],
957 [tor_cv_twos_complement=no],
958 [tor_cv_twos_complement=cross])])
960 if test "$tor_cv_twos_complement" = cross ; then
961 # Cross-compiling; let's hope that the target isn't raving mad.
962 AC_MSG_NOTICE([Cross-compiling: we'll assume that negative integers are represented with two's complement.])
965 if test "$tor_cv_twos_complement" != no ; then
966 AC_DEFINE([USING_TWOS_COMPLEMENT], 1,
967 [Define to 1 iff we represent negative integers with two's complement])
970 # What does shifting a negative value do?
971 AC_CACHE_CHECK([whether right-shift on negative values does sign-extension], tor_cv_sign_extend,
972 [AC_RUN_IFELSE([AC_LANG_SOURCE(
973 [[int main () { int okay = (-60 >> 8) == -1; return okay ? 0 : 1; }]])],
974 [tor_cv_sign_extend=yes],
975 [tor_cv_sign_extend=no],
976 [tor_cv_sign_extend=cross])])
978 if test "$tor_cv_sign_extend" = cross ; then
979 # Cross-compiling; let's hope that the target isn't raving mad.
980 AC_MSG_NOTICE([Cross-compiling: we'll assume that right-shifting negative integers causes sign-extension])
983 if test "$tor_cv_sign_extend" != no ; then
984 AC_DEFINE([RSHIFT_DOES_SIGN_EXTEND], 1,
985 [Define to 1 iff right-shifting a negative value performs sign-extension])
988 # Whether we should use the dmalloc memory allocation debugging library.
989 AC_MSG_CHECKING(whether to use dmalloc (debug memory allocation library))
991 [ --with-dmalloc Use debug memory allocation library. ],
992 [if [[ "$withval" = "yes" ]]; then
998 fi], [ dmalloc=0; AC_MSG_RESULT(no) ]
1001 if [[ $dmalloc -eq 1 ]]; then
1002 AC_CHECK_HEADERS(dmalloc.h, , AC_MSG_ERROR(dmalloc header file not found. Do you have the development files for dmalloc installed?))
1003 AC_SEARCH_LIBS(dmalloc_malloc, [dmallocth dmalloc], , AC_MSG_ERROR(Libdmalloc library not found. If you enable it you better have it installed.))
1004 AC_DEFINE(USE_DMALLOC, 1, [Debug memory allocation library])
1005 AC_DEFINE(DMALLOC_FUNC_CHECK, 1, [Enable dmalloc's malloc function check])
1006 AC_CHECK_FUNCS(dmalloc_strdup dmalloc_strndup)
1009 AC_ARG_WITH(tcmalloc,
1010 [ --with-tcmalloc Use tcmalloc memory allocation library. ],
1011 [ tcmalloc=yes ], [ tcmalloc=no ])
1013 if test x$tcmalloc = xyes ; then
1014 LDFLAGS="-ltcmalloc $LDFLAGS"
1017 using_custom_malloc=no
1018 if test x$enable_openbsd_malloc = xyes ; then
1019 using_custom_malloc=yes
1021 if test x$tcmalloc = xyes ; then
1022 using_custom_malloc=yes
1024 if test $using_custom_malloc = no ; then
1025 AC_CHECK_FUNCS(mallinfo)
1028 # By default, we're going to assume we don't have mlockall()
1029 # bionic and other platforms have various broken mlockall subsystems.
1030 # Some systems don't have a working mlockall, some aren't linkable,
1031 # and some have it but don't declare it.
1032 AC_CHECK_FUNCS(mlockall)
1033 AC_CHECK_DECLS([mlockall], , , [
1034 #ifdef HAVE_SYS_MMAN_H
1035 #include <sys/mman.h>
1038 # Allow user to specify an alternate syslog facility
1039 AC_ARG_WITH(syslog-facility,
1040 [ --with-syslog-facility=LOG syslog facility to use (default=LOG_DAEMON)],
1041 syslog_facility="$withval", syslog_facility="LOG_DAEMON")
1042 AC_DEFINE_UNQUOTED(LOGFACILITY,$syslog_facility,[name of the syslog facility])
1043 AC_SUBST(LOGFACILITY)
1045 # Check if we have getresuid and getresgid
1046 AC_CHECK_FUNCS(getresuid getresgid)
1048 # Check for gethostbyname_r in all its glorious incompatible versions.
1049 # (This logic is based on that in Python's configure.in)
1050 AH_TEMPLATE(HAVE_GETHOSTBYNAME_R,
1051 [Define this if you have any gethostbyname_r()])
1053 AC_CHECK_FUNC(gethostbyname_r, [
1054 AC_MSG_CHECKING([how many arguments gethostbyname_r() wants])
1056 CFLAGS="$CFLAGS $MY_CPPFLAGS $MY_THREAD_CPPFLAGS $MY_CFLAGS"
1057 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1061 struct hostent *h1, *h2;
1063 (void)gethostbyname_r(cp1,h1,cp2,i1,&h2,&i2);
1065 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
1066 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARG, 1,
1067 [Define this if gethostbyname_r takes 6 arguments])
1076 (void)gethostbyname_r(cp1,h1,cp2,i1,&i2);
1078 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
1079 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARG, 1,
1080 [Define this if gethostbyname_r takes 5 arguments])
1088 struct hostent_data hd;
1089 (void) gethostbyname_r(cp1,h1,&hd);
1091 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
1092 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARG, 1,
1093 [Define this if gethostbyname_r takes 3 arguments])
1103 AC_CACHE_CHECK([whether the C compiler supports __func__],
1104 tor_cv_have_func_macro,
1105 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
1107 int main(int c, char **v) { puts(__func__); }])],
1108 tor_cv_have_func_macro=yes,
1109 tor_cv_have_func_macro=no))
1111 AC_CACHE_CHECK([whether the C compiler supports __FUNC__],
1112 tor_cv_have_FUNC_macro,
1113 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
1115 int main(int c, char **v) { puts(__FUNC__); }])],
1116 tor_cv_have_FUNC_macro=yes,
1117 tor_cv_have_FUNC_macro=no))
1119 AC_CACHE_CHECK([whether the C compiler supports __FUNCTION__],
1120 tor_cv_have_FUNCTION_macro,
1121 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
1123 int main(int c, char **v) { puts(__FUNCTION__); }])],
1124 tor_cv_have_FUNCTION_macro=yes,
1125 tor_cv_have_FUNCTION_macro=no))
1127 AC_CACHE_CHECK([whether we have extern char **environ already declared],
1128 tor_cv_have_environ_declared,
1129 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
1130 /* We define _GNU_SOURCE here because it is also defined in compat.c.
1131 * Without it environ doesn't get declared. */
1133 #ifdef HAVE_UNISTD_H
1137 int main(int c, char **v) { char **t = environ; }])],
1138 tor_cv_have_environ_declared=yes,
1139 tor_cv_have_environ_declared=no))
1141 if test "$tor_cv_have_func_macro" = 'yes'; then
1142 AC_DEFINE(HAVE_MACRO__func__, 1, [Defined if the compiler supports __func__])
1145 if test "$tor_cv_have_FUNC_macro" = 'yes'; then
1146 AC_DEFINE(HAVE_MACRO__FUNC__, 1, [Defined if the compiler supports __FUNC__])
1149 if test "$tor_cv_have_FUNCTION_macro" = 'yes'; then
1150 AC_DEFINE(HAVE_MACRO__FUNCTION__, 1,
1151 [Defined if the compiler supports __FUNCTION__])
1154 if test "$tor_cv_have_environ_declared" = 'yes'; then
1155 AC_DEFINE(HAVE_EXTERN_ENVIRON_DECLARED, 1,
1156 [Defined if we have extern char **environ already declared])
1159 # $prefix stores the value of the --prefix command line option, or
1160 # NONE if the option wasn't set. In the case that it wasn't set, make
1161 # it be the default, so that we can use it to expand directories now.
1162 if test "x$prefix" = "xNONE"; then
1163 prefix=$ac_default_prefix
1166 # and similarly for $exec_prefix
1167 if test "x$exec_prefix" = "xNONE"; then
1171 if test "x$BUILDDIR" = "x"; then
1175 AH_TEMPLATE([BUILDDIR],[tor's build directory])
1176 AC_DEFINE_UNQUOTED(BUILDDIR,"$BUILDDIR")
1178 if test "x$CONFDIR" = "x"; then
1179 CONFDIR=`eval echo $sysconfdir/tor`
1182 AH_TEMPLATE([CONFDIR],[tor's configuration directory])
1183 AC_DEFINE_UNQUOTED(CONFDIR,"$CONFDIR")
1185 BINDIR=`eval echo $bindir`
1187 LOCALSTATEDIR=`eval echo $localstatedir`
1188 AC_SUBST(LOCALSTATEDIR)
1190 if test "$bwin32" = true; then
1191 # Test if the linker supports the --nxcompat and --dynamicbase options
1193 save_LDFLAGS="$LDFLAGS"
1194 LDFLAGS="-Wl,--nxcompat -Wl,--dynamicbase"
1195 AC_MSG_CHECKING([whether the linker supports DllCharacteristics])
1196 AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
1197 [AC_MSG_RESULT([yes])]
1198 [save_LDFLAGS="$save_LDFLAGS $LDFLAGS"],
1199 [AC_MSG_RESULT([no])]
1201 LDFLAGS="$save_LDFLAGS"
1204 # Set CFLAGS _after_ all the above checks, since our warnings are stricter
1205 # than autoconf's macros like.
1206 if test "$GCC" = yes; then
1207 # Disable GCC's strict aliasing checks. They are an hours-to-debug
1208 # accident waiting to happen.
1209 CFLAGS="$CFLAGS -Wall -fno-strict-aliasing"
1211 # Autoconf sets -g -O2 by default. Override optimization level
1212 # for non-gcc compilers
1214 enable_gcc_warnings=no
1215 enable_gcc_warnings_advisory=no
1218 # OS X Lion started deprecating the system openssl. Let's just disable
1219 # all deprecation warnings on OS X. Also, to potentially make the binary
1220 # a little smaller, let's enable dead_strip.
1224 CFLAGS="$CFLAGS -Wno-deprecated-declarations"
1225 LDFLAGS="$LDFLAGS -dead_strip" ;;
1228 # Add some more warnings which we use in development but not in the
1229 # released versions. (Some relevant gcc versions can't handle these.)
1230 if test x$enable_gcc_warnings = xyes || test x$enable_gcc_warnings_advisory = xyes; then
1232 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [
1233 #if !defined(__GNUC__) || (__GNUC__ < 4)
1235 #endif])], have_gcc4=yes, have_gcc4=no)
1237 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [
1238 #if !defined(__GNUC__) || (__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 2)
1240 #endif])], have_gcc42=yes, have_gcc42=no)
1242 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [
1243 #if !defined(__GNUC__) || (__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 3)
1245 #endif])], have_gcc43=yes, have_gcc43=no)
1247 save_CFLAGS="$CFLAGS"
1248 CFLAGS="$CFLAGS -Wshorten-64-to-32"
1249 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [])], have_shorten64_flag=yes,
1250 have_shorten64_flag=no)
1251 CFLAGS="$save_CFLAGS"
1255 # Some OpenBSD versions (like 4.8) have -Wsystem-headers by default.
1256 # That's fine, except that the headers don't pass -Wredundant-decls.
1257 # Therefore, let's disable -Wsystem-headers when we're building
1258 # with maximal warnings on OpenBSD.
1259 CFLAGS="$CFLAGS -Wno-system-headers" ;;
1262 CFLAGS="$CFLAGS -W -Wfloat-equal -Wundef -Wpointer-arith"
1263 CFLAGS="$CFLAGS -Wstrict-prototypes -Wmissing-prototypes -Wwrite-strings"
1264 CFLAGS="$CFLAGS -Wredundant-decls -Wchar-subscripts -Wcomment -Wformat=2"
1265 CFLAGS="$CFLAGS -Wwrite-strings -Wmissing-declarations -Wredundant-decls"
1266 CFLAGS="$CFLAGS -Wnested-externs -Wbad-function-cast -Wswitch-enum"
1268 if test x$enable_gcc_warnings = xyes; then
1269 CFLAGS="$CFLAGS -Werror"
1272 # Disabled, so we can use mallinfo(): -Waggregate-return
1274 if test x$have_gcc4 = xyes ; then
1275 # These warnings break gcc 3.3.5 and work on gcc 4.0.2
1276 CFLAGS="$CFLAGS -Winit-self -Wmissing-field-initializers -Wdeclaration-after-statement -Wold-style-definition"
1279 if test x$have_gcc42 = xyes ; then
1280 # These warnings break gcc 4.0.2 and work on gcc 4.2
1281 # XXXX020 See if any of these work with earlier versions.
1282 CFLAGS="$CFLAGS -Waddress -Wmissing-noreturn -Wstrict-overflow=1"
1284 # We used to use -Wstrict-overflow=5, but that breaks us heavily under 4.3.
1287 if test x$have_gcc42 = xyes && test x$have_clang = xno; then
1288 # These warnings break gcc 4.0.2 and clang, but work on gcc 4.2
1289 CFLAGS="$CFLAGS -Wnormalized=id -Woverride-init"
1292 if test x$have_gcc43 = xyes ; then
1293 # These warnings break gcc 4.2 and work on gcc 4.3
1294 # XXXX020 See if any of these work with earlier versions.
1295 CFLAGS="$CFLAGS -Wextra -Warray-bounds"
1298 if test x$have_shorten64_flag = xyes ; then
1299 CFLAGS="$CFLAGS -Wshorten-64-to-32"
1302 ##This will break the world on some 64-bit architectures
1303 # CFLAGS="$CFLAGS -Winline"
1308 CPPFLAGS="$CPPFLAGS $TOR_CPPFLAGS_libevent $TOR_CPPFLAGS_openssl $TOR_CPPFLAGS_zlib"
1314 contrib/tor.logrotate
1318 src/config/torrc.sample
1324 if test -x /usr/bin/perl && test -x ./contrib/updateVersions.pl ; then
1325 ./contrib/updateVersions.pl