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