Configure: add more robust checks for boost libraries

This commit is contained in:
Andrzej Rybczak
2017-03-28 10:01:41 +02:00
parent 6f1e2d7516
commit 21f0b4acb6
5 changed files with 1623 additions and 81 deletions

View File

@@ -3,13 +3,13 @@ AC_CONFIG_SRCDIR([configure.ac])
AC_CONFIG_HEADERS(config.h) AC_CONFIG_HEADERS(config.h)
AM_INIT_AUTOMAKE([subdir-objects]) AM_INIT_AUTOMAKE([subdir-objects])
m4_include([m4/ax_lib_readline.m4]) AC_CONFIG_MACRO_DIR([m4])
AC_PREREQ(2.59) AC_PREREQ(2.59)
AC_LANG_CPLUSPLUS AC_LANG_CPLUSPLUS
AC_PROG_CXX AC_PROG_CXX
AM_PROG_LIBTOOL AC_PROG_LIBTOOL
AC_ARG_ENABLE(outputs, AS_HELP_STRING([--enable-outputs], [Enable outputs screen @<:@default=no@:>@]), [outputs=$enableval], [outputs=no]) AC_ARG_ENABLE(outputs, AS_HELP_STRING([--enable-outputs], [Enable outputs screen @<:@default=no@:>@]), [outputs=$enableval], [outputs=no])
AC_ARG_ENABLE(visualizer, AS_HELP_STRING([--enable-visualizer], [Enable music visualizer screen @<:@default=no@:>@]), [visualizer=$enableval], [visualizer=no]) AC_ARG_ENABLE(visualizer, AS_HELP_STRING([--enable-visualizer], [Enable music visualizer screen @<:@default=no@:>@]), [visualizer=$enableval], [visualizer=no])
@@ -50,78 +50,59 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[auto f = [](auto n) { return n*n; }; f(
AC_MSG_ERROR([[Your compiler doesn't seem to support generic lambda expressions, please upgrade (GCC >= 5)]]) AC_MSG_ERROR([[Your compiler doesn't seem to support generic lambda expressions, please upgrade (GCC >= 5)]])
) )
dnl ============================= dnl ======================
dnl = setting boost environment = dnl = checking for boost =
dnl ============================= dnl ======================
AS_IF([test -z "${BOOST_LIB_SUFFIX+x}"], [BOOST_LIB_SUFFIX=]) BOOST_REQUIRE([1.58])
AC_ARG_VAR([BOOST_LIB_SUFFIX], [Boost library name suffix [default=]]) AC_SUBST(BOOST_CPPFLAGS)
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
dnl ====================================== BOOST_STRING_ALGO
dnl = checking for various boost headers = BOOST_FORMAT
dnl ====================================== BOOST_HASH
AC_CHECK_HEADERS([boost/bind.hpp], , BOOST_CONVERSION
AC_MSG_ERROR(boost/bind.hpp is missing)) BOOST_MATH
AC_CHECK_HEADERS([boost/lexical_cast.hpp], , BOOST_OPTIONAL
AC_MSG_ERROR(boost/lexical_cast.hpp is missing)) BOOST_RANGE
AC_CHECK_HEADERS([boost/algorithm/string.hpp], , BOOST_TOKENIZER
AC_MSG_ERROR(boost/algorithm/string.hpp is missing)) BOOST_TUPLE
BOOST_VARIANT
dnl ================================= BOOST_DATE_TIME
dnl = checking for boost.filesystem = AC_SUBST(BOOST_DATE_TIME_LDFLAGS)
dnl ================================= AC_SUBST(BOOST_DATE_TIME_LIBS)
AC_CHECK_HEADERS([boost/filesystem.hpp], , LDFLAGS="$LDFLAGS $BOOST_DATE_TIME_LDFLAGS"
AC_MSG_ERROR(boost/filesystem.hpp is missing) LIBS="$LIBS $BOOST_DATE_TIME_LIBS"
)
AC_CHECK_LIB(boost_filesystem$BOOST_LIB_SUFFIX, main, LIBS="$LIBS -lboost_filesystem$BOOST_LIB_SUFFIX",
AC_MSG_ERROR([no boost.filesystem library found])
)
AC_CHECK_LIB(boost_system$BOOST_LIB_SUFFIX, main, LIBS="$LIBS -lboost_system$BOOST_LIB_SUFFIX",
AC_MSG_ERROR([no boost.system library found])
)
dnl ============================= BOOST_FILESYSTEM
dnl = checking for boost.format = AC_SUBST(BOOST_FILESYSTEM_LDFLAGS)
dnl ============================= AC_SUBST(BOOST_FILESYSTEM_LIBS)
AC_CHECK_HEADERS([boost/format.hpp], , LDFLAGS="$LDFLAGS $BOOST_FILESYSTEM_LDFLAGS"
AC_MSG_ERROR(boost/format.hpp is missing) LIBS="$LIBS $BOOST_FILESYSTEM_LIBS"
)
dnl ============================= BOOST_LOCALE
dnl = checking for boost.locale = AC_SUBST(BOOST_LOCALE_LDFLAGS)
dnl ============================= AC_SUBST(BOOST_LOCALE_LIBS)
AC_CHECK_HEADERS([boost/locale.hpp], , LDFLAGS="$LDFLAGS $BOOST_LOCALE_LDFLAGS"
AC_MSG_ERROR(boost/locale.hpp is missing) LIBS="$LIBS $BOOST_LOCALE_LIBS"
)
AC_CHECK_LIB(boost_locale$BOOST_LIB_SUFFIX, main, LIBS="$LIBS -lboost_locale$BOOST_LIB_SUFFIX",
AC_MSG_ERROR([no boost.locale library found])
)
dnl ================================= BOOST_PROGRAM_OPTIONS
dnl = checking for boost.posix_time = AC_SUBST(BOOST_PROGRAM_OPTIONS_LDFLAGS)
dnl ================================= AC_SUBST(BOOST_PROGRAM_OPTIONS_LIBS)
AC_CHECK_HEADERS([boost/date_time/posix_time/posix_time.hpp], , LDFLAGS="$LDFLAGS $BOOST_PROGRAM_OPTIONS_LDFLAGS"
AC_MSG_ERROR(boost/date_time/posix_time/posix_time.hpp is missing) LIBS="$LIBS $BOOST_PROGRAM_OPTIONS_LIBS"
)
dnl ====================================== BOOST_REGEX
dnl = checking for boost.program_options = AC_SUBST(BOOST_REGEX_LDFLAGS)
dnl ====================================== AC_SUBST(BOOST_REGEX_LIBS)
AC_CHECK_HEADERS([boost/program_options.hpp], , LDFLAGS="$LDFLAGS $BOOST_REGEX_LDFLAGS"
AC_MSG_ERROR(boost/program_options.hpp is missing) LIBS="$LIBS $BOOST_REGEX_LIBS"
)
AC_CHECK_LIB(boost_program_options$BOOST_LIB_SUFFIX, main, LIBS="$LIBS -lboost_program_options$BOOST_LIB_SUFFIX",
AC_MSG_ERROR([no boost.program_options library found])
)
dnl ============================ BOOST_THREAD
dnl = checking for boost.regex = AC_SUBST(BOOST_THREAD_LDFLAGS)
dnl ============================ AC_SUBST(BOOST_THREAD_LIBS)
AC_CHECK_HEADERS([boost/regex.hpp], , LDFLAGS+="$LDFLAGS $BOOST_THREAD_LDFLAGS"
AC_MSG_ERROR(boost/regex.hpp is missing) LIBS="$LIBS $BOOST_THREAD_LIBS"
)
AC_CHECK_LIB(boost_regex$BOOST_LIB_SUFFIX, main, LIBS="$LIBS -lboost_regex$BOOST_LIB_SUFFIX",
AC_MSG_ERROR([no boost.regex library found])
)
dnl ==================== dnl ====================
dnl = checking for icu = dnl = checking for icu =
@@ -144,17 +125,6 @@ PKG_CHECK_MODULES([ICU], [icu-uc], [
) )
], [[]]) ], [[]])
dnl =============================
dnl = checking for boost.thread =
dnl =============================
AC_DEFINE([BOOST_THREAD_VERSION], [3], [require boost.thread v3])
AC_CHECK_HEADERS([boost/thread.hpp], ,
AC_MSG_ERROR([boost/thread.hpp is missing or your boost version is too old (boost.thread v3 is required)])
)
AC_CHECK_LIB(boost_thread$BOOST_LIB_SUFFIX, main, LIBS="$LIBS -lboost_thread$BOOST_LIB_SUFFIX",
AC_MSG_ERROR([no boost.thread library found])
)
dnl ================================ dnl ================================
dnl = checking for various headers = dnl = checking for various headers =
dnl ================================ dnl ================================

