#This Jamfile requires boost-build v2 to build. import modules ; import os ; import errors ; import feature : feature ; #import pch ; BOOST_ROOT = [ modules.peek : BOOST_ROOT ] ; ECHO "BOOST_ROOT =" $(BOOST_ROOT) ; ECHO "OS =" [ os.name ] ; if ! $(BOOST_ROOT) { errors.user-error "BOOST_ROOT must be set to your boost installation path." ; } use-project /boost : $(BOOST_ROOT) ; feature logging : none default verbose : composite propagated symmetric link-incompatible ; feature.compose default : TORRENT_LOGGING ; feature.compose verbose : TORRENT_VERBOSE_LOGGING ; feature dht-support : on off logging : composite propagated symmetric link-incompatible ; feature.compose off : TORRENT_DISABLE_DHT ; feature.compose logging : TORRENT_DHT_VERBOSE_LOGGING ; feature openssl : off on : composite propagated symmetric link-incompatible ; feature.compose on : TORRENT_USE_OPENSSL ; feature resolve-countries : on off : composite propagated symmetric link-incompatible ; feature.compose off : TORRENT_DISABLE_RESOLVE_COUNTRIES ; feature character-set : ansi unicode : composite propagated link-incompatible ; feature.compose unicode : _UNICODE UNICODE ; feature statistics : off on : composite propagated symmetric link-incompatible ; feature.compose on : TORRENT_STATS ; SOURCES = allocate_resources alert bandwidth_manager connection_queue entry escape_string http_connection http_stream identify_client ip_filter peer_connection bt_peer_connection web_peer_connection instantiate_connection natpmp piece_picker policy session session_impl socks5_stream stat storage torrent torrent_handle torrent_info tracker_manager http_tracker_connection udp_tracker_connection sha1 metadata_transfer upnp ut_pex logger file_pool lsd ; KADEMLIA_SOURCES = kademlia/closest_nodes kademlia/dht_tracker kademlia/node kademlia/refresh kademlia/rpc_manager kademlia/find_data kademlia/node_id kademlia/routing_table kademlia/traversal_algorithm ; ZLIB_SOURCES = adler32 compress crc32 deflate gzio infback inffast inflate inftrees trees uncompr zutil ; DEFINES = ; LIBS = ; if [ os.name ] = CYGWIN || [ os.name ] = NT { lib wsock32 : : wsock32 ; lib ws2_32 : : ws2_32 ; LIBS += ws2_32 wsock32 ; DEFINES += WIN32_LEAN_AND_MEAN ; DEFINES += _WIN32_WINNT=0x0500 ; DEFINES += __USE_W32_SOCKETS ; DEFINES += WIN32 ; SOURCES += file_win ; } else { SOURCES += file ; } lib crypt : : crypto ; project torrent : requirements ./include ./include/libtorrent ./zlib $(BOOST_ROOT) release:NDEBUG BOOST_ALL_NO_LIB _FILE_OFFSET_BITS=64 BOOST_THREAD_USE_LIB $(DEFINES) /boost/thread//boost_thread #/static /boost/filesystem//boost_filesystem #/static multi # ======= compiler settings ======= # these compiler settings just makes the compiler standard conforming msvc:/Zc:wchar_t msvc:/Zc:forScope # disable bogus deprecation warnings on msvc8 msvc:_SCL_SECURE_NO_DEPRECATE msvc:_CRT_SECURE_NO_DEPRECATE # this should be defined when libtorrent is built as # a dll. It will make sure the functions and classes # are exported (GCC 4 and msvc) shared:TORRENT_BUILDING_SHARED shared:TORRENT_LINKING_SHARED : usage-requirements ./include ./include/libtorrent $(BOOST_ROOT) release:NDEBUG BOOST_ALL_NO_LIB $(DEFINES) shared:TORRENT_LINKING_SHARED ; #cpp-pch pch : include/libtorrent/pch.hpp ; lib torrent : src/$(SOURCES).cpp zlib/$(ZLIB_SOURCES).c $(LIBS) # pch : on:src/$(KADEMLIA_SOURCES).cpp logging:src/$(KADEMLIA_SOURCES).cpp off:src/sha1.cpp on:crypt ;