xref: /OK3568_Linux_fs/buildroot/package/mongodb/mongodb.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun################################################################################
2*4882a593Smuzhiyun#
3*4882a593Smuzhiyun# mongodb
4*4882a593Smuzhiyun#
5*4882a593Smuzhiyun################################################################################
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunMONGODB_VERSION = 4.2.11
8*4882a593SmuzhiyunMONGODB_SITE = https://fastdl.mongodb.org/src
9*4882a593SmuzhiyunMONGODB_SOURCE = mongodb-src-r$(MONGODB_VERSION).tar.gz
10*4882a593Smuzhiyun
11*4882a593SmuzhiyunMONGODB_LICENSE = Apache-2.0 (drivers), SSPL (database)
12*4882a593SmuzhiyunMONGODB_LICENSE_FILES = APACHE-2.0.txt LICENSE-Community.txt
13*4882a593Smuzhiyun
14*4882a593SmuzhiyunMONGODB_CPE_ID_VENDOR = mongodb
15*4882a593SmuzhiyunMONGODB_SELINUX_MODULES = mongodb
16*4882a593Smuzhiyun
17*4882a593SmuzhiyunMONGODB_DEPENDENCIES = \
18*4882a593Smuzhiyun	boost \
19*4882a593Smuzhiyun	host-python3-cheetah \
20*4882a593Smuzhiyun	host-python3-psutil \
21*4882a593Smuzhiyun	host-python3-pyyaml \
22*4882a593Smuzhiyun	host-python3-regex \
23*4882a593Smuzhiyun	host-python-requests \
24*4882a593Smuzhiyun	host-scons \
25*4882a593Smuzhiyun	pcre \
26*4882a593Smuzhiyun	snappy \
27*4882a593Smuzhiyun	sqlite \
28*4882a593Smuzhiyun	yaml-cpp \
29*4882a593Smuzhiyun	zlib
30*4882a593Smuzhiyun
31*4882a593SmuzhiyunMONGODB_SCONS_TARGETS = mongod mongos
32*4882a593Smuzhiyun
33*4882a593SmuzhiyunMONGODB_SCONS_ENV = CC="$(TARGET_CC)" CXX="$(TARGET_CXX)" \
34*4882a593Smuzhiyun	-j"$(PARALLEL_JOBS)"
35*4882a593Smuzhiyun
36*4882a593SmuzhiyunMONGODB_SCONS_OPTS = \
37*4882a593Smuzhiyun	--disable-minimum-compiler-version-enforcement \
38*4882a593Smuzhiyun	--disable-warnings-as-errors \
39*4882a593Smuzhiyun	--use-system-boost \
40*4882a593Smuzhiyun	--use-system-pcre \
41*4882a593Smuzhiyun	--use-system-snappy \
42*4882a593Smuzhiyun	--use-system-sqlite \
43*4882a593Smuzhiyun	--use-system-yaml \
44*4882a593Smuzhiyun	--use-system-zlib
45*4882a593Smuzhiyun
46*4882a593Smuzhiyun# need to pass mongo version when not building from git repo
47*4882a593SmuzhiyunMONGODB_SCONS_OPTS += MONGO_VERSION=$(MONGODB_VERSION)-
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun# WiredTiger database storage engine only supported on 64 bits
50*4882a593Smuzhiyunifeq ($(BR2_ARCH_IS_64),y)
51*4882a593SmuzhiyunMONGODB_SCONS_OPTS += --wiredtiger=on
52*4882a593Smuzhiyunelse
53*4882a593SmuzhiyunMONGODB_SCONS_OPTS += --wiredtiger=off
54*4882a593Smuzhiyunendif
55*4882a593Smuzhiyun
56*4882a593Smuzhiyun# JavaScript scripting engine and tcmalloc supported only on
57*4882a593Smuzhiyun# x86/x86-64 systems. Mongo target is a shell interface that
58*4882a593Smuzhiyun# depends on the javascript engine, so it will also only be
59*4882a593Smuzhiyun# built on x86/x86-64 systems.
60*4882a593Smuzhiyunifeq ($(BR2_i386)$(BR2_x86_64),y)
61*4882a593SmuzhiyunMONGODB_SCONS_OPTS += --js-engine=mozjs --allocator=tcmalloc
62*4882a593SmuzhiyunMONGODB_SCONS_TARGETS += mongo
63*4882a593Smuzhiyunelse
64*4882a593SmuzhiyunMONGODB_SCONS_OPTS += --js-engine=none --allocator=system
65*4882a593Smuzhiyunendif
66*4882a593Smuzhiyun
67*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBCURL),y)
68*4882a593SmuzhiyunMONGODB_DEPENDENCIES += libcurl
69*4882a593SmuzhiyunMONGODB_SCONS_OPTS += \
70*4882a593Smuzhiyun	--enable-free-mon=on \
71*4882a593Smuzhiyun	--enable-http-client=on
72*4882a593Smuzhiyunelse
73*4882a593SmuzhiyunMONGODB_SCONS_OPTS += \
74*4882a593Smuzhiyun	--enable-free-mon=off \
75*4882a593Smuzhiyun	--enable-http-client=off
76*4882a593Smuzhiyunendif
77*4882a593Smuzhiyun
78*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENSSL),y)
79*4882a593SmuzhiyunMONGODB_DEPENDENCIES += openssl
80*4882a593SmuzhiyunMONGODB_SCONS_OPTS += \
81*4882a593Smuzhiyun	--ssl=on \
82*4882a593Smuzhiyun	--ssl-provider=openssl
83*4882a593Smuzhiyunelse
84*4882a593SmuzhiyunMONGODB_SCONS_OPTS += --ssl=off
85*4882a593Smuzhiyunendif
86*4882a593Smuzhiyun
87*4882a593Smuzhiyundefine MONGODB_BUILD_CMDS
88*4882a593Smuzhiyun	(cd $(@D); \
89*4882a593Smuzhiyun		$(HOST_DIR)/bin/python3 $(SCONS) \
90*4882a593Smuzhiyun		$(MONGODB_SCONS_ENV) \
91*4882a593Smuzhiyun		$(MONGODB_SCONS_OPTS) \
92*4882a593Smuzhiyun		$(MONGODB_SCONS_TARGETS))
93*4882a593Smuzhiyunendef
94*4882a593Smuzhiyun
95*4882a593Smuzhiyundefine MONGODB_INSTALL_TARGET_CMDS
96*4882a593Smuzhiyun	(cd $(@D); \
97*4882a593Smuzhiyun		$(HOST_DIR)/bin/python3 $(SCONS) \
98*4882a593Smuzhiyun		$(MONGODB_SCONS_ENV) \
99*4882a593Smuzhiyun		$(MONGODB_SCONS_OPTS) \
100*4882a593Smuzhiyun		--prefix=$(TARGET_DIR)/usr \
101*4882a593Smuzhiyun		install)
102*4882a593Smuzhiyunendef
103*4882a593Smuzhiyun
104*4882a593Smuzhiyun$(eval $(generic-package))
105