boost: fix build with uClibc, add locale/timer modules options
authorPeter Korsgaard <jacmet@sunsite.dk>
Mon, 16 Apr 2012 19:46:46 +0000 (21:46 +0200)
committerPeter Korsgaard <jacmet@sunsite.dk>
Mon, 16 Apr 2012 19:46:46 +0000 (21:46 +0200)
Boost 1.49 added two new modules, locale and timer - So add sub options
to control compilation of those. The locale module by default compiles
the posix backend under Linux, but this needs monetary.h which isn't
provided by uClibc, so work around that.

While we're at it, hide the icu option as that is just an internal
configuration option used by E.G. the locale module.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
package/boost/Config.in
package/boost/boost.mk

index 578fced374d8f9ae04f7fc95898c8a42befa6dbc..87983676ead5ed8641db8812772bae906d4393a2 100644 (file)
@@ -37,13 +37,16 @@ config BR2_PACKAGE_BOOST_GRAPH
 config BR2_PACKAGE_BOOST_GRAPH_PARALLEL
        bool "boost-graph_parallel"
 
-config BR2_PACKAGE_BOOST_ICU
-        select BR2_PACKAGE_ICU
-       bool "boost-icu"
-
 config BR2_PACKAGE_BOOST_IOSTREAMS
        bool "boost-iostreams"
 
+config BR2_PACKAGE_BOOST_LOCALE
+       depends on BR2_USE_WCHAR
+       bool "boost-locale"
+
+comment "boost-locale requires a toolchain with wchar support"
+       depends on !BR2_USE_WCHAR
+
 config BR2_PACKAGE_BOOST_MATH
        bool "boost-math"
 
@@ -75,6 +78,9 @@ config BR2_PACKAGE_BOOST_THREAD
        depends on BR2_TOOLCHAIN_HAS_THREADS
        bool "boost-thread"
 
+config BR2_PACKAGE_BOOST_TIMER
+       bool "boost-timer"
+
 config BR2_PACKAGE_BOOST_WAVE
        bool "boost-wave"
 
index e25e24d84ae064f2a98bd7d9c61919dcd0eee49b..8864bf9c4bb8fe8334f20845b2b59170f5d9c3f6 100644 (file)
@@ -24,6 +24,7 @@ BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_FILESYSTEM),,filesystem)
 BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_GRAPH),,graph)
 BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_GRAPH_PARALLEL),,graph_parallel)
 BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_IOSTREAMS),,iostreams)
+BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_LOCALE),,locale)
 BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_MATH),,math)
 BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_MPI),,mpi)
 BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_PROGRAM_OPTIONS),,program_options)
@@ -34,15 +35,25 @@ BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_SIGNALS),,signals)
 BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_SYSTEM),,system)
 BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_TEST),,test)
 BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_THREAD),,thread)
+BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_TIMER),,timer)
 BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_WAVE),,wave)
 
-ifeq ($(BR2_PACKAGE_BOOST_ICU),y)
+ifeq ($(BR2_PACKAGE_ICU),y)
 BOOST_FLAGS += --with-icu
 BOOST_DEPENDENCIES += icu
 else
 BOOST_FLAGS += --without-icu
 endif
 
+ifeq ($(BR2_PACKAGE_BOOST_LOCALE),y)
+ifeq ($(BR2_TOOLCHAIN_BUILDROOT)$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC)$(BR2_TOOLCHAIN_CTNG_uClibc),y)
+# posix backend needs monetary.h which isn't available on uClibc
+BOOST_OPT += boost.locale.posix=off
+endif
+
+BOOST_DEPENDENCIES += $(if $(BR2_ENABLE_LOCALE),,libiconv)
+endif
+
 BOOST_LINK = $(if $(BR2_PREFER_STATIC_LIB),static,shared)
 BOOST_MULTI = $(if $(BR2_PACKAGE_BOOST_MULTITHREADED),multi,single)
 BOOST_VARIANT = $(if $(BR2_ENABLE_DEBUG),debug,release)
@@ -64,6 +75,7 @@ define BOOST_INSTALL_TARGET_CMDS
        link=$(BOOST_LINK) \
        threading=$(BOOST_MULTI) \
        runtime-link=$(BOOST_LINK) \
+       $(BOOST_OPT) \
        --prefix=$(TARGET_DIR)/usr \
        --layout=system install )
 endef
@@ -75,6 +87,7 @@ define BOOST_INSTALL_STAGING_CMDS
        variant=$(BOOST_VARIANT) \
        link=$(BOOST_LINK) \
        threading=$(BOOST_MULTI) \
+       $(BOOST_OPT) \
        runtime-link=$(BOOST_LINK) \
        --prefix=$(STAGING_DIR)/usr \
        --layout=system install)