xref: /OK3568_Linux_fs/buildroot/package/poco/poco.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1################################################################################
2#
3# poco
4#
5################################################################################
6
7POCO_VERSION = 1.10.1
8POCO_SITE = $(call github,pocoproject,poco,poco-$(POCO_VERSION)-release)
9POCO_LICENSE = BSL-1.0
10POCO_LICENSE_FILES = LICENSE
11POCO_CPE_ID_VENDOR = pocoproject
12POCO_INSTALL_STAGING = YES
13
14POCO_DEPENDENCIES = zlib pcre \
15	$(if $(BR2_PACKAGE_POCO_XML),expat) \
16	$(if $(BR2_PACKAGE_POCO_CRYPTO),openssl) \
17	$(if $(BR2_PACKAGE_POCO_NETSSL_OPENSSL),openssl) \
18	$(if $(BR2_PACKAGE_POCO_DATA_SQLITE),sqlite) \
19	$(if $(BR2_PACKAGE_POCO_DATA_MYSQL),mysql)
20
21POCO_OMIT = Data/ODBC PageCompiler \
22	$(if $(BR2_PACKAGE_POCO_JSON),,JSON) \
23	$(if $(BR2_PACKAGE_POCO_XML),,XML) \
24	$(if $(BR2_PACKAGE_POCO_UTIL),,Util) \
25	$(if $(BR2_PACKAGE_POCO_NET),,Net) \
26	$(if $(BR2_PACKAGE_POCO_NETSSL_OPENSSL),,NetSSL_OpenSSL) \
27	$(if $(BR2_PACKAGE_POCO_CRYPTO),,Crypto) \
28	$(if $(BR2_PACKAGE_POCO_ZIP),,Zip) \
29	$(if $(BR2_PACKAGE_POCO_CPP_PARSER),,CppParser) \
30	$(if $(BR2_PACKAGE_POCO_PDF),,PDF) \
31	$(if $(BR2_PACKAGE_POCO_REDIS),,Redis) \
32	$(if $(BR2_PACKAGE_POCO_MONGODB),,MongoDB) \
33	$(if $(BR2_PACKAGE_POCO_DATA),,Data) \
34	$(if $(BR2_PACKAGE_POCO_DATA_MYSQL),,Data/MySQL) \
35	$(if $(BR2_PACKAGE_POCO_DATA_SQLITE),,Data/SQLite) \
36	$(if $(BR2_PACKAGE_POCO_JWT),,JWT)
37
38ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y)
39POCO_CONF_OPTS += --no-fpenvironment --no-wstring
40endif
41
42# architectures missing some FE_* in their fenv.h
43ifeq ($(BR2_sh4a)$(BR2_nios2),y)
44POCO_CONF_OPTS += --no-fpenvironment
45endif
46
47# disable fpenvironment for soft floating point configuration
48ifeq ($(BR2_SOFT_FLOAT),y)
49POCO_CONF_OPTS += --no-fpenvironment
50endif
51
52ifeq ($(BR2_STATIC_LIBS),y)
53POCO_MAKE_TARGET = static_release
54else ifeq ($(BR2_SHARED_LIBS),y)
55POCO_MAKE_TARGET = shared_release
56else ifeq ($(BR2_SHARED_STATIC_LIBS),y)
57POCO_MAKE_TARGET = all_release
58endif
59
60define POCO_CONFIGURE_CMDS
61	(cd $(@D); $(TARGET_MAKE_ENV) ./configure \
62		--config=Linux \
63		--prefix=/usr \
64		--cflags=-std=c++14 \
65		--omit="$(POCO_OMIT)" \
66		$(POCO_CONF_OPTS) \
67		--unbundled \
68		--no-tests \
69		--no-samples)
70endef
71
72# Use $(MAKE1) to avoid failures on heavilly parallel machines (e.g. -j25)
73define POCO_BUILD_CMDS
74	$(TARGET_MAKE_ENV) $(MAKE1) POCO_TARGET_OSARCH=$(ARCH) CROSS_COMPILE=$(TARGET_CROSS) \
75		MYSQL_LIBDIR=$(STAGING_DIR)/usr/lib/mysql \
76		MYSQL_INCDIR=$(STAGING_DIR)/usr/include/mysql \
77		DEFAULT_TARGET=$(POCO_MAKE_TARGET) -C $(@D)
78endef
79
80define POCO_INSTALL_STAGING_CMDS
81	$(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(STAGING_DIR) POCO_TARGET_OSARCH=$(ARCH) \
82		DEFAULT_TARGET=$(POCO_MAKE_TARGET) install -C $(@D)
83endef
84
85define POCO_INSTALL_TARGET_CMDS
86	$(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(TARGET_DIR) POCO_TARGET_OSARCH=$(ARCH) \
87		DEFAULT_TARGET=$(POCO_MAKE_TARGET) install -C $(@D)
88endef
89
90$(eval $(generic-package))
91