#!/usr/bin/make -f

export DH_VERBOSE=1

# The magic debhelper  rule
%:
	dh $@ 

TOPDIR:=$(shell pwd)
DESTDIR:=$(TOPDIR)/debian/tmp/
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
LIBDIR:=/usr/lib/$(DEB_HOST_MULTIARCH)

# For the config file. Done this way to pull in stuff from hardening, etc.
CFLAGS:=$(shell dpkg-buildflags --get CFLAGS)
CPPFLAGS:=$(shell dpkg-buildflags --get CPPFLAGS)
LDFLAGS:=$(shell dpkg-buildflags --get LDFLAGS)
FFLAGS:=$(shell dpkg-buildflags --get FFLAGS)
CC ?= cc
FC := gfortran
VERSION := 6.1.2

export LD_LIBRARY_PATH=$(TOPDIR)/shared:$(LIBDIR)/libfakeroot

# We built it twice: first shared, to get the shared libraries (with -fpic -fPIC)
# then static, for execution speed.

LIBS:= \
	libNGcgm.so  libNGctrans.so   libNGgksPDF.so  libNGgksX.so     libNGlluC.so  libNGmisc2.so  libNGncl.so \
	libNGcn.so   libNGff.so       libNGgksPS.so   libNGhlu.so      libNGllu.so   libNGmisc.so   libNGnfp.so \
	libNGc.so    libNGgksCTXT.so  libNGgks.so     libNGictrans.so  libNGmath.so  libNGmp.so     libNGras.so \
	libfftpack5_dp.so libsphere3.1_dp.so libNGnfpfort.so

override_dh_auto_configure:
	sed -e 's,@LIBDIR@,$(LIBDIR),' \
	    -e 's/@PREFIX@/\/usr/' \
	    -e 's/@VERSION@/$(VERSION)/' \
	< debian/ncarg.pc.in > ncarg.pc
	sed -e 's/@CC@/${CC}/' \
	    -e 's/@FC@/${FC}/' \
	    -e 's/@CFLAGS@/${CFLAGS}/' \
	    -e 's/@FFLAGS@/${FFLAGS}/' \
	    -e 's/@CPPFLAGS@/${CPPFLAGS}/' \
	    -e 's/@LDFLAGS@/${LDFLAGS}/' \
	< debian/LINUX.DEBIAN.shared.in > config/LINUX.DEBIAN.shared
	sed -e 's/@CC@/${CC}/' \
	    -e 's/@FC@/${FC}/' \
	    -e 's/@CFLAGS@/${CFLAGS}/' \
	    -e 's/@FFLAGS@/${FFLAGS}/' \
	    -e 's/@CPPFLAGS@/${CPPFLAGS}/' \
	    -e 's/@LDFLAGS@/${LDFLAGS}/' \
	< debian/LINUX.DEBIAN.static.in > config/LINUX.DEBIAN.static

override_dh_auto_build:
	## Shared.
	cp debian/Site.local.shared config/Site.local
	cp config/LINUX.DEBIAN.shared config/LINUX
	echo 'n' | ./Configure -v
	# Libraries need to be built first, in the right order.
	$(MAKE) Makefiles includes depend
	for d in common external ngmath/src/lib ncarg2d/src/libncarg_gks ncarg2d/src/libncarg ncarg2d/src/liboptional  ncarview ni/src/lib ; do \
		LD_LIBRARY_PATH=$(TOPDIR)/shared $(MAKE) -C $$d   DESTDIR=$(DESTDIR) ; done
	LD_LIBRARY_PATH=$(TOPDIR)/shared $(MAKE) install DESTDIR=$(DESTDIR)
	# Then build all static libs, and the executables.
	cp debian/Site.local.static config/Site.local
	cp config/LINUX.DEBIAN.static config/LINUX
	echo 'n' | ./Configure -v
	LD_LIBRARY_PATH=$(TOPDIR)/shared $(MAKE) Everything DESTDIR=$(DESTDIR) 

override_dh_auto_install:
	dh_auto_install
	mkdir -p debian/libncarg-dev/$(LIBDIR)
	cp debian/tmp/lib/*.a debian/libncarg-dev/$(LIBDIR)
	mkdir -p debian/libncarg0/$(LIBDIR)
	cp shared/*.so.1 debian/libncarg0/$(LIBDIR)
	mkdir -p  debian/libncarg-dev/$(LIBDIR)/pkgconfig
	cp ncarg.pc debian/libncarg-dev/$(LIBDIR)/pkgconfig
	for d in $(LIBS) ; do \
		dh_link -p libncarg-dev $(LIBDIR)/$$d.1 $(LIBDIR)/$$d ; done 
	mkdir -p debian/libncarg0/$(LIBDIR)
	mkdir -p debian/libncarg-dev/$(LIBDIR)/ncarg
	for d in $(LIBS) ; do \
		cp shared/$$d debian/libncarg0/$(LIBDIR)/$$d.1 ; \
		dh_link -p libncarg-dev $(LIBDIR)/$$d.1 $(LIBDIR)/$$d ;  done
	cp -a debian/tmp/lib/ncarg/robj debian/libncarg-dev/$(LIBDIR)/ncarg

override_dh_auto_clean:
	find . -name '*.so.1' -delete
	find . -type l -delete
	find . -name '*.o' -delete
	rm -f ncarg.pc config/LINUX.DEBIAN*
ifneq ($(wildcard config/LINUX.ORIG),)
	mv config/LINUX.ORIG config/LINUX
endif
