#!/usr/bin/make -f

export BUILD_OFFICIAL=1
export INSTALL_SDK=1
export MAIL_PKG_SHARED=1

DEB_MOZ_NAME=icedove
DEB_MOZ_APPLICATION=$(DEB_MOZ_NAME)
MOZ_APPLICATION=mail
XUL_VERSION=1.9.1
MAIN_LDFLAGS := -Wl,--as-needed

ifeq ($(DEB_MOZ_NAME),icedove)
  DEBIAN_DIST := org.debian
  EXTRA_BRANDING_CONFIGURE_FLAGS = --with-branding=${MOZ_APPLICATION}/branding/$(DEB_MOZ_NAME)/
  TB_ICON = debian/icedove.xpm
  DEB_MOZ_NAME_FIRST_UPPER=Icedove
else
  DEBIAN_DIST := com.ubuntu
  TB_ICON = $(DEB_SRCDIR)/other-licenses/branding/thunderbird/content/icon64.png
  DEB_MOZ_NAME_FIRST_UPPER=Thunderbird
endif

ifeq ($(XUL_VERSION),1.9.1)
  TB_VERSION_FILE := version-191.txt
else
  TB_VERSION_FILE := version.txt
endif

DEBIAN_TB_DIR   = /usr/lib/$(DEB_MOZ_NAME)
DEBIAN_XUL_DEV := $(wildcard /usr/lib/xulrunner-devel-1.9*)

MOZCLIENT_PROJECTNAME   := $(DEB_MOZ_APPLICATION)
MOZCLIENT_PROJECTDIR    := $(CURDIR)/debian/mozclient

DEB_SRCDIR		:= .
# DEB_BUILDDIR		:= objdir-tb

EXTRA_SYSTEM_CONFIGURE_FLAGS = $(NULL)

USE_SYSTEM_XUL := 0

ifeq (1,$(USE_SYSTEM_XUL))
   EXTRA_SYSTEM_CONFIGURE_FLAGS += --with-libxul-sdk=$(DEBIAN_XUL_DEV)
endif

DEB_AUTO_UPDATE_AUTOCONF=2.13

ifneq (,$(wildcard *.tar.bz2)$(DEBIAN_MOZCLIENT_EMBEDDED))
   DEB_TAR_SRCDIR := mozilla
   MOZCLIENT_EMBEDDED = 1
   DEBIAN_TB_DIR = /usr/lib/$(DEB_MOZ_NAME)-$(shell tail -1 build-tree/mozilla/$(MOZ_APPLICATION)/config/$(TB_VERSION_FILE))
   include /usr/share/cdbs/1/rules/tarball.mk
endif
include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/autotools.mk
include $(CURDIR)/debian/mozclient/$(DEB_MOZ_APPLICATION).mk
include $(CURDIR)/debian/mozclient/compare.mk

DEB_AUTO_UPDATE_DEBIAN_CONTROL=0

DEB_MOZ_EXTENSIONS=default
DEB_DBG_PACKAGES = $(DEB_MOZ_NAME)-dbg

DEB_DH_SHLIBDEPS_ARGS_ALL=-l $(DEB_DESTDIR)usr/lib/$(DEB_MOZ_APPLICATION) -Xlibmozgnome -Xlibnkgnomevfs -Xlibdbusservice

DEB_DH_MAKESHLIBS_ARGS_ALL=-Xlibsystem-pref.so

CFLAGS = -g
CXXFLAGS = -g -std=gnu++0x

# DEB_CONFIGURE_SCRIPT_ENV = \
# 	MOZ_OBJDIR=@TOPSRCDIR@/$(DEB_BUILDDIR) \
# 	$(NULL)

DEB_CONFIGURE_USER_FLAGS= \
	$(EXTRA_SYSTEM_CONFIGURE_FLAGS) \
	--enable-application=$(MOZ_APPLICATION) \
	--enable-extensions=$(DEB_MOZ_EXTENSIONS) \
	--with-default-mozilla-five-home=$(DEBIAN_TB_DIR) \
	--enable-startup-notification \
	--with-user-appdir=.mozilla \
	--with-system-jpeg=/usr \
	--with-system-zlib=/usr \
	--with-system-bz2 \
	--with-system-png \
	--with-system-nspr \
	--with-system-nss \
	--disable-javaxpcom \
	--disable-crashreporter \
	--disable-elf-dynstr-gc \
	--disable-installer \
	--disable-strip \
	--disable-strip-libs \
	--disable-install-strip \
	--disable-tests \
	--disable-mochitest \
	--disable-updater \
	--enable-pango \
	--enable-xft \
	--enable-xinerama \
	--enable-svg \
	--enable-svg-renderer=cairo \
	--enable-gnomevfs \
	--enable-gnomeui \
	--enable-canvas \
	--enable-crypto \
	--enable-system-cairo \
	--enable-system-sqlite \
	--with-distribution-id=$(DEBIAN_DIST) \
	--build=$(DEB_BUILD_GNU_TYPE) \
	--host=$(DEB_HOST_GNU_TYPE) \
	$(EXTRA_BRANDING_CONFIGURE_FLAGS) \
	$(NULL)

ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
	DEB_CONFIGURE_USER_FLAGS += --disable-optimize
