#!/usr/bin/make -f

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

DEB_HOST_GNU_TYPE  := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)

CFLAGS = -Wall -g

ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
	CFLAGS += -O0
else
	CFLAGS += -O2
endif

SOURCE := $(shell dpkg-parsechangelog | sed -ne 's,^Source: *\(.*\)$$,\1,p')
VERSION_DEBIAN := $(shell dpkg-parsechangelog | sed -ne 's,^Version: *\(.*\)$$,\1,p')
VERSION := $(shell echo "$(VERSION_DEBIAN)" | sed -e 's,-[^-]*$$,,')

BUILD_DIR = debian/build
STAMPS_DIR = debian/stamps

PARTS = c3270 s3270 pr3287 x3270

$(STAMPS_DIR)/patch:
$(STAMPS_DIR)/patch:
	@[ -d $(STAMPS_DIR) ] || mkdir -p $(STAMPS_DIR)
	QUILT_PATCHES=debian/patches quilt --quiltrc /dev/null push -a || test $$? = 2
	touch $@

setup: $(STAMPS_DIR)/setup

$(STAMPS_DIR)/setup: $(addprefix $(STAMPS_DIR)/setup_,$(PARTS))

$(STAMPS_DIR)/setup_%: DIR = $(BUILD_DIR)/build_$*
$(STAMPS_DIR)/setup_%: $(STAMPS_DIR)/patch
	@rm -rf $(DIR)
	mkdir -p $(BUILD_DIR)
	cp -a $* $(DIR)
	rm -f $(DIR)/config.guess $(DIR)/config.sub
	cp -a /usr/share/misc/config.guess /usr/share/misc/config.sub $(DIR)
	cd $(DIR); \
	CFLAGS="$(CFLAGS)" \
	sh ./configure \
		--host=$(DEB_HOST_GNU_TYPE) \
		--build=$(DEB_BUILD_GNU_TYPE) \
		--prefix=/usr \
		--mandir=\$${prefix}/share/man \
		--infodir=\$${prefix}/share/info \
		--sysconfdir=/etc \
		--enable-app-defaults \
		--with-fontdir=/usr/share/fonts/X11/misc
	touch $@

build: $(STAMPS_DIR)/build

$(STAMPS_DIR)/build: $(addprefix $(STAMPS_DIR)/build_,$(PARTS))

$(STAMPS_DIR)/build_%: DIR = $(BUILD_DIR)/build_$*
$(STAMPS_DIR)/build_%: $(STAMPS_DIR)/setup_%
	dh_testdir
	$(MAKE) -C $(DIR)
	touch $@

maintainerclean:
	rm -rf $(filter-out .svn debian, $(wildcard * .[^.]*))

clean:
	dh_testdir
	rm -rf $(BUILD_DIR) $(STAMPS_DIR) debian/lib/python/*/*.pyc
	dh_clean

NO_ORIG = .svn .svk debian scripts

DIR_ORIG = ../orig/$(SOURCE)-$(VERSION)
TAR_ORIG_NAME = $(SOURCE)_$(VERSION).orig.tar.gz
TAR_ORIG = $(firstword $(wildcard ../$(TAR_ORIG_NAME)) $(wildcard ../orig/$(TAR_ORIG_NAME)))

orig: $(DIR_ORIG)
	rsync --delete $(foreach t, $(NO_ORIG), --exclude $(t)) --link-dest=$(DIR_ORIG)/ -a $(DIR_ORIG)/ .

$(DIR_ORIG):
ifeq ($(TAR_ORIG),)
	$(error Cannot find orig tarball $(TAR_ORIG_NAME))
else
	mkdir -p ../orig
	tar -C ../orig -xzf $(TAR_ORIG)
endif

install: build
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs

	$(foreach t, $(PARTS), $(MAKE) -C debian/build/build_$(t) install install.man DESTDIR=$(CURDIR)/debian/tmp;)

	dh_install --sourcedir=debian/tmp

# Build architecture-independent files here.
binary-indep: build install
	dh_testdir
	dh_testroot
	dh_installchangelogs -i
	dh_installdocs -i
	dh_installxfonts -i
	dh_link -i
	dh_strip -i
	dh_compress -i
	dh_fixperms -i
	dh_installdeb -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

# Build architecture-dependent files here.
binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installchangelogs -s
	dh_installdocs -s
	dh_installexamples -s
	dh_installman -s
	dh_installmenu -s
	dh_link -s
	dh_strip -s
	dh_compress -s
	dh_fixperms -s
	dh_installdeb -s
	dh_shlibdeps -s
	dh_gencontrol -s
	dh_md5sums -s
	dh_builddeb -s

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