Jamfile.v2 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. #
  2. # Copyright (c) 2003-2019 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  3. #
  4. # Distributed under the Boost Software License, Version 1.0. (See accompanying
  5. # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  6. #
  7. import feature ;
  8. lib socket ; # SOLARIS, QNXNTO
  9. lib nsl ; # SOLARIS
  10. lib ws2_32 ; # NT
  11. lib mswsock ; # NT
  12. lib ipv6 ; # HPUX
  13. lib network ; # HAIKU
  14. local USE_SELECT =
  15. <define>BOOST_ASIO_DISABLE_DEV_POLL
  16. <define>BOOST_ASIO_DISABLE_EPOLL
  17. <define>BOOST_ASIO_DISABLE_KQUEUE
  18. <define>BOOST_ASIO_DISABLE_IOCP
  19. ;
  20. project
  21. : requirements
  22. <library>/boost/date_time//boost_date_time
  23. <library>/boost/system//boost_system
  24. <library>/boost/chrono//boost_chrono
  25. <library>/boost/regex//boost_regex
  26. <define>BOOST_ALL_NO_LIB=1
  27. <threading>multi
  28. <target-os>linux:<define>_XOPEN_SOURCE=600
  29. <target-os>linux:<define>_GNU_SOURCE=1
  30. <target-os>solaris:<define>_XOPEN_SOURCE=500
  31. <target-os>solaris:<define>__EXTENSIONS__
  32. <target-os>solaris:<library>socket
  33. <target-os>solaris:<library>nsl
  34. <target-os>windows:<define>_WIN32_WINNT=0x0501
  35. <target-os>windows,<toolset>cw:<library>ws2_32
  36. <target-os>windows,<toolset>cw:<library>mswsock
  37. <target-os>windows,<toolset>gcc:<library>ws2_32
  38. <target-os>windows,<toolset>gcc:<library>mswsock
  39. <target-os>windows,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
  40. <target-os>hpux,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
  41. <target-os>hpux:<library>ipv6
  42. <target-os>qnxnto:<library>socket
  43. <target-os>haiku:<library>network
  44. ;
  45. test-suite "asio" :
  46. [ link awaitable.cpp ]
  47. [ link awaitable.cpp : $(USE_SELECT) : awaitable_select ]
  48. [ link basic_datagram_socket.cpp ]
  49. [ link basic_datagram_socket.cpp : $(USE_SELECT) : basic_datagram_socket_select ]
  50. [ link basic_deadline_timer.cpp ]
  51. [ link basic_deadline_timer.cpp : $(USE_SELECT) : basic_deadline_timer_select ]
  52. [ link basic_raw_socket.cpp ]
  53. [ link basic_raw_socket.cpp : $(USE_SELECT) : basic_raw_socket_select ]
  54. [ link basic_seq_packet_socket.cpp ]
  55. [ link basic_seq_packet_socket.cpp : $(USE_SELECT) : basic_seq_packet_socket_select ]
  56. [ link basic_signal_set.cpp ]
  57. [ link basic_signal_set.cpp : $(USE_SELECT) : basic_signal_set_select ]
  58. [ link basic_socket_acceptor.cpp ]
  59. [ link basic_socket_acceptor.cpp : $(USE_SELECT) : basic_socket_acceptor_select ]
  60. [ link basic_stream_socket.cpp ]
  61. [ link basic_stream_socket.cpp : $(USE_SELECT) : basic_stream_socket_select ]
  62. [ link basic_streambuf.cpp ]
  63. [ link basic_streambuf.cpp : $(USE_SELECT) : basic_streambuf_select ]
  64. [ link basic_waitable_timer.cpp ]
  65. [ link basic_waitable_timer.cpp : $(USE_SELECT) : basic_waitable_timer_select ]
  66. [ run buffer.cpp ]
  67. [ run buffer.cpp : : : $(USE_SELECT) : buffer_select ]
  68. [ run buffered_read_stream.cpp ]
  69. [ run buffered_read_stream.cpp : : : $(USE_SELECT) : buffered_read_stream_select ]
  70. [ run buffered_stream.cpp ]
  71. [ run buffered_stream.cpp : : : $(USE_SELECT) : buffered_stream_select ]
  72. [ run buffered_write_stream.cpp ]
  73. [ run buffered_write_stream.cpp : : : $(USE_SELECT) : buffered_write_stream_select ]
  74. [ run buffers_iterator.cpp ]
  75. [ run buffers_iterator.cpp : : : $(USE_SELECT) : buffers_iterator_select ]
  76. [ link co_spawn.cpp ]
  77. [ link co_spawn.cpp : $(USE_SELECT) : co_spawn_select ]
  78. [ link completion_condition.cpp ]
  79. [ link completion_condition.cpp : $(USE_SELECT) : completion_condition_select ]
  80. [ run compose.cpp ]
  81. [ run compose.cpp : : : $(USE_SELECT) : compose_select ]
  82. [ link connect.cpp ]
  83. [ link connect.cpp : $(USE_SELECT) : connect_select ]
  84. [ link coroutine.cpp ]
  85. [ link coroutine.cpp : $(USE_SELECT) : coroutine_select ]
  86. [ run deadline_timer.cpp ]
  87. [ run deadline_timer.cpp : : : $(USE_SELECT) : deadline_timer_select ]
  88. [ link detached.cpp ]
  89. [ link detached.cpp : $(USE_SELECT) : detached_select ]
  90. [ run error.cpp ]
  91. [ run error.cpp : : : $(USE_SELECT) : error_select ]
  92. [ link generic/basic_endpoint.cpp : : generic_basic_endpoint ]
  93. [ link generic/basic_endpoint.cpp : $(USE_SELECT) : generic_basic_endpoint_select ]
  94. [ link generic/datagram_protocol.cpp : : generic_datagram_protocol ]
  95. [ link generic/datagram_protocol.cpp : $(USE_SELECT) : generic_datagram_protocol_select ]
  96. [ link generic/raw_protocol.cpp : : generic_raw_protocol ]
  97. [ link generic/raw_protocol.cpp : $(USE_SELECT) : generic_raw_protocol_select ]
  98. [ link generic/seq_packet_protocol.cpp : : generic_seq_packet_protocol ]
  99. [ link generic/seq_packet_protocol.cpp : $(USE_SELECT) : generic_seq_packet_protocol_select ]
  100. [ link generic/stream_protocol.cpp : : generic_stream_protocol ]
  101. [ link generic/stream_protocol.cpp : $(USE_SELECT) : generic_stream_protocol_select ]
  102. [ link high_resolution_timer.cpp ]
  103. [ link high_resolution_timer.cpp : $(USE_SELECT) : high_resolution_timer_select ]
  104. [ run io_context.cpp ]
  105. [ run io_context.cpp : : : $(USE_SELECT) : io_context_select ]
  106. [ run io_context_strand.cpp ]
  107. [ run io_context_strand.cpp : : : $(USE_SELECT) : io_context_strand_select ]
  108. [ link ip/address.cpp : : ip_address ]
  109. [ link ip/address.cpp : $(USE_SELECT) : ip_address_select ]
  110. [ link ip/address_v4.cpp : : ip_address_v4 ]
  111. [ link ip/address_v4.cpp : $(USE_SELECT) : ip_address_v4_select ]
  112. [ link ip/address_v6.cpp : : ip_address_v6 ]
  113. [ link ip/address_v6.cpp : $(USE_SELECT) : ip_address_v6_select ]
  114. [ link ip/basic_endpoint.cpp : : ip_basic_endpoint ]
  115. [ link ip/basic_endpoint.cpp : $(USE_SELECT) : ip_basic_endpoint_select ]
  116. [ link ip/basic_resolver.cpp : : ip_basic_resolver ]
  117. [ link ip/basic_resolver.cpp : $(USE_SELECT) : ip_basic_resolver_select ]
  118. [ link ip/basic_resolver_entry.cpp : : ip_basic_resolver_entry ]
  119. [ link ip/basic_resolver_entry.cpp : $(USE_SELECT) : ip_basic_resolver_entry_select ]
  120. [ link ip/basic_resolver_iterator.cpp : : ip_basic_resolver_iterator ]
  121. [ link ip/basic_resolver_iterator.cpp : $(USE_SELECT) : ip_basic_resolver_iterator_select ]
  122. [ link ip/basic_resolver_query.cpp : : ip_basic_resolver_query ]
  123. [ link ip/basic_resolver_query.cpp : $(USE_SELECT) : ip_basic_resolver_query_select ]
  124. [ run ip/host_name.cpp : : : : ip_host_name ]
  125. [ run ip/host_name.cpp : : : $(USE_SELECT) : ip_host_name_select ]
  126. [ run ip/icmp.cpp : : : : ip_icmp ]
  127. [ run ip/icmp.cpp : : : $(USE_SELECT) : ip_icmp_select ]
  128. [ run ip/multicast.cpp : : : : ip_multicast ]
  129. [ run ip/multicast.cpp : : : $(USE_SELECT) : ip_multicast_select ]
  130. [ link ip/resolver_query_base.cpp : : ip_resolver_query_base ]
  131. [ link ip/resolver_query_base.cpp : $(USE_SELECT) : ip_resolver_query_base_select ]
  132. [ run ip/tcp.cpp : : : : ip_tcp ]
  133. [ run ip/tcp.cpp : : : $(USE_SELECT) : ip_tcp_select ]
  134. [ run ip/udp.cpp : : : : ip_udp ]
  135. [ run ip/udp.cpp : : : $(USE_SELECT) : ip_udp_select ]
  136. [ run ip/unicast.cpp : : : : ip_unicast ]
  137. [ run ip/unicast.cpp : : : $(USE_SELECT) : ip_unicast_select ]
  138. [ run ip/v6_only.cpp : : : : ip_v6_only ]
  139. [ run ip/v6_only.cpp : : : $(USE_SELECT) : ip_v6_only_select ]
  140. [ run is_read_buffered.cpp ]
  141. [ run is_read_buffered.cpp : : : $(USE_SELECT) : is_read_buffered_select ]
  142. [ run is_write_buffered.cpp ]
  143. [ run is_write_buffered.cpp : : : $(USE_SELECT) : is_write_buffered_select ]
  144. [ link local/basic_endpoint.cpp : : local_basic_endpoint ]
  145. [ link local/basic_endpoint.cpp : $(USE_SELECT) : local_basic_endpoint_select ]
  146. [ link local/connect_pair.cpp : : local_connect_pair ]
  147. [ link local/connect_pair.cpp : $(USE_SELECT) : local_connect_pair_select ]
  148. [ link local/datagram_protocol.cpp : : local_datagram_protocol ]
  149. [ link local/datagram_protocol.cpp : $(USE_SELECT) : local_datagram_protocol_select ]
  150. [ link local/stream_protocol.cpp : : local_stream_protocol ]
  151. [ link local/stream_protocol.cpp : $(USE_SELECT) : local_stream_protocol_select ]
  152. [ link placeholders.cpp ]
  153. [ link placeholders.cpp : $(USE_SELECT) : placeholders_select ]
  154. [ link posix/basic_descriptor.cpp : : posix_basic_descriptor ]
  155. [ link posix/basic_descriptor.cpp : $(USE_SELECT) : posix_basic_descriptor_select ]
  156. [ link posix/basic_stream_descriptor.cpp : : posix_basic_stream_descriptor ]
  157. [ link posix/basic_stream_descriptor.cpp : $(USE_SELECT) : posix_basic_stream_descriptor_select ]
  158. [ link posix/descriptor_base.cpp : : posix_descriptor_base ]
  159. [ link posix/descriptor_base.cpp : $(USE_SELECT) : posix_descriptor_base_select ]
  160. [ link posix/stream_descriptor.cpp : : posix_stream_descriptor ]
  161. [ link posix/stream_descriptor.cpp : $(USE_SELECT) : posix_stream_descriptor_select ]
  162. [ run read.cpp ]
  163. [ run read.cpp : : : $(USE_SELECT) : read_select ]
  164. [ run read_at.cpp ]
  165. [ run read_at.cpp : : : $(USE_SELECT) : read_at_select ]
  166. [ run read_until.cpp ]
  167. [ run read_until.cpp : : : $(USE_SELECT) : read_until_select ]
  168. [ link redirect_error.cpp ]
  169. [ link redirect_error.cpp : $(USE_SELECT) : redirect_error_select ]
  170. [ run signal_set.cpp ]
  171. [ run signal_set.cpp : : : $(USE_SELECT) : signal_set_select ]
  172. [ run socket_base.cpp ]
  173. [ run socket_base.cpp : : : $(USE_SELECT) : socket_base_select ]
  174. [ link steady_timer.cpp ]
  175. [ link steady_timer.cpp : $(USE_SELECT) : steady_timer_select ]
  176. [ run strand.cpp ]
  177. [ run strand.cpp : : : $(USE_SELECT) : strand_select ]
  178. [ run streambuf.cpp ]
  179. [ run streambuf.cpp : : : $(USE_SELECT) : streambuf_select ]
  180. [ link system_timer.cpp ]
  181. [ link system_timer.cpp : $(USE_SELECT) : system_timer_select ]
  182. [ link system_context.cpp ]
  183. [ link system_context.cpp : $(USE_SELECT) : system_context_select ]
  184. [ link system_executor.cpp ]
  185. [ link system_executor.cpp : $(USE_SELECT) : system_executor_select ]
  186. [ link this_coro.cpp ]
  187. [ link this_coro.cpp : $(USE_SELECT) : this_coro_select ]
  188. [ link time_traits.cpp ]
  189. [ link time_traits.cpp : $(USE_SELECT) : time_traits_select ]
  190. [ link ts/buffer.cpp : : ts_buffer ]
  191. [ link ts/buffer.cpp : $(USE_SELECT) : ts_buffer_select ]
  192. [ link ts/executor.cpp : : ts_executor ]
  193. [ link ts/executor.cpp : $(USE_SELECT) : ts_executor_select ]
  194. [ link ts/internet.cpp : : ts_internet ]
  195. [ link ts/internet.cpp : $(USE_SELECT) : ts_internet_select ]
  196. [ link ts/io_context.cpp : : ts_io_context ]
  197. [ link ts/io_context.cpp : $(USE_SELECT) : ts_io_context_select ]
  198. [ link ts/net.cpp : : ts_net ]
  199. [ link ts/net.cpp : $(USE_SELECT) : ts_net_select ]
  200. [ link ts/netfwd.cpp : : ts_netfwd ]
  201. [ link ts/netfwd.cpp : $(USE_SELECT) : ts_netfwd_select ]
  202. [ link ts/socket.cpp : : ts_socket ]
  203. [ link ts/socket.cpp : $(USE_SELECT) : ts_socket_select ]
  204. [ link ts/timer.cpp : : ts_timer ]
  205. [ link ts/timer.cpp : $(USE_SELECT) : ts_timer_select ]
  206. [ link use_awaitable.cpp ]
  207. [ link use_awaitable.cpp : $(USE_SELECT) : use_awaitable_select ]
  208. [ link wait_traits.cpp ]
  209. [ link wait_traits.cpp : $(USE_SELECT) : wait_traits_select ]
  210. [ link windows/basic_object_handle.cpp : : windows_basic_object_handle ]
  211. [ link windows/basic_object_handle.cpp : $(USE_SELECT) : windows_basic_object_handle_select ]
  212. [ link windows/basic_overlapped_handle.cpp : : windows_basic_overlapped_handle ]
  213. [ link windows/basic_overlapped_handle.cpp : $(USE_SELECT) : windows_basic_overlapped_handle_select ]
  214. [ link windows/basic_random_access_handle.cpp : : windows_basic_random_access_handle ]
  215. [ link windows/basic_random_access_handle.cpp : $(USE_SELECT) : windows_basic_random_access_handle_select ]
  216. [ link windows/basic_stream_handle.cpp : : windows_basic_stream_handle ]
  217. [ link windows/basic_stream_handle.cpp : $(USE_SELECT) : windows_basic_stream_handle_select ]
  218. [ link windows/object_handle.cpp : : windows_object_handle ]
  219. [ link windows/object_handle.cpp : $(USE_SELECT) : windows_object_handle_select ]
  220. [ link windows/overlapped_ptr.cpp : : windows_overlapped_ptr ]
  221. [ link windows/overlapped_ptr.cpp : $(USE_SELECT) : windows_overlapped_ptr_select ]
  222. [ link windows/random_access_handle.cpp : : windows_random_access_handle ]
  223. [ link windows/random_access_handle.cpp : $(USE_SELECT) : windows_random_access_handle_select ]
  224. [ link windows/stream_handle.cpp : : windows_stream_handle ]
  225. [ link windows/stream_handle.cpp : $(USE_SELECT) : windows_stream_handle_select ]
  226. [ run write.cpp ]
  227. [ run write.cpp : : : $(USE_SELECT) : write_select ]
  228. [ run write_at.cpp ]
  229. [ run write_at.cpp : : : $(USE_SELECT) : write_at_select ]
  230. ;