1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
|
#!/usr/bin/make -f
export DH_VERBOSE=1
d := debian/debian_defaults
# default in this architecture:
MPI=$(shell readlink /etc/alternatives/mpicc | sed s/usr//g | sed s/bin//g | sed s/mpicc.//g | sed s/\\///g)
# availability of MPI implementations:
OPENMPI_AVAILABLE_ARCHITECTURES := \
alpha \
amd64 \
arm64 \
armel \
armhf \
hppa \
hurd-i386 \
i386 \
kfreebsd-amd64 \
kfreebsd-i386 \
mips \
mips64el \
mipsel \
powerpc \
powerpcspe \
ppc64 \
ppc64el \
s390x \
sh4 \
sparc64 \
x32 \
MPICH_AVAILABLE_ARCHITECTURES := \
alpha \
amd64 \
arm64 \
armel \
armhf \
hppa \
hurd-i386 \
i386 \
kfreebsd-amd64 \
kfreebsd-i386 \
m68k \
mips \
mips64el \
mipsel \
powerpc \
ppc64 \
ppc64el \
s390x \
sh4 \
sparc64 \
x32 \
# defaults
OPENMPI_ARCHITECTURES := \
alpha \
amd64 \
arm64 \
armel \
armhf \
hppa \
hurd-i386 \
i386 \
kfreebsd-amd64 \
kfreebsd-i386 \
mips \
mips64el \
mipsel \
powerpc \
powerpcspe \
ppc64 \
ppc64el \
s390x \
sparc64 \
x32 \
MPICH_ARCHITECTURES := \
m68k \
sh4 \
%:
dh $@
override_dh_auto_build:
echo "# Default MPI implementation on this architecture:" > $d
echo "ARCH_DEFAULT_MPI_IMPL=$(MPI)" >> $d
echo "# Architectures where OpenMPI is available:" >> $d
echo "OPENMPI_AVAILABLE_ARCHITECTURES=$(strip $(sort $(OPENMPI_AVAILABLE_ARCHITECTURES)))" >> $d
echo "# Architectures where MPICH is available:" >> $d
echo "MPICH_AVAILABLE_ARCHITECTURES=$(strip $(sort $(MPICH_AVAILABLE_ARCHITECTURES)))" >> $d
echo "# Architectures defaulting to OpenMPI:" >> $d
echo "OPENMPI_ARCHITECTURES=$(strip $(sort $(OPENMPI_ARCHITECTURES)))" >> $d
echo "# Architectures defaulting to MPICH:" >> $d
echo "MPICH_ARCHITECTURES=$(strip $(sort $(MPICH_ARCHITECTURES)))" >> $d
override_dh_gencontrol:
rm -f debian/*.substvars
if [ "$(MPI)" = "openmpi" ]; then \
echo "mpi=openmpi-bin" > debian/mpi-default-bin.substvars; \
echo "mpi-dev=libopenmpi-dev" > debian/mpi-default-dev.substvars; \
elif [ "$(MPI)" = "mpich" ]; then \
echo "mpi=mpich" > debian/mpi-default-bin.substvars; \
echo "mpi-dev=libmpich-dev" > debian/mpi-default-dev.substvars; \
else \
echo "Unknown MPI implementation, stopping"; \
exit 1; \
fi
dh_gencontrol
override_dh_install:
dh_install -pmpi-default-dev $d usr/share/mpi-default-dev/
override_dh_clean:
dh_clean
@echo "Generating the control file..."
echo "# DON'T MANUALLY MODIFY!" > debian/control.tmp
echo "# EDIT debian/control.in INSTEAD!" >> debian/control.tmp
echo "#" >> debian/control.tmp
cat debian/control.in >> debian/control.tmp
sed -i "s,%SUPPORTED_ARCHITECTURES%,$(strip $(sort $(OPENMPI_ARCHITECTURES) $(MPICH_ARCHITECTURES))),g" debian/control.tmp
sed -i "s,%OPENMPI_ARCHITECTURES%,$(strip $(sort $(OPENMPI_ARCHITECTURES))),g" debian/control.tmp
sed -i "s,%MPICH_ARCHITECTURES%,$(strip $(sort $(MPICH_ARCHITECTURES))),g" debian/control.tmp
set -e ; if ! diff -q debian/control debian/control.tmp > /dev/null; then \
echo ;\
echo "The generated control file differs from the actual one." ;\
echo "A sourceful upload of this package is needed." ;\
echo ;\
echo "Differences:" ;\
diff -u debian/control debian/control.tmp ;\
else \
rm debian/control.tmp ;\
fi
|