#!/usr/bin/make -f
#
export DH_VERBOSE=1
export DEB_BUILD_HARDENING=1
export NJOBS=$(shell grep -c processor /proc/cpuinfo)
export PSM_TARGETS=mongod mongos mongo
export PSMSRC=$(CURDIR)
export MONGOTOOLS=bsondump mongostat mongofiles mongoexport mongoimport mongorestore mongodump mongotop mongooplog
export INSTALLDIR=$(PSMSRC)/install
export PORTABLE=1
export TOOLS_TAGS=ssl sasl
#
clean:
	rm -fr $(PSMSRC)/bin
	rm -fr $(INSTALLDIR)
	scons -C $(PSMSRC) -c --variant-dir=percona --audit --release --ssl --opt -j$(NJOBS) --use-sasl-client CPPPATH=$(INSTALLDIR)/include \
	LIBPATH=$(INSTALLDIR)/lib --PerconaFT --rocksdb --wiredtiger --allocator=jemalloc $(PSM_TARGETS)
	rm -fr build
	find $(PSMSRC) -name '*.pyc' -delete
		
PerconaFT: 
	cd $(PSMSRC)/src/third_party/PerconaFT; \
	cmake . -DCMAKE_BUILD_TYPE=Release -DUSE_VALGRIND=OFF -DTOKU_DEBUG_PARANOID=OFF -DBUILD_TESTING=OFF -DCMAKE_INSTALL_PREFIX=/ -DJEMALLOC_SOURCE_DIR=$(PSMSRC)/src/third_party/jemalloc; \
	make -j$(NJOBS); \
	make install DESTDIR=$(INSTALLDIR)	
	
RocksDB:
	cd $(PSMSRC)/src/third_party/rocksdb; \
	make -j$(NJOBS) static_lib; \
	make install-static INSTALL_PATH=${INSTALLDIR}

# Finally PSfMDB
percona-server-mongodb: PerconaFT RocksDB
	scons --variant-dir=percona --audit --release --ssl --opt=on -j$(NJOBS) --use-sasl-client CPPPATH=$(INSTALLDIR)/include LIBPATH=$(INSTALLDIR)/lib --PerconaFT --rocksdb --wiredtiger --allocator=jemalloc $(PSM_TARGETS)

compile-mongo-tools:
	rm -rf $(PSMSRC)/mongo-tools/vendor/pkg
	mkdir -p $(PSMSRC)/bin
	for tool in $(MONGOTOOLS) ; do \
		cd $(PSMSRC)/mongo-tools; \
		. ./set_gopath.sh; \
		go build -a -o $(PSMSRC)/bin/$$tool -tags "${TOOLS_TAGS}" $(PSMSRC)/mongo-tools/$$tool/main/$$tool.go ; \
	done

build: compile-mongo-tools percona-server-mongodb
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs
	cp -av mongos debian/percona-server-mongodb-mongos/usr/bin
	cp -av mongo debian/percona-server-mongodb-shell/usr/bin
	cp -av mongod debian/percona-server-mongodb-server/usr/sbin
	cp -av debian/percona-server-mongodb-helper.sh debian/percona-server-mongodb-server/usr/bin
	cp -av debian/mongod.conf debian/percona-server-mongodb-server/etc/mongod.conf
	cp -av $(PSMSRC)/bin/* debian/percona-server-mongodb-tools/usr/bin
	dh_systemd_enable --name=mongod
	dh_installinit -a --name=mongod
	dh_installman -a
	dh_installdocs -a

binary: 
	dh_systemd_start
	dh_strip -a --dbg-package=percona-server-mongodb-dbg
	dh_lintian
	dh_fixperms -a
	dh_installdeb -a
	dh_shlibdeps -a
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

