#!/usr/bin/make -f
# Sample debian/rules that uses debhelper.
# GNU copyright 1997 to 1999 by Joey Hess.

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

ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
    BUILDTYPE = Debug
else
    BUILDTYPE = RelWithDebInfo
endif

ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
    NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
    MAKEFLAGS += -j$(NUMJOBS)
endif

build: build-arch build-indep
build-arch: build-stamp
build-indep: build-stamp

build-stamp:
	dh_testdir

	# Add here commands to compile the package.
	mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=$(BUILDTYPE) -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_CYACAS_KERNEL=ON -DENABLE_DOCS=ON .. && make $(MAKEFLAGS)
	# --- end custom part for compiling

	touch build-stamp

clean:
	dh_testdir
	dh_testroot
	rm -f build-stamp

	# Add here commands to clean up after the build process.
	rm -rf build
	# --- end custom part for cleaning up

	dh_clean

install: build
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs

	# Add here commands to install the package
	cd build && make install DESTDIR=../debian/yacas && cd ..
	mkdir -p debian/yacas-common/usr/share/yacas
	mv debian/yacas/usr/share/yacas/scripts debian/yacas-common/usr/share/yacas
	mv debian/yacas/usr/share/yacas/tests debian/yacas-common/usr/share/yacas
	mkdir -p debian/yacas-console/usr/bin
	mv debian/yacas/usr/bin/yacas debian/yacas-console/usr/bin
	mkdir -p debian/yacas-gui/usr/bin
	mv debian/yacas/usr/bin/yacas-gui debian/yacas-gui/usr/bin
	mkdir -p debian/yacas-gui/usr/share/yacas
	mv debian/yacas/usr/share/yacas/resources debian/yacas-gui/usr/share/yacas
	mv debian/yacas/usr/share/applications debian/yacas-gui/usr/share
	mv debian/yacas/usr/share/pixmaps debian/yacas-gui/usr/share
	mv debian/yacas/usr/share/icons debian/yacas-gui/usr/share
	mkdir -p debian/yacas-kernel/usr/bin
	mv debian/yacas/usr/bin/yacas-kernel debian/yacas-kernel/usr/bin
	mkdir -p debian/yacas-dev/usr
	mv debian/yacas/usr/lib debian/yacas-dev/usr
	mv debian/yacas/usr/include debian/yacas-dev/usr
	mkdir -p debian/yacas-doc/usr/share/yacas/documentation
	mv debian/yacas/usr/share/doc/yacas/singlehtml debian/yacas-doc/usr/share/yacas/documentation

	# replace fonts in yacas-doc with symbolic links to system-wide ones
	for f in Lato-BoldItalic.ttf Lato-Bold.ttf Lato-Italic.ttf Lato-Regular.ttf; do ln -s -f /usr/share/fonts/truetype/lato/$$f debian/yacas-doc/usr/share/yacas/documentation/singlehtml/_static/fonts/$$f; done
	for f in RobotoSlab-Bold.ttf RobotoSlab-Regular.ttf; do ln -s -f /usr/share/fonts/truetype/roboto/slab/$$f debian/yacas-doc/usr/share/yacas/documentation/singlehtml/_static/fonts/$$f; done
	ln -s -f /usr/share/fonts/truetype/font-awesome/fontawesome-webfont.ttf debian/yacas-doc/usr/share/yacas/documentation/singlehtml/_static/fonts/fontawesome-webfont.ttf

	# replace javascript libs in yacas-doc with symbolic links to system-wide ones
	ln -s -f /usr/share/javascript/jquery/jquery.js debian/yacas-doc/usr/share/yacas/documentation/singlehtml/_static/jquery.js
	ln -s -f /usr/share/javascript/jquery/underscore.js debian/yacas-doc/usr/share/yacas/documentation/singlehtml/_static/underscore.js

	# replace MathJax in yacas-gui with symbolic link to system-wide one
	rm -rf debian/yacas-gui/usr/share/yacas/resources/mathjax
	ln -s /usr/share/javascript/mathjax debian/yacas-gui/usr/share/yacas/resources/mathjax

	# replace CodeMirror in yacas-gui with symbolic link to system-wide one
	rm -rf debian/yacas-gui/usr/share/yacas/resources/codemirror
	ln -s /usr/share/javascript/codemirror debian/yacas-gui/usr/share/yacas/resources/codemirror

	# replace jquery and jquery-ui in yacas-gui with symbolic links to system-wide ones
	ln -s -f /usr/share/javascript/jquery/jquery.min.js debian/yacas-gui/usr/share/yacas/resources/jquery/jquery.min.js
	ln -s -f /usr/share/javascript/jquery-ui/jquery-ui.min.js debian/yacas-gui/usr/share/yacas/resources/jquery/jquery-ui.min.js
	ln -s -f /usr/share/javascript/jquery-ui/themes/base/jquery-ui.min.css debian/yacas-gui/usr/share/yacas/resources/jquery/jquery-ui.min.css

	# --- end custom part for installing

# 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_installdebconf
	dh_installdocs
	dh_installexamples
	dh_installmenu
#	dh_installlogrotate
#	dh_installemacsen
#	dh_installpam
#	dh_installmime
#	dh_installinit
	dh_installcron
	dh_installman
	dh_installinfo
#	dh_undocumented
	dh_installchangelogs
	dh_link
	dh_strip
	dh_compress
	dh_fixperms
#	dh_makeshlibs
	dh_installdeb
#	dh_perl
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

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