File debian.rules of Package mozldap

#!/usr/bin/make -f

include /usr/share/quilt/quilt.make

# 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_BUILD_ARCH  ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)

UPSTREAM_VERSION := $(shell dpkg-parsechangelog | sed -n 's/^Version: *\(.*\)-.*$$/\1/ p' | sed -e 's/~.*//')
MOD_MAJOR_VERSION := $(word 1, $(subst ., ,$(UPSTREAM_VERSION)))
MOD_MINOR_VERSION := $(word 2, $(subst ., ,$(UPSTREAM_VERSION)))
MOD_PATCH_VERSION := $(word 3, $(subst ., ,$(UPSTREAM_VERSION)))

USE_64 := $(shell echo "int main(void) { int assert[(sizeof(long) == 8) ? 1 : -1]; return 0; }" | gcc -o /dev/null -x c - 2> /dev/null && echo --enable-64bit)

CFLAGS := -Wall -pipe

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

CFLAGS += -g
SO_SUFFIX := 60
BASEDIR := $(CURDIR)/c-sdk
DISTDIR := $(CURDIR)/mozilla/dist
# FOR AUTOCONF 2.52 AND NEWER ONLY
ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
CONFIGURE_SWITCHES := --build $(DEB_HOST_GNU_TYPE)
else
CONFIGURE_SWITCHES := --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
endif
CONFIGURE_SWITCHES += --prefix=/usr \
			--exec-prefix=/usr \
			--with-dist-prefix=${DISTDIR} \
			--sysconfdir=/etc \
			--mandir=/usr/share/man \
			--with-system-svrcore \
			--with-system-nss \
			--with-system-nspr \
			--with-pthreads \
			--enable-ipv6 \
			--with-sasl \
			$(USE_64)

DEBIAN_SO :=.0d


# These variables are used only by get-orig-source, which will normally only
# be run by maintainers.
VERSION = 6.0.7
URL     = http://ftp.mozilla.org/pub/mozilla.org/directory/c-sdk/releases/v$(VERSION)/src/
# Download the upstream source and make changes as required for DFSG reasons.
# Assumes wget is available, as this is generally only used by the package
# maintainers.
get-orig-source:
	@if [ ! -f "debian/rules" ] ; then \
            echo 'Run this from the top directory of the Debian source' >&2; \
            exit 1; \
        fi
	wget $(URL)/mozldap-$(VERSION).tar.gz
	tar xzf mozldap-$(VERSION).tar.gz
	rm -r mozldap-$(VERSION)/c-sdk/ldap/docs/
	rm -r mozldap-$(VERSION)/c-sdk/ldap/examples/macintosh
	rm -r mozldap-$(VERSION)/c-sdk/ldap/examples/windows/winldap/res
	mv mozldap-$(VERSION) mozilla-ldap-sdk-$(VERSION)
	tar cf mozilla-ldap-sdk_$(VERSION)+dfsg.orig.tar mozilla-ldap-sdk-$(VERSION)
	rm -r mozilla-ldap-sdk-$(VERSION) mozldap-$(VERSION).tar.gz
	gzip -9 mozilla-ldap-sdk_$(VERSION)+dfsg.orig.tar


configure: configure-stamp
configure-stamp: $(QUILT_STAMPFN)
	dh_testdir
	cp /usr/share/misc/config.sub /usr/share/misc/config.guess $(BASEDIR)/config/autoconf
	cd $(BASEDIR) && autoreconf -ivf
	cd $(BASEDIR) && ./configure $(CONFIGURE_SWITCHES)
	touch configure-stamp

build: build-stamp
build-stamp: configure
	dh_testdir
	# Disable softokn3 linking (see bug #473275)
	$(MAKE) -C $(BASEDIR) \
		NSS_DYNAMIC_SOFTOKN=0 \
		DEBIAN_SO_SUFFIX=$(DEBIAN_SO)
	$(MAKE) -C c-sdk/ldap/clients/tools \
		NSS_DYNAMIC_SOFTOKN=0

	touch build-stamp

