#!/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 := $(shell dpkg-buildflags --get CFLAGS)
CPPFLAGS := $(shell dpkg-buildflags --get CPPFLAGS)
LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS)

CFLAGS += -Wall -g -Wextra -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith
LDFLAGS := -Wl,-z,defs $(LDFLAGS)
CPPFLAGS := $(CPPFLAGS) $(shell pkg-config --cflags gtk+-x11-2.0)

ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
        MAKEFLAGS += -j$(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
endif

config.status: configure
	dh_testdir
	./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) \
			   --prefix=/usr \
			   --mandir=\$${prefix}/share/man \
			   --infodir=\$${prefix}/share/info \
			   CPPFLAGS='$(CPPFLAGS)' \
			   CFLAGS="$(CFLAGS)" \
			   LDFLAGS="$(LDFLAGS)" \
	|| ( echo configure failed with $$? ; cat config.log ; echo "[end of config.log]" ; exit 1 )

build-arch-stamp: config.status
	dh_testdir
	$(MAKE)
	touch build-arch-stamp

build-arch: build-arch-stamp
build-indep:

clean:
	dh_testdir
	dh_testroot
	rm -f build-arch-stamp
	if test -e config.status -o -e config.log ; then \
		$(MAKE) distclean ; \
	fi
	dh_clean

# Build architecture-independent files:
binary-indep: build-indep
# We have nothing to do

# Build architecture-dependent files:
binary-arch: build-arch
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs
	$(MAKE) install DESTDIR=$(CURDIR)/debian/choosewm
	install -m 644 docs/config $(CURDIR)/debian/choosewm/etc/X11/choosewm/config
	dh_installchangelogs ChangeLog
	dh_installdocs
	dh_installexamples
	dh_installmenu
	dh_installman
	dh_link
	dh_strip
	dh_compress
	dh_fixperms
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

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