#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.

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

export DEB_BUILD_HARDENING=1


# These are used for cross-compiling and for saving the configure script
# from having to guess our platform (since we know it already)
DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
CROSS= --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
else
CROSS= --build $(DEB_BUILD_GNU_TYPE)
endif

PYDEF=$(shell pyversions -d)
PYVERS=$(shell pyversions -r)

# work around Bug #552224 (armel compiler breaks __thread if optimizing)
ifeq ($(shell dpkg-architecture -qDEB_HOST_ARCH),armel)
CFLAGS += -O0
endif
ifeq ($(shell dpkg-architecture -qDEB_HOST_ARCH),sparc)
CFLAGS += -O0
endif
ifeq ($(shell dpkg-architecture -qDEB_HOST_ARCH),sparc64)
CFLAGS += -O0
endif

# shared library versions, option 1
version=2.0.5
major=2
# option 2, assuming the library is created as src/.libs/libfoo.so.2.0.5 or so
#version=`ls src/.libs/lib*.so.* | \
# awk '{if (match($$0,/[0-9]+\.[0-9]+\.[0-9]+$$/)) print substr($$0,RSTART)}'`
#major=`ls src/.libs/lib*.so.* | \
# awk '{if (match($$0,/\.so\.[0-9]+$$/)) print substr($$0,RSTART+4)}'`

config.status: configure
	dh_testdir
	# Add here commands to configure the package.
ifneq "$(wildcard /usr/share/misc/config.sub)" ""
	cp -f /usr/share/misc/config.sub config.sub
endif
ifneq "$(wildcard /usr/share/misc/config.guess)" ""
	cp -f /usr/share/misc/config.guess config.guess
endif
	./configure $(CROSS) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info CFLAGS="$(CFLAGS)" LDFLAGS="-Wl,-z,defs"


build: build-stamp build-ext-stamp

build-stamp:  config.status 
	dh_testdir

	# Add here commands to compile the package.
	$(MAKE) -C src
	$(MAKE) -C utils
	$(MAKE) -C m4
	#$(MAKE)

	touch $@


build-ext-stamp:  config.status 
	dh_testdir

	# Add here commands to compile the package.
	$(MAKE) -C src DESTDIR=$(CURDIR)/debian/tmp install
	set -e; \
	mkdir -p $(CURDIR)/debian/tmp-python-cap-ng/usr/lib; \
	for pythonvers in $(PYVERS); do \
		python=$$(echo $$pythonvers | sed "s/$(PYDEF)/python/"); \
		vers=$$(echo $$pythonvers | sed "s/python//"); \
		echo $$pythonvers; \
		PYFLAGS="PYTHON_VERSION=$$vers _capng_la_LIBADD=\"-l$$pythonvers\""; \
		sed -i "s/2\.[4567]/$$vers/" bindings/python/Makefile; \
		$(MAKE) -C bindings/python clean; \
		$(MAKE) -C bindings/python $$PYFLAGS; \
		$(MAKE) -C bindings/python $$PYFLAGS DESTDIR=$(CURDIR)/debian/tmp install; \
		mv $(CURDIR)/debian/tmp/usr/lib/$${pythonvers} $(CURDIR)/debian/tmp-python-cap-ng/usr/lib; \
	done

	touch $@

clean: 
	dh_testdir
	dh_testroot
	rm -f build-stamp build-ext-stamp

	# Add here commands to clean up after the build process.
	[ ! -f Makefile ] || $(MAKE) distclean
	rm -f config.sub config.guess
	-rm -rf debian/tmp-python-cap-ng

	dh_clean 

install: build
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs

	# Add here commands to install the package into debian/tmp
	$(MAKE) DESTDIR=$(CURDIR)/debian/tmp install
	-rm -rf $(CURDIR)/debian/tmp/usr/lib/python*
	mv $(CURDIR)/debian/tmp-python-cap-ng/usr/lib/* $(CURDIR)/debian/python-cap-ng/usr/lib/


# Build architecture-independent files here.
binary-indep: install
# We have nothing to do by default.

# Build architecture-dependent files here.
binary-arch: install
	dh_testdir
	dh_testroot
	dh_installchangelogs ChangeLog
	dh_installdocs
	dh_installexamples
	# Fix rpath added during build
	chrpath -d $(CURDIR)/debian/tmp/usr/bin/captest
	chrpath -d $(CURDIR)/debian/tmp/usr/bin/filecap
	chrpath -d $(CURDIR)/debian/tmp/usr/bin/netcap
	chrpath -d $(CURDIR)/debian/tmp/usr/bin/pscap
	find debian/python-cap-ng/usr/lib/ -name "*.so" -exec chrpath -d {} \;
	dh_install --list-missing --source=debian/tmp
	dh_installman
	dh_pysupport
	dh_link
	dh_strip
	dh_compress
	dh_fixperms
	dh_makeshlibs
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

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