mirror of
https://github.com/dashpay/dash.git
synced 2024-12-26 12:32:48 +01:00
68f8cbf043
366913e307d2dc13bc00d6bf7b6b2426c359ac30 build: AX_BOOST_THREAD serial 33 (Igor Cota) cf0681133ae7301ead7091eaee55c945da5cdfcc build: disable D-Bus on Android by default (Igor Cota) Pull request description: I've been trying to build for Android on different OSes/Gitian with varying success. Build system is quite the beast and sometimes it doesn't get it right. To make sure it does these three little tweaks make the Android build more robust: - disable D-Bus (Android doesn't support it and has its own way to trigger notifications) - don't flag `-lpthread` when linking Boost, [Bionic has built-in support](https://stackoverflow.com/questions/30801752/android-ndk-and-pthread) - ~~add `-static-libstdc++` to linker flags. This avoids having to bundle `libc++_shared` with CLI apps, still necessary with `bitcoin-qt` though (thanks Sjors)~~ I think these are small and fairly straightforward so I put them all into this one PR. ACKs for top commit: fanquake: ACK 366913e307d2dc13bc00d6bf7b6b2426c359ac30 Tree-SHA512: 31465fd228a5877c20aa2a05f98242d4eeb328b9b35bd1a7a3dcfb1ef51379d84053a81ade5a65436ffc1bc8ccd21f11ed0539eb10e827d182c0c04394629af0
188 lines
6.2 KiB
Plaintext
188 lines
6.2 KiB
Plaintext
# ===========================================================================
|
|
# https://www.gnu.org/software/autoconf-archive/ax_boost_thread.html
|
|
# ===========================================================================
|
|
#
|
|
# SYNOPSIS
|
|
#
|
|
# AX_BOOST_THREAD
|
|
#
|
|
# DESCRIPTION
|
|
#
|
|
# Test for Thread library from the Boost C++ libraries. The macro requires
|
|
# a preceding call to AX_BOOST_BASE. Further documentation is available at
|
|
# <http://randspringer.de/boost/index.html>.
|
|
#
|
|
# This macro calls:
|
|
#
|
|
# AC_SUBST(BOOST_THREAD_LIB)
|
|
#
|
|
# And sets:
|
|
#
|
|
# HAVE_BOOST_THREAD
|
|
#
|
|
# LICENSE
|
|
#
|
|
# Copyright (c) 2009 Thomas Porschberg <thomas@randspringer.de>
|
|
# Copyright (c) 2009 Michael Tindal
|
|
#
|
|
# Copying and distribution of this file, with or without modification, are
|
|
# permitted in any medium without royalty provided the copyright notice
|
|
# and this notice are preserved. This file is offered as-is, without any
|
|
# warranty.
|
|
|
|
#serial 33
|
|
|
|
AC_DEFUN([AX_BOOST_THREAD],
|
|
[
|
|
AC_ARG_WITH([boost-thread],
|
|
AS_HELP_STRING([--with-boost-thread@<:@=special-lib@:>@],
|
|
[use the Thread library from boost -
|
|
it is possible to specify a certain library for the linker
|
|
e.g. --with-boost-thread=boost_thread-gcc-mt ]),
|
|
[
|
|
if test "$withval" = "yes"; then
|
|
want_boost="yes"
|
|
ax_boost_user_thread_lib=""
|
|
else
|
|
want_boost="yes"
|
|
ax_boost_user_thread_lib="$withval"
|
|
fi
|
|
],
|
|
[want_boost="yes"]
|
|
)
|
|
|
|
if test "x$want_boost" = "xyes"; then
|
|
AC_REQUIRE([AC_PROG_CC])
|
|
AC_REQUIRE([AC_CANONICAL_BUILD])
|
|
CPPFLAGS_SAVED="$CPPFLAGS"
|
|
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
|
|
export CPPFLAGS
|
|
|
|
LDFLAGS_SAVED="$LDFLAGS"
|
|
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
|
|
export LDFLAGS
|
|
|
|
AC_CACHE_CHECK(whether the Boost::Thread library is available,
|
|
ax_cv_boost_thread,
|
|
[AC_LANG_PUSH([C++])
|
|
CXXFLAGS_SAVE=$CXXFLAGS
|
|
|
|
case "x$host_os" in
|
|
xsolaris )
|
|
CXXFLAGS="-pthreads $CXXFLAGS"
|
|
break;
|
|
;;
|
|
xmingw32 )
|
|
CXXFLAGS="-mthreads $CXXFLAGS"
|
|
break;
|
|
;;
|
|
*android* )
|
|
break;
|
|
;;
|
|
* )
|
|
CXXFLAGS="-pthread $CXXFLAGS"
|
|
break;
|
|
;;
|
|
esac
|
|
|
|
AC_COMPILE_IFELSE([
|
|
AC_LANG_PROGRAM(
|
|
[[@%:@include <boost/thread/thread.hpp>]],
|
|
[[boost::thread_group thrds;
|
|
return 0;]])],
|
|
ax_cv_boost_thread=yes, ax_cv_boost_thread=no)
|
|
CXXFLAGS=$CXXFLAGS_SAVE
|
|
AC_LANG_POP([C++])
|
|
])
|
|
if test "x$ax_cv_boost_thread" = "xyes"; then
|
|
case "x$host_os" in
|
|
xsolaris )
|
|
BOOST_CPPFLAGS="-pthreads $BOOST_CPPFLAGS"
|
|
break;
|
|
;;
|
|
xmingw32 )
|
|
BOOST_CPPFLAGS="-mthreads $BOOST_CPPFLAGS"
|
|
break;
|
|
;;
|
|
*android* )
|
|
break;
|
|
;;
|
|
* )
|
|
BOOST_CPPFLAGS="-pthread $BOOST_CPPFLAGS"
|
|
break;
|
|
;;
|
|
esac
|
|
|
|
AC_SUBST(BOOST_CPPFLAGS)
|
|
|
|
AC_DEFINE(HAVE_BOOST_THREAD,,
|
|
[define if the Boost::Thread library is available])
|
|
BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'`
|
|
|
|
LDFLAGS_SAVE=$LDFLAGS
|
|
case "x$host_os" in
|
|
*bsd* )
|
|
LDFLAGS="-pthread $LDFLAGS"
|
|
break;
|
|
;;
|
|
esac
|
|
if test "x$ax_boost_user_thread_lib" = "x"; then
|
|
for libextension in `ls -r $BOOSTLIBDIR/libboost_thread* 2>/dev/null | sed 's,.*/lib,,' | sed 's,\..*,,'`; do
|
|
ax_lib=${libextension}
|
|
AC_CHECK_LIB($ax_lib, exit,
|
|
[link_thread="yes"; break],
|
|
[link_thread="no"])
|
|
done
|
|
if test "x$link_thread" != "xyes"; then
|
|
for libextension in `ls -r $BOOSTLIBDIR/boost_thread* 2>/dev/null | sed 's,.*/,,' | sed 's,\..*,,'`; do
|
|
ax_lib=${libextension}
|
|
AC_CHECK_LIB($ax_lib, exit,
|
|
[link_thread="yes"; break],
|
|
[link_thread="no"])
|
|
done
|
|
fi
|
|
|
|
else
|
|
for ax_lib in $ax_boost_user_thread_lib boost_thread-$ax_boost_user_thread_lib; do
|
|
AC_CHECK_LIB($ax_lib, exit,
|
|
[link_thread="yes"; break],
|
|
[link_thread="no"])
|
|
done
|
|
|
|
fi
|
|
if test "x$ax_lib" = "x"; then
|
|
AC_MSG_ERROR(Could not find a version of the Boost::Thread library!)
|
|
fi
|
|
if test "x$link_thread" = "xno"; then
|
|
AC_MSG_ERROR(Could not link against $ax_lib !)
|
|
else
|
|
BOOST_THREAD_LIB="-l$ax_lib"
|
|
case "x$host_os" in
|
|
*bsd* )
|
|
BOOST_LDFLAGS="-pthread $BOOST_LDFLAGS"
|
|
break;
|
|
;;
|
|
xsolaris )
|
|
BOOST_THREAD_LIB="$BOOST_THREAD_LIB -lpthread"
|
|
break;
|
|
;;
|
|
xmingw32 )
|
|
break;
|
|
;;
|
|
*android* )
|
|
break;
|
|
;;
|
|
* )
|
|
BOOST_THREAD_LIB="$BOOST_THREAD_LIB -lpthread"
|
|
break;
|
|
;;
|
|
esac
|
|
AC_SUBST(BOOST_THREAD_LIB)
|
|
fi
|
|
fi
|
|
|
|
CPPFLAGS="$CPPFLAGS_SAVED"
|
|
LDFLAGS="$LDFLAGS_SAVED"
|
|
fi
|
|
])
|