1 # Copyright (C) 2016-2017, Antony Polukhin.
3 # Use, modification and distribution is subject to the Boost Software License,
4 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
5 # http://www.boost.org/LICENSE_1_0.txt)
11 <target-os>linux:<cxxflags>"-fvisibility=hidden"
20 local LIBBACKTRACE_PATH = [ modules.peek : LIBBACKTRACE_PATH ] ;
23 : <search>$(LIBBACKTRACE_PATH)/lib <link>static
25 : <include>$(LIBBACKTRACE_PATH)/include
28 actions mp_simple_run_action
33 rule mp-run-simple ( sources + : args * : input-files * : requirements * : target-name )
35 exe $(target-name)_exe : $(sources) : $(requirements) ;
36 explicit $(target-name)_exe ;
37 make $(target-name).output : $(target-name)_exe : @mp_simple_run_action ;
38 explicit $(target-name).output ;
39 alias $(target-name) : $(target-name).output ;
42 mp-run-simple has_backtrace.cpp : : : <library>backtrace : libbacktrace ;
43 explicit libbacktrace ;
45 mp-run-simple has_addr2line.cpp : : : : addr2line ;
48 mp-run-simple has_windbg.cpp : : : <library>Dbgeng <library>ole32 : WinDbg ;
51 mp-run-simple has_windbg_cached.cpp : : : <library>Dbgeng <library>ole32 : WinDbgCached ;
52 explicit WinDbgCached ;
56 lib boost_stacktrace_noop
61 <link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
63 : # usage-requirements
64 #<link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
67 libraries += boost_stacktrace_noop ;
69 lib boost_stacktrace_backtrace
74 <target-os>linux:<library>dl
76 <link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
77 [ check-target-builds ../build//libbacktrace : : <build>no ]
79 : # usage-requirements
80 #<link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
83 libraries += boost_stacktrace_backtrace ;
85 lib boost_stacktrace_addr2line
90 <target-os>linux:<library>dl
91 <link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
92 [ check-target-builds ../build//addr2line : : <build>no ]
94 : # usage-requirements
95 #<link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
98 libraries += boost_stacktrace_addr2line ;
100 lib boost_stacktrace_basic
105 <target-os>linux:<library>dl
106 <link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
107 [ check-target-builds ../build//WinDbg : <build>no ]
109 : # usage-requirements
110 #<link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
113 libraries += boost_stacktrace_basic ;
115 lib boost_stacktrace_windbg
120 <library>Dbgeng <library>ole32
121 <link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
122 [ check-target-builds ../build//WinDbg : : <build>no ]
124 : # usage-requirements
125 #<link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
128 libraries += boost_stacktrace_windbg ;
130 lib boost_stacktrace_windbg_cached
132 ../src/windbg_cached.cpp
135 <library>Dbgeng <library>ole32
136 <link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
137 [ check-target-builds ../build//WinDbgCached : : <build>no ]
139 : # usage-requirements
140 #<link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
143 libraries += boost_stacktrace_windbg_cached ;
145 boost-install $(libraries) ;