#!/usr/bin/make -f
# -*- makefile -*-

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

# compile with libtbb-dev only with linux 64bit intel/ppc architectures,
# fallback in pentium4 processors is not implemented, see also note of
# libtbb-dev:
#
# Note: if you are a user of the i386 architecture, i.e., 32-bit Intel
# or compatible hardware, this package only supports Pentium4-compatible
# and higher processors.
#
arch = $(shell dpkg-architecture -qDEB_BUILD_ARCH | egrep -x "(amd64|ia64|ppc64|ppc64el)")
os = $(shell dpkg-architecture -qDEB_BUILD_ARCH_OS | grep linux)

# use hardening config flags for compiling clasp
CONFIG=hardening
CONFIGPARMS = --prefix=/usr
TOPBUILDDIR = build/$(CONFIG)
ifeq ($(and $(if $(os),good), $(if $(arch),good)), good)
	TBBINCLUDEDIR=$(shell pkg-config --variable=includedir tbb)
	TBBLIBDIR=$(shell pkg-config --variable=libdir tbb)
	CONFIGPARMS += --with-mt TBB_INCLUDE=$(TBBINCLUDEDIR) TBB_LIB=$(TBBLIBDIR)
	TOPBUILDDIR = build/$(CONFIG)_mt
endif

#
# export CXXFLAGS and LDFLAGS for configure.sh
#
# add -O3 and NDEBUG and enable all hardening flags
#
DEB_CXXFLAGS_MAINT_APPEND = -O3 -DNDEBUG
export DEB_BUILD_MAINT_OPTIONS = hardening=+all

DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk

# inject CPPFLAGS to CXXFLAGS
CXXFLAGS += $(CPPFLAGS)

%:
	dh $@

# call ./configure.sh $(CONFIGPARMS)
override_dh_auto_configure:
	./configure.sh --config=$(CONFIG) $(CONFIGPARMS)

# build in $(TOPBUILDDIR)
override_dh_auto_build:
	dh_auto_build --builddirectory=$(TOPBUILDDIR)

# install clasp binary built in $(TOPBUILDDIR)
override_dh_auto_install:
	dh_auto_install --builddirectory=$(TOPBUILDDIR) -- INSTALL_DIR=$(CURDIR)/debian/clasp/usr/bin

# remove the whole build dir
override_dh_auto_clean:
	rm -rf ./build

# install CHANGES as changelog
override_dh_installchangelogs:
	dh_installchangelogs CHANGES
