#!/usr/bin/make -f

# This has to be exported to make some magic below work.
export DH_OPTIONS

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

# Set the host and build architectures for use with config.cache loading,
# cross-building, etc.
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)

export DEB_HOST_GNU_TYPE
export DEB_BUILD_GNU_TYPE
export DEB_HOST_ARCH_OS
pyversion := $(shell pyversions -vd)

CFLAGS = -g -Wall

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

include /usr/share/quilt/quilt.make

DESTDIR=`pwd`/debian/tmp
PKGNAME=likewise-open
PREFIX=/usr
LIBEXECDIR=$(PREFIX)/lib/$(PKGNAME)

ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
  conf_args += --build $(DEB_BUILD_GNU_TYPE)
else
  conf_args += --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
endif


configure: configure-stamp
configure-stamp: $(QUILT_STAMPFN)
	dh_testdir

	./autogen.sh 

	## Just a bit tricky here.  Don't call top level Configure.sh so
	## we have more control over file placement;

	(cd centutils; \
	 ./configure --prefix=$(PREFIX) \
	    --libdir=$(PREFIX)/lib)

	(cd domainjoin; \
	 ./configure --prefix=$(PREFIX) \
	    --with-gtk \
	    --with-libxml2-dir=$(PREFIX) \
	    --libdir=$(PREFIX)/lib \
	    --libexecdir=$(LIBEXECDIR))

	(cd samba/source; \
	 ./configure --prefix=$(PREFIX) \
	    --with-fhs \
	    --localstatedir=/var \
	    --with-configdir=/etc/samba \
	    --libdir=$(PREFIX)/lib \
	    --with-libdir=$(PREFIX)/lib/$(PKGNAME) \
	    --with-lockdir=/var/lib/$(PKGNAME) \
	    --with-logfilebase=/var/log/$(PKGNAME) \
	    --with-mandir=$(PREFIX)/man \
	    --with-piddir=/var/run \
	    --with-privatedir=/etc/samba \
	    --enable-require-wrfile-keytab \
	    --with-ads \
	    --with-pam \
	    --without-readline \
	    --with-included-popt \
	    --with-included-iniparser \
	    --with-shared-modules=idmap_lwopen)

	touch configure-stamp

build: build-stamp

build-stamp: configure-stamp
	dh_testdir

	$(MAKE) SCRIPTDIR=$(LIBEXECDIR) all

	touch build-stamp
clean: clean-patched unpatch

clean-patched: 
	dh_testdir
	dh_testroot
	rm -f build-stamp configure-stamp

	$(MAKE) clean

	dh_clean

install: build
	dh_testdir
	dh_testroot
	dh_clean -k
#	dh_installdirs -P $(DESTDIR)
	dh_installdirs

	$(MAKE) DESTDIR=$(DESTDIR) PREFIX=$(PREFIX) install

	mkdir -p $(DESTDIR)/usr/lib/
	mkdir -p $(DESTDIR)/lib/security
	mkdir -p $(DESTDIR)/usr/share/$(PKGNAME)

	mv $(DESTDIR)/$(PREFIX)/lib/$(PKGNAME)/libwbclient.so $(DESTDIR)/$(PREFIX)/lib/$(PKGNAME)/libwbclient.so.0.1
	ln -s libwbclient.so.0.1 $(DESTDIR)/$(PREFIX)/lib/$(PKGNAME)/libwbclient.so.0
	ln -s libwbclient.so.0.1 $(DESTDIR)/$(PREFIX)/lib/$(PKGNAME)/libwbclient.so
	(cd $(DESTDIR)/usr/lib && ln -s $(PKGNAME)/libwbclient.so.0 libwbclient.so.0)

	mv $(DESTDIR)/$(PREFIX)/lib/libcentutils.so.1 $(DESTDIR)/$(PREFIX)/lib/$(PKGNAME)/libcentutils.so.1
	(cd $(DESTDIR)/usr/lib && ln -s -f $(PKGNAME)/libcentutils.so.1 libcentutils.so.1)
	mv $(DESTDIR)/$(PREFIX)/lib/libgpglib.so.1 $(DESTDIR)/$(PREFIX)/lib/$(PKGNAME)/libgpglib.so.1
	(cd $(DESTDIR)/usr/lib && ln -s -f $(PKGNAME)/libgpglib.so.1 libgpglib.so.1)
 
	/bin/mv $(DESTDIR)/usr/bin/lwi-domainjoin-cli $(DESTDIR)/usr/bin/domainjoin-cli
 
	/bin/mv $(DESTDIR)/usr/bin/domainjoin-gtk $(DESTDIR)/usr/bin/domainjoin-gui

	install -m644 domainjoin/domainjoin-gui/gtk/domainjoin-gtk.glade \
		$(DESTDIR)/usr/share/$(PKGNAME)/domainjoin-gtk.glade
	install -m644 domainjoin/domainjoin-gui/gtk/domainjoin-logo.png \
		$(DESTDIR)/usr/share/$(PKGNAME)/domainjoin-logo.png
	install -m644 domainjoin/domainjoin-gui/gtk/likewise-logo.png \
		$(DESTDIR)/usr/share/$(PKGNAME)/likewise-logo.png

	install --mode=755 samba/source/nsswitch/libnss_lwidentity.so $(DESTDIR)/lib/libnss_lwidentity.so.2
	ln -s libnss_lwidentity.so.2 $(DESTDIR)/lib/libnss_lwidentity.so

	install --mode=644 samba/source/bin/pam_lwidentity.so $(DESTDIR)/lib/security/pam_lwidentity.so

	install -D --mode=0644 domainjoin/scripts/Centeris.pm $(DESTDIR)/usr/lib/$(PKGNAME)/Centeris.pm

	for file in ConfigureLogin ConfigureShellPrompt gpcron; do \
		install --mode=0755 domainjoin/scripts/$$file $(DESTDIR)/usr/lib/$(PKGNAME); \
	done

	install -D --mode=0644 debian/lwiauthd.conf $(DESTDIR)/etc/samba/lwiauthd.conf

	install -D --mode=0644 debian/pam_lwidentity.conf $(DESTDIR)/etc/security/pam_lwidentity.conf

	install -D -m 644  debian/$(PKGNAME).lintian $(DESTDIR)/usr/share/lintian/overrides/$(PKGNAME) 

	dh_install --sourcedir=$(DESTDIR) --list-missing

# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.

# Build architecture-dependent files here.
binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installchangelogs
	dh_installdocs
	dh_installexamples
#	dh_install
#	dh_installmenu
#	dh_installdebconf
#	dh_installlogrotate
#	dh_installemacsen
#	dh_installpam
#	dh_installmime
#	dh_python
	dh_installinit
#	dh_installcron
#	dh_installinfo
	dh_installman
	dh_link
	dh_strip
	dh_compress
	dh_fixperms
	dh_perl
	dh_makeshlibs
	dh_installdeb
	dh_shlibdeps -ldebian/$(PKGNAME)/usr/lib/$(PKGNAME)
	dh_gencontrol
	dh_md5sums
	dh_builddeb

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