Browse Source

boost: fix build with uClibc, add locale/timer modules options

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>
Peter Korsgaard 13 years ago
parent
commit
8b354dac5a
2 changed files with 24 additions and 5 deletions
  1. 10 4
      package/boost/Config.in
  2. 14 1
      package/boost/boost.mk

+ 10 - 4
package/boost/Config.in

@@ -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"
 

+ 14 - 1
package/boost/boost.mk

@@ -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)