#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
#
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.
#
# Modified to make a template file for a multi-binary package with separated
# build-arch and build-indep targets  by Bill Allombert 2001

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

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

DEB_HOST_MULTIARCH  ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)

CFLAGS += -Wall -g -D_FILE_OFFSET_BITS=64

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

# m-privacy
export VERBOSE = 1
export CFLAGS += -march=x86-64 -mtune=generic -flto=16 -ffat-lto-objects
export CXXFLAGS += -march=x86-64 -mtune=generic -flto=16 -ffat-lto-objects
export LDFLAGS += -march=x86-64 -mtune=generic -flto=16 -ffat-lto-objects

#Architecture
build: build-arch build-indep

build-arch: build-arch-stamp
build-arch-stamp:
#	ln -sf gcc-9 /usr/bin/gcc
	$(MAKE) VERBOSE=1 PREFIX=/usr DIR_PAM=/lib/$(DEB_HOST_MULTIARCH)/security DIR_LIBS=/lib/$(DEB_HOST_MULTIARCH) LIBDIR=/lib/$(DEB_HOST_MULTIARCH) libs pam tools nss
	touch build-arch-stamp

build-indep: build-indep-stamp
build-indep-stamp:

	# Add here commands to compile the indep part of the package.
	#$(MAKE) doc
	touch build-indep-stamp

clean:
	dh_testdir
	dh_testroot
	rm -f build-arch-stamp build-indep-stamp

	# Add here commands to clean up after the build process.
	$(MAKE) distclean

	dh_clean

install: install-indep install-arch
install-indep:
	dh_testdir
	dh_testroot
	dh_clean -k -i
	dh_installdirs -i

	# Add here commands to install the indep part of the package into
	# debian/<package>-doc.
	#INSTALLDOC#

	dh_install -i

install-arch:
	dh_testdir
	dh_testroot
	dh_clean -k -s
	dh_installdirs -s

	$(MAKE) headers-install libs-install pam-install tools-install nss-install \
		PREFIX=/usr DESTDIR=$(CURDIR)/debian/tmp DIR_PAM=/lib/$(DEB_HOST_MULTIARCH)/security DIR_LIBS=/lib/$(DEB_HOST_MULTIARCH) LIBDIR=/lib/$(DEB_HOST_MULTIARCH)

	# Installing rsbac.conf
	mkdir -p $(CURDIR)/debian/tmp/etc
	install -m 644 debian/rsbac.conf $(CURDIR)/debian/tmp/etc
	# Move critical libraries to /lib (and link from /usr/lib for compiling)
#	mv $(CURDIR)/debian/tmp/usr/lib/librsbac*.so* $(CURDIR)/debian/tmp/lib
#	mv $(CURDIR)/debian/tmp/usr/lib/libnss_rsbac*.so* $(CURDIR)/debian/tmp/lib
	mv $(CURDIR)/debian/tmp/usr/bin/user_aci.sh $(CURDIR)/debian/tmp/usr/bin/user_aci
#	ln -s /lib/librsbac.so $(CURDIR)/debian/tmp/usr/lib/librsbac.so
#	ln -s /lib/libnss_rsbac.so $(CURDIR)/debian/tmp/usr/lib/libnss_rsbac.so

	# m-privacy
	ln -s pam_rsbac.so $(CURDIR)/debian/tmp/lib/$(DEB_HOST_MULTIARCH)/security/pam_rsbac_de.so
	ln -s pam_rsbac_oldpw.so $(CURDIR)/debian/tmp/lib/$(DEB_HOST_MULTIARCH)/security/pam_rsbac_oldpw_de.so
	rm -f $(CURDIR)/debian/tmp/usr/bin/backup_all \
		$(CURDIR)/debian/tmp/usr/bin/*acl* \
		$(CURDIR)/debian/tmp/usr/bin/mac_* \
		$(CURDIR)/debian/tmp/usr/bin/user_aci

	dh_install --sourcedir=debian/tmp


# Must not depend on anything. This is to be called by
# binary-arch/binary-indep
# in another 'make' thread.
binary-common:
	dh_testdir
	dh_testroot
	dh_installchangelogs main/tools/Changes
	dh_installdocs
	dh_installexamples
	dh_installmenu
	dh_installman
	dh_link
	dh_strip
	mp_rsbac
	dh_compress
	dh_fixperms
	dh_makeshlibs
	dh_installdeb
	dh_shlibdeps -L libnss-rsbac2 -L librsbac1 -l debian/librsbac1/lib/:debian/libnss-rsbac2/lib
	dh_gencontrol
	dh_md5sums
	dh_builddeb -- -Zxz

# Build architecture independant packages using the common target.
binary-indep: build-indep install-indep
	$(MAKE) -f debian/rules DH_OPTIONS=-i binary-common

# Build architecture dependant packages using the common target.
binary-arch: build-arch install-arch
	$(MAKE) -f debian/rules DH_OPTIONS=-a binary-common

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