#!/usr/bin/make -f

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

export DEB_BUILD_MAINT_OPTIONS = hardening=+all
export DEB_BUILD_OPTIONS += noautodbgsym

include /usr/share/ocaml/ocamlvars.mk

COQ_VERSION := 9.1.0
COQ_ABI := $(COQ_VERSION)+$(OCAML_ABI)

PACKAGES := $(shell dh_listpackages)

export OCAMLINIT_SED += \
  -e 's%@CoqVersion@%$(COQ_VERSION)%' \
  -e 's%@CoqABI@%$(COQ_ABI)%'

%:
	+dh $@ --with coq,ocaml,python3

override_dh_auto_configure:
	./configure -prefix=/usr -libdir=$(OCAML_STDLIB_DIR)/coq -mandir=/usr/share/man

override_dh_auto_build:
	make dunestrap
	dune build -p rocq-runtime,coq-core,rocq-core,coqide-server,rocqide --display=verbose

# Check that $(COQ_VERSION) has the right value
	ACTUAL_COQ_VERSION="$$(./_build/install/default/bin/rocq --version | awk '/version/{print $$5}')"; \
	if [ "$$ACTUAL_COQ_VERSION" != "$(COQ_VERSION)" ]; then \
	  echo "Please set COQ_VERSION to $$ACTUAL_COQ_VERSION in debian/rules"; \
	  exit 2; \
	fi

override_dh_auto_test:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	# OCAMLPATH=$(CURDIR)/_build_vo/default/lib make -C test-suite COQBIN=$(CURDIR)/_build_vo/default/bin/ COQLIB=$(CURDIR)/_build_vo/default/lib/coq
	@echo "TESTS ARE DISABLED FOR NOW!"
endif

override_dh_auto_install:
	# raw installation
	dune install rocq-runtime coq-core rocq-core coqide-server rocqide \
		--destdir=$(CURDIR)/debian/tmp --prefix=/usr --libdir=$(OCAML_STDLIB_DIR) --mandir=/usr/share/man
	# cleaning what upstream installs and we don't (need to) ship
	find $(CURDIR)/debian/tmp -name LICENSE -delete
	find $(CURDIR)/debian/tmp -name README.md -delete
	find $(CURDIR)/debian/tmp -name "*.byte*" -delete
	find $(CURDIR)/debian/tmp -name "*.opt*" -delete
	rm -rf  $(CURDIR)/debian/tmp/usr/doc/rocqide/odoc-pages \
		$(CURDIR)/debian/tmp$(OCAML_STDLIB_DIR)/rocq-runtime/revision \
		$(CURDIR)/debian/tmp$(OCAML_STDLIB_DIR)/coqide-server
	find $(CURDIR)/debian/tmp -empty -delete
	# ok, now we detect what to ship
	find debian/tmp$(OCAML_STDLIB_DIR)/rocq-runtime -regextype posix-awk \
	  -regex '.*\.(cma|cmxs)$$' \
	  >> debian/libcoq-core-ocaml.install
	find debian/tmp$(OCAML_STDLIB_DIR)/rocq-runtime -regextype posix-awk \
	  -regex '.*\.(a|cmi|cmo|cmt|cmti|cmx|cmxa|ml|mli|o])$$' \
	  >> debian/libcoq-core-ocaml-dev.install

override_dh_gencontrol:
	for u in $(PACKAGES); do \
	  echo 'F:OCamlABI=$(OCAML_ABI)' >> debian/$$u.substvars; \
	  echo 'F:CoqABI=$(COQ_ABI)' >> debian/$$u.substvars; \
	done
	dh_gencontrol

# why is this necessary?
override_dh_fixperms:
	dh_fixperms
	find $(CURDIR)/debian -name TimeFileMaker.py -exec chmod -x '{}' \;

override_dh_auto_clean:
	make clean
	rm -f config/Makefile config/coq_config.ml config/coq_config.py config/dune.c_flags
	rm -f theories/dune user-contrib/Ltac2/dune