1574
m4/boost.m4 Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -21,7 +21,6 @@
#include <cassert> #include <cassert>
#include <cerrno> #include <cerrno>
#include <cstring> #include <cstring>
#include <boost/array.hpp>
#include <boost/date_time/posix_time/posix_time.hpp> #include <boost/date_time/posix_time/posix_time.hpp>
#include <boost/filesystem/operations.hpp> #include <boost/filesystem/operations.hpp>
#include <boost/locale/conversion.hpp> #include <boost/locale/conversion.hpp>

View File

@@ -19,7 +19,6 @@
***************************************************************************/ ***************************************************************************/
#include <algorithm> #include <algorithm>
#include <boost/lambda/bind.hpp>
#include <boost/optional.hpp> #include <boost/optional.hpp>
#include <boost/date_time/posix_time/posix_time.hpp> #include <boost/date_time/posix_time/posix_time.hpp>
#include <cassert> #include <cassert>

View File

@@ -29,7 +29,7 @@
#ifdef HAVE_TAGLIB_H #ifdef HAVE_TAGLIB_H
# include "fileref.h" # include "fileref.h"
# include "tag.h" # include "tag.h"
# include "boost/lexical_cast.hpp" # include <boost/lexical_cast.hpp>
#endif // HAVE_TAGLIB_H #endif // HAVE_TAGLIB_H
using Global::MainHeight; using Global::MainHeight;