#
# Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com)
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#

subproject libs/asio/example/iostreams ;

project boost : $(BOOST_ROOT) ;

if $(UNIX)
{
  switch $(JAMUNAME)
  {
  case SunOS* :
    {
      SOCKET_LIBS = <find-library>socket <find-library>nsl ;
    }
  }
}

exe daytime_client
  : <lib>@boost/libs/system/build/boost_system
    daytime_client.cpp
  : <include>$(BOOST_ROOT)
    <include>../../../..
    <define>BOOST_ALL_NO_LIB=1
    <threading>multi
    <mingw><*><find-library>ws2_32
    <mingw><*><find-library>mswsock
    $(SOCKET_LIBS)
  ;

exe daytime_server
  : <lib>@boost/libs/system/build/boost_system
    daytime_server.cpp
  : <include>$(BOOST_ROOT)
    <include>../../../..
    <define>BOOST_ALL_NO_LIB=1
    <threading>multi
    <mingw><*><find-library>ws2_32
    <mingw><*><find-library>mswsock
    $(SOCKET_LIBS)
  ;
