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

export DH_VERBOSE=1

include /usr/share/ocaml/ocamlinit.mk

DOCDIR=$(CURDIR)/debian/frama-c-doc/usr/share/doc/frama-c-doc/doc

override_dh_auto_configure: ocamlinit-stamp configure-stamp

configure-stamp:
	mkdir -p lib/plugins
	mkdir -p lib/gui
	touch .depend .make-clean
	cp debian/framadoc/toc_head.htm doc/code/
	cp debian/framadoc/toc_tail.htm doc/code/
	[ ! -f src/kernel/config.ml ] || cp src/kernel/config.ml src/kernel/config.ml.debian
	./configure $(CROSS) --prefix=/usr       \
		--mandir=\$${prefix}/share/man   \
		--infodir=\$${prefix}/share/info \
		--datarootdir=\$${prefix}/lib    \
		--with-why-dir=no		 \
		--disable-impact		 \
		--disable-security		 \
		CFLAGS="$(CFLAGS)"               \
		LDFLAGS="-Wl,-z,defs"
	touch $@

override_dh_auto_build:
	$(MAKE) $(OCAML_BEST) bin/toplevel.byte bin/viewer.$(OCAML_BEST)

override_dh_auto_install:

install-arch:
	$(MAKE) prefix=$(CURDIR)/debian/frama-c/usr install
	cp debian/icons/frama-c.svg $(CURDIR)/debian/frama-c/usr/share/icons/hicolor/scalable/apps/
	cp debian/icons/frama-c.xpm $(CURDIR)/debian/frama-c/usr/share/pixmaps/
	cp debian/frama-c.desktop $(CURDIR)/debian/frama-c/usr/share/applications/
	$(RM) -f $(CURDIR)/debian/frama-c/usr/bin/frama-c-gui.byte
ifeq ($(OCAML_OPT_ARCH),)
	$(RM) -f $(CURDIR)/debian/frama-c/usr/bin/frama-c.byte
	echo 'F:FramaCRuntime=liblablgtk2-gnome-ocaml,liblablgtksourceview-ocaml,ocaml-base-$(OCAML_ABI)' >> debian/frama-c.substvars
endif

override_dh_auto_clean: ocamlinit-clean
	[ ! -f src/kernel/config.ml.debian ] || mv src/kernel/config.ml.debian src/kernel/config.ml
	[ ! -f Makefile ] || $(MAKE) clean
	$(RM) -rf lib

binary-indep-stamp:
	$(MAKE) doc/code/docgen.ml
	$(MAKE) doc
	mkdir -p $(DOCDIR)
	cp -r doc/code $(DOCDIR)
	$(RM) -f $(DOCDIR)/kernel-doc.ocamldoc
	$(RM) -f $(DOCDIR)/docgen.*
	find $(DOCDIR) -name "*.toc" -type f -delete
	find $(DOCDIR) -name "*.txt" -type f -delete
	dh binary-indep
	touch $@

binary-arch-stamp: install-arch install-indep
	dh binary-arch
	touch $@

binary-indep: configure-stamp binary-indep-stamp

binary-arch: binary-arch-stamp

binary: binary-indep binary-arch

%:
	dh --with quilt $@

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