#! /usr/bin/make -f

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

REL_NO	:= 8
GCC_VER := 4.6.0

# minimum required gcc-X.Y versions
REQV		:= (>= $(GCC_VER)-$(REL_NO))

CV_CPP		:= $(GCC_VER)-$(REL_NO)
CV_GCC		:= $(GCC_VER)-$(REL_NO)
CV_GPP		:= $(GCC_VER)-$(REL_NO)
CV_GOBJC	:= $(GCC_VER)-$(REL_NO)
CV_GOBJCXX	:= $(GCC_VER)-$(REL_NO)
CV_GFORT	:= $(GCC_VER)-$(REL_NO)

REQV_CPP	= $(REQV)
REQV_GCC	= $(REQV)
REQV_GPP	= $(REQV)
REQV_GOBJC	= $(REQV)
REQV_GOBJCXX	= $(REQV)
REQV_GFORT	= $(REQV)

EPOCH=4
distribution := $(shell lsb_release -is)
all_packages    := g++-arm-linux-gnueabi gfortran-arm-linux-gnueabi gobjc-arm-linux-gnueabi gobjc++-arm-linux-gnueabi
no_packages	:=

packages := $(filter-out $(no_packages), $(all_packages))

# derived version number (without release)
V_CPP	:= $(shell echo $(CV_CPP)   | sed 's/-[^-]*$$//')
V_GCC	:= $(shell echo $(CV_GCC)   | sed 's/-[^-]*$$//')
V_GPP	:= $(shell echo $(CV_GPP)   | sed 's/-[^-]*$$//')
V_GOBJC	:= $(shell echo $(CV_GOBJC) | sed 's/-[^-]*$$//')
V_GOBJCXX	:= $(shell echo $(CV_GOBJCXX) | sed 's/-[^-]*$$//')
V_GFORT	:= $(shell echo $(CV_GFORT) | sed 's/-[^-]*$$//')

# number for the package name
PV_CPP	:= $(shell echo $(V_CPP)   | awk -F. '{printf "%d.%d", $$1, $$2}')
PV_GCC	:= $(shell echo $(V_GCC)   | awk -F. '{printf "%d.%d", $$1, $$2}')
PV_GPP	:= $(shell echo $(V_GPP)   | awk -F. '{printf "%d.%d", $$1, $$2}')
PV_GOBJC:= $(shell echo $(V_GOBJC) | awk -F. '{printf "%d.%d", $$1, $$2}')
PV_GOBJCXX:= $(shell echo $(V_GOBJCXX) | awk -F. '{printf "%d.%d", $$1, $$2}')
PV_GFORT:= $(shell echo $(V_GFORT) | awk -F. '{printf "%d.%d", $$1, $$2}')

substvars:
	( \
	  echo 'version:cpp=$(EPOCH):$(CV_CPP)'; \
	  echo 'version:gcc=$(EPOCH):$(CV_GCC)'; \
	  echo 'version:gpp=$(EPOCH):$(CV_GPP)'; \
	  echo 'version:gobjc=$(EPOCH):$(CV_GOBJC)'; \
	  echo 'version:gfort=$(EPOCH):$(CV_GFORT)'; \
	  echo 'pv:cpp=$(PV_CPP)'; \
	  echo 'pv:gcc=$(PV_GCC)'; \
	  echo 'pv:gpp=$(PV_GPP)'; \
	  echo 'pv:gobjc=$(PV_GOBJC)'; \
	  echo 'pv:gobjcxx=$(PV_GOBJCXX)'; \
	  echo 'pv:gfort=$(PV_GFORT)'; \
	  echo 'reqv:cpp=$(REQV_CPP)'; \
	  echo 'reqv:gcc=$(REQV_GCC)'; \
	  echo 'reqv:gpp=$(REQV_GPP)'; \
	  echo 'reqv:gobjc=$(REQV_GOBJC)'; \
	  echo 'reqv:gobjcxx=$(REQV_GOBJCXX)'; \
	  echo 'reqv:gfort=$(REQV_GFORT)'; \
	) > debian/substvars.local

build: build-stamp
build-stamp:
	dh_testdir
	touch build-stamp

clean:
	dh_testdir
	dh_testroot
	rm -f *-stamp
	rm -rf build
	rm -f debian/control.tmp*
	rm -f debian/substvars.local
	dh_clean

