#!/usr/bin/make -f

PACKAGE=sofa-framework
DEB_SOURCE_PACKAGE:=$(PACKAGE)

# quilt
include /usr/share/quilt/quilt.make 

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


get-orig-source:
	. debian/get-orig-source

configure: configure-stamp
configure-stamp: $(QUILT_STAMPFN)
	dh_testdir
	# Add here commands to configure the package.
	qmake
	(cd applications/projects/runSofa; qmake -o Makefile runSofa.pro)

	# create a folder without object files
	cp -r $(CURDIR)/applications/tutorials $(CURDIR)/tutorials

	touch $@


build: build-arch

build-indep: build-indep-stamp
build-indep-stamp: configure
	dh_testdir

	# Create the documentation files
	mkdir -p $(CURDIR)/doc/doxygen
#	doxygen -u Doxyfile
#	doxygen

	# remove zero byte files
	find $(CURDIR)/doc/doxygen/ -depth -empty | xargs rm -rf

	touch $@


build-arch: build-arch-stamp
build-arch-stamp: configure
	dh_testdir

        # Add here commands to compile the package.
	$(MAKE)

	touch $@


clean:
	dh_testdir
	dh_testroot
	rm -f build-stamp configure-stamp docs-stamp
	rm -rf bin lib tutorials doc OBJ
	- rm -rf extlibs/tinyxml/
	
	# Add here commands to clean up after the build process.
	#$(MAKE) clean

	dh_clean 


install: install-indep install-arch

install-indep: build-indep
	dh_testdir

	mkdir -p $(CURDIR)/debian/tmp/usr/share/doc/sofa-doc

        # because of a lintian warning
	find tutorials -name "*.kdevelop" | xargs chmod 644

        # install the source code of the example applications
	dh_install -psofa-tutorials    tutorials     usr/share/sofa

	find share -type f -exec chmod 644 \{\} \;
	find share -name "*.sh" | xargs chmod 755

	find examples -type f -exec chmod 644 \{\} \;
	find examples -name "*.sh" | xargs chmod 755

	dh_install -psofa-data   share                                usr/share/sofa
	dh_install -psofa-data   examples                             usr/share/sofa

        # Documentation
#	dh_install -psofa-doc     doc/doxygen/html                    usr/share/doc/sofa-doc
	dh_install -psofa-doc     debian/index.html                   usr/share/doc/sofa-doc/html


	dh_installexamples


install-arch: build-arch
	dh_testdir
	dh_testroot
	dh_installdirs

	dh_install -psofa-apps   debian/sofa.desktop                      usr/share/applications
	dh_install -psofa-apps   debian/sofa.xpm                          usr/share/pixmaps

	# Add here commands to install the package into debian/tmp
#	$(MAKE) install
#	$(MAKE) INSTALL_DIR=$(CURDIR)/debian/tmp install


	mkdir -p $(CURDIR)/debian/tmp/usr/bin
	mkdir -p $(CURDIR)/debian/tmp/usr/lib
	mkdir -p $(CURDIR)/debian/tmp/usr/include
	mkdir -p $(CURDIR)/debian/tmp/usr/lib/sofa-framework

	find framework -name "*.h" | xargs -i cp --parents {} $(CURDIR)/debian/tmp/usr/include/
	find framework -name "*.inl" | xargs -i cp --parents {} $(CURDIR)/debian/tmp/usr/include/
	cp -rf $(CURDIR)/debian/tmp/usr/include/framework/* $(CURDIR)/debian/tmp/usr/include/
	rm -rf $(CURDIR)/debian/tmp/usr/include/framework

	find modules -name "*.h" | xargs -i cp --parents {} $(CURDIR)/debian/tmp/usr/include/
	find modules -name "*.inl" | xargs -i cp --parents {} $(CURDIR)/debian/tmp/usr/include/
	cp -rf $(CURDIR)/debian/tmp/usr/include/modules/* $(CURDIR)/debian/tmp/usr/include/
	rm -rf $(CURDIR)/debian/tmp/usr/include/modules

	find applications -name "*.h" | xargs -i cp --parents {} $(CURDIR)/debian/tmp/usr/include/
	find applications -name "*.inl" | xargs -i cp --parents {} $(CURDIR)/debian/tmp/usr/include/
	cp -rf $(CURDIR)/debian/tmp/usr/include/applications/* $(CURDIR)/debian/tmp/usr/include/
	rm -rf $(CURDIR)/debian/tmp/usr/include/applications

	mv $(CURDIR)/bin/runSofa         $(CURDIR)/debian/tmp/usr/lib/sofa-framework/sofa
###	mv $(CURDIR)/bin/oneParticule    $(CURDIR)/debian/tmp/usr/bin/sofa_particule
###	mv $(CURDIR)/bin/oneTetrahedron  $(CURDIR)/debian/tmp/usr/bin/sofa_tetrahedron
###	mv $(CURDIR)/bin/chainHybrid     $(CURDIR)/debian/tmp/usr/bin/sofa_chain_hybrid
###	mv $(CURDIR)/bin/mixedPendulum   $(CURDIR)/debian/tmp/usr/bin/sofa_mixed_pendulum


	cp -r $(CURDIR)/lib/linux/lib* $(CURDIR)/debian/tmp/usr/lib/


	dh_install -plibsofa1        debian/tmp/usr/lib/lib*.so.*             usr/lib

	dh_install -plibsofa1-dev    debian/tmp/usr/lib/lib*.so               usr/lib
	dh_install -plibsofa1-dev    debian/tmp/usr/include/*                 usr/include

	dh_install -psofa-apps   debian/tmp/usr/lib/sofa-framework/sofa   usr/lib/sofa-framework
###	dh_install -psofa-apps   debian/tmp/usr/bin/sofa_particule        usr/bin
###	dh_install -psofa-apps   debian/tmp/usr/bin/sofa_tetrahedron      usr/bin
###	dh_install -psofa-apps   debian/tmp/usr/bin/sofa_chain_hybrid     usr/bin
###	dh_install -psofa-apps   debian/tmp/usr/bin/sofa_mixed_pendulum   usr/bin
	dh_install -psofa-apps   debian/sofa                              usr/bin

	dh_installman -psofa-apps debian/sofa.1

# called by binary-indep and binary-arch
binary-common:
	dh_testdir
	dh_testroot
	dh_install
	dh_installchangelogs 
	dh_installdocs
	dh_installmenu
	dh_lintian
	dh_link
	dh_strip
	dh_compress
	dh_fixperms
	dh_makeshlibs
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb


# Build architecture independant packages using the common target.
binary-indep: build-indep install-indep
	$(MAKE) -f debian/rules DH_OPTIONS=-i binary-common


# Build architecture dependant packages using the common target.
binary-arch: build-arch install-arch
	$(MAKE) -f debian/rules DH_OPTIONS=-s binary-common


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