#!/usr/bin/make -f include /usr/share/dpkg/pkg-info.mk export DEB_BUILD_MAINT_OPTIONS=hardening=+all export DEB_PKG_VERSION = $(DEB_VERSION) DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) ifneq (,$(wildcard src/Makefile.am)) DEB_PKG_LT_VERSION = $(shell sed -n -e '/^LIBTACHYON_LT_VERSION/s/LIBTACHYON_LT_VERSION[\t ]*=[\t ]*\([0-9]*:[0-9]*:[0-9]*\)[\t ]*$$/\1/p' src/Makefile.am) else DEB_PKG_LT_VERSION = 0 endif DEB_VIRT_LIBTACHYON_LISTOF_VARIANT = serial mt-openmp mt-thr openmpi-openmp openmpi-thr openmpi mpich-openmp mpich-thr mpich DEB_VIRT_LIBTACHYON_VARIANT_LISTOF_DHFILE = .symbols .install -dev.install DEB_VIRT_LIBTACHYON_FLAVOUR_LISTOF_DHFILE = \ $(DEB_VIRT_LIBTACHYON_VARIANT_LISTOF_DHFILE) .lintian-overrides .postinst .prerm -dev.postinst -dev.prerm -dev.maintscript DEB_VIRT_TACHYON_LISTOF_VARIANT = nox ogl DEB_VIRT_TACHYON_LISTOF_DHFILE = .install .manpages .postinst .prerm # deduced variables DEB_PKG_LT_CURRENT := $(word 1, $(subst :, $(SPACE), $(DEB_PKG_LT_VERSION))) DEB_PKG_LT_REVISION := $(word 2, $(subst :, $(SPACE), $(DEB_PKG_LT_VERSION))) DEB_PKG_LT_AGE := $(word 3, $(subst :, $(SPACE), $(DEB_PKG_LT_VERSION))) DEB_VIRT_LIBTACHYON_LISTOF_FLAVOUR = \ $(sort $(foreach var, $(DEB_VIRT_LIBTACHYON_LISTOF_VARIANT), $(firstword $(subst -, $(SPACE), $(var))))) # ifneq (,$(wildcard /usr/share/mpi-default-dev/debian_defaults)) include /usr/share/mpi-default-dev/debian_defaults DEB_ARCH_DEFAULT_MPI_IMPL = $(ARCH_DEFAULT_MPI_IMPL) DEB_ARCH_REVLISTOF_OPENMPI ?= $(strip $(OPENMPI_AVAILABLE_ARCHITECTURES)) DEB_ARCH_REVLISTOF_MPICH ?= $(strip $(MPICH_AVAILABLE_ARCHITECTURES)) else DEB_ARCH_DEFAULT_MPI_IMPL = mpich DEB_ARCH_REVLISTOF_OPENMPI ?= any DEB_ARCH_REVLISTOF_MPICH ?= any endif export ACLOCAL_PATH=/usr/share/gnulib/m4 ## inspired from mpfr material ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) CFLAGS += -O0 else ifeq ($(DEB_HOST_ARCH),alpha) CFLAGS += -mieee else ifeq ($(DEB_HOST_ARCH),sha4) CFLAGS += -mieee else CFLAGS := $(subst -O2,-O3,$(CFLAGS)) endif CC_mt = gcc CC_openmpi = mpicc.openmpi CC_mpich = mpicc.mpich default: @uscan --no-conf --dehs --report || true %: dh $@ --with autoreconf override_dh_auto_configure: $(foreach lf, $(DEB_VIRT_LIBTACHYON_LISTOF_FLAVOUR), \ dh_auto_configure -B _build/$(lf) -- --srcdir=../.. --with-libflavour=$(lf) CFLAGS="$(CFLAGS)" CC=$(CC_$(lf)) $(NEWLINE)\ ) override_dh_auto_build-arch: $(foreach lf, $(DEB_VIRT_LIBTACHYON_LISTOF_FLAVOUR), dh_auto_build -a -B _build/$(lf) $(NEWLINE)) override_dh_auto_build-indep: $(MAKE) -C docs all override_dh_auto_test-indep: true override_dh_prep-arch: $(foreach lf, $(DEB_VIRT_LIBTACHYON_LISTOF_FLAVOUR), \ $(foreach dhf, $(DEB_VIRT_LIBTACHYON_FLAVOUR_LISTOF_DHFILE), \ sed \ -e "s|@MULTIARCH@|$(DEB_HOST_MULTIARCH)|g" \ -e "s|@LT_CURRENT@|$(DEB_PKG_LT_CURRENT)|g;s|@LT_REVISION@|$(DEB_PKG_LT_REVISION)|g;s|@LT_AGE@|$(DEB_PKG_LT_AGE)|g" \ -e "s|@LIBFLAVOUR@|$(lf)|g" \ -e "s|@LISTOF_LIBVARIANT@|$(filter $(lf)%, $(DEB_VIRT_LIBTACHYON_LISTOF_VARIANT))|g" \ -e "s|@LISTOF_LIBVARIANTSONAME@|$(addsuffix $(DEB_PKG_LT_CURRENT), $(addprefix libtachyon-, $(filter $(lf)%, $(DEB_VIRT_LIBTACHYON_LISTOF_VARIANT))))|g" \ -e "/##CaseTableOfLibraryPriorities##/r debian/templates/libtachyon-LIBFLAVOUR-casetableof_priority.rin" \ -e "/##CaseTableOfLibraryPriorities##/d" \ debian/templates/libtachyon-LIBFLAVOUR$(dhf).in > debian/libtachyon-$(lf)-$(DEB_PKG_LT_CURRENT)$(dhf) $(NEWLINE)\ ) \ ) $(foreach lf, $(DEB_VIRT_LIBTACHYON_LISTOF_FLAVOUR), \ $(foreach lv, $(filter $(lf)%, $(DEB_VIRT_LIBTACHYON_LISTOF_VARIANT)), \ $(foreach dhf, $(DEB_VIRT_LIBTACHYON_VARIANT_LISTOF_DHFILE), \ sed \ -e "s|@MULTIARCH@|$(DEB_HOST_MULTIARCH)|g" \ -e "s|@LT_CURRENT@|$(DEB_PKG_LT_CURRENT)|g;s|@LT_REVISION@|$(DEB_PKG_LT_REVISION)|g;s|@LT_AGE@|$(DEB_PKG_LT_AGE)|g" \ -e "s|@LIBFLAVOUR@|$(lf)|g" \ -e "s|@LIBVARIANT@|$(lv)|g" \ debian/templates/libtachyon-LIBVARIANT$(dhf).in >> debian/libtachyon-$(lf)-$(DEB_PKG_LT_CURRENT)$(dhf) $(NEWLINE)\ ) \ ) \ ) $(foreach vt, $(DEB_VIRT_TACHYON_LISTOF_VARIANT), \ $(foreach dhf, $(DEB_VIRT_TACHYON_LISTOF_DHFILE), \ sed -e "s|@VARIANT@|$(vt)|g" \ debian/templates/tachyon-bin-VARIANT$(dhf).in > debian/tachyon-bin-$(vt)$(dhf) $(NEWLINE)\ ) \ ) dh_prep -a DEB_ADHOC_SCENES_ACTION_SH := debian/adhoc/scenes/action.sh override_dh_prep-indep: sed -e "s+@DEB_VIRT_TACHYON_LISTOF_VARIANT@+$(subst $(SPACE),\|,$(strip $(DEB_VIRT_TACHYON_LISTOF_VARIANT)))+" \ $(DEB_ADHOC_SCENES_ACTION_SH).in > $(DEB_ADHOC_SCENES_ACTION_SH) chmod --reference $(DEB_ADHOC_SCENES_ACTION_SH).in $(DEB_ADHOC_SCENES_ACTION_SH) dh_prep -i override_dh_auto_install-arch: $(foreach lf, $(DEB_VIRT_LIBTACHYON_LISTOF_FLAVOUR), dh_auto_install -a -B _build/$(lf) $(NEWLINE)) DEB_AUTO_INSTALL_MAKEFLAGS = TOPSRCDIR=$(CURDIR) DESTDIR=$(CURDIR)/debian/tmp override_dh_auto_install-indep: $(MAKE) -C _build/$(lastword $(DEB_VIRT_LIBTACHYON_LISTOF_FLAVOUR))/src install-data-am $(DEB_AUTO_INSTALL_MAKEFLAGS) $(MAKE) -C docs install $(DEB_AUTO_INSTALL_MAKEFLAGS) $(MAKE) -C pkgextra/volpack/data install $(DEB_AUTO_INSTALL_MAKEFLAGS) $(MAKE) -C pkgextra/virtual-reality/graphics install $(DEB_AUTO_INSTALL_MAKEFLAGS) override_dh_compress-indep: dh_compress -X.pdf -Xexamples override_dh_shlibdeps-arch: dh_shlibdeps -a -l$(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH) -- --ignore-missing-info DEB_VARNAME_LIBTACHYON_MPI_DEFAULT_DEV := default:libtachyon-mpi-dev override_dh_gencontrol: dh_gencontrol -- -V$(DEB_VARNAME_LIBTACHYON_MPI_DEFAULT_DEV)=libtachyon-$(DEB_ARCH_DEFAULT_MPI_IMPL)-$(DEB_PKG_LT_CURRENT)-dev override_dh_auto_clean-arch: dh_auto_clean -a rm -rf _build rm -f config_tachyon.h.in rm -f $(foreach vt, $(DEB_VIRT_TACHYON_LISTOF_VARIANT), $(foreach dhf, $(DEB_VIRT_TACHYON_LISTOF_DHFILE), debian/tachyon-bin-$(vt)$(dhf) )) rm -f $(foreach lf, $(DEB_VIRT_LIBTACHYON_LISTOF_FLAVOUR), $(foreach dhf, $(DEB_VIRT_LIBTACHYON_FLAVOUR_LISTOF_DHFILE), debian/libtachyon-$(lf)-$(DEB_PKG_LT_CURRENT)$(dhf) )) override_dh_auto_clean-indep: dh_auto_clean -i rm -f $(DEB_ADHOC_SCENES_ACTION_SH) $(MAKE) -C docs clean $(MAKE) -C docs distclean || true $(MAKE) -C pkgextra/volpack/data distclean || true $(MAKE) -C pkgextra/virtual-reality/graphics distclean || true update-debian-control: debian/templates/control.in debian/rules debian/templates/control-description-mainpart.rin sed \ -e "s|@LT_CURRENT@|$(DEB_PKG_LT_CURRENT)|g" \ -e "s|@LIBTACHYON_MPI_DEFAULT_DEV@|$(DEB_VARNAME_LIBTACHYON_MPI_DEFAULT_DEV)|g" \ -e "s|@ARCH_REVLISTOF_OPENMPI@|$(DEB_ARCH_REVLISTOF_OPENMPI)|g" \ -e "s|@ARCH_REVLISTOF_MPICH@|$(DEB_ARCH_REVLISTOF_MPICH)|g" \ -e "s|@SYNOPSIS_LIBRARY@|Parallel/Multiprocessor Ray Tracing Library|g" \ -e "s|@SYNOPSIS_TOOLS@|Parallel/Multiprocessor Standalone Ray Tracer|g" \ -e "s|@SYNOPSIS_MANUAL@|Parallel/Multiprocessor Ray Tracing System|g" \ -e "/##DescriptionMainPart##/r $(lastword $^)" \ -e "/##DescriptionMainPart##/d" \ $< > debian/control define NEWLINE endef EMPTY := SPACE := $(EMPTY) $(EMPTY)