#!/usr/bin/make -f
#DEB_BUILD_OPTIONS=nostrip
#CFLAGS=-Wall -g
#CXXFLAGS=-Wall -g
DEB_DEBIAN_DIR=$(dir $(firstword $(MAKEFILE_LIST)))
REV=$(shell dpkg-parsechangelog -l$(DEB_DEBIAN_DIR)/changelog \
              | sed -rne 's,^Version: .*[+~]svn([0-9]+).*,\1,p')
VER=$(shell dpkg-parsechangelog -l$(DEB_DEBIAN_DIR)/changelog \
              | sed -rne 's,^Version: ([^-]+).*,\1,p')
SVNREV=$(shell echo $(VER) | sed -rne 's,[0-9]+\.[0-9]+\.[0-9]+\.([0-9]+),\1,p')

%:
	dh $@ --builddir=Build --build-system=cmake

# build local static libraries in configure step
override_dh_auto_configure:
	mkdir Build
	mkdir Build/libctb
	mkdir Build/lib
	mkdir Build/wxwidgets
	mkdir Build/codec2
	dh_auto_configure --sourcedirectory=codec2 --builddirectory=Build/codec2 --buildsystem=cmake -- -DBUILD_SHARED_LIBS=OFF
	dh_auto_configure --sourcedirectory=libctb/src --builddirectory=Build/libctb
	dh_auto_configure --sourcedirectory=wxwidgets --builddirectory=Build/wxwidgets -- --enable-monolithic --disable-shared
	cd Build/wxwidgets && make -j3
	cd Build/libctb && make -f ../../libctb/build/GNUmakefile VPATH=../../libctb/src CXXFLAGS=-I../../libctb/include
	rm Build/lib/libctb-0.16.so
	cd Build/codec2 && make
	cd Build/wxwidgets && make install DESTDIR=$(CURDIR)/Build
	cd Build/codec2 && make install DESTDIR=$(CURDIR)/Build
	dh_auto_configure --builddirectory=Build --buildsystem=cmake -- -DSVN_REVISION=\"$(SVNREV)\"

override_dh_auto_install:
	dh_auto_install
	/usr/bin/install --mode=0644 -D contrib/freedv.desktop debian/freedv/usr/share/applications/freedv.desktop
	for r in 48x48 64x64 128x128 256x256 ; do /usr/bin/install --mode=0644 -D contrib/freedv$$r.png debian/freedv/usr/share/icons/hicolor/$$r/apps/freedv.png ; done

testvars:
	echo DEB_DEBIAN_DIR $(DEB_DEBIAN_DIR)
	echo SVNREV $(SVNREV)
	echo VER: $(VER)

fdmdv2-src: # remove cruft
	rm -rf fdmdv2-$(VER).orig
	svn -q export -r $(SVNREV) https://svn.code.sf.net/p/freetel/code/fdmdv2/ \
          fdmdv2-$(VER).orig
	rm -rf fdmdv2-$(VER).orig/conf # SVN cruft
	rm -rf fdmdv2-$(VER).orig/hooks # SVN cruft
	rm -rf fdmdv2-$(VER).orig/locks # SVN cruft
	rm -rf fdmdv2-$(VER).orig/build # codelite cruft
	rm -rf fdmdv2-$(VER).orig/db # SVN cruft
	GZIP=--best tar -cz --owner root --group root --mode a+rX \
         -f fdmdv2_$(VER).orig.tar.gz \
         fdmdv2-$(VER).orig
	rm -r fdmdv2-$(VER).orig

codec2-dev-src: # remove binary data and cruft
	rm -rf codec2-dev-$(VER).orig
	svn -q export -r $(SVNREV) https://svn.code.sf.net/p/freetel/code/codec2-dev/ \
          codec2-dev-$(VER).orig
	rm -rf codec2-dev-$(VER).orig/raw # Audio data
	rm -rf codec2-dev-$(VER).orig/stm32 # Maybe non-dfsg?
	rm -rf codec2-dev-$(VER).orig/wav # Audio data
	rm -rf codec2-dev-$(VER).orig/win32 # here be .dll files
	GZIP=--best tar -cz --owner root --group root --mode a+rX \
         -f fdmdv2_$(VER).orig-codec2.tar.gz \
         codec2-dev-$(VER).orig
	rm -r codec2-dev-$(VER).orig

libctb-src: # remove binaries and Doxygen generated .pdf from source tarball
	rm -rf libctb-0.16.tar.gz libctb-0.16.orig
	wget https://iftools.com/download/ctb/0.16/libctb-0.16.tar.gz
	tar zxf libctb-0.16.tar.gz
	rm -f libctb-0.16/manual/refman.pdf # Doxygen generated pdf
	rm -f libctb-0.16/build/libctb.bkl # XML document text
	rm -f libctb-0.16/python/src/ctb.html # HTML data
	rm -f libctb-0.16/python/src/linux/_wxctb.so # ELF 386
	rm -f libctb-0.16/python/module/linux/_wxctb.so # ELF 386
	rm -f libctb-0.16/lib/gpib32.lib # current ar archive

	mv libctb-0.16 libctb-0.16.orig
	GZIP=--best tar -cz --owner root --group root --mode a+rX \
         -f fdmdv2_$(VER).orig-libctb.tar.gz \
         libctb-0.16.orig
	rm -r libctb-0.16.orig

wxwidgets-src: # remove convenience copies of libraries
	rm -rf wxWidgets-2.9.5.tar.bz2 wxwidgets-2.9.5.orig
	wget ftp://ftp.wxwidgets.org/pub/2.9.5/wxWidgets-2.9.5.tar.bz2
	tar jxf wxWidgets-2.9.5.tar.bz2

	rm -rf wxWidgets-2.9.5/src/expat
	rm -rf wxWidgets-2.9.5/src/jpeg
	rm -rf wxWidgets-2.9.5/src/png
	rm -rf wxWidgets-2.9.5/src/tiff
	rm -rf wxWidgets-2.9.5/src/zlib
	rm wxWidgets-2.9.5/docs/doxygen/images/main_wxlogo.pdf

	mv wxWidgets-2.9.5 wxwidgets-2.9.5.orig
	tar -c --owner root --group root --mode a+rX \
         -f fdmdv2_$(VER).orig-wxwidgets.tar \
         wxwidgets-2.9.5.orig
	bzip2 fdmdv2_$(VER).orig-wxwidgets.tar
	rm -r wxwidgets-2.9.5.orig

get-orig-source: fdmdv2-src codec2-dev-src libctb-src wxwidgets-src