else
	DEB_CONFIGURE_USER_FLAGS += --enable-optimize
endif

ifeq ($(DEB_BUILD_ARCH),alpha)
	MAIN_LDFLAGS += -Wl,--no-relax
endif

subst_files = \
	debian/$(DEB_MOZ_APPLICATION).postinst \
	debian/$(DEB_MOZ_APPLICATION).prerm \
	debian/$(DEB_MOZ_APPLICATION).install \
	debian/$(DEB_MOZ_APPLICATION)-dev.install \
	debian/$(DEB_MOZ_APPLICATION).links \
	debian/$(DEB_MOZ_APPLICATION).menu \
	debian/$(DEB_MOZ_APPLICATION).desktop \
	debian/$(DEB_MOZ_APPLICATION).pc \
	$(NULL)

$(DEB_MOZ_APPLICATION)%: thunderbird%.in
	sed -e 's,@LIBDIR@,$(DEBIAN_TB_DIR),g' \
	    -e 's,@DEB_MOZ_APPLICATION@,$(DEB_MOZ_APPLICATION),g' \
		-e 's,@DEB_MOZ_NAME_FIRST_UPPER@,$(DEB_MOZ_NAME_FIRST_UPPER),g' \
	       < $< > $@

pre-build:: $(subst_files)

configure/$(DEB_MOZ_APPLICATION)::
	sed -i '/^OS_LDFLAGS/s|=|& $(MAIN_LDFLAGS)|' config/autoconf.mk mozilla/config/autoconf.mk mozilla/js/src/config/autoconf.mk directory/c-sdk/config/autoconf.mk

makebuilddir/$(DEB_MOZ_APPLICATION):: debian/stamp-autotools-files-moz
debian/stamp-autotools-files-moz:
	if [ "Z$(DEB_AUTO_UPDATE_AUTOCONF)" != Z ] || [ ! -e $(DEB_SRCDIR)/mozilla/configure ]; \
	then cd $(DEB_SRCDIR)/mozilla && `which autoconf$(DEB_AUTO_UPDATE_AUTOCONF) || which autoconf`; fi
	if [ "Z$(DEB_AUTO_UPDATE_AUTOCONF)" != Z ] || [ ! -e $(DEB_SRCDIR)/mozilla/js/src/configure ]; \
	then cd $(DEB_SRCDIR)/mozilla/js/src && `which autoconf$(DEB_AUTO_UPDATE_AUTOCONF) || which autoconf`; fi
	if [ "Z$(DEB_AUTO_UPDATE_AUTOCONF)" != Z ] || [ ! -e $(DEB_SRCDIR)/directory/c-sdk/configure ]; \
	then cd $(DEB_SRCDIR)/directory/c-sdk && `which autoconf$(DEB_AUTO_UPDATE_AUTOCONF) || which autoconf`; fi
	touch $@

install/$(DEB_MOZ_APPLICATION)::
	install -d -m 755 debian/tmp/usr/share/pixmaps
	install -m 644 $(TB_ICON) debian/tmp/usr/share/pixmaps/$(DEB_MOZ_APPLICATION).xpm

install/$(DEB_MOZ_APPLICATION)-dev::
	find debian/tmp/usr/share/idl/icedove -type f -name '*.idl' -exec chmod a-x {} \;

binary-install/$(DEB_MOZ_APPLICATION)::
	touch debian/$(DEB_MOZ_NAME)$(DEBIAN_TB_DIR)/.autoreg
	dh_install -p$(DEB_MOZ_APPLICATION) debian/tmp/usr/share/pixmaps/$(DEB_MOZ_APPLICATION).xpm usr/share/pixmaps
	dh_link -p$(DEB_MOZ_APPLICATION) $(DEBIAN_TB_DIR)/$(DEB_MOZ_APPLICATION) usr/bin/$(DEB_MOZ_APPLICATION)

binary-post-install/$(DEB_MOZ_APPLICATION):: compare

binary-predeb/$(DEB_MOZ_APPLICATION)::
	LD_LIBRARY_PATH=$(DEB_DESTDIR)usr/lib/$(DEB_MOZ_APPLICATION) dpkg-shlibdeps -Tdebian/$(DEB_MOZ_APPLICATION).substvars -dDepends -pgnome $(foreach lib,dbusservice mozgnome nkgnomevfs,debian/$(DEB_MOZ_APPLICATION)/usr/lib/$(DEB_MOZ_APPLICATION)/components/lib$(lib).so)

clean::
	rm -f debian/stamp-autotools-files-moz debian/stamp-icedove-branding
