VERSION=2.0.8 BUILD_CONFIG=release link=shared crypto=openssl warnings=off address-model=64 ifeq (${PREFIX},) PREFIX=/usr/local/ endif ALL: FORCE BOOST_ROOT="" b2 ${BUILD_CONFIG} python-binding: FORCE (cd bindings/python; BOOST_ROOT="" b2 ${BUILD_CONFIG} stage_module stage_dependencies) examples: FORCE (cd examples; BOOST_ROOT="" b2 ${BUILD_CONFIG} stage_client_test stage_connection_tester) tools: FORCE (cd tools; BOOST_ROOT="" b2 ${BUILD_CONFIG}) install: FORCE BOOST_ROOT="" b2 ${BUILD_CONFIG} install --prefix=${PREFIX} sim: FORCE (cd simulation; BOOST_ROOT="" b2 $(filter-out crypto=openssl,${BUILD_CONFIG}) crypto=built-in) check: FORCE (cd test; BOOST_ROOT="" b2 crypto=openssl warnings=off) clean: FORCE rm -rf \ bin \ examples/bin \ tools/bin \ bindings/python/bin \ test/bin \ simulation/bin \ simulator/libsimulator/bin DOCS_IMAGES = \ docs/img/screenshot.png \ docs/img/screenshot_thumb.png \ docs/img/cwnd.png \ docs/img/cwnd_thumb.png \ docs/img/delays.png \ docs/img/delays_thumb.png \ docs/img/our_delay_base.png \ docs/img/our_delay_base_thumb.png \ docs/img/read_disk_buffers.png \ docs/img/read_disk_buffers.diagram \ docs/img/storage.png \ docs/img/write_disk_buffers.png \ docs/img/write_disk_buffers.diagram \ docs/img/ip_id_v4.png \ docs/img/ip_id_v6.png \ docs/img/hash_distribution.png \ docs/img/complete_bit_prefixes.png \ docs/img/troubleshooting.dot \ docs/img/troubleshooting.png \ docs/img/troubleshooting_thumb.png \ docs/img/hacking.diagram \ docs/img/hacking.png \ docs/img/utp_stack.diagram \ docs/img/utp_stack.png \ docs/img/bitcoin.png \ docs/img/logo-color-text.png \ docs/img/pp-acceptance-medium.png \ docs/style.css DOCS_PAGES = \ docs/building.html \ docs/client_test.html \ docs/contributing.html \ docs/dht_extensions.html \ docs/dht_rss.html \ docs/dht_sec.html \ docs/dht_store.html \ docs/examples.html \ docs/extension_protocol.html \ docs/features-ref.html \ docs/index.html \ docs/manual-ref.html \ docs/projects.html \ docs/python_binding.html \ docs/tuning-ref.html \ docs/settings.rst \ docs/stats_counters.rst \ docs/troubleshooting.html \ docs/udp_tracker_protocol.html \ docs/utp.html \ docs/streaming.html \ docs/building.rst \ docs/client_test.rst \ docs/contributing.rst \ docs/dht_extensions.rst \ docs/dht_rss.rst \ docs/dht_sec.rst \ docs/dht_store.rst \ docs/examples.rst \ docs/extension_protocol.rst \ docs/features.rst \ docs/index.rst \ docs/manual.rst \ docs/manual-ref.rst \ docs/projects.rst \ docs/python_binding.rst \ docs/tuning.rst \ docs/troubleshooting.rst \ docs/udp_tracker_protocol.rst \ docs/utp.rst \ docs/streaming.rst \ docs/tutorial.rst \ docs/tutorial-ref.rst \ docs/header.rst \ docs/hacking.rst \ docs/hacking.html \ docs/todo.html \ docs/tutorial-ref.html \ docs/upgrade_to_1.2-ref.html \ docs/upgrade_to_2.0-ref.html \ docs/security-audit.html \ docs/reference.html \ docs/reference-Core.html \ docs/reference-DHT.html \ docs/reference-Session.html \ docs/reference-Torrent_Handle.html \ docs/reference-Torrent_Info.html \ docs/reference-Trackers.html \ docs/reference-PeerClass.html \ docs/reference-Torrent_Status.html \ docs/reference-Stats.html \ docs/reference-Resume_Data.html \ docs/reference-Add_Torrent.html \ docs/reference-Plugins.html \ docs/reference-Create_Torrents.html \ docs/reference-Error_Codes.html \ docs/reference-Storage.html \ docs/reference-Custom_Storage.html \ docs/reference-Utility.html \ docs/reference-Bencoding.html \ docs/reference-Alerts.html \ docs/reference-Filter.html \ docs/reference-Settings.html \ docs/reference-Bdecoding.html \ docs/reference-ed25519.html \ docs/single-page-ref.html ED25519_SOURCE = \ fe.h \ fixedint.h \ ge.h \ precomp_data.h \ sc.h \ add_scalar.cpp \ fe.cpp \ ge.cpp \ key_exchange.cpp \ keypair.cpp \ sc.cpp \ sign.cpp \ verify.cpp \ sha512.cpp \ hasher512.cpp \ EXTRA_DIST = \ Jamfile \ Jamroot.jam \ project-config.jam \ Makefile \ CMakeLists.txt \ cmake/Modules/FindLibGcrypt.cmake \ cmake/Modules/GeneratePkgConfig.cmake \ cmake/Modules/ucm_flags.cmake \ cmake/Modules/LibtorrentMacros.cmake \ cmake/Modules/GeneratePkgConfig/generate-pkg-config.cmake.in \ cmake/Modules/GeneratePkgConfig/pkg-config.cmake.in \ cmake/Modules/GeneratePkgConfig/target-compile-settings.cmake.in \ LibtorrentRasterbarConfig.cmake.in \ bindings/CMakeLists.txt \ setup.py \ LICENSE \ src/ed25519/LICENSE \ COPYING \ AUTHORS \ NEWS \ README.rst \ ChangeLog \ $(DOCS_PAGES) \ $(DOCS_IMAGES) PYTHON_FILES= \ CMakeLists.txt \ Jamfile \ client.py \ make_torrent.py \ setup.py \ setup.py.cmake.in \ simple_client.py \ src/alert.cpp \ src/boost_python.hpp \ src/bytes.hpp \ src/converters.cpp \ src/create_torrent.cpp \ src/datetime.cpp \ src/entry.cpp \ src/error_code.cpp \ src/fingerprint.cpp \ src/gil.hpp \ src/ip_filter.cpp \ src/load_torrent.cpp \ src/magnet_uri.cpp \ src/module.cpp \ src/optional.hpp \ src/peer_info.cpp \ src/session.cpp \ src/session_settings.cpp \ src/sha1_hash.cpp \ src/sha256_hash.cpp \ src/info_hash.cpp \ src/string.cpp \ src/torrent_handle.cpp \ src/torrent_info.cpp \ src/torrent_status.cpp \ src/utility.cpp \ src/version.cpp EXAMPLE_FILES= \ CMakeLists.txt \ Jamfile \ bt-get.cpp \ bt-get2.cpp \ bt-get3.cpp \ check_files.cpp \ client_test.cpp \ cmake/FindLibtorrentRasterbar.cmake \ connection_tester.cpp \ dump_torrent.cpp \ dump_bdecode.cpp \ magnet2torrent.cpp \ make_torrent.cpp \ print.cpp \ print.hpp \ session_view.cpp \ session_view.hpp \ simple_client.cpp \ custom_storage.cpp \ stats_counters.cpp \ torrent2magnet.cpp \ torrent_view.cpp \ torrent_view.hpp \ upnp_test.cpp TOOLS_FILES= \ CMakeLists.txt \ Jamfile \ dht_put.cpp \ dht_sample.cpp \ disk_io_stress_test.cpp\ parse_dht_log.py \ parse_dht_rtt.py \ parse_dht_stats.py \ parse_peer_log.py \ parse_sample.py \ parse_session_stats.py \ parse_utp_log.py \ session_log_alerts.cpp KADEMLIA_SOURCES = \ dht_settings.cpp \ dht_state.cpp \ dht_storage.cpp \ dht_tracker.cpp \ dos_blocker.cpp \ ed25519.cpp \ find_data.cpp \ get_item.cpp \ get_peers.cpp \ item.cpp \ msg.cpp \ node.cpp \ node_entry.cpp \ node_id.cpp \ put_data.cpp \ refresh.cpp \ routing_table.cpp \ rpc_manager.cpp \ sample_infohashes.cpp \ traversal_algorithm.cpp SOURCES = \ add_torrent_params.cpp \ alert.cpp \ alert_manager.cpp \ announce_entry.cpp \ assert.cpp \ bandwidth_limit.cpp \ bandwidth_manager.cpp \ bandwidth_queue_entry.cpp \ bdecode.cpp \ bitfield.cpp \ bloom_filter.cpp \ bt_peer_connection.cpp \ chained_buffer.cpp \ choker.cpp \ close_reason.cpp \ copy_file.cpp \ cpuid.cpp \ crc32c.cpp \ create_torrent.cpp \ directory.cpp \ disabled_disk_io.cpp \ disk_buffer_holder.cpp \ disk_buffer_pool.cpp \ disk_interface.cpp \ disk_io_thread_pool.cpp \ disk_job_fence.cpp \ disk_job_pool.cpp \ drive_info.cpp \ entry.cpp \ enum_net.cpp \ error_code.cpp \ escape_string.cpp \ ffs.cpp \ file.cpp \ file_progress.cpp \ file_storage.cpp \ file_view_pool.cpp \ fingerprint.cpp \ generate_peer_id.cpp \ gzip.cpp \ hash_picker.cpp \ hasher.cpp \ hex.cpp \ http_connection.cpp \ http_parser.cpp \ http_seed_connection.cpp \ http_tracker_connection.cpp \ i2p_stream.cpp \ identify_client.cpp \ instantiate_connection.cpp \ ip_filter.cpp \ ip_helpers.cpp \ ip_notifier.cpp \ ip_voter.cpp \ listen_socket_handle.cpp \ load_torrent.cpp \ lsd.cpp \ magnet_uri.cpp \ merkle.cpp \ merkle_tree.cpp \ mmap.cpp \ mmap_disk_io.cpp \ mmap_disk_job.cpp \ mmap_storage.cpp \ natpmp.cpp \ packet_buffer.cpp \ parse_url.cpp \ part_file.cpp \ path.cpp \ pe_crypto.cpp \ peer_class.cpp \ peer_class_set.cpp \ peer_connection.cpp \ peer_connection_handle.cpp \ peer_info.cpp \ peer_list.cpp \ performance_counters.cpp \ piece_picker.cpp \ platform_util.cpp \ posix_disk_io.cpp \ posix_part_file.cpp \ posix_storage.cpp \ proxy_base.cpp \ proxy_settings.cpp \ puff.cpp \ random.cpp \ read_resume_data.cpp \ receive_buffer.cpp \ request_blocks.cpp \ resolve_links.cpp \ resolver.cpp \ session.cpp \ session_call.cpp \ session_handle.cpp \ session_impl.cpp \ session_params.cpp \ session_settings.cpp \ session_stats.cpp \ settings_pack.cpp \ sha1.cpp \ sha1_hash.cpp \ sha256.cpp \ smart_ban.cpp \ socket_io.cpp \ socket_type.cpp \ socks5_stream.cpp \ ssl.cpp \ stack_allocator.cpp \ stat.cpp \ stat_cache.cpp \ storage_utils.cpp \ string_util.cpp \ time.cpp \ timestamp_history.cpp \ torrent.cpp \ torrent_handle.cpp \ torrent_info.cpp \ torrent_peer.cpp \ torrent_peer_allocator.cpp \ torrent_status.cpp \ tracker_manager.cpp \ truncate.cpp \ udp_socket.cpp \ udp_tracker_connection.cpp \ upnp.cpp \ ut_metadata.cpp \ ut_pex.cpp \ utf8.cpp \ utp_socket_manager.cpp \ utp_stream.cpp \ version.cpp \ web_connection_base.cpp \ web_peer_connection.cpp \ write_resume_data.cpp \ xml_parse.cpp HEADERS = \ add_torrent_params.hpp \ address.hpp \ alert.hpp \ alert_types.hpp \ announce_entry.hpp \ assert.hpp \ bdecode.hpp \ bencode.hpp \ bitfield.hpp \ bloom_filter.hpp \ bt_peer_connection.hpp \ choker.hpp \ client_data.hpp \ close_reason.hpp \ config.hpp \ copy_ptr.hpp \ crc32c.hpp \ create_torrent.hpp \ deadline_timer.hpp \ debug.hpp \ disabled_disk_io.hpp \ disk_buffer_holder.hpp \ disk_interface.hpp \ disk_observer.hpp \ download_priority.hpp \ entry.hpp \ enum_net.hpp \ error.hpp \ error_code.hpp \ extensions.hpp \ file.hpp \ file_storage.hpp \ file_layout.hpp \ fingerprint.hpp \ flags.hpp \ fwd.hpp \ gzip.hpp \ hash_picker.hpp \ hasher.hpp \ hex.hpp \ http_connection.hpp \ http_parser.hpp \ http_seed_connection.hpp \ http_stream.hpp \ http_tracker_connection.hpp \ i2p_stream.hpp \ identify_client.hpp \ index_range.hpp \ info_hash.hpp \ io.hpp \ io_context.hpp \ io_service.hpp \ ip_filter.hpp \ ip_voter.hpp \ libtorrent.hpp \ link.hpp \ load_torrent.hpp \ lsd.hpp \ magnet_uri.hpp \ mmap_disk_io.hpp \ mmap_storage.hpp \ natpmp.hpp \ netlink.hpp \ operations.hpp \ optional.hpp \ parse_url.hpp \ part_file.hpp \ pe_crypto.hpp \ peer.hpp \ peer_class.hpp \ peer_class_set.hpp \ peer_class_type_filter.hpp \ peer_connection.hpp \ peer_connection_handle.hpp \ peer_connection_interface.hpp \ peer_id.hpp \ peer_info.hpp \ peer_list.hpp \ peer_request.hpp \ performance_counters.hpp \ pex_flags.hpp \ piece_block.hpp \ piece_block_progress.hpp \ piece_picker.hpp \ platform_util.hpp \ portmap.hpp \ posix_disk_io.hpp \ proxy_base.hpp \ puff.hpp \ random.hpp \ read_resume_data.hpp \ request_blocks.hpp \ resolve_links.hpp \ session.hpp \ session_handle.hpp \ session_params.hpp \ session_settings.hpp \ session_stats.hpp \ session_status.hpp \ session_types.hpp \ settings_pack.hpp \ sha1.hpp \ sha1_hash.hpp \ sha256.hpp \ sliding_average.hpp \ socket.hpp \ socket_io.hpp \ socket_type.hpp \ socks5_stream.hpp \ span.hpp \ ssl.hpp \ ssl_stream.hpp \ stack_allocator.hpp \ stat.hpp \ stat_cache.hpp \ storage.hpp \ storage_defs.hpp \ string_util.hpp \ string_view.hpp \ tailqueue.hpp \ time.hpp \ torrent.hpp \ torrent_flags.hpp \ torrent_handle.hpp \ torrent_info.hpp \ torrent_peer.hpp \ torrent_peer_allocator.hpp \ torrent_status.hpp \ tracker_manager.hpp \ truncate.hpp \ udp_socket.hpp \ udp_tracker_connection.hpp \ union_endpoint.hpp \ units.hpp \ upnp.hpp \ utf8.hpp \ vector_utils.hpp \ version.hpp \ web_connection_base.hpp \ web_peer_connection.hpp \ write_resume_data.hpp \ xml_parse.hpp \ \ aux_/alert_manager.hpp \ aux_/aligned_storage.hpp \ aux_/aligned_union.hpp \ aux_/alloca.hpp \ aux_/allocating_handler.hpp \ aux_/announce_entry.hpp \ aux_/apply_pad_files.hpp \ aux_/array.hpp \ aux_/bandwidth_limit.hpp \ aux_/bandwidth_manager.hpp \ aux_/bandwidth_queue_entry.hpp \ aux_/bandwidth_socket.hpp \ aux_/bind_to_device.hpp \ aux_/buffer.hpp \ aux_/byteswap.hpp \ aux_/container_wrapper.hpp \ aux_/chained_buffer.hpp \ aux_/cpuid.hpp \ aux_/deferred_handler.hpp \ aux_/deprecated.hpp \ aux_/deque.hpp \ aux_/dev_random.hpp \ aux_/directory.hpp \ aux_/disable_deprecation_warnings_push.hpp \ aux_/disable_warnings_pop.hpp \ aux_/disable_warnings_push.hpp \ aux_/disk_buffer_pool.hpp \ aux_/disk_io_thread_pool.hpp \ aux_/disk_job_fence.hpp \ aux_/disk_job_pool.hpp \ aux_/drive_info.hpp \ aux_/ed25519.hpp \ aux_/escape_string.hpp \ aux_/export.hpp \ aux_/ffs.hpp \ aux_/file_descriptor.hpp \ aux_/file_pointer.hpp \ aux_/file_progress.hpp \ aux_/file_view_pool.hpp \ aux_/generate_peer_id.hpp \ aux_/has_block.hpp \ aux_/hasher512.hpp \ aux_/heterogeneous_queue.hpp \ aux_/instantiate_connection.hpp \ aux_/invariant_check.hpp \ aux_/io.hpp \ aux_/ip_helpers.hpp \ aux_/ip_notifier.hpp \ aux_/keepalive.hpp \ aux_/listen_socket_handle.hpp \ aux_/lsd.hpp \ aux_/merkle.hpp \ aux_/merkle_tree.hpp \ aux_/mmap.hpp \ aux_/mmap_disk_job.hpp \ aux_/netlink_utils.hpp \ aux_/noexcept_movable.hpp \ aux_/numeric_cast.hpp \ aux_/open_mode.hpp \ aux_/packet_buffer.hpp \ aux_/packet_pool.hpp \ aux_/path.hpp \ aux_/polymorphic_socket.hpp \ aux_/pool.hpp \ aux_/portmap.hpp \ aux_/posix_part_file.hpp \ aux_/posix_storage.hpp \ aux_/proxy_settings.hpp \ aux_/range.hpp \ aux_/receive_buffer.hpp \ aux_/resolver.hpp \ aux_/resolver_interface.hpp \ aux_/route.h \ aux_/scope_end.hpp \ aux_/session_call.hpp \ aux_/session_impl.hpp \ aux_/session_interface.hpp \ aux_/session_settings.hpp \ aux_/session_udp_sockets.hpp \ aux_/set_socket_buffer.hpp \ aux_/set_traffic_class.hpp \ aux_/sha512.hpp \ aux_/socket_type.hpp \ aux_/storage_free_list.hpp \ aux_/storage_utils.hpp \ aux_/store_buffer.hpp \ aux_/string_ptr.hpp \ aux_/strview_less.hpp \ aux_/suggest_piece.hpp \ aux_/throw.hpp \ aux_/time.hpp \ aux_/timestamp_history.hpp \ aux_/torrent_impl.hpp \ aux_/torrent_list.hpp \ aux_/unique_ptr.hpp \ aux_/utp_socket_manager.hpp \ aux_/utp_stream.hpp \ aux_/vector.hpp \ aux_/windows.hpp \ aux_/win_cng.hpp \ aux_/win_crypto_provider.hpp \ aux_/win_file_handle.hpp \ aux_/win_util.hpp \ \ extensions/smart_ban.hpp \ extensions/ut_metadata.hpp \ extensions/ut_pex.hpp \ \ kademlia/announce_flags.hpp \ kademlia/dht_observer.hpp \ kademlia/dht_settings.hpp \ kademlia/dht_state.hpp \ kademlia/dht_storage.hpp \ kademlia/dht_tracker.hpp \ kademlia/direct_request.hpp \ kademlia/dos_blocker.hpp \ kademlia/ed25519.hpp \ kademlia/find_data.hpp \ kademlia/get_item.hpp \ kademlia/get_peers.hpp \ kademlia/io.hpp \ kademlia/item.hpp \ kademlia/msg.hpp \ kademlia/node.hpp \ kademlia/node_entry.hpp \ kademlia/node_id.hpp \ kademlia/observer.hpp \ kademlia/put_data.hpp \ kademlia/refresh.hpp \ kademlia/routing_table.hpp \ kademlia/rpc_manager.hpp \ kademlia/sample_infohashes.hpp \ kademlia/traversal_algorithm.hpp \ kademlia/types.hpp TRY_SIGNAL = \ signal_error_code.cpp \ signal_error_code.hpp \ try_signal.cpp \ try_signal.hpp \ try_signal_mingw.hpp \ try_signal_msvc.hpp \ try_signal_posix.hpp \ LICENSE \ README.rst \ Jamfile \ CMakeLists.txt ASIO_GNUTLS = \ LICENSE_1_0.txt \ Jamfile \ include/boost/asio/gnutls.hpp \ include/boost/asio/gnutls \ include/boost/asio/gnutls/rfc2818_verification.hpp \ include/boost/asio/gnutls/stream_base.hpp \ include/boost/asio/gnutls/error.hpp \ include/boost/asio/gnutls/host_name_verification.hpp \ include/boost/asio/gnutls/stream.hpp \ include/boost/asio/gnutls/context_base.hpp \ include/boost/asio/gnutls/verify_context.hpp \ include/boost/asio/gnutls/context.hpp \ README.md \ test/unit_test.hpp \ test/gnutls/context_base.cpp \ test/gnutls/stream_base.cpp \ test/gnutls/host_name_verification.cpp \ test/gnutls/error.cpp \ test/gnutls/Jamfile.v2 \ test/gnutls/context.cpp \ test/gnutls/rfc2818_verification.cpp \ test/gnutls/stream.cpp SIM_SOURCES = \ Jamfile \ create_torrent.cpp \ create_torrent.hpp \ fake_peer.hpp \ disk_io.hpp \ disk_io.cpp \ make_proxy_settings.hpp \ setup_dht.cpp \ setup_dht.hpp \ setup_swarm.cpp \ setup_swarm.hpp \ test_auto_manage.cpp \ test_checking.cpp \ test_dht.cpp \ test_dht_bootstrap.cpp \ test_dht_rate_limit.cpp \ test_dht_storage.cpp \ test_error_handling.cpp \ test_fast_extensions.cpp \ test_http_connection.cpp \ test_ip_filter.cpp \ test_metadata_extension.cpp \ test_optimistic_unchoke.cpp \ test_pause.cpp \ test_pe_crypto.cpp \ test_peer_connection.cpp \ test_save_resume.cpp \ test_session.cpp \ test_socks5.cpp \ test_super_seeding.cpp \ test_swarm.cpp \ test_thread_pool.cpp \ test_torrent_status.cpp \ test_tracker.cpp \ test_transfer.cpp \ test_transfer_matrix.cpp \ test_utp.cpp \ test_web_seed.cpp \ transfer_sim.hpp \ transfer_sim.cpp \ utils.cpp \ utils.hpp LIBSIM_SOURCES = \ acceptor.cpp \ default_config.cpp \ high_resolution_clock.cpp \ high_resolution_timer.cpp \ http_proxy.cpp \ http_server.cpp \ io_service.cpp \ pcap.cpp \ queue.cpp \ resolver.cpp \ simulation.cpp \ simulator.cpp \ sink_forwarder.cpp \ socks_server.cpp \ tcp_socket.cpp \ udp_socket.cpp LIBSIM_HEADERS = \ chrono.hpp \ config.hpp \ function.hpp \ handler_allocator.hpp \ http_proxy.hpp \ http_server.hpp \ noexcept_movable.hpp \ packet.hpp \ pcap.hpp \ pop_warnings.hpp \ push_warnings.hpp \ queue.hpp \ simulator.hpp \ sink.hpp \ sink_forwarder.hpp \ socks_server.hpp \ utils.hpp LIBSIM_EXTRA = \ CMakeLists.txt \ Jamfile \ Jamroot.jam \ LICENSE \ README.rst LIBSIM_TESTS = \ acceptor.cpp \ main.cpp \ multi_accept.cpp \ multi_homed.cpp \ null_buffers.cpp \ parse_request.cpp \ resolver.cpp \ timer.cpp \ udp_socket.cpp \ catch.hpp TEST_SOURCES = \ enum_if.cpp \ test_add_torrent.cpp \ test_alert_manager.cpp \ test_alert_types.cpp \ test_alloca.cpp \ test_apply_pad.cpp \ test_auto_unchoke.cpp \ test_bandwidth_limiter.cpp \ test_bdecode.cpp \ test_bencoding.cpp \ test_bitfield.cpp \ test_bloom_filter.cpp \ test_buffer.cpp \ test_checking.cpp \ test_copy_file.cpp \ test_crc32.cpp \ test_create_torrent.cpp \ test_dht.cpp \ test_dht_storage.cpp \ test_direct_dht.cpp \ test_dos_blocker.cpp \ test_ed25519.cpp \ test_enum_net.cpp \ test_fast_extension.cpp \ test_fence.cpp \ test_ffs.cpp \ test_file.cpp \ test_file_progress.cpp \ test_file_storage.cpp \ test_flags.cpp \ test_generate_peer_id.cpp \ test_gzip.cpp \ test_hash_picker.cpp \ test_hasher.cpp \ test_hasher512.cpp \ test_heterogeneous_queue.cpp \ test_http_connection.cpp \ test_http_parser.cpp \ test_identify_client.cpp \ test_info_hash.cpp \ test_io.cpp \ test_ip_filter.cpp \ test_ip_voter.cpp \ test_listen_socket.cpp \ test_lsd.cpp \ test_magnet.cpp \ test_merkle.cpp \ test_merkle_tree.cpp \ test_mmap.cpp \ test_packet_buffer.cpp \ test_part_file.cpp \ test_pe_crypto.cpp \ test_peer_classes.cpp \ test_peer_list.cpp \ test_peer_priority.cpp \ test_piece_picker.cpp \ test_primitives.cpp \ test_priority.cpp \ test_privacy.cpp \ test_read_piece.cpp \ test_read_resume.cpp \ test_receive_buffer.cpp \ test_recheck.cpp \ test_remap_files.cpp \ test_remove_torrent.cpp \ test_resolve_links.cpp \ test_resume.cpp \ test_session.cpp \ test_session_params.cpp \ test_settings_pack.cpp \ test_sha1_hash.cpp \ test_similar_torrent.cpp \ test_sliding_average.cpp \ test_socket_io.cpp \ test_span.cpp \ test_ssl.cpp \ test_stack_allocator.cpp \ test_stat_cache.cpp \ test_storage.cpp \ test_store_buffer.cpp \ test_string.cpp \ test_tailqueue.cpp \ test_threads.cpp \ test_time.cpp \ test_time_critical.cpp \ test_timestamp_history.cpp \ test_torrent.cpp \ test_torrent_info.cpp \ test_torrent_list.cpp \ test_tracker.cpp \ test_truncate.cpp \ test_transfer.cpp \ test_upnp.cpp \ test_url_seed.cpp \ test_utf8.cpp \ test_utp.cpp \ test_web_seed.cpp \ test_web_seed_ban.cpp \ test_web_seed_chunked.cpp \ test_web_seed_http.cpp \ test_web_seed_http_pw.cpp \ test_web_seed_redirect.cpp \ test_web_seed_socks4.cpp \ test_web_seed_socks5.cpp \ test_web_seed_socks5_no_peers.cpp \ test_web_seed_socks5_pw.cpp \ test_xml.cpp \ \ main.cpp \ broadcast_socket.cpp \ broadcast_socket.hpp \ test.cpp \ setup_transfer.cpp \ dht_server.cpp \ udp_tracker.cpp \ peer_server.cpp \ bittorrent_peer.cpp \ make_torrent.cpp \ web_seed_suite.cpp \ swarm_suite.cpp \ test_utils.cpp \ settings.cpp \ print_alerts.cpp \ test.hpp \ setup_transfer.hpp \ dht_server.hpp \ peer_server.hpp \ udp_tracker.hpp \ web_seed_suite.hpp \ swarm_suite.hpp \ test_utils.hpp \ settings.hpp \ make_torrent.hpp \ bittorrent_peer.hpp \ print_alerts.hpp TEST_TORRENTS = \ absolute_filename.torrent \ backslash_path.torrent \ bad_name.torrent \ base.torrent \ collection.torrent \ collection2.torrent \ creation_date.torrent \ dht_nodes.torrent \ duplicate_files.torrent \ duplicate_web_seeds.torrent \ empty_httpseed.torrent \ empty_path.torrent \ empty_path_multi.torrent \ empty-files-1.torrent \ empty-files-2.torrent \ empty-files-3.torrent \ empty-files-4.torrent \ empty-files-5.torrent \ hidden_parent_path.torrent \ httpseed.torrent \ invalid_file_size.torrent \ invalid_filename.torrent \ invalid_filename2.torrent \ invalid_info.torrent \ invalid_name.torrent \ invalid_name2.torrent \ invalid_name3.torrent \ invalid_path_list.torrent \ invalid_piece_len.torrent \ invalid_pieces.torrent \ invalid_symlink.torrent \ large.torrent \ long_name.torrent \ many_pieces.torrent \ missing_path_list.torrent \ missing_piece_len.torrent \ negative_file_size.torrent \ negative_piece_len.torrent \ negative_size.torrent \ no_creation_date.torrent \ no_files.torrent \ no_name.torrent \ overlapping_symlinks.torrent \ pad_file.torrent \ pad_file_no_path.torrent \ parent_path.torrent \ sample.torrent \ similar.torrent \ similar2.torrent \ single_multi_file.torrent \ slash_path.torrent \ slash_path2.torrent \ slash_path3.torrent \ string.torrent \ symlink1.torrent \ symlink2.torrent \ symlink_zero_size.torrent \ unaligned_pieces.torrent \ unordered.torrent \ url_list.torrent \ url_list2.torrent \ url_list3.torrent \ url_seed.torrent \ url_seed_multi.torrent \ url_seed_multi_single_file.torrent \ url_seed_multi_space.torrent \ url_seed_multi_space_nolist.torrent \ whitespace_url.torrent \ v2.torrent \ v2_multipiece_file.torrent \ v2_only.torrent \ v2_invalid_filename.torrent \ v2_mismatching_metadata.torrent \ v2_no_power2_piece.torrent \ v2_invalid_file.torrent \ v2_deep_recursion.torrent \ v2_non_multiple_piece_layer.torrent \ v2_piece_layer_invalid_file_hash.torrent \ v2_incomplete_piece_layer.torrent \ v2_invalid_pad_file.torrent \ v2_invalid_piece_layer.torrent \ v2_invalid_piece_layer_size.torrent \ v2_multiple_files.torrent \ v2_bad_file_alignment.torrent \ v2_unordered_files.torrent \ v2_overlong_integer.torrent \ v2_missing_file_root_invalid_symlink.torrent \ v2_symlinks.torrent \ v2_no_piece_layers.torrent \ v2_large_file.torrent \ v2_large_offset.torrent \ v2_piece_size.torrent \ v2_zero_root.torrent \ v2_zero_root_small.torrent \ v2_hybrid.torrent \ v2_hybrid-missing-tailpad.torrent \ v2_invalid_root_hash.torrent \ zero.torrent \ zero2.torrent MUTABLE_TEST_TORRENTS = \ test1.torrent \ test1_pad_files.torrent \ test1_single.torrent \ test1_single_padded.torrent \ test2.torrent \ test2_pad_files.torrent \ test3.torrent \ test3_pad_files.torrent TEST_EXTRA = Jamfile \ Jamfile \ CMakeLists.txt \ $(addprefix test_torrents/,${TEST_TORRENTS}) \ $(addprefix mutable_test_torrents/,${MUTABLE_TEST_TORRENTS}) \ root1.xml \ root2.xml \ root3.xml \ ssl/regenerate_test_certificate.sh \ ssl/cert_request.pem \ ssl/dhparams.pem \ ssl/invalid_peer_certificate.pem \ ssl/invalid_peer_private_key.pem \ ssl/peer_certificate.pem \ ssl/peer_private_key.pem \ ssl/root_ca_cert.pem \ ssl/root_ca_private.pem \ ssl/server.pem \ zeroes.gz \ corrupt.gz \ invalid1.gz \ utf8_test.txt \ web_server.py \ socks.py \ http_proxy.py \ root1.xml \ root2.xml \ root3.xml dist: FORCE (cd docs; make) rm -rf libtorrent-rasterbar-${VERSION} libtorrent-rasterbar-${VERSION}.tar.gz mkdir libtorrent-rasterbar-${VERSION} rsync -R ${EXTRA_DIST} \ $(addprefix src/,${SOURCES}) \ $(addprefix src/kademlia/,${KADEMLIA_SOURCES}) \ $(addprefix include/libtorrent/,${HEADERS}) \ $(addprefix examples/,${EXAMPLE_FILES}) \ $(addprefix tools/,${TOOLS_FILES}) \ $(addprefix bindings/python/,${PYTHON_FILES}) \ $(addprefix test/,${TEST_SOURCES}) \ $(addprefix test/,${TEST_EXTRA}) \ $(addprefix simulation/,${SIM_SOURCES}) \ $(addprefix deps/try_signal/,${TRY_SIGNAL}) \ $(addprefix deps/asio-gnutls/,${ASIO_GNUTLS}) \ $(addprefix simulation/libsimulator/,${LIBSIM_EXTRA}) \ $(addprefix simulation/libsimulator/test,${LIBSIM_TEST}) \ $(addprefix simulation/libsimulator/include/simulator/,${LIBSIM_HEADERS}) \ $(addprefix simulation/libsimulator/src/,${LIBSIM_SOURCES}) \ $(addprefix src/ed25519/,$(ED25519_SOURCE)) \ libtorrent-rasterbar-${VERSION} tar -czf libtorrent-rasterbar-${VERSION}.tar.gz libtorrent-rasterbar-${VERSION} FORCE: