#!/usr/bin/make -f
# -*- makefile -*-

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

MODULES = Part Mesh MeshPart PartDesign Sketcher Points Raytracing Image Drawing ReverseEngineering Complete Fem Robot Import Inspection Arch

# These are used for cross-compiling and for saving the configure script
# from having to guess our platform (since we know it already)
DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)

CFLAGS = -Wall -g

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

patch-stamp:
	touch $@

configure: autogen.sh patch-stamp
	dh_testdir
	for autotools_mod_file in `find . -name Makefile.in` aclocal.m4 \
	    configure m4/libtool.m4 m4/ltmain.sh m4/ltoptions.m4 \
	    m4/ltversion.m4 m4/lt~obsolete.m4; do \
	  cp -a $$autotools_mod_file $$autotools_mod_file.setaside; \
	done
	chmod u+x autogen.sh
	./autogen.sh

config.status: configure
	dh_testdir
	./configure --with-occ-include=/usr/include/opencascade \
--with-occ-lib=/usr/lib \
--host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) \
--prefix=/usr/lib/freecad --mandir=/usr/share/man \
--infodir=/usr/share/info --datadir=/usr/share/freecad \
--includedir=/usr/include/freecad --docdir=/usr/share/doc/freecad \
CFLAGS="$(CFLAGS)" LDFLAGS="-Wl,-z,defs"
	touch src/Build/Version.h

build: build-stamp

build-stamp: config.status
	dh_testdir
	$(MAKE)
	touch $@

clean:
	mv src/Build/Version.h src/Build/Version.h.old
	dh clean
	mv src/Build/Version.h.old src/Build/Version.h
	rm -f build-stamp
	find -name '*.pyc' | xargs rm -f
	find -name 'moc_*.cpp' | xargs rm -f
	find -name '*.lo' | xargs rm -f
	find -name '*.deps' | xargs rm -rf
	find -name '*.libs' | xargs rm -rf
	rm -f stamp-h1 config.log libtool 71
	if [ -e Makefile.in.setaside ]; then \
	for autotools_mod_file in `find . -name Makefile.in` aclocal.m4 \
	    configure m4/libtool.m4 m4/ltmain.sh m4/ltoptions.m4 \
	    m4/ltversion.m4 m4/lt~obsolete.m4; do \
	  mv -f $$autotools_mod_file.setaside $$autotools_mod_file; \
	done; fi
	dh clean
	rm -f patch-stamp
	#quilt pop -a
	#rm -rf .pc/

install: build install-stamp
install-stamp:
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs
	$(MAKE) install DESTDIR=$(CURDIR)/debian/tmp/freecad
	# Remove testing modules we don't want to have in the deb
	rm -rf debian/tmp/freecad/usr/lib/freecad/Mod/_TEMPLATE_
	rm -rf debian/tmp/freecad/usr/lib/freecad/Mod/TemplatePyMod
	# install the core system
	dh_install -pfreecad debian/tmp/freecad/usr/share/freecad/* usr/share/freecad/
	#dh_install -pfreecad debian/tmp/freecad/usr/lib/freecad/share usr/lib/freecad
	dh_install -pfreecad debian/tmp/freecad/usr/lib/freecad/bin usr/lib/freecad
	dh_install -pfreecad debian/tmp/freecad/usr/lib/freecad/lib/FreeCAD.so usr/lib/freecad/lib
	dh_install -pfreecad debian/tmp/freecad/usr/lib/freecad/lib/lib*.so.* usr/lib/freecad/lib
	dh_install debian/freecad.desktop usr/share/applications
	dh_installman debian/freecad.1
	dh_installchangelogs ChangeLog.txt
	# install the modules
	$(foreach MODULE,$(MODULES), \
	dh_install -pfreecad debian/tmp/freecad/usr/lib/freecad/Mod/$(MODULE)/$(MODULE)*.so usr/lib/freecad/Mod/$(MODULE); \
	dh_install -pfreecad debian/tmp/freecad/usr/lib/freecad/Mod/$(MODULE)/lib*.so.* usr/lib/freecad/Mod/$(MODULE); \
	dh_install -pfreecad debian/tmp/freecad/usr/lib/freecad/Mod/$(MODULE)/*.py usr/lib/freecad/Mod/$(MODULE);)
	# special treating of PartDesign module
	dh_install -pfreecad debian/tmp/freecad/usr/lib/freecad/Mod/PartDesign/Scripts/*.py usr/lib/freecad/Mod/PartDesign/Scripts;)
	# special treating of Draft module
	dh_install -pfreecad debian/tmp/freecad/usr/lib/freecad/Mod/Draft/*.py usr/lib/freecad/Mod/Draft
	dh_install -pfreecad debian/tmp/freecad/usr/lib/freecad/Mod/Draft/draftlibs/*.py usr/lib/freecad/Mod/Draft/draftlibs
	# special treating of Test module
	dh_install -pfreecad debian/tmp/freecad/usr/lib/freecad/Mod/Test/lib*.so.* usr/lib/freecad/Mod/Test
	dh_install -pfreecad debian/tmp/freecad/usr/lib/freecad/Mod/Test/*.py usr/lib/freecad/Mod/Test
	dh_install -pfreecad debian/tmp/freecad/usr/lib/freecad/Mod/Test/QtUnitGui.so usr/lib/freecad/Mod/Test

	dh_install -pfreecad-dev debian/tmp/freecad/usr/include/* usr/include
	dh_install -pfreecad-dev debian/tmp/freecad/usr/lib/freecad/lib/lib*.so usr/lib/freecad/lib
	$(foreach MODULE,$(MODULES), \
	dh_install -pfreecad-dev debian/tmp/freecad/usr/lib/freecad/Mod/$(MODULE)/lib*.la usr/lib/freecad/Mod/$(MODULE); \
	dh_install -pfreecad-dev debian/tmp/freecad/usr/lib/freecad/Mod/$(MODULE)/lib*.so usr/lib/freecad/Mod/$(MODULE);)
	# special treating of Arch module
	dh_install -pfreecad debian/tmp/freecad/usr/lib/freecad/Mod/Arch/*.py usr/lib/freecad/Mod/Arch

	# install the help system
	dh_install -pfreecad-doc debian/tmp/freecad/usr/share/doc/* usr/share/doc/
	touch install-stamp

override_dh_compress:
	dh_compress -X.qch -X.qhc

override_dh_makeshlibs:


binary-indep: build install
	dh binary-indep

binary-arch: build install
	dh binary-arch

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