#!/usr/bin/make -f

PACKAGE=slicer

DEB_SOURCE_PACKAGE:=$(PACKAGE)
include /usr/share/quilt/quilt.make 

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

# set the number of build jobs
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
        JOBS := -j$(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
endif

# set optimization mode
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
        CFLAGS += -O0
else
        CFLAGS += -O2
endif

export LD_LIBRARY_PATH+=:$(CURDIR)/DEB_build_shared/bin

# set shared build path
SHARED_BUILD_PATH = DEB_build_shared

CMAKE_FLAGS = -DCMAKE_INSTALL_PREFIX:PATH=/usr \
              -DCMAKE_CXX_FLAGS:STRING=-Wno-deprecated \
              -DCMAKE_CXX_FLAGS=$(CFLAGS) \
              -DCMAKE_BUILD_TYPE:STRING=Debug \
              -DCMAKE_VERBOSE_MAKEFILE:BOOL=$(DH_VERBOSE) \
              -DVOLUMERENDERINGMODULE:BOOL=ON \
              -DCMAKE_SKIP_RPATH:BOOL=OFF \
              -DBUILD_TESTING:BOOL=OFF \
              -DCMAKE_SHARED_LINKER_FLAGS:STRING=-Wl,--as-needed \
              -DCMAKE_EXE_LINKER_FLAGS:STRING=-Wl,--as-needed \
              -DSlicer3_USE_IGSTK:BOOL=OFF \
              -DSlicer3_USE_OPENIGTLINK:BOOL=ON \
              -DSlicer3_USE_MIDAS:BOOL=ON \


get-orig-source:
	/bin/sh $(CURDIR)/debian/get-orig-source

configure: configure-stamp
configure-stamp: $(QUILT_STAMPFN)
	dh_testdir
	# Add here commands to configure the package.

	if [ ! -d $(SHARED_BUILD_PATH) ]; then mkdir $(SHARED_BUILD_PATH); fi
	cd $(SHARED_BUILD_PATH) \
              && cmake $(CURDIR) $(CMAKE_FLAGS) -DBUILD_SHARED_LIBS:BOOL=ON

	cd $(SHARED_BUILD_PATH) \
              && cmake $(CURDIR) $(CMAKE_FLAGS) -DBUILD_SHARED_LIBS:BOOL=ON

	touch $@
 
build: configure-stamp
	dh_testdir

	# Add here commands to compile the package.

        # generate $(SHARED_BUILD_PATH)/lib/Slicer3/Slicer3Version.txt
	mkdir -p $(SHARED_BUILD_PATH)/lib/Slicer3
	./Scripts/versioner.tcl
	cat $(SHARED_BUILD_PATH)/lib/Slicer3/Slicer3Version.txt

	# build shared libs and binaries
	cd $(SHARED_BUILD_PATH) && $(MAKE) $(JOBS)

	#docbook-to-man debian/slicer.sgml > slicer.1

	touch $@


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

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

	dh_clean --exclude ./Libs/FreeSurfer/Testing/TestData/lh.dart.orig

install: install-stamp
install-stamp: build
	dh_testdir
	dh_testroot
	dh_prep --exclude ./Libs/FreeSurfer/Testing/TestData/lh.dart.orig
	dh_installdirs

	# Add here commands to install the package into debian/slicer.

	# install binaries and shared libs
	cd $(SHARED_BUILD_PATH) && $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp

	# remove empty directories
	rmdir    $(CURDIR)/debian/tmp/usr/share/Slicer3/Modules/EMSegment/Testing/TestData/TutorialTest2/VolumeData/Working/
	rmdir    $(CURDIR)/debian/tmp/usr/share/Slicer3/Modules/ModelIntoLabelVolume/Testing/TestData/
	rmdir    $(CURDIR)/debian/tmp/usr/share/Slicer3/Modules/ModelIntoLabelVolume/Testing/
	rmdir    $(CURDIR)/debian/tmp/usr/share/Slicer3/Modules/ModelIntoLabelVolume/
	chmod +x $(CURDIR)/debian/tmp/usr/lib/Slicer3/Modules/SlicerDaemon/Tcl/slicerget.tcl
	chmod +x $(CURDIR)/debian/tmp/usr/lib/Slicer3/Modules/SlicerDaemon/Tcl/slicerput.tcl
	chmod +x $(CURDIR)/debian/tmp/usr/lib/Slicer3/Modules/SlicerDaemon/Tcl/tracker/tracker.tcl
	chmod +x $(CURDIR)/debian/tmp/usr/lib/Slicer3/SlicerBaseGUI/Tcl/ExternalProgress.tcl
	chmod +x $(CURDIR)/debian/tmp/usr/lib/Slicer3/launch.tcl
	chmod +x $(CURDIR)/debian/tmp/usr/share/FreeSurfer/Testing/fips2mrml.tcl
	chmod +x $(CURDIR)/debian/tmp/usr/share/Slicer3/Modules/ChangeTracker/Simulation/create_artificial_growth_deformation.sh
	chmod +x $(CURDIR)/debian/tmp/usr/share/Slicer3/Modules/QueryAtlas/Tcl/QueryAtlasFips2Mrml.tcl
	chmod -x $(CURDIR)/Utilities/Launcher/3DSlicerLogoICOimages/3DSlicerLogo-DesktopIcon-48x48x256.png

	dh_install --sourcedir=$(CURDIR)/debian/tmp --fail-missing

	touch $@


# Build architecture-independent files here.
binary-indep: install
	dh_testdir -i
	dh_testroot -i
	dh_installchangelogs -i
	dh_installdocs -i
	dh_installexamples -i
	dh_lintian -i
	dh_installman -i
	dh_link -i
	dh_strip -i
	dh_compress -i
	dh_fixperms -i
	dh_makeshlibs -i
	dh_installdeb -i
	dh_shlibdeps -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i -- -Z bzip2



# Build architecture-dependent files here.
binary-arch: install
	dh_testdir -a
	dh_testroot -a
	dh_installchangelogs -a
	dh_installdocs -a
	dh_installexamples -a
	dh_lintian -a
	dh_installman -a
	dh_installmenu -a
	dh_link -a
	dh_strip -a
	dh_compress -a
	dh_fixperms -a
	dh_makeshlibs -a -plibslicer3
	dh_installdeb -a
	dh_shlibdeps -a -l $(CURDIR)/debian/tmp/usr/lib:$(CURDIR)/debian/tmp/usr/lib/Slicer3:$(CURDIR)/debian/tmp/usr/lib/Slicer3/Modules
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a -- -Z bzip2

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