kumquat-buildroot/package/poco/poco.mk
Yegor Yefremov c735f39881 poco: disable fpenvironment for soft floating point configuration
Many platforms don't provide all FPU features needed by Poco when
configured for soft floating point in their fenv.h header. So
disable fpenvironment for this configuration to avoid build breakage.

Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-10-10 10:47:44 +02:00

88 lines
2.7 KiB
Makefile

################################################################################
#
# poco
#
################################################################################
POCO_VERSION = poco-1.8.1-release
POCO_SITE = $(call github,pocoproject,poco,$(POCO_VERSION))
POCO_LICENSE = BSL-1.0
POCO_LICENSE_FILES = LICENSE
POCO_INSTALL_STAGING = YES
POCO_DEPENDENCIES = zlib pcre \
$(if $(BR2_PACKAGE_POCO_XML),expat) \
$(if $(BR2_PACKAGE_POCO_CRYPTO),openssl) \
$(if $(BR2_PACKAGE_POCO_NETSSL_OPENSSL),openssl) \
$(if $(BR2_PACKAGE_POCO_DATA_SQLITE),sqlite) \
$(if $(BR2_PACKAGE_POCO_DATA_MYSQL),mysql)
POCO_OMIT = Data/ODBC PageCompiler \
$(if $(BR2_PACKAGE_POCO_JSON),,JSON) \
$(if $(BR2_PACKAGE_POCO_XML),,XML) \
$(if $(BR2_PACKAGE_POCO_UTIL),,Util) \
$(if $(BR2_PACKAGE_POCO_NET),,Net) \
$(if $(BR2_PACKAGE_POCO_NETSSL_OPENSSL),,NetSSL_OpenSSL) \
$(if $(BR2_PACKAGE_POCO_CRYPTO),,Crypto) \
$(if $(BR2_PACKAGE_POCO_ZIP),,Zip) \
$(if $(BR2_PACKAGE_POCO_CPP_PARSER),,CppParser) \
$(if $(BR2_PACKAGE_POCO_PDF),,PDF) \
$(if $(BR2_PACKAGE_POCO_REDIS),,Redis) \
$(if $(BR2_PACKAGE_POCO_MONGODB),,MongoDB) \
$(if $(BR2_PACKAGE_POCO_DATA),,Data) \
$(if $(BR2_PACKAGE_POCO_DATA_MYSQL),,Data/MySQL) \
$(if $(BR2_PACKAGE_POCO_DATA_SQLITE),,Data/SQLite)
ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y)
POCO_CONF_OPTS += --no-fpenvironment --no-wstring
endif
# architectures missing some FE_* in their fenv.h
ifeq ($(BR2_sh4a)$(BR2_nios2),y)
POCO_CONF_OPTS += --no-fpenvironment
endif
# disable fpenvironment for soft floating point configuration
ifeq ($(BR2_SOFT_FLOAT),y)
POCO_CONF_OPTS += --no-fpenvironment
endif
ifeq ($(BR2_STATIC_LIBS),y)
POCO_MAKE_TARGET = static_release
else ifeq ($(BR2_SHARED_LIBS),y)
POCO_MAKE_TARGET = shared_release
else ifeq ($(BR2_SHARED_STATIC_LIBS),y)
POCO_MAKE_TARGET = all_release
endif
define POCO_CONFIGURE_CMDS
(cd $(@D); $(TARGET_MAKE_ENV) ./configure \
--config=Linux \
--prefix=/usr \
--omit="$(POCO_OMIT)" \
$(POCO_CONF_OPTS) \
--unbundled \
--no-tests \
--no-samples)
endef
# Use $(MAKE1) to avoid failures on heavilly parallel machines (e.g. -j25)
define POCO_BUILD_CMDS
$(TARGET_MAKE_ENV) $(MAKE1) POCO_TARGET_OSARCH=$(ARCH) CROSS_COMPILE=$(TARGET_CROSS) \
MYSQL_LIBDIR=$(STAGING_DIR)/usr/lib/mysql \
MYSQL_INCDIR=$(STAGING_DIR)/usr/include/mysql \
DEFAULT_TARGET=$(POCO_MAKE_TARGET) -C $(@D)
endef
define POCO_INSTALL_STAGING_CMDS
$(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(STAGING_DIR) POCO_TARGET_OSARCH=$(ARCH) \
DEFAULT_TARGET=$(POCO_MAKE_TARGET) install -C $(@D)
endef
define POCO_INSTALL_TARGET_CMDS
$(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(TARGET_DIR) POCO_TARGET_OSARCH=$(ARCH) \
DEFAULT_TARGET=$(POCO_MAKE_TARGET) install -C $(@D)
endef
$(eval $(generic-package))