#!/usr/bin/make -f

#export DH_VERBOSE=1
export DH_OPTIONS=
export QTDIR=/usr/share/qt4

CFLAGS := $(shell dpkg-buildflags --get CPPFLAGS; dpkg-buildflags --get CFLAGS)
CXXFLAGS := $(shell dpkg-buildflags --get CPPFLAGS; dpkg-buildflags --get CXXFLAGS)
LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS)
export CFLAGS
export CXXFLAGS
export LDFLAGS
DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)

clang_archs = alpha amd64 armel armhf arm64 i386 mips mipsel \
	powerpc powerpcspe ppc64 ppc64el s390x \
	kfreebsd-amd64 kfreebsd-i386

ifeq (,$(findstring stage1,$(DEB_BUILD_PROFILES)))
  with_doxywizard := yes
else
  with_doxywizard := no
endif

ifeq ($(with_doxywizard),yes)
  CONFIGUREFLAGS+=--with-doxywizard
endif
CONFIGUREFLAGS+=--dot /usr/bin/dot
CONFIGUREFLAGS+=--install /usr/bin/install
CONFIGUREFLAGS+=--python python3
CONFIGUREFLAGS+=--with-doxysearch
CONFIGUREFLAGS+=--with-sqlite3
ifneq (,$(filter $(DEB_HOST_ARCH),$(clang_archs)))
  CONFIGUREFLAGS+=--with-libclang
endif

# used by jquery/Makefile
export MINIFIER=/usr/share/yui-compressor/yui-compressor

configure: configure-stamp
configure-stamp:
	dh_testdir
	$(MAKE) -C jquery install
	./configure $(CONFIGUREFLAGS)
	# get rid of prebuilt files from orig.tar.gz
	$(MAKE) distclean
	./configure $(CONFIGUREFLAGS)
	sed -i 's/^TMAKE_MOC *=.*/TMAKE_MOC = moc/' addon/doxywizard/doxywizard.pro
	touch $@

build: build-stamp
build-arch: build-stamp
build-indep: build-stamp
build-stamp: configure-stamp
	dh_testdir
	$(MAKE) QMAKE=$(shell pwd)/debian/qmake
	touch $@

clean:
	dh_testdir
	dh_testroot
	rm -f configure-stamp build-stamp install*stamp
	rm -rf qt tmake winbuild
	$(MAKE) -C jquery clean
	rm -f src/jquery_*.js
	[ ! -f Makefile ] || $(MAKE) distclean
	rm -f qtools/Makefile.qtools
	rm -f doxygen_sqlite3.db
	dh_clean

uninstall:
	dh_testdir
	dh_testroot
	rm -f install*stamp
	dh_clean -k

install-indep: install-arch
install-indep: install-indep-stamp
install-indep-stamp: DH_OPTIONS=-i
install-indep-stamp: INSDIR=$(shell pwd)/debian/doxygen/usr
install-indep-stamp: DOCDIR=$(shell pwd)/debian/doxygen-doc/usr/share/doc/doxygen
install-indep-stamp:
	dh_testdir
	dh_testroot
	dh_installdirs
	$(MAKE) install_docs \
		INSTALL=$(INSDIR) DOCDIR=$(DOCDIR) MAN1DIR=share/man/man1
	-find debian -name .cvsignore -o -name CVS | xargs rm -rf
	touch $@

install-arch: build
install-arch: install-arch-stamp
install-arch-stamp: DH_OPTIONS=-a
install-arch-stamp: INSDIR=$(shell pwd)/debian/doxygen/usr
install-arch-stamp: DOCDIR=$(shell pwd)/debian/doxygen/usr/share/doc/doxygen
install-arch-stamp:
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs
	$(MAKE) install \
		INSTALL=$(INSDIR) DOCDIR=$(DOCDIR) MAN1DIR=share/man/man1
	cd debian/dh-doxygen && pod2man -c Debhelper -r '' dh_doxygen dh_doxygen.1
ifeq ($(with_doxywizard),yes)
	dh_movefiles -Ndoxygen --sourcedir=debian/doxygen \
		usr/bin/doxywizard \
		usr/share/man/man1/doxywizard.1
endif
	-find debian -name .cvsignore -o -name CVS | xargs rm -rf
	touch $@

install: install-indep install-arch

binary-indep: DH_OPTIONS=-i
binary-indep: install-indep
	dh_testdir
	dh_testroot
	dh_installdocs
	dh_lintian
	./debian/dh-doxygen/dh_doxygen
	rdfind -outputname /dev/null -makehardlinks true debian/doxygen-doc/usr/share/doc/doxygen
	dh_installchangelogs doc/changelog.doc
	dh_strip --dbg-package=doxygen-dbg
	dh_link
	dh_compress -X.pdf
	dh_fixperms
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

ifeq ($(with_doxywizard),yes)
binary-arch: DH_OPTIONS=-a
else
binary-arch: DH_OPTIONS=-a -Ndoxygen-gui
endif
binary-arch: install-arch
	dh_testdir
	dh_testroot
	dh_install
	dh_installdocs LANGUAGE.HOWTO PLATFORMS README.md VERSION
	dh_installman
	dh_installchangelogs doc/changelog.doc
	dh_strip --dbg-package=doxygen-dbg
	dh_link
	dh_installmenu
	dh_compress
	dh_fixperms
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

binary: binary-arch binary-indep

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