#!/usr/bin/make -f

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

ifneq (,$(filter 64 alpha amd64 ia64 s390x,$(shell dpkg-architecture -qDEB_BUILD_ARCH_BITS 2> /dev/null || dpkg-architecture -qDEB_BUILD_ARCH)))
USE_64 := USE_64=1
else
USE_64 :=
endif

CFLAGS := -Wall -pipe

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

CFLAGS += -g

DISTDIR := $(CURDIR)/mozilla/dist

override_dh_auto_build:
	$(MAKE) -C mozilla/security/nss \
		build_coreconf \
		build_dbm \
		all \
		MOZILLA_CLIENT=1 \
		NSPR_INCLUDE_DIR=/usr/include/nspr \
		NSPR_LIB_DIR=/usr/lib \
		SOURCE_MD_DIR=$(DISTDIR) \
		DIST=$(DISTDIR) \
		BUILD_OPT=1 \
		NS_USE_GCC=1 \
		OPTIMIZER="$(CFLAGS)" \
		NSS_USE_SYSTEM_SQLITE=1 \
		NSS_ENABLE_ECC=1 \
		$(USE_64)

override_dh_auto_clean:
	-$(MAKE) -C mozilla/security/nss \
		clobber \
		clobber_dbm \
		clobber_coreconf \
		SOURCE_MD_DIR=$(DISTDIR) \
		DIST=$(DISTDIR) \
		BUILD_OPT=1 \
		$(USE_64)

	rm -rf $(DISTDIR)

override_dh_auto_install:
	install -m 644 -t debian/libnss3-1d/usr/lib \
		$(DISTDIR)/lib/*.so.1d
	install -m 644 -t debian/libnss3-1d/usr/lib/nss \
		$(DISTDIR)/lib/libfreebl3.so \
		$(DISTDIR)/lib/libsoftokn3.so \
		$(DISTDIR)/lib/libnssdbm3.so \
		$(DISTDIR)/lib/libnssckbi.so

	install -m 644 -t debian/libnss3-dev/usr/include/nss \
		$(DISTDIR)/public/nss/*
	install -m 644 -t debian/libnss3-dev/usr/lib \
		$(DISTDIR)/lib/libcrmf.a
	sed 's/@VERSION@/$(UPSTREAM_VERSION)/' debian/nss.pc.in > debian/libnss3-dev/usr/lib/pkgconfig/nss.pc
	sed 's/@MOD_MAJOR_VERSION@/$(MOD_MAJOR_VERSION)/ ; s/@MOD_MINOR_VERSION@/$(MOD_MINOR_VERSION)/ ; s/@MOD_PATCH_VERSION@/$(MOD_PATCH_VERSION)/' debian/nss-config.in > debian/libnss3-dev/usr/bin/nss-config
	chmod 755 debian/libnss3-dev/usr/bin/nss-config

	install -m 755 -t debian/libnss3-tools/usr/bin \
		$(foreach bin,certutil cmsutil crlutil modutil pk12util shlibsign signtool signver ssltap pwdecrypt, \
		$(DISTDIR)/bin/$(bin))

override_dh_strip:
	dh_strip -a --dbg-package=libnss3-1d-dbg
	$(foreach lib,libsoftokn3.so libfreebl3.so libnssdbm3.so, \
		LD_LIBRARY_PATH=debian/libnss3-1d/usr/lib:debian/libnss3-1d/usr/lib/nss \
		debian/libnss3-tools/usr/bin/shlibsign -v -i debian/libnss3-1d/usr/lib/nss/$(lib);)
	# Check FIPS mode correctly works
	mkdir debian/tmp
	LD_LIBRARY_PATH=debian/libnss3-1d/usr/lib:debian/libnss3-1d/usr/lib/nss debian/libnss3-tools/usr/bin/modutil -create -dbdir debian/tmp < /dev/null
	LD_LIBRARY_PATH=debian/libnss3-1d/usr/lib:debian/libnss3-1d/usr/lib/nss debian/libnss3-tools/usr/bin/modutil -fips true -dbdir debian/tmp < /dev/null

override_dh_makeshlibs:
	dh_makeshlibs -a -V 'libnss3-1d (>= 3.12.7)' -- -c4

%:
	dh $@
