#!/usr/bin/make -f

DOC_VER_4.4 := 4.4.7-1
DOC_VER_4.6 := 4.6.3-1
DOC_VER_4.7 := 4.7.2-1

BASES := cpp gcc gfortran gnat gcj
GENFILES := $(patsubst %,debian/%-doc.links, $(BASES))

# get default version by symlinks, eg. /usr/bin/gcc -> gcc-4.7
PREFIX_BIN := /usr/bin/
get_default_version = $(shell bash -c 'readlink `type -P $(PREFIX_BIN)$(1)`|perl -pe "s/^.*-//"')

# default versions depend on arch
CPP_VER      := $(call get_default_version,cpp)
GCC_VER      := $(call get_default_version,gcc)
GFORTRAN_VER := $(call get_default_version,gfortran)
GNAT_VER     := $(call get_default_version,gnatgcc)
GCJ_VER      := $(call get_default_version,gcj)

CPP_DEP_VER := cpp-$(CPP_VER)-doc (>= $(DOC_VER_$(CPP_VER)))
GCC_DEP_VER := gcc-$(GCC_VER)-doc (>= $(DOC_VER_$(GCC_VER)))
GFORTRAN_DEP_VER := gfortran-$(GFORTRAN_VER)-doc (>= $(DOC_VER_$(GFORTRAN_VER)))
GNAT_DEP_VER := gnat-$(GNAT_VER)-doc (>= $(DOC_VER_$(GNAT_VER)))
GCJ_DEP_VER := gcj-$(GCJ_VER)-doc (>= $(DOC_VER_$(GCJ_VER)))

uppercase = $(shell echo $(x) | tr a-z A-Z)
sedcmd1 = s/%$(uppercase)_DEP_VER%/$($(uppercase)_DEP_VER)/g;
SEDCMD1 := $(foreach x,$(BASES),$(sedcmd1))
sedcmd2 = s/%$(uppercase)_VER%/$($(uppercase)_VER)/g;
SEDCMD2 := $(foreach x,$(BASES),$(sedcmd2))


debian/control:
	dh_testdir
	sed '$(SEDCMD1)' < debian/control.in > debian/control

$(GENFILES): % : %.in
	dh_testdir
	sed '$(SEDCMD2)' < $< > $@

build: debian/control $(GENFILES)

build-arch: build

build-indep:

install: build
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs -a

clean:
	dh_testdir
	dh_testroot
	rm -f $(GENFILES)
	dh_clean


binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installdocs -a -A debian/README
	dh_installchangelogs -a
	dh_lintian -a
	dh_link -a
	dh_compress -a
	dh_fixperms -a
	dh_installdeb -a
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

binary-indep: build install

binary: binary-indep binary-arch

# debug helper
show-versions:
	# cpp       $(CPP_VER)
	# gcc       $(GCC_VER)
	# gfortran  $(GFORTRAN_VER)
	# gnat      $(GNAT_VER)
	# gcj       $(GCJ_VER)

.PHONY: build install clean binary-indep binary-arch binary \
	debian/control $(GENFILES) show-versions
