Commit | Line | Data |
---|---|---|
66817f64 RP |
1 | # =========================================================================== |
2 | # http://autoconf-archive.cryp.to/ax_boost_signals.html | |
3 | # =========================================================================== | |
4 | # | |
5 | # SYNOPSIS | |
6 | # | |
7 | # AX_BOOST_SIGNALS | |
8 | # | |
9 | # DESCRIPTION | |
10 | # | |
11 | # Test for Signals library from the Boost C++ libraries. The macro | |
12 | # requires a preceding call to AX_BOOST_BASE. Further documentation is | |
13 | # available at <http://randspringer.de/boost/index.html>. | |
14 | # | |
15 | # This macro calls: | |
16 | # | |
17 | # AC_SUBST(BOOST_SIGNALS_LIB) | |
18 | # | |
19 | # And sets: | |
20 | # | |
21 | # HAVE_BOOST_SIGNALS | |
22 | # | |
23 | # LAST MODIFICATION | |
24 | # | |
25 | # 2008-04-12 | |
26 | # | |
27 | # COPYLEFT | |
28 | # | |
29 | # Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de> | |
30 | # Copyright (c) 2008 Michael Tindal | |
31 | # | |
32 | # Copying and distribution of this file, with or without modification, are | |
33 | # permitted in any medium without royalty provided the copyright notice | |
34 | # and this notice are preserved. | |
35 | ||
36 | AC_DEFUN([AX_BOOST_SIGNALS], | |
37 | [ | |
38 | AC_ARG_WITH([boost-signals], | |
39 | AS_HELP_STRING([--with-boost-signals@<:@=special-lib@:>@], | |
40 | [use the Signals library from boost - it is possible to specify a certain library for the linker | |
41 | e.g. --with-boost-signals=boost_signals-gcc-mt-d ]), | |
42 | [ | |
43 | if test "$withval" = "no"; then | |
44 | want_boost="no" | |
45 | elif test "$withval" = "yes"; then | |
46 | want_boost="yes" | |
47 | ax_boost_user_signals_lib="" | |
48 | else | |
49 | want_boost="yes" | |
50 | ax_boost_user_signals_lib="$withval" | |
51 | fi | |
52 | ], | |
53 | [want_boost="yes"] | |
54 | ) | |
55 | ||
56 | if test "x$want_boost" = "xyes"; then | |
57 | AC_REQUIRE([AC_PROG_CC]) | |
58 | CPPFLAGS_SAVED="$CPPFLAGS" | |
59 | CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" | |
60 | export CPPFLAGS | |
61 | ||
62 | LDFLAGS_SAVED="$LDFLAGS" | |
63 | LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" | |
64 | export LDFLAGS | |
65 | ||
66 | AC_CACHE_CHECK(whether the Boost::Signals library is available, | |
67 | ax_cv_boost_signals, | |
68 | [AC_LANG_PUSH([C++]) | |
69 | AC_COMPILE_IFELSE(AC_LANG_PROGRAM([[@%:@include <boost/signal.hpp> | |
70 | ]], | |
71 | [[boost::signal<void ()> sig; | |
72 | return 0; | |
73 | ]]), | |
74 | ax_cv_boost_signals=yes, ax_cv_boost_signals=no) | |
75 | AC_LANG_POP([C++]) | |
76 | ]) | |
77 | if test "x$ax_cv_boost_signals" = "xyes"; then | |
78 | AC_DEFINE(HAVE_BOOST_SIGNALS,,[define if the Boost::Signals library is available]) | |
79 | BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'` | |
80 | if test "x$ax_boost_user_signals_lib" = "x"; then | |
81 | for libextension in `ls $BOOSTLIBDIR/libboost_signals*.{so,a}* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_signals.*\)\.so.*$;\1;' -e 's;^lib\(boost_signals.*\)\.a*$;\1;'` ; do | |
82 | ax_lib=${libextension} | |
83 | AC_CHECK_LIB($ax_lib, exit, | |
84 | [BOOST_SIGNALS_LIB="-l$ax_lib"; AC_SUBST(BOOST_SIGNALS_LIB) link_signals="yes"; break], | |
85 | [link_signals="no"]) | |
86 | done | |
87 | if test "x$link_signals" != "xyes"; then | |
88 | for libextension in `ls $BOOSTLIBDIR/boost_signals*.{dll,a}* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^\(boost_signals.*\)\.dll.*$;\1;' -e 's;^\(boost_signals.*\)\.a*$;\1;'` ; do | |
89 | ax_lib=${libextension} | |
90 | AC_CHECK_LIB($ax_lib, exit, | |
91 | [BOOST_SIGNALS_LIB="-l$ax_lib"; AC_SUBST(BOOST_SIGNALS_LIB) link_signals="yes"; break], | |
92 | [link_signals="no"]) | |
93 | done | |
94 | fi | |
95 | ||
96 | else | |
97 | for ax_lib in $ax_boost_user_signals_lib boost_signals-$ax_boost_user_signals_lib; do | |
98 | AC_CHECK_LIB($ax_lib, main, | |
99 | [BOOST_SIGNALS_LIB="-l$ax_lib"; AC_SUBST(BOOST_SIGNALS_LIB) link_signals="yes"; break], | |
100 | [link_signals="no"]) | |
101 | done | |
102 | ||
103 | fi | |
104 | if test "x$link_signals" != "xyes"; then | |
105 | AC_MSG_ERROR(Could not link against $ax_lib !) | |
106 | fi | |
107 | fi | |
108 | ||
109 | CPPFLAGS="$CPPFLAGS_SAVED" | |
110 | LDFLAGS="$LDFLAGS_SAVED" | |
111 | fi | |
112 | ]) |