#!/usr/bin/make -f
# -*- makefile -*-

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=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)
DEB_HOST_ARCH_OS   ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
DEB_HOST_ARCH      ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)

CFLAGS = -Wall -g
LDFLAGS = -Wl,--as-needed

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

ifeq ($(DEB_HOST_ARCH_OS),linux)
       LINUX_CONF_ARGS_STD=--enable-wlan
       LINUX_CONF_ARGS_ALL=--enable-wlan --enable-ibm
endif

ifeq ($(DEB_HOST_ARCH),i386)
       ENABLE_NVIDIA=--enable-nvidia
endif

ifeq ($(DEB_HOST_ARCH),amd64)
       ENABLE_NVIDIA=--enable-nvidia
endif

COMMON_CONFIGURE_FLAGS = --host=$(DEB_HOST_GNU_TYPE) \
			 --build=$(DEB_BUILD_GNU_TYPE) \
		         --prefix=/usr --sysconfdir=/etc \
	                 --mandir=\$${prefix}/share/man \
			 --infodir=\$${prefix}/share/info \
			 --srcdir=..

configure: config-stamp

config-stamp:
	dh_testdir

	chmod +x ./autogen.sh
	AUTOMAKE=automake-1.11 ./autogen.sh

	ln -sf /usr/share/misc/config.sub .
	ln -sf /usr/share/misc/config.guess .

	mkdir build-std build-cli build-all

	cd build-std && CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
	../configure $(COMMON_CONFIGURE_FLAGS) $(LINUX_CONF_ARGS_STD)

	cd build-cli &&	CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
	../configure $(COMMON_CONFIGURE_FLAGS) \
	--disable-lua --disable-double-buffer --disable-x11 \
	--disable-xdamage --disable-own-window --disable-xft \
	--disable-hddtemp --disable-alsa --disable-portmon

	cd build-all && CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
	../configure $(COMMON_CONFIGURE_FLAGS) \
        --enable-imlib2 --enable-rss --enable-weather-xoap \
	--enable-eve --enable-lua-cairo --enable-lua-imlib2 \
	--disable-static --enable-argb \
	$(LINUX_CONF_ARGS_ALL) $(ENABLE_NVIDIA)

	touch $@

build: build-stamp

build-stamp: config-stamp
	dh_testdir

	cd build-std && $(MAKE)
	cd build-cli && $(MAKE)
	cd build-all && $(MAKE)

	touch $@

clean:
	dh_testdir
	dh_testroot

	rm -f  build-stamp config-stamp

	rm  -f configure.ac configure config.h.in src/config.h.in \
	       src/defconfig.h compile install-sh missing ltmain.sh depcomp \
	       Makefile.in doc/Makefile.in src/Makefile.in \
	       data/Makefile.in lua/Makefile.in \
	       aclocal.m4 m4/libtool.m4 m4/ltversion.m4 \
	       m4/lt~obsolete.m4 m4/ltoptions.m4 m4/ltsugar.m4

	rm -rf build-std build-cli build-all
	rm -f config.guess config.sub

	dh_clean 

install: build
	dh_testdir
	dh_testroot
	dh_clean -k 

	cd build-std && $(MAKE) install DESTDIR=$(CURDIR)/debian/conky-std
	cd build-cli && $(MAKE) install DESTDIR=$(CURDIR)/debian/conky-cli
	cd build-all && $(MAKE) install DESTDIR=$(CURDIR)/debian/conky-all

	# Clean up cruft left upstream
	rm -rf debian/conky-std/usr/lib debian/conky-cli/usr/lib \
	       debian/conky-all/usr/lib/conky/*.la \
	       debian/conky-all/usr/lib/conky/*.so.?

binary-indep: build install

binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installchangelogs ChangeLog
	dh_installdocs
	dh_installmenu -a
	dh_installman -a doc/conky.1
	dh_install -a
	dh_link -a
	dh_strip -a
	dh_compress
	dh_fixperms
	dh_installdeb -a
	dh_shlibdeps -a
	dh_gencontrol
	dh_md5sums
	dh_builddeb

binary: binary-arch binary-indep

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