install: build substvars
	dh_testdir
	dh_testroot
	dh_clean -k

	for p in `dh_listpackages`; do \
	  cp -l debian/substvars.local debian/$$p.substvars; \
	done

nopkgs :=-s $(foreach p, $(no_packages),-N$(p))

binary-indep:
	:

binary-arch: build install
	dh_testdir
	dh_testroot
#	dh_installdebconf
	dh_installdocs -pcpp-arm-linux-gnueabi
	for p in `dh_listpackages $(nopkgs) -Ncpp-arm-linux-gnueabi`; do \
	  echo ln -sf cpp-arm-linux-gnueabi debian/$$p/usr/share/doc/$$p; \
	  mkdir -p debian/$$p/usr/share/doc; \
	  rm -f debian/$$p/usr/share/doc/$$p; \
	  ln -sf cpp-arm-linux-gnueabi debian/$$p/usr/share/doc/$$p; \
	done

	dh_link -pcpp-arm-linux-gnueabi \
          /usr/bin/arm-linux-gnueabi-cpp-$(PV_CPP) /usr/bin/arm-linux-gnueabi-cpp \
          /usr/share/man/man1/arm-linux-gnueabi-cpp-$(PV_CPP).1.gz /usr/share/man/man1/arm-linux-gnueabi-cpp.1.gz

	dh_link -pgcc-arm-linux-gnueabi \
          /usr/bin/arm-linux-gnueabi-gcc-$(PV_GCC) /usr/bin/arm-linux-gnueabi-gcc \
          /usr/bin/arm-linux-gnueabi-gcov-$(PV_GCC) /usr/bin/arm-linux-gnueabi-gcov \
          /usr/share/man/man1/arm-linux-gnueabi-gcc-$(PV_GCC).1.gz /usr/share/man/man1/arm-linux-gnueabi-gcc.1.gz \
          /usr/share/man/man1/arm-linux-gnueabi-gcov-$(PV_GCC).1.gz /usr/share/man/man1/arm-linux-gnueabi-gcov.1.gz 

	dh_link -pg++-arm-linux-gnueabi \
          /usr/bin/arm-linux-gnueabi-g++-$(PV_GPP) /usr/bin/arm-linux-gnueabi-g++ \
          /usr/share/man/man1/arm-linux-gnueabi-g++-$(PV_GPP).1.gz /usr/share/man/man1/arm-linux-gnueabi-g++.1.gz \

	dh_link -pgfortran-arm-linux-gnueabi \
          /usr/bin/arm-linux-gnueabi-gfortran-$(PV_GFORT) /usr/bin/arm-linux-gnueabi-gfortran \
          /usr/share/man/man1/arm-linux-gnueabi-gfortran-$(PV_GFORT).1.gz /usr/share/man/man1/arm-linux-gnueabi-gfortran.1.gz 

	dh_installchangelogs -pcpp-arm-linux-gnueabi
	mv debian/cpp-arm-linux-gnueabi/usr/share/doc/cpp-arm-linux-gnueabi/changelog \
		debian/cpp-arm-linux-gnueabi/usr/share/doc/cpp-arm-linux-gnueabi/changelog.Debian
	dh_compress -s $(nopkgs)
	dh_fixperms -s $(nopkgs)
	dh_installdeb -s $(nopkgs)
	dh_gencontrol -pcpp-arm-linux-gnueabi     -u-v$(EPOCH):$(CV_CPP)
	dh_gencontrol -pgcc-arm-linux-gnueabi     -u-v$(EPOCH):$(CV_GCC)
ifneq (,$(filter g++-arm-linux-gnueabi, $(packages)))
	dh_gencontrol -pg++-arm-linux-gnueabi     -u-v$(EPOCH):$(CV_GPP)
endif
ifneq (,$(filter gobjc-arm-linux-gnueabi, $(packages)))
	dh_gencontrol -pgobjc-arm-linux-gnueabi   -u-v$(EPOCH):$(CV_GOBJC)
endif
ifneq (,$(filter gobjc++-arm-linux-gnueabi, $(packages)))
	dh_gencontrol -pgobjc++-arm-linux-gnueabi   -u-v$(EPOCH):$(CV_GOBJCXX)
endif
ifneq (,$(filter gfortran-arm-linux-gnueabi, $(packages)))
	dh_gencontrol -pgfortran-arm-linux-gnueabi     -u-v$(EPOCH):$(CV_GFORT)
endif
	dh_md5sums -s $(nopkgs)
	dh_builddeb -s $(nopkgs)

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