#!/usr/bin/make -f

export CFLAGS = $(shell dpkg-buildflags --get CFLAGS) $(shell dpkg-buildflags --get CPPFLAGS)
export CXXFLAGS = $(CFLAGS)
export LDFLAGS = $(shell dpkg-buildflags --get LDFLAGS)

# Support for -fstack-protector in clang is broken on some architectures;
# see bug #785365.
ifneq "$(filter kfreebsd-% powerpc ppc64el,$(shell dpkg-architecture -q DEB_HOST_ARCH))" ""
clang_cflags = $(filter-out -fstack-protector%,$(CFLAGS))
else
clang_cflags = $(CFLAGS)
endif

export HOSTNAME =
export PREFIX = /usr

ifeq "$(filter i386 amd64,$(shell dpkg-architecture -q DEB_HOST_ARCH_CPU))" ""
export AFL_NOX86 = 1
endif

.PHONY: clean
clean: debian/control
	dh_clean
	$(MAKE) clean

.PHONY: build build-arch build-indep
build: build-arch
build-arch: build-stamp

build-stamp: debian/control
	$(MAKE)
	CFLAGS="$(clang_cflags)" CXXFLAGS="$(clang_cflags)" $(MAKE) -C llvm_mode
	touch $(@)

.PHONY: binary binary-arch binary-indep
binary: binary-arch
binary-arch: build-stamp
	dh_testroot
	dh_prep
	$(MAKE) install DESTDIR=debian/tmp
	dh_install --fail-missing
ifneq "$(AFL_NOX86)" ""
	cd debian/afl/usr/bin/ && rm afl-gcc afl-g++
	cd debian/afl/usr/lib/afl/ && rm as afl-as
	cd debian/afl/usr/ && rmdir lib/afl lib
	cd debian/afl-clang/usr/bin/ && rm afl-clang afl-clang++
endif
	dh_lintian
	dh_installchangelogs
	rm debian/*/usr/share/doc/*/ChangeLog
	dh_installdocs -p afl experimental/ docs/vuln_samples
	dh_installdocs -p afl-clang llvm_mode/README*
	dh_buildinfo
	dh_strip
	dh_compress -Xsupport -Xscript
	dh_fixperms
	dh_installdeb
	dh_shlibdeps
	debian/dh_clang -p afl-clang
	dh_gencontrol
	dh_md5sums
	dh_builddeb

# vim:ts=4 sw=4 noet
