#!/usr/bin/make -f

# Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA

# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1


INSTALL_PREFIX=/usr

ifndef LINUXRES_HOME
LINUXRES_HOME=$(HOME)/linux-res
endif

LINUXRES_BINARIES=$(LINUXRES_HOME)/builds

ifndef ANTLR_JAR_PATH
ANTLR_JAR_PATH=$(LINUXRES_HOME)/bin/antlr-3.4-complete.jar
endif

ifndef BOOST_ROOT
BOOST_ROOT=$(LINUXRES_HOME)
endif

ODBC_HOME=$(LINUXRES_BINARIES)/odbc
PYODBC_HOME=$(LINUXRES_BINARIES)/pyodbc

SQLITE_HOME=$(LINUXRES_BINARIES)/sqlite-com
PYSQLITE2_HOME=$(LINUXRES_BINARIES)/pysqlite2-com
CPPCONN_HOME=$(LINUXRES_BINARIES)/cppconn-com
GDAL_HOME=$(LINUXRES_BINARIES)/gdal-com
VSQLITE_HOME=$(LINUXRES_BINARIES)/vsqlite-com
ifndef MYSQL_HOME
MYSQL_HOME=$(HOME)/mysql-server-advanced/
endif

WBDIRNAME=mysql-workbench-commercial

WBLIBPATH=$(INSTALL_PREFIX)/lib/mysql-workbench
WBDATADIRPATH=$(INSTALL_PREFIX)/share/mysql-workbench
WBDOCPATH=$(INSTALL_PREFIX)/share/doc/mysql-workbench-commercial

configure: configure-stamp
configure-stamp:
	dh_testdir
	# Add here commands to configure the package.
	CXXFLAGS="-std=c++11 $(CXXFLAGS)" \
	ANTLR_JAR_PATH=$(ANTLR_JAR_PATH) \
	BOOST_ROOT=$(BOOST_ROOT) \
	cmake . \
	  -DCMAKE_INSTALL_PREFIX=$(INSTALL_PREFIX) \
	  -DCMAKE_BUILD_TYPE=Release \
	  -DMySQL_CONFIG_PATH=$(MYSQL_HOME)/bin/mysql_config \
	  -DUSE_BUNDLED_MYSQLDUMP=1 \
	  -DMYSQLCLIENT_STATIC_LINKING:BOOL=TRUE \
	  -DMySQLCppConn_LIBRARIES="-L$(CPPCONN_HOME)/lib -lmysqlcppconn" \
	  -DMySQLCppConn_INCLUDE_DIR=$(CPPCONN_HOME)/include \
	  -DGDAL_INCLUDE_DIR=$(GDAL_HOME)/include \
	  -DGDAL_LIBRARY=$(GDAL_HOME)/lib/libgdal.so \
	  -DIODBC_CONFIG_PATH=$(ODBC_HOME)/bin/iodbc-config \
	  -DIODBC_INCLUDE_PATH=$(ODBC_HOME)/include \
	  -DIODBC_LIBRARIES_PATH=$(ODBC_HOME)/lib \
	  -DVSQLITE_INCLUDE_DIR=$(VSQLITE_HOME)/include \
	  -DVSQLITE_LIBRARIES="-L$(VSQLITE_HOME)/lib -lvsqlitepp" 

	touch configure-stamp


build: build-stamp

build-stamp: configure-stamp 
	dh_testdir

	# Add here commands to compile the package.
	$(MAKE) $(MAKEFLAGS)
	#docbook-to-man debian/mysql-workbench.sgml > mysql-workbench.1

	touch $@

clean:
	dh_testdir
	dh_testroot
	rm -f build-stamp configure-stamp

	# Add here commands to clean up after the build process.
	-$(MAKE) clean

	dh_clean 

install: build
	dh_testdir
	dh_testroot
# 	dh_clean -k 
	dh_prep
	dh_installdirs

	# Add here commands to install the package into debian/mysql-workbench.
	DESTDIR=debian/$(WBDIRNAME) $(MAKE) install

	# Bundle libaries 
	cp -a $(ODBC_HOME)/bin/iodbcadm-gtk         $(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH)
	cp -a $(ODBC_HOME)/lib/libiodbc*.so.*       $(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH)
	cp -a $(PYODBC_HOME)/pyodbc.so              $(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH)
	cp -a $(VSQLITE_HOME)/lib/libvsqlitepp.*    $(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH)
	cp -a $(CPPCONN_HOME)/lib/libmysqlcppconn.* $(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH)
	cp -a $(GDAL_HOME)/lib/libgdal*             $(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH)
	cp -a $(SQLITE_HOME)/lib/libsqlite3.so*     $(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH)
	cp -a $(PYSQLITE2_HOME)                     $(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH)/modules/

	#bundle paramiko based on the param
	cp -a $(LINUXRES_HOME)/python/paramiko      $(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH)/modules/
	cp -a $(LINUXRES_HOME)/python/ecdsa         $(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH)/modules/

	# Bundle client programs and lib
#	cp -a $(MYSQL_HOME)/lib/libmysqlclient.so.* $(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH)
	cp -a $(MYSQL_HOME)/bin/mysql               $(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH)
	cp -a $(MYSQL_HOME)/bin/mysqldump           $(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH)

	# Remove these files:
	# - The file /etc/ld.so.conf.d/mysql-workbench.conf is a non.conformance in debian based distros
	# - The .la metadata files are not necessary
	rm -f  $(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH)/*.la
	rm -rf $(CURDIR)/debian/$(WBDIRNAME)/etc

# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.

# Build architecture-dependent files here.
binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installchangelogs ChangeLog
	dh_installdocs
	dh_installexamples
#	dh_install
	dh_installmenu
#	dh_installdebconf	
#	dh_installlogrotate
#	dh_installemacsen
#	dh_installpam
	dh_installmime
#	dh_python
#	dh_installinit
#	dh_installcron
#	dh_installinfo
	dh_installman
	dh_link
	#dh_strip --dbg-package=mysql-workbench-commercial
	dh_strip
	dh_compress
	dh_fixperms -X*.sh
#	dh_perl
#	dh_makeshlibs
	dh_installdeb
	dh_shlibdeps \
          --dpkg-shlibdeps-params=--ignore-missing-info \
          -l$(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH)
	dh_gencontrol
	dh_md5sums
	dh_builddeb

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure
