#! /usr/bin/make -f # -*- makefile -*- # # debian/rules file for the Debian Linux quantlib-swig package # Copyright (C) 2001 - 2026 by Dirk Eddelbuettel export PYBUILD_VERSIONS = $(shell py3versions -sv) arch := $(shell dpkg-architecture -qDEB_BUILD_ARCH_CPU) ## edd 01 Feb 2002 allow -ffunction-sections on hppa ## edd 26 Oct 2007 turn strict aliasing warning off ## edd 01 May 2011 add -fpermissive as g++ is more of a stickler ## edd 06 May 2011 remove -fpermissive with QL 1.1 betas ## edd 09 Sep 2018 bringing over a few extra settings for hppa #compilerflags = -O2 -Wall -Wno-strict-aliasing -DBOOST_NO_AUTO_PTR ## edd 07 Aug 2019 turning optimisation off or else linking (with lto) fails ## bunk 28 Oct 2023 no longer turning optimisation off compilerflags = -g0 -Wall -Wno-strict-aliasing -DBOOST_NO_AUTO_PTR ifeq ($(cpu),hppa) compilerflags = -O0 -g0 -mlong-calls -ffunction-sections --param ggc-min-expand=20 -DBOOST_NO_AUTO_PTR endif ## edd 18 May 2002 no optimisation or debugging on baby systems ## edd 14 May 2005 don't do it on mipsel or mips either ## edd 01 Jun 2007 no longer activate this on mips/mipsel ## edd 26 Jun 2007 use cpu test, not arch test -- thanks to Riku via #430709 ## edd 26 Oct 2007 s390+powerpc also die, so add'em (and remove mips(el), see next item) ## edd 27 May 2012 added mips/mipsel/armel/armhf here too ## edd 11 Mar 2015 remove powerpc and armhf from the list as they built on Ubuntu (cf ## https://launchpad.net/ubuntu/+source/quantlib-swig/1.5-1ubuntu1) and #779720) ## also remove mips, mipsel as they are getting taken care of below ## edd 16 Nov 2025 add armhf again as it currently runs OOM during build #ifneq "$(findstring $(cpu), m68k arm armeb s390 powerpc armel armhf mips mipsel)" "" ifneq "$(findstring $(cpu), m68k arm armeb s390 armel armhf)" "" compilerflags = -O0 -g0 -DBOOST_NO_AUTO_PTR endif ## edd 26 Oct 2007 really reset mips/mips to -O2 (see #419742) ## edd 27 May 2012 move to previos section ## edd 06 Dec 2014 patch by Dejan Latinovic (see #772028) to add -mxgot ## edd 23 Jun 2016 patch by Daniel Knezevic (see #827979) to add gcc-min-expand=20 ## edd 29 Sep 2018 adding mips64el here as well as it recently timed out ## bunk 28 Oct 2023 removing mips64el here since current buildds should be fast enough ## edd 03 Jan 2025 adding mips64el again as it failed for 1.35 and 1.36 ifneq "$(findstring $(cpu), mipsel mips mips64el)" "" #compilerflags = -O2 -g0 compilerflags = -O0 -g0 -mxgot --param ggc-min-expand=20 -DBOOST_NO_AUTO_PTR endif ## edd 21 Aug 2018 i386 now seems to be hosted on amd64 ifneq "$(findstring $(arch), i386)" "" compilerflags = -O0 -g0 --param ggc-min-expand=20 -DBOOST_NO_AUTO_PTR endif ## edd 22 Aug 2018 trying to help a few other systems with their memory exhaustion ifneq "$(findstring $(cpu), hurd-i386 kfreebsd-i386 m68k powerpc x32)" "" compilerflags = -O0 -g0 --param ggc-min-expand=20 -DBOOST_NO_AUTO_PTR endif ## edd 06 Jan 2026 use DEB_CXXFLAGS_MAINT_APPEND export DEB_CXXFLAGS_MAINT_APPEND = ${compilerflags} %: dh $@ --with python3 --buildsystem=pybuild --sourcedirectory=Python override_dh_clean: rm -f build-stamp test-stamp install-stamp -test -f Makefile && $(MAKE) realclean rm -f Python/setup.cfg dh_clean override_dh_auto_build: ./autogen.sh # need to build the Makefile for R (and Ruby ?) ./configure --prefix=/usr \ --build $(arch) (cd Python && \ swig -python -c++ -outdir src/QuantLib \ -o src/QuantLib/quantlib_wrap.cpp \ ../SWIG/quantlib.i \ ) dh_auto_build execute_after_dh_auto_clean: cd Python rm -rfv .pybuild build */build src/*.egg-info */src/*.egg-info find . -name __pycache__ | rm -rfv