aboutsummaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2014-01-21 08:52:52 +0100
committerWladimir J. van der Laan <laanwj@gmail.com>2014-01-21 08:55:07 +0100
commita682bc7e46f5a269fd8b6f58bdbe73384f6c76aa (patch)
treea9f1760e66b5ab730ad1d3ec25f7ade6d4e709b4 /configure.ac
parent1ab310e7df58476b4ad7242c190810315f40e6a2 (diff)
parent2041365c8c2d0f8e83715b2a643c3fd2cf6eb4cb (diff)
Merge pull request #3242
2041365 Bugfix: Use BOOST_CPPFLAGS when testing for boost sleep vs sleep_for (Luke Dashjr) e18e100 configure: Minor grammatical changes to be more clear (Luke Dashjr) a9dbcf0 configure: Change --with[out]-qt to --with[out]-gui and add --with[out]-cli and --with[out]-daemon to support more build configurations (Luke Dashjr) f472990 Bugfix: Correct captitalisation of Qt (Luke Dashjr) f930341 configure: Internal changes to make building bitcoind and bitcoin-cli optional (Luke Dashjr) 4a290b5 Cleanup LevelDB library dependencies (Luke Dashjr) 9b4e03b Bugfix: Undefine _FORTIFY_SOURCE before redefining it, to avoid warnings on compilers that define it by default (Luke Dashjr) 123e4f8 Bugfix: configure: Allow user-provided CXXFLAGS to override default optimisation, debug, and warning flags (Luke Dashjr)
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac93
1 files changed, 72 insertions, 21 deletions
diff --git a/configure.ac b/configure.ac
index 9737b884b4..973f4398df 100644
--- a/configure.ac
+++ b/configure.ac
@@ -24,6 +24,12 @@ m4_include([pkg.m4])
dnl faketime breaks configure and is only needed for make. Disable it here.
unset FAKETIME
+if test "x${CXXFLAGS+set}" = "xset"; then
+ CXXFLAGS_overridden=yes
+else
+ CXXFLAGS_overridden=no
+fi
+
dnl ==============================================================
dnl Setup for automake
dnl ==============================================================
@@ -92,7 +98,7 @@ AC_ARG_ENABLE([hardening],
AC_ARG_ENABLE([ccache],
[AS_HELP_STRING([--enable-ccache],
- [enable building with ccache (default is yes if ccache is found)])],
+ [use ccache for building (default is yes if ccache is found)])],
[use_ccache=$enableval],
[use_ccache=auto])
@@ -134,7 +140,9 @@ PKG_PROG_PKG_CONFIG
## TODO: Remove these hard-coded paths and flags. They are here for the sake of
## compatibility with the legacy buildsystem.
##
-CXXFLAGS="$CXXFLAGS -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameter"
+if test "x$CXXFLAGS_overridden" = "xno"; then
+ CXXFLAGS="$CXXFLAGS -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameter"
+fi
CPPFLAGS="$CPPFLAGS -DBOOST_SPIRIT_THREADSAFE -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS"
AC_LANG_PUSH([C++])
@@ -182,7 +190,9 @@ case $host in
CPPFLAGS="$CPPFLAGS -D_MT -DWIN32 -D_WINDOWS -DBOOST_THREAD_USE_LIB -D__USE_MINGW_ANSI_STDIO"
LEVELDB_TARGET_FLAGS="TARGET_OS=OS_WINDOWS_CROSSCOMPILE"
- CXXFLAGS="$CXXFLAGS -w"
+ if test "x$CXXFLAGS_overridden" = "xno"; then
+ CXXFLAGS="$CXXFLAGS -w"
+ fi
;;
*darwin*)
TARGET_OS=darwin
@@ -276,7 +286,12 @@ if test x$use_hardening != xno; then
AX_CHECK_COMPILE_FLAG([-Wstack-protector],[HARDENED_CXXFLAGS="$HARDENED_CXXFLAGS -Wstack-protector"])
AX_CHECK_COMPILE_FLAG([-fPIE],[HARDENED_CXXFLAGS="$HARDENED_CXXFLAGS -fPIE"])
- AX_CHECK_PREPROC_FLAG([-D_FORTIFY_SOURCE=2],[HARDENED_CPPFLAGS="$HARDENED_CPPFLAGS -D_FORTIFY_SOURCE=2"])
+ AX_CHECK_PREPROC_FLAG([-D_FORTIFY_SOURCE=2],[
+ AX_CHECK_PREPROC_FLAG([-U_FORTIFY_SOURCE],[
+ HARDENED_CPPFLAGS="$HARDENED_CPPFLAGS -U_FORTIFY_SOURCE"
+ ])
+ HARDENED_CPPFLAGS="$HARDENED_CPPFLAGS -D_FORTIFY_SOURCE=2"
+ ])
AX_CHECK_LINK_FLAG([[-Wl,--dynamicbase]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,--dynamicbase"])
AX_CHECK_LINK_FLAG([[-Wl,--nxcompat]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,--nxcompat"])
@@ -313,6 +328,14 @@ AC_TRY_COMPILE([#include <sys/socket.h>],
[ AC_MSG_RESULT(no)]
)
+LEVELDB_CPPFLAGS=
+LIBLEVELDB=
+LIBMEMENV=
+AM_CONDITIONAL([EMBEDDED_LEVELDB],[true])
+AC_SUBST(LEVELDB_CPPFLAGS)
+AC_SUBST(LIBLEVELDB)
+AC_SUBST(LIBMEMENV)
+
if test x$enable_wallet != xno; then
dnl Check for libdb_cxx only if wallet enabled
BITCOIN_FIND_BDB48
@@ -423,6 +446,18 @@ if test x$boost_sleep != xyes; then
AC_MSG_ERROR(No working boost sleep implementation found. If on ubuntu 13.10 with libboost1.54-all-dev remove libboost.1.54-all-dev and use libboost1.53-all-dev)
fi
+AC_ARG_WITH([cli],
+ [AS_HELP_STRING([--with-cli],
+ [with CLI (default is yes)])],
+ [build_bitcoin_cli=$withval],
+ [build_bitcoin_cli=yes])
+
+AC_ARG_WITH([daemon],
+ [AS_HELP_STRING([--with-daemon],
+ [with daemon (default is yes)])],
+ [build_bitcoind=$withval],
+ [build_bitcoind=yes])
+
BITCOIN_QT_INIT
if test x$use_pkgconfig = xyes; then
@@ -459,13 +494,21 @@ fi
BITCOIN_QT_PATH_PROGS([PROTOC], [protoc],$protoc_bin_path)
+AC_MSG_CHECKING([whether to build bitcoind])
+AM_CONDITIONAL([BUILD_BITCOIND], [test x$build_bitcoind = xyes])
+AC_MSG_RESULT($build_bitcoind)
+
+AC_MSG_CHECKING([whether to build bitcoin-cli])
+AM_CONDITIONAL([BUILD_BITCOIN_CLI], [test x$build_bitcoin_cli = xyes])
+AC_MSG_RESULT($build_bitcoin_cli)
+
dnl sets $bitcoin_enable_qt, $bitcoin_enable_qt_test, $bitcoin_enable_qt_dbus
BITCOIN_QT_CONFIGURE([$use_pkgconfig], [qt4])
if test x$use_ipv6 = xyes; then
dnl Check for ipv6 build requirements
- AC_MSG_CHECKING(for IPV6 build support)
+ AC_MSG_CHECKING(for operating system IPv6 support)
AC_TRY_LINK([
#if defined(_WINDOWS)
#include <winsock2.h>
@@ -480,18 +523,17 @@ if test x$use_ipv6 = xyes; then
struct sockaddr_in6 addr;
#endif
int temp = socket(AF_INET6, SOCK_STREAM, 0);],
- [AC_MSG_RESULT(yes); have_ipv6=yes; AC_DEFINE(HAVE_IPV6, 1, [Define this symbol if you have ipv6 build support])],
+ [AC_MSG_RESULT(yes); have_ipv6=yes; AC_DEFINE(HAVE_IPV6, 1, [Define this symbol if you have operating system IPv6 support])],
[AC_MSG_RESULT(no)]; have_ipv6=no)
fi
AC_LANG_POP
if test "x$use_ccache" != "xno"; then
- AC_MSG_CHECKING(if ccache should be enabled)
+ AC_MSG_CHECKING(if ccache should be used)
if test x$CCACHE = x; then
if test "x$use_ccache" = "xyes"; then
AC_MSG_ERROR([ccache not found.]);
else
- AC_MSG_NOTICE([ccache not found. Falling back to default CC])
use_ccache=no
fi
else
@@ -513,32 +555,32 @@ else
fi
dnl enable ipv6 support
-AC_MSG_CHECKING([if ipv6 should be enabled])
+AC_MSG_CHECKING([whether to build with support for IPv6])
if test x$have_ipv6 = xno; then
if test x$use_ipv6 = xyes; then
- AC_MSG_ERROR("ipv6 requested but cannot be built. use --disable-ipv6")
+ AC_MSG_ERROR([IPv6 requested, but cannot be built. use --disable-ipv6])
fi
AC_MSG_RESULT(no)
else
if test x$use_ipv6 = xyes; then
AC_MSG_RESULT(yes)
- AC_DEFINE([USE_IPV6],[1],[Define if ipv6 support should be compiled in])
+ AC_DEFINE([USE_IPV6],[1],[Define if IPv6 support should be compiled in])
else
AC_MSG_RESULT(no)
fi
fi
dnl enable upnp support
-AC_MSG_CHECKING([if upnp should be enabled])
+AC_MSG_CHECKING([whether to build with support for UPnP])
if test x$have_miniupnpc = xno; then
if test x$use_upnp = xyes; then
- AC_MSG_ERROR("upnp requested but cannot be built. use --without-miniupnpc")
+ AC_MSG_ERROR("UPnP requested but cannot be built. use --without-miniupnpc")
fi
AC_MSG_RESULT(no)
else
if test x$use_upnp != xno; then
AC_MSG_RESULT(yes)
- AC_MSG_CHECKING([if upnp should be on by default])
+ AC_MSG_CHECKING([whether to build with UPnP enabled by default])
use_upnp=yes
upnp_setting=0
if test x$use_upnp_default != xno; then
@@ -546,7 +588,7 @@ else
upnp_setting=1
fi
AC_MSG_RESULT($use_upnp_default)
- AC_DEFINE_UNQUOTED([USE_UPNP],[$upnp_setting],[Define to 1 for upnp runtime support])
+ AC_DEFINE_UNQUOTED([USE_UPNP],[$upnp_setting],[UPnP support not compiled if undefined, otherwise value (0 or 1) determines default state])
if test x$TARGET_OS = xwindows; then
CPPFLAGS="$CPPFLAGS -DSTATICLIB"
fi
@@ -559,14 +601,14 @@ dnl these are only used when qt is enabled
if test x$bitcoin_enable_qt != xno; then
BUILD_QT=qt
dnl enable dbus support
- AC_MSG_CHECKING([if dbus should be enabled])
+ AC_MSG_CHECKING([whether to build GUI with support for D-Bus])
if test x$bitcoin_enable_qt_dbus != xno; then
AC_DEFINE([USE_DBUS],[1],[Define if dbus support should be compiled in])
fi
AC_MSG_RESULT($bitcoin_enable_qt_dbus)
dnl enable qr support
- AC_MSG_CHECKING([if qr should be enabled])
+ AC_MSG_CHECKING([whether to build GUI with support for QR codes])
if test x$have_qrencode = xno; then
if test x$use_qr == xyes; then
AC_MSG_ERROR("QR support requested but cannot be built. use --without-qrencode")
@@ -586,16 +628,25 @@ if test x$bitcoin_enable_qt != xno; then
AC_MSG_WARN("xgettext is required to update qt translations")
fi
- if test x$use_tests = xyes; then
+ AC_MSG_CHECKING([whether to build test_bitcoin-qt])
+ if test x$use_tests$bitcoin_enable_qt_test = xyesyes; then
+ AC_MSG_RESULT([yes])
BUILD_TEST_QT="test"
- if test x$bitcoin_enable_qt_test != xyes; then
- AC_MSG_ERROR("QT Test lib not found. Use --disable-tests or --without-qt.")
- fi
+ else
+ AC_MSG_RESULT([no])
fi
fi
+AC_MSG_CHECKING([whether to build test_bitcoin])
if test x$use_tests = xyes; then
+ AC_MSG_RESULT([yes])
BUILD_TEST="test"
+else
+ AC_MSG_RESULT([no])
+fi
+
+if test "x$use_tests$build_bitcoind$use_qt" = "xnonono"; then
+ AC_MSG_ERROR([No targets! Please specify at least one of: --enable-cli --enable-daemon --enable-gui or --enable-tests])
fi
AM_CONDITIONAL([TARGET_DARWIN], [test x$TARGET_OS = xdarwin])