debian: fix build-deps for focal
[amule.git] / m4 / muleboost.m4
blob899fd22647beaaaff207b3cde143ec2f7fc068af
1 #                                                       -*- Autoconf -*-
2 # This file is part of the aMule Project.
4 # Copyright (c) 2015 aMule Team ( admin@amule.org / http://www.amule.org )
6 # Any parts of this program derived from the xMule, lMule or eMule project,
7 # or contributed by third-party developers are copyrighted by their
8 # respective authors.
10 # This program is free software; you can redistribute it and/or modify
11 # it under the terms of the GNU General Public License as published by
12 # the Free Software Foundation; either version 2 of the License, or
13 # (at your option) any later version.
15 # This program is distributed in the hope that it will be useful,
16 # but WITHOUT ANY WARRANTY; without even the implied warranty of
17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 # GNU General Public License for more details.
20 # You should have received a copy of the GNU General Public License
21 # along with this program; if not, write to the Free Software
22 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
25 # -----------------------------------------------------------------------------
26 # Fake libtool initialization just for Boost
28 # We do not really want to use libtool, but Boost requires it. Let's just
29 # pretend we did initialize libtool for that single variable ($libext) Boost
30 # needs.
31 # -----------------------------------------------------------------------------
32 m4_defun([_FAKE_LT_INIT],
33 [# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
34 for cc_temp in $compiler""; do
35   case $cc_temp in
36     compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
37     distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
38     \-*) ;;
39     *) break;;
40  esac
41 done
42 cc_basename=`echo "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
43 # All known linkers require a `.a' archive for static linking (except MSVC,
44 # which needs '.lib').
45 libext=a
46 case $cc_basename in
47   cl*) libext=lib ;;
48 esac
51 # -----------------------------------------------------------------------------
52 # MULE_CHECK_BOOST(MINIMUM-BOOST-VERSION)
54 # Adds a configure flag --with-boost[=DIR]. You may optionally specify the
55 # location of boost headers (or sources), if they are in a non-standard
56 # location. If --with-boost if not given, nothing is done. Otherwise it
57 # checks for the required minumum Boost version, and Boost.Asio. If everything
58 # is fine, defines ASIO_SOCKETS. If the Boost sources are found, also defines
59 # HAVE_BOOST_SOURCES. Other flags defined for using Boost:
60 #   - BOOST_CPPFLAGS
61 #   - BOOST_SYSTEM_LDFLAGS
62 #   - BOOST_SYSTEM_LIBS
63 # -----------------------------------------------------------------------------
64 AC_DEFUN([MULE_CHECK_BOOST],
66         AC_ARG_WITH([boost],
67                 [AS_HELP_STRING([--with-boost@<:@=DIR@:>@], [use Boost.Asio for networking])],
68                 ,
69                 [with_boost=no]
70         )
71         AS_IF([test ${with_boost:-no} != no], [
72                 BOOST_REQUIRE([$1], [with_boost=disabled])
73                 AS_IF([test ${with_boost:-no} != disabled], [
74 dnl Boost requires libtool. We don't.
75                         _FAKE_LT_INIT
76 dnl Expand required macros here, otherwise autoconf may decide to expand them at
77 dnl the top level, which is highly unwanted and would mess up Boost detection.
78                         _BOOST_FIND_COMPILER_TAG
79                         BOOST_STATIC
80                         _BOOST_GUESS_WHETHER_TO_USE_MT
81                         AC_MSG_CHECKING([for Boost sources])
82                         MULE_BACKUP([CPPFLAGS])
83                         MULE_APPEND([CPPFLAGS], [$BOOST_CPPFLAGS])
84                         AC_COMPILE_IFELSE([
85                                 AC_LANG_PROGRAM([[#include <boost/../libs/system/src/error_code.cpp>]])
86                         ], [
87                                 AC_DEFINE([HAVE_BOOST_SOURCES], [1], [Define to 1 if you have the Boost sources])
88                                 AC_MSG_RESULT([yes])
89                         ], [
90                                 AC_MSG_RESULT([no])
91                                 BOOST_SYSTEM([mt])
92                                 AS_IF([test ${boost_cv_lib_system:-no} != yes], [
93                                         MULE_WARNING([Boost support has been disabled because Boost.System not found])
94                                         with_boost=disabled
95                                 ])
96                         ])
97                         MULE_RESTORE([CPPFLAGS])
98 dnl Not using BOOST_ASIO here, because it doesn't have ACTION-IF[-NOT]-FOUND parameters.
99                         BOOST_FIND_HEADER([boost/asio.hpp], [
100                                 MULE_WARNING([Boost support has been disabled because Boost.Asio not found])
101                                 with_boost=disabled
102                         ], [AC_DEFINE([ASIO_SOCKETS], [1], [Define to 1 if you have <boost/asio.hpp> and are using Boost.Asio for networking.])])
103                 ], [MULE_WARNING([Boost support has been disabled because of insufficient Boost version.])])
104         ])