#
# Copyright (C) 2011-2014 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

include $(TOPDIR)/rules.mk

PKG_NAME:=mongodb
PKG_VERSION:=3.4.10

PKG_SOURCE:=$(PKG_NAME)-src-r$(PKG_VERSION).tar.gz
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-src-r$(PKG_VERSION)

include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/scons.mk
MONGODB_BIN_PATH:=$(TOPDIR)/tplink/configs/private/$(PRODUCT)/filesystems/usr/bin/
ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),)
SCONS_ENV_TMP = \
	TARGET_ARCH="$(CONFIG_ARCH)" \
	MONGO_DISTARCH="$(CONFIG_ARCH)" \
	CC="${TOOLCHAIN_DIR}/bin/$(TARGET_CC_NOCACHE)" \
	CXX="${TOOLCHAIN_DIR}/bin/$(TARGET_CXX_NOCACHE)" \
	CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \
	CCFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \
	CXXFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \
	CPPPATH="$(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \
	LINKFLAGS="$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS)" \
	LIBPATH=$(LINKFLAGS)

else
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include -march=armv8-a+crc -mtune=generic
TARGET_LDFLAGS += -L$(STAGING_DIR)/usr/lib -Wl,--rpath=$(STAGING_DIR)/usr/lib -lpthread -lrt -lssl -lcrypto

SCONS_ENV_TMP = \
	TARGET_ARCH="$(CONFIG_ARCH)" \
	MONGO_DISTARCH="$(CONFIG_ARCH)" \
	CC="${CONFIG_TOOLCHAIN_ROOT}/bin/$(TARGET_CC_NOCACHE)" \
	CXX="${CONFIG_TOOLCHAIN_ROOT}/bin/$(TARGET_CXX_NOCACHE)" \
	CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS) -I$(STAGING_DIR)/usr/include" \
	CCFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS) -I$(STAGING_DIR)/usr/include" \
	CXXFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS) -I$(STAGING_DIR)/usr/include" \
	CPPPATH="$(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS) -I$(STAGING_DIR)/usr/include" \
	LINKFLAGS="$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS) -L$(STAGING_DIR)/usr/lib" \
	LIBPATH=$(LINKFLAGS)
EXTRA_CFLAGS += -DMONGO_EXTERNAL_TOOLCHAIN
endif

SCONS_ENV = $(subst -march=armv8-a, -march=armv8-a+crc, ${SCONS_ENV_TMP})

SCONS_OPTION = \
	--propagate-shell-environment \
	--disable-warnings-as-errors

define Package/mongodb
  SECTION:=utils
  CATEGORY:=Utilities
  TITLE:=mongodb database
  DEPENDS:=+libstdcpp +libpcap +libpthread +librt  +libopenssl +libcrypto
  URL:=www.mongodb.com
  SUBMENU:=database
endef

define Package/mongodb/description
 mongodb database.
endef

define Build/Configure/Default
endef

define Build/Compile
	(if [ -z `ls $(MONGODB_BIN_PATH) | grep mongo` ];then \
	  cd $(PKG_BUILD_DIR); scons VERBOSE=on $(SCONS_ENV) $(SCONS_OPTION) core; \
	fi;)
endef

define Package/mongodb/install
	(if [ -z `ls $(MONGODB_BIN_PATH) | grep mongo` ];then \
		cp -rf $(PKG_BUILD_DIR)/mongo $(MONGODB_BIN_PATH) ; \
		cp -rf $(PKG_BUILD_DIR)/mongod $(MONGODB_BIN_PATH) ; \
	fi ;)
endef

$(eval $(call BuildPackage,mongodb))
