1AC_INIT(asio, [1.11.0])
2AC_CONFIG_SRCDIR(include/asio.hpp)
3AM_MAINTAINER_MODE
4AM_INIT_AUTOMAKE([tar-ustar])
5
6AC_CANONICAL_HOST
7AM_PROG_CC_C_O
8AC_PROG_CXX
9AC_LANG(C++)
10AC_PROG_RANLIB
11
12AC_DEFINE(_REENTRANT, [1], [Define this])
13
14AC_ARG_WITH(boost,
15  AC_HELP_STRING([--with-boost=DIR],[location of boost distribution]),
16[
17  if test "${withval}" = no; then
18    STANDALONE="yes"
19  else
20    CPPFLAGS="$CPPFLAGS -I${withval}"
21    LIBS="$LIBS -L${withval}/stage/lib"
22  fi
23],
24[
25  BOOSTDIR="`pwd`/../boost_1_55_0"
26  if test -d "${BOOSTDIR}"; then
27    CPPFLAGS="$CPPFLAGS -I${BOOSTDIR}"
28    LIBS="$LIBS -L${BOOSTDIR}/stage/lib"
29  else
30    BOOSTDIR="`pwd`/../boost_1_54_0"
31    if test -d "${BOOSTDIR}"; then
32      CPPFLAGS="$CPPFLAGS -I${BOOSTDIR}"
33      LIBS="$LIBS -L${BOOSTDIR}/stage/lib"
34    else
35      BOOSTDIR="`pwd`/../boost_1_53_0"
36      if test -d "${BOOSTDIR}"; then
37        CPPFLAGS="$CPPFLAGS -I${BOOSTDIR}"
38      else
39        BOOSTDIR="`pwd`/../boost_1_52_0"
40        if test -d "${BOOSTDIR}"; then
41          CPPFLAGS="$CPPFLAGS -I${BOOSTDIR}"
42        else
43          BOOSTDIR="`pwd`/../boost_1_51_0"
44          if test -d "${BOOSTDIR}"; then
45            CPPFLAGS="$CPPFLAGS -I${BOOSTDIR}"
46          else
47            BOOSTDIR="`pwd`/../boost_1_50_0"
48            if test -d "${BOOSTDIR}"; then
49              CPPFLAGS="$CPPFLAGS -I${BOOSTDIR}"
50            else
51              BOOSTDIR="`pwd`/../boost_1_49_0"
52              if test -d "${BOOSTDIR}"; then
53                CPPFLAGS="$CPPFLAGS -I${BOOSTDIR}"
54              else
55                BOOSTDIR="`pwd`/../boost_1_48_0"
56                if test -d "${BOOSTDIR}"; then
57                  CPPFLAGS="$CPPFLAGS -I${BOOSTDIR}"
58                else
59                  BOOSTDIR="`pwd`/../boost_1_47_0"
60                  if test -d "${BOOSTDIR}"; then
61                    CPPFLAGS="$CPPFLAGS -I${BOOSTDIR}"
62                  else
63                    BOOSTDIR="`pwd`/../boost_1_46_0"
64                    if test -d "${BOOSTDIR}"; then
65                      CPPFLAGS="$CPPFLAGS -I${BOOSTDIR}"
66                    else
67                      BOOSTDIR="`pwd`/../boost_1_46_1"
68                      if test -d "${BOOSTDIR}"; then
69                        CPPFLAGS="$CPPFLAGS -I${BOOSTDIR}"
70                      else
71                        BOOSTDIR="`pwd`/../boost_1_45_0"
72                        if test -d "${BOOSTDIR}"; then
73                          CPPFLAGS="$CPPFLAGS -I${BOOSTDIR}"
74                        else
75                          BOOSTDIR="`pwd`/../boost_1_44_0"
76                          if test -d "${BOOSTDIR}"; then
77                            CPPFLAGS="$CPPFLAGS -I${BOOSTDIR}"
78                          else
79                            BOOSTDIR="`pwd`/../boost_1_43_0"
80                            if test -d "${BOOSTDIR}"; then
81                              CPPFLAGS="$CPPFLAGS -I${BOOSTDIR}"
82                            else
83                              BOOSTDIR="`pwd`/../boost_1_42_0"
84                              if test -d "${BOOSTDIR}"; then
85                                CPPFLAGS="$CPPFLAGS -I${BOOSTDIR}"
86                              else
87                                BOOSTDIR="`pwd`/../boost_1_41_0"
88                                if test -d "${BOOSTDIR}"; then
89                                  CPPFLAGS="$CPPFLAGS -I${BOOSTDIR}"
90                                else
91                                  BOOSTDIR="`pwd`/../boost_1_40_0"
92                                  if test -d "${BOOSTDIR}"; then
93                                    CPPFLAGS="$CPPFLAGS -I${BOOSTDIR}"
94                                  else
95                                    BOOSTDIR="`pwd`/../boost_1_39_0"
96                                    if test -d "${BOOSTDIR}"; then
97                                      CPPFLAGS="$CPPFLAGS -I${BOOSTDIR}"
98                                    else
99                                      BOOSTDIR="`pwd`/../boost_1_38_0"
100                                      if test -d "${BOOSTDIR}"; then
101                                        CPPFLAGS="$CPPFLAGS -I${BOOSTDIR}"
102                                      else
103                                        BOOSTDIR="`pwd`/../boost_1_37_0"
104                                        if test -d "${BOOSTDIR}"; then
105                                          CPPFLAGS="$CPPFLAGS -I${BOOSTDIR}"
106                                        else
107                                          BOOSTDIR="`pwd`/../boost_1_36_0"
108                                          if test -d "${BOOSTDIR}"; then
109                                            CPPFLAGS="$CPPFLAGS -I${BOOSTDIR}"
110                                          else
111                                            BOOSTDIR="`pwd`/../boost_1_35_0"
112                                            if test -d "${BOOSTDIR}"; then
113                                              CPPFLAGS="$CPPFLAGS -I${BOOSTDIR}"
114                                            else
115                                              BOOSTDIR="`pwd`/../boost_1_34_1"
116                                              if test -d "${BOOSTDIR}"; then
117                                                CPPFLAGS="$CPPFLAGS -I${BOOSTDIR}"
118                                              else
119                                                BOOSTDIR="`pwd`/../boost_1_34_0"
120                                                if test -d "${BOOSTDIR}"; then
121                                                  CPPFLAGS="$CPPFLAGS -I${BOOSTDIR}"
122                                                else
123                                                  BOOSTDIR="`pwd`/../boost_1_33_1"
124                                                  if test -d "${BOOSTDIR}"; then
125                                                    CPPFLAGS="$CPPFLAGS -I${BOOSTDIR}"
126                                                  else
127                                                    BOOSTDIR="`pwd`/../boost_1_33_0"
128                                                    if test -d "${BOOSTDIR}"; then
129                                                      CPPFLAGS="$CPPFLAGS -I${BOOSTDIR}"
130                                                    fi
131                                                  fi
132                                                fi
133                                              fi
134                                            fi
135                                          fi
136                                        fi
137                                      fi
138                                    fi
139                                  fi
140                                fi
141                              fi
142                            fi
143                          fi
144                        fi
145                      fi
146                    fi
147                  fi
148                fi
149              fi
150            fi
151          fi
152        fi
153      fi
154    fi
155  fi
156])
157
158AC_ARG_ENABLE(separate-compilation,
159[  --enable-separate-compilation  separate compilation of asio source],
160[
161  SEPARATE_COMPILATION=yes
162])
163
164AC_ARG_ENABLE(boost-coroutine,
165[  --enable-boost-coroutine  use Boost.Coroutine to implement stackful coroutines],
166[
167  HAVE_BOOST_COROUTINE=yes
168])
169
170if test "$STANDALONE" != yes; then
171  AC_CHECK_HEADER([boost/noncopyable.hpp],,
172  [
173    echo "Can't find boost headers. Please check the location of the boost"
174    echo "distribution and rerun configure using the --with-boost=DIR option."
175    exit 1
176  ],[])
177fi
178
179AC_ARG_WITH(openssl,
180  AC_HELP_STRING([--with-openssl=DIR],[location of openssl]),
181[
182  CPPFLAGS="$CPPFLAGS -I${withval}"
183],[])
184
185AC_CHECK_HEADER([openssl/ssl.h],,
186[
187  OPENSSL_FOUND=no
188],[])
189
190if test x$OPENSSL_FOUND != xno; then
191  LIBS="$LIBS -lssl -lcrypto"
192fi
193
194AM_CONDITIONAL(HAVE_OPENSSL,test x$OPENSSL_FOUND != xno)
195
196WINDOWS=no
197case $host in
198  *-*-linux*)
199    CXXFLAGS="$CXXFLAGS -pthread"
200    LDFLAGS="$LDFLAGS -pthread"
201    ;;
202  *-*-solaris*)
203    if test "$GXX" = yes; then
204      CXXFLAGS="$CXXFLAGS -D_PTHREADS"
205    else
206      # We'll assume Sun's CC.
207      CXXFLAGS="$CXXFLAGS -mt"
208    fi
209    LIBS="$LIBS -lsocket -lnsl -lpthread"
210    ;;
211  *-*-mingw32*)
212    CXXFLAGS="$CXXFLAGS -mthreads"
213    LDFLAGS="$LDFLAGS -mthreads"
214    LIBS="$LIBS -lws2_32 -lmswsock"
215    WINDOWS=yes
216    ;;
217  *-pc-cygwin*)
218    CXXFLAGS="$CXXFLAGS -D__USE_W32_SOCKETS -D_WIN32_WINNT=0x0501"
219    LIBS="$LIBS -lws2_32 -lmswsock"
220    WINDOWS=yes
221    ;;
222  *-apple-darwin*)
223    CXXFLAGS="$CXXFLAGS"
224    LDFLAGS="$LDFLAGS"
225    ;;
226  *-*-freebsd*)
227    CXXFLAGS="$CXXFLAGS -pthread"
228    LDFLAGS="$LDFLAGS -pthread"
229    ;;
230  *-*-netbsd*)
231    CXXFLAGS="$CXXFLAGS -pthread"
232    LDFLAGS="$LDFLAGS -pthread"
233    ;;
234esac
235
236if test "$GXX" = yes; then
237  CXXFLAGS="$CXXFLAGS -ftemplate-depth-256"
238  if test "$STANDALONE" = yes; then
239    CPPFLAGS="-std=c++0x $CPPFLAGS"
240  fi
241fi
242
243if test "$STANDALONE" = yes; then
244  CPPFLAGS="$CPPFLAGS -DASIO_STANDALONE"
245fi
246
247if test "$SEPARATE_COMPILATION" = yes; then
248  CPPFLAGS="$CPPFLAGS -DASIO_SEPARATE_COMPILATION"
249fi
250
251AM_CONDITIONAL(STANDALONE,test x$STANDALONE = xyes)
252
253AM_CONDITIONAL(SEPARATE_COMPILATION,test x$SEPARATE_COMPILATION = xyes)
254
255AM_CONDITIONAL(HAVE_BOOST_COROUTINE,test x$HAVE_BOOST_COROUTINE = xyes)
256
257AM_CONDITIONAL(WINDOWS_TARGET,test x$WINDOWS != xno)
258
259AC_OUTPUT([
260  Makefile
261  include/Makefile
262  src/Makefile
263  src/tests/Makefile
264  src/examples/cpp03/Makefile
265  src/examples/cpp11/Makefile
266  src/examples/cpp14/Makefile])
267