#!/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
CC = gcc-4.8
CXX = g++-4.8
#
%:
	dh $@

override_dh_auto_clean:
	dh_auto_clean
	rm -fr $(PSMSRC)/bin
	rm -fr $(INSTALLDIR)
	scons CC=$(CC) CXX=$(CXX) -C $(PSMSRC) -c --audit --release --ssl --opt -j$(NJOBS) --use-sasl-client CPPPATH=$(INSTALLDIR)/include \
	LIBPATH=$(INSTALLDIR)/lib --PerconaFT --rocksdb --wiredtiger --tokubackup $(PSM_TARGETS)
	rm -fr build
	find $(PSMSRC) -name '*.pyc' -delete

TokuBackup:
	cd $(PSMSRC)/src/third_party/Percona-TokuBackup/backup; \
	CC=$(CC) CXX=$(CXX) cmake . -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/ -DBUILD_STATIC_LIBRARY=ON; \
	make -j$(NJOBS); \
	make install DESTDIR=$(INSTALLDIR)

PerconaFT:
	cd $(PSMSRC)/src/third_party/PerconaFT; \
	CC=$(CC) CXX=$(CXX) 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; \
	CC=$(CC) CXX=$(CXX) make -j$(NJOBS) static_lib; \
	make install-static INSTALL_PATH=$(INSTALLDIR)

# Finally PSfMDB
percona-server-mongodb:
	scons CC=$(CC) CXX=$(CXX) --audit --release --ssl --opt=on -j$(NJOBS) \
	--use-sasl-client CPPPATH=$(INSTALLDIR)/include LIBPATH=$(INSTALLDIR)/lib \
	--PerconaFT --rocksdb --wiredtiger --tokubackup $(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 PerconaFT RocksDB TokuBackup percona-server-mongodb

override_dh_auto_install:
	dh_auto_install
	cp -av mongos debian/percona-server-mongodb-32-mongos/usr/bin
	cp -av mongo debian/percona-server-mongodb-32-shell/usr/bin
	cp -av mongod debian/percona-server-mongodb-32-server/usr/bin
	cp -av debian/percona-server-mongodb-helper.sh debian/percona-server-mongodb-32-server/usr/bin
	cp -av debian/mongod.conf debian/percona-server-mongodb-32-server/etc/mongod.conf
	cp -av $(PSMSRC)/bin/* debian/percona-server-mongodb-32-tools/usr/bin

override_dh_strip:
	dh_strip -a --dbg-package=percona-server-mongodb-32-dbg

override_dh_installinit:
	dh_installinit -a --name=mongod

override_dh_systemd_enable:
	dh_systemd_enable --name=mongod

override_dh_systemd_start:
	dh_systemd_start --restart-after-upgrade
