Name libfftw3-bin
Description Library for computing Fast Fourier Transforms - Tools
Version 3.3.10-1ubuntu3
Package Base fftw3
Homepage https://fftw.org
Maintainers ['Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>']
Contributors ['Julian Taylor <jtaylor.debian@googlemail.com>', 'Paul Brossier <piem@debian.org>']
Distro-repo https://git.launchpad.net/ubuntu/+source/fftw3/tree/?h=ubuntu/noble
Sources ['https://git.launchpad.net/ubuntu/+source/fftw3/plain/debian/patches/../?h=ubuntu/noble', 'https://git.launchpad.net/ubuntu/+source/fftw3/plain/debian/patches/fix-runtime-neon-detection.patch?h=ubuntu/noble', 'https://git.launchpad.net/ubuntu/+source/fftw3/plain/debian/patches/reproducible_build.patch?h=ubuntu/noble', 'https://git.launchpad.net/ubuntu/+source/fftw3/plain/debian/patches/series?h=ubuntu/noble', 'https://git.launchpad.net/ubuntu/+source/libfftw3-bin/plain/debian/watch?h=ubuntu/noble']
Dependencies ['libc6', 'libfftw3-double3', 'libfftw3-long3', 'libfftw3-quad3', 'libfftw3-single3']
Optional-Dependencies []
Build-Dependencies ['chrpath', 'debhelper-compat', 'gfortran', 'mpi-default-dev', 'texinfo']
Provides []
Builddate
Architecture amd64
Distro-Version noble
Licenses []
Hash eb44fb22bda75685134b60223509a49378db9b43b67ce25bd1759ba282550b86
#!/usr/bin/make -f

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

export DEB_BUILD_MAINT_OPTIONS=hardening=+all

ifeq (libfftw3-quad3,$(findstring libfftw3-quad3, $(shell dh_listpackages)))
QUAD := quad
else
QUAD :=
endif
ifeq (libfftw3-long3,$(findstring libfftw3-long3, $(shell dh_listpackages)))
LONG := long
else
LONG :=
endif
PREC := single double $(LONG) $(QUAD)

# old configure stuff needs a --target
ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
  archconfflags := $(archconfflags) --build $(DEB_HOST_GNU_TYPE)
else
  archconfflags := $(archconfflags) --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
endif

#--enable-k7             enable AMD K7 optimizations, including 3dNow! (single precision)
#--enable-sse            enable SSE optimizations (single precision only)
#--enable-sse2           enable SSE2 optimizations (double precision only)
#--enable-altivec        enable Altivec optimizations (single precision only)

ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
	NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
	MAKEFLAGS += -j$(NUMJOBS)
endif

ifeq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
ifneq (,$(filter $(DEB_HOST_ARCH), i386 amd64 x32))
	archconfflags_single := --enable-sse --enable-avx
	archconfflags_double := --enable-sse2 --enable-avx
endif
# no avx support in debian yet see #674760
ifneq (,$(filter $(DEB_HOST_ARCH), kfreebsd-i386 kfreebsd-amd64))
	archconfflags_single := --enable-sse
	archconfflags_double := --enable-sse2
endif
ifeq ($(DEB_HOST_ARCH), powerpc)
	archconfflags_single := --enable-altivec
endif
ifneq (,$(filter $(ARCHITECTURE), armhf))
	archconfflags_single := --with-slow-timer
endif
ifneq (,$(filter $(DEB_HOST_ARCH), arm64))
	archconfflags_single := --enable-neon --with-slow-timer
endif
endif

ifneq (,$(findstring nog77,$(DEB_BUILD_OPTIONS)))
	archconfflags := $(archconfflags) F77="gfortran"
else
	archconfflags := $(archconfflags) F77="gfortran -ff2c"
endif

# common configure options
archconfflags := $(archconfflags) --prefix=/usr --enable-shared --enable-threads --enable-openmp --enable-mpi --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) MPILIBS="$(shell mpicc --showme:link)"

%:
	dh $@

override_dh_auto_build-arch:
	# single precision
	./configure --enable-single $(archconfflags) $(archconfflags_single)
	$(MAKE)
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	( cd tests ; $(MAKE) smallcheck )
endif
	$(MAKE) install DESTDIR=`pwd`/debian/tmp-single
	#
	# double precision
	./configure $(archconfflags) $(archconfflags_double)
	$(MAKE)
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	( cd tests ; $(MAKE) smallcheck )
endif
	$(MAKE) install DESTDIR=`pwd`/debian/tmp-double
	# long double precision
ifeq (long,$(LONG))
	./configure --enable-long-double $(archconfflags)
	$(MAKE)
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	( cd tests ; $(MAKE) smallcheck )
endif
	$(MAKE) install DESTDIR=`pwd`/debian/tmp-long;
endif
ifeq (quad,$(QUAD))
	# quad precision
	./configure $(archconfflags) --enable-quad-precision --disable-mpi
	$(MAKE)
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	( cd tests ; $(MAKE) smallcheck )
endif
	$(MAKE) install DESTDIR=`pwd`/debian/tmp-quad
endif

override_dh_auto_build-indep:
	-(cd doc ; $(MAKE) -j1 -k clean)
	-rm -f doc/*.info* doc/rfftwnd.png doc/html/*
	[ -f doc/Makefile ] || ./configure
	cd doc/FAQ && $(MAKE) -j1 fftw-faq.html fftw-faq.ascii
	cd doc && $(MAKE) -j1 && $(MAKE) -j1 html

# Those are actually handled by override_dh_auto_build
override_dh_auto_configure:
override_dh_auto_test:
override_dh_auto_install:

override_dh_auto_clean:
	(cd doc ; [ ! -f Makefile ] || $(MAKE) -k clean)
	[ ! -f Makefile ] || $(MAKE) distclean
	-rm -f *.pc tools/*wisdom tools/*wisdom.1
	-find . -name "*.la" | xargs -r rm -f
	-rm -f test_long_long-double
	-rm -f config.cache config.status config.log
	-rm -rf debian/tmp-single debian/tmp-double debian/tmp-long debian/tmp-quad
	rm -f mpi/mpi-bench
	chmod -R g-s .

override_dh_installdocs-arch:
	dh_installdocs -A README NEWS debian/README.Debian

override_dh_installchangelogs-indep:
	dh_installchangelogs ChangeLog

override_dh_installchangelogs-arch:
	dh_installchangelogs -XChangeLog

override_dh_install-arch:
	set -e && for s in $(PREC); do \
	  dh_install -plibfftw3-bin --sourcedir=debian/tmp-$$s; \
	  dh_install -plibfftw3-$${s}3 --sourcedir=debian/tmp-$$s; \
	  dh_install -plibfftw3-dev --sourcedir=debian/tmp-$$s; \
	  if [ $$s != "quad" ]; then \
	    dh_install -plibfftw3-mpi3 --sourcedir=debian/tmp-$$s; \
	    dh_install -plibfftw3-mpi-dev --sourcedir=debian/tmp-$$s; \
	    rm debian/libfftw3-$${s}3/usr/lib/$(DEB_HOST_MULTIARCH)/libfftw3*mpi*; \
	  fi; \
	done
	rm debian/libfftw3-dev/usr/lib/$(DEB_HOST_MULTIARCH)/libfftw3*mpi* \
	   debian/libfftw3-dev/usr/include/*mpi*
	chrpath --delete debian/libfftw3-mpi3/usr/lib/$(DEB_HOST_MULTIARCH)/libfftw3*mpi*so*

	find $(CURDIR)/debian/libfftw3-dev -type d -empty -delete