diff --git a/Makefile.am b/Makefile.am index 21eeb31dc..cea3a053c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,6 +1,6 @@ ACLOCAL_AMFLAGS = -I m4 SUBDIRS = include @ZLIBDIR@ src @EXAMPLESDIR@ test -EXTRA_DIST = docs/manual.html docs/manual.rst docs/extension_protocol.rst \ +EXTRA_DIST = autotool.sh docs/manual.html docs/manual.rst docs/extension_protocol.rst \ docs/extension_protocol.html \ docs/projects.rst docs/projects.html \ docs/building.rst docs/building.html \ @@ -32,9 +32,6 @@ docs/moopolice_thumb.gif \ docs/qbittorrent_thumb.jpg \ docs/ziptorrent_thumb.gif \ docs/unicode_support.png docs/client_test.png docs/style.css Jamfile project-root.jam \ -m4/ac_cxx_namespaces.m4 m4/acx_pthread.m4 m4/ax_boost_date_time.m4 \ -m4/ax_boost_filesystem.m4 m4/ax_boost_thread.m4 \ -m4/ax_boost_asio.m4 m4/ax_boost_system.m4 m4/check_ssl.m4 \ src/file_win.cpp libtorrent.pc \ bindings/README.txt \ bindings/python/Jamfile \ diff --git a/autotool.sh b/autotool.sh new file mode 100755 index 000000000..a52a1e438 --- /dev/null +++ b/autotool.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +# $Id$ + +set -e +set -x + +aclocal -I m4 +libtoolize -c -f +automake -a -c -f +autoconf + +rm -Rf config.cache autom4te.cache diff --git a/configure.in b/configure.in index 0de273f66..ee97d29dd 100644 --- a/configure.in +++ b/configure.in @@ -27,18 +27,32 @@ AC_PROG_LIBTOOL AC_SYS_LARGEFILE -SAVED_LIBS="$LIBS" - -dnl Check for pthreads and boost libraries. +dnl Check for pthreads. ACX_PTHREAD +dnl Apply pthread config. +CC=$PTHREAD_CC +CPPFLAGS="$CPPFLAGS $PTHREAD_CFLAGS" +LIBS="$LIBS $PTHREAD_LIBS" -AX_BOOST_BASE([1.34]) +dnl Check for boost libraries. +AX_BOOST_BASE([1.35],[ + AX_BOOST_SYSTEM + dnl check that Boost.System was found: + if test -z "$BOOST_SYSTEM_LIB"; then + AC_MSG_ERROR([unable to find Boost.System library, currently this is required.]) + fi -AX_BOOST_SYSTEM -dnl check that Boost.System was found: -if test -z "$BOOST_SYSTEM_LIB"; then - AC_MSG_ERROR([unable to find Boost.System library, currently this is required.]) -fi + AX_BOOST_ASIO + dnl check that Boost.Asio was found: + if test -z "$BOOST_ASIO_LIB"; then + AC_MSG_ERROR([Unable to find Boost.Asio library, currently this is required.]) + fi +],[ + AX_BOOST_BASE([1.34]) +]) + +AC_MSG_NOTICE([BOOST_CPPFLAGS=$BOOST_CPPFLAGS]) +AC_MSG_NOTICE([BOOST_LDFLAGS=$BOOST_LDFLAGS]) AX_BOOST_IOSTREAMS dnl check that Boost.IOStreams was found: @@ -47,35 +61,24 @@ if test -z "$BOOST_IOSTREAMS_LIB"; then fi AX_BOOST_DATE_TIME - dnl check that Boost.DateTime was found: if test -z "$BOOST_DATE_TIME_LIB"; then AC_MSG_ERROR([Unable to find Boost.DateTime library, currently this is required.]) fi AX_BOOST_FILESYSTEM - dnl check that Boost.Filesystem was found: if test -z "$BOOST_FILESYSTEM_LIB"; then AC_MSG_ERROR([Unable to find Boost.Filesystem library, currently this is required.]) fi AX_BOOST_THREAD - dnl check that Boost.Thread was found: if test -z "$BOOST_THREAD_LIB"; then AC_MSG_ERROR([Unable to find Boost.Thread library, currently this is required.]) fi -AX_BOOST_ASIO - -dnl check that Boost.Asio was found: -if test -z "$BOOST_ASIO_LIB"; then - AC_MSG_ERROR([Unable to find Boost.Asio library, currently this is required.]) -fi - AX_BOOST_REGEX - dnl check that Boost.Regex was found: if test -z "$BOOST_REGEX_LIB"; then AC_MSG_RESULT([Unable to find Boost.Regex library, example test_client will not be build.]) @@ -83,14 +86,15 @@ if test -z "$BOOST_REGEX_LIB"; then fi AX_BOOST_PROGRAM_OPTIONS - dnl check that Boost.Program_options was found: if test -z "$BOOST_PROGRAM_OPTIONS_LIB"; then AC_MSG_RESULT([Unable to find Boost.Program_options library, example test_client will not be build.]) BUILD_TESTCLIENT=no; fi -LIBS="$SAVED_LIBS" +dnl Apply boost config. +CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" +LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" if [[ "x$BUILD_TESTCLIENT" != "xno" ]]; then CLIENT_TEST_BIN=client_test; diff --git a/include/Makefile.am b/include/Makefile.am index 383f012c3..4524564bc 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -101,9 +101,95 @@ libtorrent/kademlia/rpc_manager.hpp \ libtorrent/kademlia/traversal_algorithm.hpp \ \ libtorrent/asio.hpp \ +libtorrent/asio/detail/bind_handler.hpp \ +libtorrent/asio/detail/buffer_resize_guard.hpp \ +libtorrent/asio/detail/buffered_stream_storage.hpp \ +libtorrent/asio/detail/call_stack.hpp \ +libtorrent/asio/detail/const_buffers_iterator.hpp \ +libtorrent/asio/detail/consuming_buffers.hpp \ +libtorrent/asio/detail/deadline_timer_service.hpp \ +libtorrent/asio/detail/descriptor_ops.hpp \ +libtorrent/asio/detail/dev_poll_reactor.hpp \ +libtorrent/asio/detail/dev_poll_reactor_fwd.hpp \ +libtorrent/asio/detail/epoll_reactor.hpp \ +libtorrent/asio/detail/epoll_reactor_fwd.hpp \ +libtorrent/asio/detail/event.hpp \ +libtorrent/asio/detail/fd_set_adapter.hpp \ +libtorrent/asio/detail/handler_alloc_helpers.hpp \ +libtorrent/asio/detail/handler_base_from_member.hpp \ +libtorrent/asio/detail/handler_invoke_helpers.hpp \ +libtorrent/asio/detail/handler_queue.hpp \ +libtorrent/asio/detail/hash_map.hpp \ +libtorrent/asio/detail/indirect_handler_queue.hpp \ +libtorrent/asio/detail/io_control.hpp \ +libtorrent/asio/detail/kqueue_reactor.hpp \ +libtorrent/asio/detail/kqueue_reactor_fwd.hpp \ +libtorrent/asio/detail/local_free_on_block_exit.hpp \ +libtorrent/asio/detail/mutex.hpp \ +libtorrent/asio/detail/noncopyable.hpp \ +libtorrent/asio/detail/null_event.hpp \ +libtorrent/asio/detail/null_mutex.hpp \ +libtorrent/asio/detail/null_signal_blocker.hpp \ +libtorrent/asio/detail/null_thread.hpp \ +libtorrent/asio/detail/null_tss_ptr.hpp \ +libtorrent/asio/detail/old_win_sdk_compat.hpp \ +libtorrent/asio/detail/pipe_select_interrupter.hpp \ +libtorrent/asio/detail/pop_options.hpp \ +libtorrent/asio/detail/posix_event.hpp \ +libtorrent/asio/detail/posix_fd_set_adapter.hpp \ +libtorrent/asio/detail/posix_mutex.hpp \ +libtorrent/asio/detail/posix_signal_blocker.hpp \ +libtorrent/asio/detail/posix_thread.hpp \ +libtorrent/asio/detail/posix_tss_ptr.hpp \ +libtorrent/asio/detail/push_options.hpp \ +libtorrent/asio/detail/reactive_descriptor_service.hpp \ +libtorrent/asio/detail/reactive_serial_port_service.hpp \ +libtorrent/asio/detail/reactive_socket_service.hpp \ +libtorrent/asio/detail/reactor_op_queue.hpp \ +libtorrent/asio/detail/resolver_service.hpp \ +libtorrent/asio/detail/scoped_lock.hpp \ +libtorrent/asio/detail/select_interrupter.hpp \ +libtorrent/asio/detail/select_reactor.hpp \ +libtorrent/asio/detail/select_reactor_fwd.hpp \ +libtorrent/asio/detail/service_base.hpp \ +libtorrent/asio/detail/service_id.hpp \ +libtorrent/asio/detail/service_registry.hpp \ +libtorrent/asio/detail/service_registry_fwd.hpp \ +libtorrent/asio/detail/signal_blocker.hpp \ +libtorrent/asio/detail/signal_init.hpp \ +libtorrent/asio/detail/socket_holder.hpp \ +libtorrent/asio/detail/socket_ops.hpp \ +libtorrent/asio/detail/socket_option.hpp \ +libtorrent/asio/detail/socket_select_interrupter.hpp \ +libtorrent/asio/detail/socket_types.hpp \ +libtorrent/asio/detail/strand_service.hpp \ +libtorrent/asio/detail/task_io_service.hpp \ +libtorrent/asio/detail/task_io_service_2lock.hpp \ +libtorrent/asio/detail/task_io_service_fwd.hpp \ +libtorrent/asio/detail/thread.hpp \ +libtorrent/asio/detail/throw_error.hpp \ +libtorrent/asio/detail/timer_queue.hpp \ +libtorrent/asio/detail/timer_queue_base.hpp \ +libtorrent/asio/detail/tss_ptr.hpp \ +libtorrent/asio/detail/win_event.hpp \ +libtorrent/asio/detail/win_fd_set_adapter.hpp \ +libtorrent/asio/detail/win_iocp_handle_service.hpp \ +libtorrent/asio/detail/win_iocp_io_service.hpp \ +libtorrent/asio/detail/win_iocp_io_service_fwd.hpp \ +libtorrent/asio/detail/win_iocp_serial_port_service.hpp \ +libtorrent/asio/detail/win_iocp_socket_service.hpp \ +libtorrent/asio/detail/win_mutex.hpp \ +libtorrent/asio/detail/win_signal_blocker.hpp \ +libtorrent/asio/detail/win_thread.hpp \ +libtorrent/asio/detail/win_tss_ptr.hpp \ +libtorrent/asio/detail/wince_thread.hpp \ +libtorrent/asio/detail/winsock_init.hpp \ +libtorrent/asio/detail/wrapped_handler.hpp \ libtorrent/asio/basic_datagram_socket.hpp \ libtorrent/asio/basic_deadline_timer.hpp \ libtorrent/asio/basic_io_object.hpp \ +libtorrent/asio/basic_raw_socket.hpp \ +libtorrent/asio/basic_serial_port.hpp \ libtorrent/asio/basic_socket.hpp \ libtorrent/asio/basic_socket_acceptor.hpp \ libtorrent/asio/basic_socket_iostream.hpp \ @@ -129,8 +215,13 @@ libtorrent/asio/io_service.hpp \ libtorrent/asio/is_read_buffered.hpp \ libtorrent/asio/is_write_buffered.hpp \ libtorrent/asio/placeholders.hpp \ +libtorrent/asio/raw_socket_service.hpp \ libtorrent/asio/read.hpp \ +libtorrent/asio/read_at.hpp \ libtorrent/asio/read_until.hpp \ +libtorrent/asio/serial_port.hpp \ +libtorrent/asio/serial_port_base.hpp \ +libtorrent/asio/serial_port_service.hpp \ libtorrent/asio/socket_acceptor_service.hpp \ libtorrent/asio/socket_base.hpp \ libtorrent/asio/ssl.hpp \ @@ -142,87 +233,16 @@ libtorrent/asio/thread.hpp \ libtorrent/asio/time_traits.hpp \ libtorrent/asio/version.hpp \ libtorrent/asio/write.hpp \ -libtorrent/asio/detail/bind_handler.hpp \ -libtorrent/asio/detail/buffer_resize_guard.hpp \ -libtorrent/asio/detail/buffered_stream_storage.hpp \ -libtorrent/asio/detail/call_stack.hpp \ -libtorrent/asio/detail/const_buffers_iterator.hpp \ -libtorrent/asio/detail/consuming_buffers.hpp \ -libtorrent/asio/detail/deadline_timer_service.hpp \ -libtorrent/asio/detail/dev_poll_reactor.hpp \ -libtorrent/asio/detail/dev_poll_reactor_fwd.hpp \ -libtorrent/asio/detail/epoll_reactor.hpp \ -libtorrent/asio/detail/epoll_reactor_fwd.hpp \ -libtorrent/asio/detail/event.hpp \ -libtorrent/asio/detail/fd_set_adapter.hpp \ -libtorrent/asio/detail/handler_alloc_helpers.hpp \ -libtorrent/asio/detail/handler_invoke_helpers.hpp \ -libtorrent/asio/detail/handler_queue.hpp \ -libtorrent/asio/detail/hash_map.hpp \ -libtorrent/asio/detail/io_control.hpp \ -libtorrent/asio/detail/kqueue_reactor.hpp \ -libtorrent/asio/detail/kqueue_reactor_fwd.hpp \ -libtorrent/asio/detail/local_free_on_block_exit.hpp \ -libtorrent/asio/detail/mutex.hpp \ -libtorrent/asio/detail/noncopyable.hpp \ -libtorrent/asio/detail/null_event.hpp \ -libtorrent/asio/detail/null_mutex.hpp \ -libtorrent/asio/detail/null_signal_blocker.hpp \ -libtorrent/asio/detail/null_thread.hpp \ -libtorrent/asio/detail/null_tss_ptr.hpp \ -libtorrent/asio/detail/old_win_sdk_compat.hpp \ -libtorrent/asio/detail/pipe_select_interrupter.hpp \ -libtorrent/asio/detail/pop_options.hpp \ -libtorrent/asio/detail/posix_event.hpp \ -libtorrent/asio/detail/posix_fd_set_adapter.hpp \ -libtorrent/asio/detail/posix_mutex.hpp \ -libtorrent/asio/detail/posix_signal_blocker.hpp \ -libtorrent/asio/detail/posix_thread.hpp \ -libtorrent/asio/detail/posix_tss_ptr.hpp \ -libtorrent/asio/detail/push_options.hpp \ -libtorrent/asio/detail/reactive_socket_service.hpp \ -libtorrent/asio/detail/reactor_op_queue.hpp \ -libtorrent/asio/detail/resolver_service.hpp \ -libtorrent/asio/detail/scoped_lock.hpp \ -libtorrent/asio/detail/select_interrupter.hpp \ -libtorrent/asio/detail/select_reactor.hpp \ -libtorrent/asio/detail/select_reactor_fwd.hpp \ -libtorrent/asio/detail/service_base.hpp \ -libtorrent/asio/detail/service_id.hpp \ -libtorrent/asio/detail/service_registry.hpp \ -libtorrent/asio/detail/service_registry_fwd.hpp \ -libtorrent/asio/detail/signal_blocker.hpp \ -libtorrent/asio/detail/signal_init.hpp \ -libtorrent/asio/detail/socket_holder.hpp \ -libtorrent/asio/detail/socket_ops.hpp \ -libtorrent/asio/detail/socket_option.hpp \ -libtorrent/asio/detail/socket_select_interrupter.hpp \ -libtorrent/asio/detail/socket_types.hpp \ -libtorrent/asio/detail/strand_service.hpp \ -libtorrent/asio/detail/task_io_service.hpp \ -libtorrent/asio/detail/task_io_service_fwd.hpp \ -libtorrent/asio/detail/thread.hpp \ -libtorrent/asio/detail/throw_error.hpp \ -libtorrent/asio/detail/timer_queue.hpp \ -libtorrent/asio/detail/timer_queue_base.hpp \ -libtorrent/asio/detail/tss_ptr.hpp \ -libtorrent/asio/detail/win_event.hpp \ -libtorrent/asio/detail/win_fd_set_adapter.hpp \ -libtorrent/asio/detail/win_iocp_io_service.hpp \ -libtorrent/asio/detail/win_iocp_io_service_fwd.hpp \ -libtorrent/asio/detail/win_iocp_socket_service.hpp \ -libtorrent/asio/detail/win_mutex.hpp \ -libtorrent/asio/detail/win_signal_blocker.hpp \ -libtorrent/asio/detail/win_thread.hpp \ -libtorrent/asio/detail/win_tss_ptr.hpp \ -libtorrent/asio/detail/wince_thread.hpp \ -libtorrent/asio/detail/winsock_init.hpp \ -libtorrent/asio/detail/wrapped_handler.hpp \ +libtorrent/asio/write_at.hpp \ libtorrent/asio/impl/error_code.ipp \ libtorrent/asio/impl/io_service.ipp \ libtorrent/asio/impl/read.ipp \ +libtorrent/asio/impl/read_at.ipp \ libtorrent/asio/impl/read_until.ipp \ +libtorrent/asio/impl/serial_port_base.ipp \ libtorrent/asio/impl/write.ipp \ +libtorrent/asio/impl/write_at.ipp \ +libtorrent/asio/ip/detail/socket_option.hpp \ libtorrent/asio/ip/address.hpp \ libtorrent/asio/ip/address_v4.hpp \ libtorrent/asio/ip/address_v6.hpp \ @@ -232,6 +252,7 @@ libtorrent/asio/ip/basic_resolver_entry.hpp \ libtorrent/asio/ip/basic_resolver_iterator.hpp \ libtorrent/asio/ip/basic_resolver_query.hpp \ libtorrent/asio/ip/host_name.hpp \ +libtorrent/asio/ip/icmp.hpp \ libtorrent/asio/ip/multicast.hpp \ libtorrent/asio/ip/resolver_query_base.hpp \ libtorrent/asio/ip/resolver_service.hpp \ @@ -239,7 +260,20 @@ libtorrent/asio/ip/tcp.hpp \ libtorrent/asio/ip/udp.hpp \ libtorrent/asio/ip/unicast.hpp \ libtorrent/asio/ip/v6_only.hpp \ -libtorrent/asio/ip/detail/socket_option.hpp \ +libtorrent/asio/local/basic_endpoint.hpp \ +libtorrent/asio/local/connect_pair.hpp \ +libtorrent/asio/local/datagram_protocol.hpp \ +libtorrent/asio/local/stream_protocol.hpp \ +libtorrent/asio/posix/basic_descriptor.hpp \ +libtorrent/asio/posix/basic_stream_descriptor.hpp \ +libtorrent/asio/posix/descriptor_base.hpp \ +libtorrent/asio/posix/stream_descriptor.hpp \ +libtorrent/asio/posix/stream_descriptor_service.hpp \ +libtorrent/asio/ssl/detail/openssl_context_service.hpp \ +libtorrent/asio/ssl/detail/openssl_init.hpp \ +libtorrent/asio/ssl/detail/openssl_operation.hpp \ +libtorrent/asio/ssl/detail/openssl_stream_service.hpp \ +libtorrent/asio/ssl/detail/openssl_types.hpp \ libtorrent/asio/ssl/basic_context.hpp \ libtorrent/asio/ssl/context.hpp \ libtorrent/asio/ssl/context_base.hpp \ @@ -247,9 +281,10 @@ libtorrent/asio/ssl/context_service.hpp \ libtorrent/asio/ssl/stream.hpp \ libtorrent/asio/ssl/stream_base.hpp \ libtorrent/asio/ssl/stream_service.hpp \ -libtorrent/asio/ssl/detail/openssl_context_service.hpp \ -libtorrent/asio/ssl/detail/openssl_init.hpp \ -libtorrent/asio/ssl/detail/openssl_operation.hpp \ -libtorrent/asio/ssl/detail/openssl_stream_service.hpp \ -libtorrent/asio/ssl/detail/openssl_types.hpp - +libtorrent/asio/windows/basic_handle.hpp \ +libtorrent/asio/windows/basic_random_access_handle.hpp \ +libtorrent/asio/windows/basic_stream_handle.hpp \ +libtorrent/asio/windows/random_access_handle.hpp \ +libtorrent/asio/windows/random_access_handle_service.hpp \ +libtorrent/asio/windows/stream_handle.hpp \ +libtorrent/asio/windows/stream_handle_service.hpp diff --git a/include/get_asio.sh b/include/get_asio.sh new file mode 100755 index 000000000..05f2edaaf --- /dev/null +++ b/include/get_asio.sh @@ -0,0 +1,13 @@ +#! /bin/sh + +# $Id$ + +set -x +set -e + +rm -Rf asio +rm -Rf libtorrent/asio* +#cvs -d :pserver:anonymous@asio.cvs.sourceforge.net:/cvsroot/asio login # uncomment this if you're the first time, use empty password +cvs -d :pserver:anonymous@asio.cvs.sourceforge.net:/cvsroot/asio export -D 'Fri, 13 Jun 2008 14:18:47 +0400' -d asio asio/include +ln -s ../asio/asio libtorrent +ln -s ../asio/asio.hpp libtorrent diff --git a/m4/ax_boost_asio.m4 b/m4/ax_boost_asio-fixed.m4 similarity index 94% rename from m4/ax_boost_asio.m4 rename to m4/ax_boost_asio-fixed.m4 index 64d1f834f..9b0d54969 100644 --- a/m4/ax_boost_asio.m4 +++ b/m4/ax_boost_asio-fixed.m4 @@ -28,6 +28,7 @@ # # Copyright (c) 2008 Thomas Porschberg # Copyright (c) 2008 Pete Greenwell +# Copyright (c) 2008 Roman Rybalko (using BOOST_SYSTEM_LIB) # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice @@ -83,8 +84,9 @@ AC_DEFUN([AX_BOOST_ASIO], if test "x$ax_cv_boost_asio" = "xyes"; then AC_DEFINE(HAVE_BOOST_ASIO,,[define if the Boost::ASIO library is available]) BN=boost_system + BN2=`echo $BOOST_SYSTEM_LIB | sed 's/-l//'` if test "x$ax_boost_user_asio_lib" = "x"; then - for ax_lib in $BN $BN-$CC $BN-$CC-mt $BN-$CC-mt-s $BN-$CC-s \ + for ax_lib in $BN2 $BN $BN-$CC $BN-$CC-mt $BN-$CC-mt-s $BN-$CC-s \ lib$BN lib$BN-$CC lib$BN-$CC-mt lib$BN-$CC-mt-s lib$BN-$CC-s \ $BN-mgw $BN-mgw $BN-mgw-mt $BN-mgw-mt-s $BN-mgw-s ; do AC_CHECK_LIB($ax_lib, main, [BOOST_ASIO_LIB="-l$ax_lib" AC_SUBST(BOOST_ASIO_LIB) link_thread="yes" break], diff --git a/m4/ax_boost_base.m4 b/m4/ax_boost_base-fixed.m4 similarity index 87% rename from m4/ax_boost_base.m4 rename to m4/ax_boost_base-fixed.m4 index 2e5afd091..87027655d 100644 --- a/m4/ax_boost_base.m4 +++ b/m4/ax_boost_base-fixed.m4 @@ -4,7 +4,7 @@ # # SYNOPSIS # -# AX_BOOST_BASE([MINIMUM-VERSION]) +# AX_BOOST_BASE([MINIMUM-VERSION],[ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND]) # # DESCRIPTION # @@ -25,12 +25,16 @@ # # LAST MODIFICATION # -# 2008-04-12 +# 2008-04-12 - original +# 2008-06-13 - AIF/AINF parameters # # COPYLEFT # # Copyright (c) 2008 Thomas Porschberg # +# Copyright (c) 2008 Roman Rybalko (under RbLibtorrent project) +# (ACTION-IF-FOUND/ACTION-IF-NOT-FOUND options, re-enterability fixes) +# # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. @@ -203,21 +207,28 @@ if test "x$want_boost" = "xyes"; then ]) AC_LANG_POP([C++]) fi + + CPPFLAGS="$CPPFLAGS_SAVED" + LDFLAGS="$LDFLAGS_SAVED" + unset ac_boost_path # re-enterability if test "$succeeded" != "yes" ; then - if test "$_version" = "0" ; then - AC_MSG_ERROR([[We could not detect the boost libraries (version $boost_lib_version_req_shorten or higher). If you have a staged boost library (still not installed) please specify \$BOOST_ROOT in your environment and do not give a PATH to --with-boost option. If you are sure you have boost installed, then check your version number looking in . See http://randspringer.de/boost for more documentation.]]) - else - AC_MSG_NOTICE([Your boost libraries seems to old (version $_version).]) - fi + ifelse([$3], ,[ + if test "$_version" = "0" ; then + AC_MSG_ERROR([[We could not detect the boost libraries (version $boost_lib_version_req_shorten or higher). If you have a staged boost library (still not installed) please specify \$BOOST_ROOT in your environment and do not give a PATH to --with-boost option. If you are sure you have boost installed, then check your version number looking in . See http://randspringer.de/boost for more documentation.]]) + else + AC_MSG_NOTICE([Your boost libraries seems to old (version $_version).]) + fi + ],[ + AC_MSG_RESULT(no) + $3 + ]) else + $2 AC_SUBST(BOOST_CPPFLAGS) AC_SUBST(BOOST_LDFLAGS) AC_DEFINE(HAVE_BOOST,,[define if the Boost library is available]) fi - - CPPFLAGS="$CPPFLAGS_SAVED" - LDFLAGS="$LDFLAGS_SAVED" fi ]) diff --git a/m4/ax_boost_filesystem.m4 b/m4/ax_boost_filesystem-fixed.m4 similarity index 95% rename from m4/ax_boost_filesystem.m4 rename to m4/ax_boost_filesystem-fixed.m4 index 76a31b5ba..b9b149f79 100644 --- a/m4/ax_boost_filesystem.m4 +++ b/m4/ax_boost_filesystem-fixed.m4 @@ -28,6 +28,7 @@ # # Copyright (c) 2008 Thomas Porschberg # Copyright (c) 2008 Michael Tindal +# Copyright (c) 2008 Roman Rybalko (using BOOST_SYSTEM_LIB) # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice @@ -62,6 +63,10 @@ AC_DEFUN([AX_BOOST_FILESYSTEM], LDFLAGS_SAVED="$LDFLAGS" LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" export LDFLAGS + + LIBS_SAVED=$LIBS + LIBS="$LIBS $BOOST_SYSTEM_LIB" + export LIBS AC_CACHE_CHECK(whether the Boost::Filesystem library is available, ax_cv_boost_filesystem, @@ -105,6 +110,7 @@ AC_DEFUN([AX_BOOST_FILESYSTEM], fi CPPFLAGS="$CPPFLAGS_SAVED" - LDFLAGS="$LDFLAGS_SAVED" + LDFLAGS="$LDFLAGS_SAVED" + LIBS="$LIBS_SAVED" fi ]) diff --git a/src/Makefile.am b/src/Makefile.am index 856eeebdc..e88d96f97 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -72,7 +72,7 @@ $(top_srcdir)/include/libtorrent/peer.hpp \ $(top_srcdir)/include/libtorrent/peer_connection.hpp \ $(top_srcdir)/include/libtorrent/bt_peer_connection.hpp \ $(top_srcdir)/include/libtorrent/web_peer_connection.hpp \ -$(top_srcdir)/include/libtorrent/pares_url.hpp \ +$(top_srcdir)/include/libtorrent/parse_url.hpp \ $(top_srcdir)/include/libtorrent/pe_crypto.hpp \ $(top_srcdir)/include/libtorrent/natpmp.hpp \ $(top_srcdir)/include/libtorrent/pch.hpp \ diff --git a/test/test_buffer.cpp b/test/test_buffer.cpp index b3c8c6432..8f55c5aad 100644 --- a/test/test_buffer.cpp +++ b/test/test_buffer.cpp @@ -192,9 +192,9 @@ int copy_buffers(T const& b, char* target) for (typename T::const_iterator i = b.begin() , end(b.end()); i != end; ++i) { - memcpy(target, asio::buffer_cast(*i), asio::buffer_size(*i)); - target += asio::buffer_size(*i); - copied += asio::buffer_size(*i); + memcpy(target, libtorrent::asio::buffer_cast(*i), libtorrent::asio::buffer_size(*i)); + target += libtorrent::asio::buffer_size(*i); + copied += libtorrent::asio::buffer_size(*i); } return copied; } @@ -203,7 +203,7 @@ bool compare_chained_buffer(chained_buffer& b, char const* mem, int size) { if (size == 0) return true; std::vector flat(size); - std::list const& iovec2 = b.build_iovec(size); + std::list const& iovec2 = b.build_iovec(size); int copied = copy_buffers(iovec2, &flat[0]); TEST_CHECK(copied == size); return std::memcmp(&flat[0], mem, size) == 0; diff --git a/test/test_fast_extension.cpp b/test/test_fast_extension.cpp index cf1855884..14f063581 100644 --- a/test/test_fast_extension.cpp +++ b/test/test_fast_extension.cpp @@ -11,7 +11,7 @@ int read_message(stream_socket& s, char* buffer) { using namespace libtorrent::detail; error_code ec; - asio::read(s, asio::buffer(buffer, 4), asio::transfer_all(), ec); + libtorrent::asio::read(s, libtorrent::asio::buffer(buffer, 4), libtorrent::asio::transfer_all(), ec); if (ec) { std::cout << ec.message() << std::endl; @@ -20,7 +20,7 @@ int read_message(stream_socket& s, char* buffer) char* ptr = buffer; int length = read_int32(ptr); - asio::read(s, asio::buffer(buffer, length), asio::transfer_all(), ec); + libtorrent::asio::read(s, libtorrent::asio::buffer(buffer, length), libtorrent::asio::transfer_all(), ec); if (ec) { std::cout << ec.message() << std::endl; @@ -41,7 +41,7 @@ void send_allow_fast(stream_socket& s, int piece) char* ptr = msg + 5; write_int32(piece, ptr); error_code ec; - asio::write(s, asio::buffer(msg, 9), asio::transfer_all(), ec); + libtorrent::asio::write(s, libtorrent::asio::buffer(msg, 9), libtorrent::asio::transfer_all(), ec); if (ec) { std::cout << ec.message() << std::endl; @@ -57,7 +57,7 @@ void send_suggest_piece(stream_socket& s, int piece) char* ptr = msg + 5; write_int32(piece, ptr); error_code ec; - asio::write(s, asio::buffer(msg, 9), asio::transfer_all(), ec); + libtorrent::asio::write(s, libtorrent::asio::buffer(msg, 9), libtorrent::asio::transfer_all(), ec); if (ec) { std::cout << ec.message() << std::endl; @@ -70,7 +70,7 @@ void send_unchoke(stream_socket& s) std::cout << "send unchoke" << std::endl; char msg[] = "\0\0\0\x01\x01"; error_code ec; - asio::write(s, asio::buffer(msg, 5), asio::transfer_all(), ec); + libtorrent::asio::write(s, libtorrent::asio::buffer(msg, 5), libtorrent::asio::transfer_all(), ec); if (ec) { std::cout << ec.message() << std::endl; @@ -87,7 +87,7 @@ void do_handshake(stream_socket& s, sha1_hash const& ih, char* buffer) std::cout << "send handshake" << std::endl; error_code ec; std::memcpy(handshake + 28, ih.begin(), 20); - asio::write(s, asio::buffer(handshake, sizeof(handshake) - 1), asio::transfer_all(), ec); + libtorrent::asio::write(s, libtorrent::asio::buffer(handshake, sizeof(handshake) - 1), libtorrent::asio::transfer_all(), ec); if (ec) { std::cout << ec.message() << std::endl; @@ -95,7 +95,7 @@ void do_handshake(stream_socket& s, sha1_hash const& ih, char* buffer) } // read handshake - asio::read(s, asio::buffer(buffer, 68), asio::transfer_all(), ec); + libtorrent::asio::read(s, libtorrent::asio::buffer(buffer, 68), libtorrent::asio::transfer_all(), ec); if (ec) { std::cout << ec.message() << std::endl; @@ -172,13 +172,13 @@ void test_reject_fast() // send reject request recv_buffer[0] = 0x10; error_code ec; - asio::write(s, asio::buffer("\0\0\0\x0d", 4), asio::transfer_all(), ec); + libtorrent::asio::write(s, libtorrent::asio::buffer("\0\0\0\x0d", 4), libtorrent::asio::transfer_all(), ec); if (ec) { std::cout << ec.message() << std::endl; exit(1); } - asio::write(s, asio::buffer(recv_buffer, 13), asio::transfer_all(), ec); + libtorrent::asio::write(s, libtorrent::asio::buffer(recv_buffer, 13), libtorrent::asio::transfer_all(), ec); std::cout << ec.message() << std::endl; if (ec) { @@ -240,13 +240,13 @@ void test_respect_suggest() // send reject request recv_buffer[0] = 0x10; error_code ec; - asio::write(s, asio::buffer("\0\0\0\x0d", 4), asio::transfer_all(), ec); + libtorrent::asio::write(s, libtorrent::asio::buffer("\0\0\0\x0d", 4), libtorrent::asio::transfer_all(), ec); if (ec) { std::cout << ec.message() << std::endl; exit(1); } - asio::write(s, asio::buffer(recv_buffer, 13), asio::transfer_all(), ec); + libtorrent::asio::write(s, libtorrent::asio::buffer(recv_buffer, 13), libtorrent::asio::transfer_all(), ec); if (ec) { std::cout << ec.message() << std::endl; diff --git a/test/test_http_connection.cpp b/test/test_http_connection.cpp index ac30bdbe4..d1f43b682 100644 --- a/test/test_http_connection.cpp +++ b/test/test_http_connection.cpp @@ -118,7 +118,7 @@ void run_suite(std::string const& protocol, proxy_settings const& ps) if ((ps.type == proxy_settings::http || ps.type == proxy_settings::http_pw) && protocol != "https") run_test(protocol + "://non-existent-domain.se/non-existing-file", -1, 502, 1, err(), ps); else - run_test(protocol + "://non-existent-domain.se/non-existing-file", -1, -1, 0, err(asio::error::host_not_found), ps); + run_test(protocol + "://non-existent-domain.se/non-existing-file", -1, -1, 0, err(libtorrent::asio::error::host_not_found), ps); if (ps.type != proxy_settings::none) stop_proxy(ps.port); diff --git a/test/test_storage.cpp b/test/test_storage.cpp index 1bcbc5f42..569c3ffe7 100644 --- a/test/test_storage.cpp +++ b/test/test_storage.cpp @@ -93,7 +93,7 @@ void run_storage_tests(boost::intrusive_ptr info // make sure the piece_manager can identify the pieces { file_pool fp; - asio::io_service ios; + libtorrent::asio::io_service ios; disk_io_thread io(ios); boost::shared_ptr dummy(new int); boost::intrusive_ptr pm = new piece_manager(dummy, info