#!/usr/bin/make -f

# Copyright (c) 2014, 2021, Oracle and/or its affiliates.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License, version 2.0,
# as published by the Free Software Foundation.
#
# This program is designed to work with certain software (including
# but not limited to OpenSSL) that is licensed under separate terms, as
# designated in a particular file or component or in included license
# documentation.  The authors of MySQL hereby grant you an additional
# permission to link the program and your derivative works with the
# separately licensed software that they have either included with
# the program or referenced in the documentation.
# 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, version 2.0, 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 BUNDLES_PATH
 $(error "BUNDLES_PATH variable is missing")
 exit 1
endif

ifndef ANTLR_JAR_PATH
ANTLR_JAR_PATH=$(BUNDLES_PATH)/bin/antlr-4.13.2-complete.jar
endif

ifndef BOOST_ROOT
BOOST_ROOT=$(BUNDLES_PATH)/include
endif


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.
	cmake . \
	  -DCMAKE_INSTALL_PREFIX=$(INSTALL_PREFIX) \
	  -DCMAKE_BUILD_TYPE=Release \
	  -DMySQL_CONFIG_PATH=$(MYSQL_HOME)/bin/mysql_config \
	  -DUSE_BUNDLED_MYSQLDUMP=1 \
	  -DMySQLCppConn_LIBRARIES="-L$(BUNDLES_PATH)/lib -lmysqlcppconn" \
	  -DMySQLCppConn_INCLUDE_DIR=$(BUNDLES_PATH)/include/mysql-cppconn/jdbc \
	  -DGDAL_INCLUDE_DIR=$(BUNDLES_PATH)/include \
	  -DGDAL_LIBRARY=$(BUNDLES_PATH)/lib/libgdal.so \
	  -DIODBC_CONFIG_PATH=$(BUNDLES_PATH)/bin/iodbc-config \
	  -DIODBC_INCLUDE_PATH=$(BUNDLES_PATH)/include \
	  -DRAPIDJSON_INCLUDE_DIR=$(BUNDLES_PATH)/include \
	  -DIODBC_LIBRARIES_PATH=$(BUNDLES_PATH)/lib \
	  -DVSQLITE_INCLUDE_DIR=$(BUNDLES_PATH)/include \
	  -DVSQLITE_LIBRARIES="-L$(BUNDLES_PATH)/lib -lvsqlitepp" \
	  -Dlibssh_DIR=$(BUNDLES_PATH)/lib/cmake/libssh \
	  -DANTLR4_INCLUDE_DIR=$(BUNDLES_PATH)/include \
	  -DANTLR4_LIBRARIES="-L$(BUNDLES_PATH)/lib -lantlr4-runtime" \
	  -DWITH_ANTLR_JAR=${ANTLR_JAR_PATH} \
	  -DBOOST_ROOT=$(BOOST_ROOT) \
	  -DBoost_NO_BOOST_CMAKE=ON

	touch configure-stamp


build: build-arch build-indep

build-arch: build-stamp

build-indep: 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

	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 $(BUNDLES_PATH)/bin/iodbcadm-gtk         $(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH)
	cp -a $(BUNDLES_PATH)/lib/libiodbc*.so.*       $(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH)
	cp -a $(BUNDLES_PATH)/Python/pyodbc/pyodbc*.so  $(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH)
	cp -a $(BUNDLES_PATH)/lib/libvsqlitepp.*       $(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH)
	cp -a $(BUNDLES_PATH)/lib/libantlr4-runtime.*  $(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH)
	cp -a $(BUNDLES_PATH)/lib/libmysqlcppconn.*    $(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH)
	cp -a $(BUNDLES_PATH)/lib/libgdal*             $(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH)
	cp -a $(BUNDLES_PATH)/lib/libsqlite3.so*       $(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH)
	cp -a $(BUNDLES_PATH)/lib/libssh.so*           $(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH)

	# Bundle client programs and lib
	cp -a $(BUNDLES_PATH)/lib/mysql/libmysqlclient.so.*  $(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH)
	cp -a $(BUNDLES_PATH)/lib/mysql/authentication_kerberos_client.so  $(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH)
	cp -a $(BUNDLES_PATH)/lib/mysql/authentication_ldap_sasl_client.so  $(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH)
	cp -a $(BUNDLES_PATH)/lib/mysql/mysql_native_password.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)
	cp -a $(BUNDLES_PATH)/bin/ogr2ogr              $(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH)
	cp -a $(BUNDLES_PATH)/bin/ogrinfo              $(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_lintian
	dh_installman
	dh_link
	#dh_strip --dbg-package=mysql-workbench-commercial
	dh_strip
	dh_compress -XLicense.txt -XLicense-commercial.txt
	dh_fixperms -X*.sh
#	dh_perl
#	dh_makeshlibs
	dh_installdeb
	dh_shlibdeps \
          --dpkg-shlibdeps-params=--ignore-missing-info \
          -l$(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH):$(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH)/plugins:$(CURDIR)/debian/$(WBDIRNAME)$(WBLIBPATH)/modules
	dh_gencontrol
	dh_md5sums
	dh_builddeb

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