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
|
#!/usr/bin/make -f
include /usr/share/mpi-default-dev/debian_defaults
export DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
export DEB_BUILD_MAINT_OPTIONS=optimize=-lto
HAS_GCC_10 := $(shell if [ `mpifort -dumpversion` -ge 10 ]; then echo yes; fi )
ifeq (yes,$(HAS_GCC_10))
BUILD_FLAGS_EXTRA = OPTF_DEBIAN="-fallow-argument-mismatch"
endif
# full 64-bit all integers. We're not ready for this.
#OPTC_64BIT = -DINTSIZE64 -DPORD_INTSIZE64
#OPTF_64BIT = -fdefault-integer-8
# 64 bit in MUMPS ordering (PORD) only
OPTC_64BIT = -DPORD_INTSIZE64
OPTF_64BIT =
BUILD_FLAGS_64BIT = OPTC_64BIT="$(OPTC_64BIT)" OPTF_64BIT="$(OPTF_64BIT)"
SCOTCH64_LIBDIR=/usr/lib/$(DEB_HOST_MULTIARCH)/scotch-int64
# skip tests on these arches
ARCH_NO_TEST_LIST = sh4
empty :=
space := $(empty)$(empty)
# run tests, or not
RUNTEST=yes
ifneq (,$(findstring $(space)$(DEB_HOST_ARCH)$(space), $(space)$(ARCH_NO_TEST_LIST)$(space)))
RUNTEST=no
endif
ifeq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
RUNTEST=no
endif
# skip MPI tests on these arches
ARCH_NO_MPI_TEST_LIST = hurd-i386 m68k
# run MPI tests, or not
RUN_MPI_TEST=yes
ifneq (,$(findstring $(space)$(DEB_HOST_ARCH)$(space), $(space)$(ARCH_NO_MPI_TEST_LIST)$(space)))
RUN_MPI_TEST=no
endif
%:
dh $@
override_dh_auto_clean:
cp -f debian/Makefile.seq.inc Makefile.inc
dh_auto_clean
rm -f src/build_mumps_int_def
rm -rf lib Makefile.inc \
libmumps libmumps_seq libmumps_scotch libmumps_ptscotch \
libmumps64 libmumps64_seq libmumps64_scotch libmumps64_ptscotch
rm -f PORD/lib/libpord*.a
override_dh_auto_build-indep:
cp -f debian/Makefile.par.inc Makefile.inc
cd src; make ../include/mumps_int_def.h
override_dh_auto_build-arch:
mkdir lib
echo "Building 64-bit MUMPS using $(BUILD_FLAGS_64BIT)"
cp -f debian/Makefile.ptscotch.inc Makefile.inc
$(MAKE) MUMPS_MPI=$(ARCH_DEFAULT_MPI_IMPL) $(BUILD_FLAGS_EXTRA) $(BUILD_FLAGS_64BIT) \
ISCOTCH=-I/usr/include/scotch-int64 LSCOTCHDIR=$(SCOTCH64_LIBDIR) SCOTCH_EXTRA_FLAGS="-Wl,-rpath=$(SCOTCH64_LIBDIR)" \
PLAT="_64pord_ptscotch" all allshared
cp -a lib libmumps64_ptscotch
$(MAKE) clean
rm -f Makefile.inc
cp -f debian/Makefile.scotch.inc Makefile.inc
$(MAKE) MUMPS_MPI=$(ARCH_DEFAULT_MPI_IMPL) $(BUILD_FLAGS_EXTRA) $(BUILD_FLAGS_64BIT) \
ISCOTCH=-I/usr/include/scotch-int64 LSCOTCHDIR=$(SCOTCH64_LIBDIR) SCOTCH_EXTRA_FLAGS="-Wl,-rpath=$(SCOTCH64_LIBDIR)" \
PLAT="_64pord_scotch" all allshared
cp -a lib libmumps64_scotch
cp -af libseq/lib* libmumps64_scotch
$(MAKE) clean
rm -f Makefile.inc
cp -f debian/Makefile.seq.inc Makefile.inc
$(MAKE) MUMPS_MPI=$(ARCH_DEFAULT_MPI_IMPL) $(BUILD_FLAGS_EXTRA) $(BUILD_FLAGS_64BIT) PLAT="_64pord_seq" all allshared
cp -a lib libmumps64_seq
cp -af libseq/lib* libmumps64_seq
$(MAKE) clean
rm -f Makefile.inc
cp -f debian/Makefile.par.inc Makefile.inc
$(MAKE) MUMPS_MPI=$(ARCH_DEFAULT_MPI_IMPL) $(BUILD_FLAGS_EXTRA) $(BUILD_FLAGS_64BIT) PLAT="_64pord" all allshared
cp -a lib libmumps64
echo "Building 32-bit MUMPS"
$(MAKE) clean
rm -f Makefile.inc
cp -f debian/Makefile.ptscotch.inc Makefile.inc
$(MAKE) MUMPS_MPI=$(ARCH_DEFAULT_MPI_IMPL) $(BUILD_FLAGS_EXTRA) PLAT="_ptscotch" all allshared
cp -a lib libmumps_ptscotch
$(MAKE) clean
rm -f Makefile.inc
cp -f debian/Makefile.scotch.inc Makefile.inc
$(MAKE) MUMPS_MPI=$(ARCH_DEFAULT_MPI_IMPL) $(BUILD_FLAGS_EXTRA) PLAT="_scotch" all allshared
cp -a lib libmumps_scotch
cp -af libseq/lib* libmumps_scotch
$(MAKE) clean
rm -f Makefile.inc
cp -f debian/Makefile.seq.inc Makefile.inc
$(MAKE) MUMPS_MPI=$(ARCH_DEFAULT_MPI_IMPL) $(BUILD_FLAGS_EXTRA) PLAT="_seq" all allshared
cp -a lib libmumps_seq
cp -af libseq/lib* libmumps_seq
$(MAKE) clean
rm -f Makefile.inc
cp -f debian/Makefile.par.inc Makefile.inc
$(MAKE) MUMPS_MPI=$(ARCH_DEFAULT_MPI_IMPL) $(BUILD_FLAGS_EXTRA) all allshared
cp -a lib libmumps
ifeq (yes,$(findstring yes,$(RUNTEST)))
override_dh_auto_test-indep:
echo "Tests run only for arch builds."
override_dh_auto_test-arch:
cp -a Makefile.inc Makefile.inc.build || /bin/true
LD_LIBRARY_PATH=$(CURDIR)/lib ./debian/tests/mumps-examples-serial
LD_LIBRARY_PATH=$(CURDIR)/libmumps64 ./debian/tests/mumps64-examples-serial
ifeq (yes,$(findstring yes,$(RUN_MPI_TEST)))
LD_LIBRARY_PATH=$(CURDIR)/libmumps64 ./debian/tests/mumps64-examples-mpi
LD_LIBRARY_PATH=$(CURDIR)/lib ./debian/tests/mumps-examples-mpi
endif
mv Makefile.inc.build Makefile.inc || /bin/true
endif
override_dh_auto_install-indep:
echo "No make-based install required for arch-independent builds."
|