#!/usr/bin/make -f

# workaround for bug #701244 - aspectc++ supports __int128 by default
# only when woven on 64bits, which the upstream provided sources don't.
export AC_OPTFLAGS = --gnu-int128

DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
ifneq (,$(filter $(DEB_BUILD_ARCH),armel armhf))
	export DEB_CFLAGS_MAINT_STRIP = -O2
	export DEB_CFLAGS_MAINT_APPEND = -O1
endif

ifneq (,$(filter $(DEB_BUILD_ARCH),mips mipsel))
	export DEB_CFLAGS_MAINT_APPEND += -fPIC
endif

export DEB_BUILD_MAINT_OPTIONS = hardening=+all

%:
	dh $@

override_dh_auto_build:
	cp -v AspectC++/config/clang-21.1.6.mk AspectC++/config/clang-$(shell llvm-config-21 --version).mk
	$(MAKE) -C AspectC++/ SHARED=1 all FRONTEND=Clang LLVMCONF=/usr/bin/llvm-config-21
	$(MAKE) -C Ag++/      SHARED=1 all
	docbook-to-man debian/ac++.1.sgml > ac++.1
	docbook-to-man debian/ag++.1.sgml > ag++.1

override_dh_auto_test:
	-PATH=$(CURDIR)/AspectC++/bin/linux-release:$(PATH) \
	$(MAKE) -C AspectC++ FRONTEND=Clang LLVMCONF=/usr/bin/llvm-config-21 SHARED=1 AC="$(CURDIR)/AspectC++/bin/linux-release/ac++" REGRESSIONTEST=1 examples test
	-PATH=$(CURDIR)/AspectC++/bin/linux-release:$(PATH) \
	$(MAKE) -C Ag++/ SHARED=1 test

override_dh_auto_clean:
	$(MAKE) -s -C AspectC++ cleanall FRONTEND=Clang LLVMCONF=/usr/bin/llvm-config-21
	$(MAKE) -s -C Ag++ clean
	rm -rf AspectC++/tests/RepoVersion/repo.use
	rm -rf Ag++/DepFiles Ag++/ObjFiles Ag++/bin Ag++/tests/test_11.config
	rm -rf AspectC++/DepFiles AspectC++/ObjFiles AspectC++/bin
	rm -rf AspectC++/tests/*/feature.out
	rm -rf AspectC++/tests/RepoVersion/feature.fil
	rm -f ac++.1 ag++.1
	rm -rf Ag++/tests/src/obj
	rm -rf Ag++/tests/src/test
	rm -fv AspectC++/config/clang-$(shell llvm-config-21 --version).mk

execute_after_dh_installexamples:
	find debian/aspectc++ -name Makefile -exec rm -v {} +
