#!/usr/bin/make -f
# MAde with the aid of dh_make, by Craig Small
# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess.
# Some lines taken from debmake, by Cristoph Lameter.

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk

DB2MAN=/usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl


DEB_HOST_ARCH_CPU       ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU)
DEB_BUILD_ARCH_CPU      ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH_CPU)

# Enable IEEE-conformant floating point math on alphas (not the default)
ifeq (alpha,$(DEB_HOST_ARCH_CPU))
  CFLAGS += -mieee
endif

idl2deb.1: idl2deb.dbk
	xsltproc --nonet --novalid $(DB2MAN) $<

asn2deb.1: asn2deb.dbk
	xsltproc --nonet --novalid $(DB2MAN) $<


CONFIGURE_FLAGS=--prefix=/usr --sysconfdir=/usr/share --datadir=/usr/share --disable-static --libdir=/usr/lib --enable-warnings-as-errors=no --with-plugins=/usr/lib/wireshark/libwireshark2/plugins --with-lua=/usr/ --docdir=/usr/share/doc/wireshark-doc/ --with-gtk3

configure: configure-stamp
configure-stamp:
	dh_testdir

	# use release version only
	echo "" > svnversion.h

	libtoolize --force --copy
	-mkdir aclocal-missing
	./autogen.sh
	./configure $(CONFIGURE_FLAGS)

	touch configure-stamp

build: build-arch build-indep
build-arch: build-stamp
build-indep: build-stamp idl2deb.1 asn2deb.1
build-stamp: configure-stamp
	$(MAKE)
	$(MAKE) -C docbook wsug_html_chunked wsdg_html_chunked
	$(MAKE) -C doc idl2wrs.1 idl2wrs.html

	touch build-stamp

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

	[ ! -f Makefile ] || $(MAKE) distclean 
	rm -f rdps wireshark.1 tshark.1 idl2deb.1 wireshark-filter.4 asn2deb.1 dumpcap.1 rawshark.1
	rm -f conftest conftest.c
	rm -f config.guess config.sub config.log
	rm -f config.h.in config.h configure

	dh_clean

install: build
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs

	# Add here commands to install the files into debian/tmp
	$(MAKE) install DESTDIR=$(CURDIR)/debian/tmp
	rm -rf $(CURDIR)/debian/tmp/usr/share/wireshark/COPYING
	cp debian/license-text-about-dialog $(CURDIR)/debian/tmp/usr/share/wireshark/ABOUT.GPL
	mkdir -p $(CURDIR)/debian/tmp/usr/share/applications/
	cp wireshark.desktop $(CURDIR)/debian/tmp/usr/share/applications/
	cp tools/idl2wrs $(CURDIR)/debian/tmp/usr/bin/
	# icon for menu system
	mkdir -p $(CURDIR)/debian/tmp/usr/share/pixmaps/
	install -m 644 image/wsicon32.xpm $(CURDIR)/debian/tmp/usr/share/pixmaps/
	# icons conforming to freedesktop.org standards
	mkdir -p $(CURDIR)/debian/tmp/usr/share/icons/hicolor/scalable/apps/
	install -m 644 image/wsicon.svg $(CURDIR)/debian/tmp/usr/share/icons/hicolor/scalable/apps/wireshark.svg
	mkdir -p $(CURDIR)/debian/tmp/usr/share/icons/hicolor/48x48/apps/
	install -m 644 image/wsicon48.png $(CURDIR)/debian/tmp/usr/share/icons/hicolor/48x48/apps/wireshark.png
	mkdir -p $(CURDIR)/debian/tmp/usr/share/pyshared
	install -m 755 $(CURDIR)/idl2deb $(CURDIR)/debian/tmp/usr/bin/
	install -m 755 $(CURDIR)/asn2deb $(CURDIR)/debian/tmp/usr/bin/
	install -m 755 $(CURDIR)/tools/idl2wrs $(CURDIR)/debian/tmp/usr/bin/
	mkdir -p $(CURDIR)/debian/tmp/etc/wireshark/
	mv $(CURDIR)/debian/tmp/usr/share/wireshark/init.lua \
		$(CURDIR)/debian/tmp/etc/wireshark/
	ln -s /etc/wireshark/init.lua \
		$(CURDIR)/debian/tmp/usr/share/wireshark/init.lua
	install -m 644 $(CURDIR)/tools/wireshark_be.py $(CURDIR)/tools/wireshark_gen.py \
		$(CURDIR)/debian/tmp/usr/share/pyshared
	install	-m 755 $(CURDIR)/tools/asn2wrs.py $(CURDIR)/debian/tmp/usr/share/pyshared
	mkdir -p $(CURDIR)/debian/tmp/usr/include/wireshark/
	for F in `cat debian/libwireshark-dev.header-files debian/libwsutil-dev.header-files debian/libwiretap-dev.header-files`; do \
		cp --parents $$F $(CURDIR)/debian/tmp/usr/include/wireshark; \
	done
	# .a is no longer built; why was is used ?
	#cp $(CURDIR)/wiretap/libwiretap.a $(CURDIR)/debian/tmp/usr/lib/
	-rm -rf $(CURDIR)/debian/tmp/usr/man
	dh_installman
	dh_lintian

	dh_movefiles
	dh_python2
	dh_installdocs
	dh_installmenu
	dh_installchangelogs

# Build architecture-independent files here.
binary-indep: install
	dh_compress -i
	dh_fixperms -i
	dh_installdebconf -i
	dh_installdeb -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

check: install
	# check all necessary headers are included
	gcc -c debian/headers-check.c `pkg-config --cflags glib-2.0` -Idebian/libwireshark-dev/usr/include -Idebian/libwireshark-dev/usr/include/wireshark -Idebian/libwiretap-dev/usr/include/wireshark -o /dev/null

# Build architecture-dependent files here.
binary-arch: install check
	dh_strip --dbg-package=wireshark-dbg
	dh_compress -a
	dh_fixperms -a
	dh_makeshlibs
	rm -f debian/wireshark-common.shlibs
	dh_installdebconf -a
	dh_installdeb -a
	dh_shlibdeps
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

source diff:
	@echo >&2 'source and diff are obsolete - use dpkg-source -b'; false

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