clean: clean-patched unpatch
clean-patched:
	dh_testdir
	dh_testroot
	[ ! -f $(BASEDIR)/Makefile ] || $(MAKE) -C $(BASEDIR) distclean
	rm -rf $(BASEDIR)/config/now
	rm -rf $(BASEDIR)/config/nsinstall
	#rm -f $(BASEDIR)/ldap/clients/tools/Makefile $(BASEDIR)/ldap/libraries/libutil/Makefile $(BASEDIR)/config/autoconf.mk
	rm -f $(BASEDIR)/ldap/libraries/libutil/Makefile $(BASEDIR)/config/autoconf.mk
	find . -name "*.so.*" -type f -exec rm "{}" \;
	find . -name "*.so" -type f -exec rm "{}" \;
	rm -rf config config.cache config.log config.status Makefile cscope.out
	rm -f $(BASEDIR)/config/autoconf/config.{guess,sub}
	rm -rf $(DISTDIR)
	rm -f patches
	dh_clean build-stamp install-stamp configure-stamp

install: install-stamp
install-stamp:
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs

	mkdir -p $(CURDIR)/debian/tmp/usr/lib/
	# Copy the binary libraries we want
	-for file in libssldap$(SO_SUFFIX).so$(DEBIAN_SO) libprldap$(SO_SUFFIX).so$(DEBIAN_SO) libldap$(SO_SUFFIX).so$(DEBIAN_SO) libldif$(SO_SUFFIX).so$(DEBIAN_SO); \
		do install -m 755 $(DISTDIR)/lib/$$file $(CURDIR)/debian/tmp/usr/lib/; done

	mkdir -p $(CURDIR)/debian/tmp/usr/lib/mozldap/
	# Copy the utilities we want
	-for file in ldapcompare ldapdelete ldapmodify ldapmodrdn ldappasswd ldapsearch; \
		do install -m 755 $(DISTDIR)/bin/$$file $(CURDIR)/debian/tmp/usr/lib/mozldap; done

	mkdir -p $(CURDIR)/debian/tmp/usr/include/mozldap
	# Copy the include files
	-for file in $(DISTDIR)/public/ldap/*.h; \
		do echo $$file; install -m 644 $$file $(CURDIR)/debian/tmp/usr/include/mozldap; done

	mkdir -p $(CURDIR)/debian/tmp/usr/share/doc/libmozldap-dev/examples
	# Copy the examples
	-cp -r $(CURDIR)/c-sdk/ldap/examples/*.[ch] $(CURDIR)/c-sdk/ldap/examples/*.conf $(CURDIR)/debian/tmp/usr/share/doc/libmozldap-dev/examples

	install -m644 $(CURDIR)/debian/libmozldap-0d.lintian-overrides $(CURDIR)/debian/libmozldap-0d/usr/share/lintian/overrides/libmozldap-0d
	install -m 644 -t $(CURDIR)/debian/libmozldap-dev/usr/lib/pkgconfig/ \
		$(CURDIR)/debian/mozldap.pc

	install -m 644 -t debian/libmozldap-0d/usr/lib \
		$(CURDIR)/debian/tmp/usr/lib/*.so$(DEBIAN_SO)

	install -m 644 -t debian/libmozldap-dev/usr/include/mozldap \
		$(CURDIR)/debian/tmp/usr/include/mozldap/*
	cp -r $(CURDIR)/debian/tmp/usr/share/doc/libmozldap-dev/examples/* $(CURDIR)/debian/libmozldap-dev/usr/share/doc/libmozldap-dev/examples

	install -m 755 -t debian/mozldap-tools/usr/lib/mozldap/ \
		$(CURDIR)/debian/tmp/usr/lib/mozldap/*

	touch install-stamp

binary-indep:

binary-arch: install-stamp
	dh_testdir
	dh_testroot
	dh_installchangelogs -a
	dh_installdocs -a
	dh_link -a
	dh_strip -a --dbg-package=libmozldap-0d-dbg
	dh_compress -a
	dh_fixperms -a
	dh_makeshlibs -a -V 'libmozldap-0d (>= 0.6.5)'
	dh_installdeb -a
	dh_shlibdeps -a
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

binary: binary-arch

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