#!/usr/bin/make -f # define default MPI (ARCH_DEFAULT_MPI_IMPL) include /usr/share/mpi-default-dev/debian_defaults include /usr/share/dpkg/architecture.mk DEB_VERSION := $(shell dpkg-parsechangelog -S Version) DEB_NOEPOCH_VERSION := $(shell echo $(DEB_VERSION) | cut -d: -f2-) DEB_UPSTREAM_VERSION := $(shell echo $(DEB_NOEPOCH_VERSION) | sed 's/-[^-]*$$//') ADIOS2_UPSTREAM_VERSION=$(DEB_UPSTREAM_VERSION) ADIOS2_MAJOR_VERSION=$(shell echo $(ADIOS2_UPSTREAM_VERSION) | cut -d . -f 1) export ADIOS2_SOVERSION=$(ADIOS2_MAJOR_VERSION) PYVERS := $(shell py3versions -vs) PYVERS_LIST := $(shell echo $(PYVERS) | tr " " ";") get-orig-source: wget -O ../adios2_$(DEBIAN_VERSION).orig.tar.gz --no-clobber https://github.com/ornladios/ADIOS2/archive/$(GIT_VERSION).tar.gz mkdir tmp tar -C tmp --strip-components=1 -xf ../adios2_$(DEBIAN_VERSION).orig.tar.gz cd tmp && rm -r \ thirdparty/atl \ thirdparty/dill \ thirdparty/enet \ thirdparty/EVPath \ thirdparty/ffs \ thirdparty/GTest \ thirdparty/mingw-w64 \ thirdparty/nlohmann_json \ thirdparty/pugixml \ thirdparty/pybind11 \ thirdparty/yaml-cpp tar --owner=root --group=root --transform="s/^tmp/adios2_$(DEBIAN_VERSION)+dfsg1/" -cJf ../adios2_$(DEBIAN_VERSION)+dfsg1.orig.tar.xz tmp rm -r tmp flavors := serial mpi %: dh $@ --buildsystem=cmake+ninja configure_flags_common := \ -DADIOS2_USE_EXTERNAL_DEPENDENCIES:BOOL=ON \ -DADIOS2_USE_EXTERNAL_ENET:BOOL=ON \ -DADIOS2_USE_BZip2:BOOL=ON \ -DADIOS2_USE_Blosc:BOOL=ON \ -DADIOS2_USE_Fortran:BOOL=ON \ -DADIOS2_USE_HDF5:BOOL=ON \ -DADIOS2_USE_PNG:BOOL=ON \ -DADIOS2_USE_SST:BOOL=ON \ -DADIOS2_USE_ZeroMQ:BOOL=ON \ -DADIOS2_USE_Python:BOOL=ON \ -DADIOS2_Python_Version="$(PYVERS_LIST)" \ -DEVPATH_TRANSPORT_MODULES=OFF \ -DCMAKE_SKIP_RPATH:BOOL=ON \ -DCMAKE_INSTALL_RPATH_USE_LINK_PATH:BOOL=OFF ifeq ($(DEB_HOST_ARCH_ENDIAN),big) configure_flags_common += -DADIOS2_USE_Endian_Reverse=ON EXTRA_CTEST_FLAGS += -E Install.CMake.EncryptionOperator endif configure_flags_serial := $(configure_flags_common) \ -DCMAKE_INSTALL_CMAKEDIR:STRING=lib/$(DEB_HOST_GNU_TYPE)/cmake/adios2/serial \ -DADIOS2_LIBRARY_FLAVOR:STRING=serial \ -DADIOS2_LIBRARY_SUFFIX:STRING=_serial \ -DADIOS2_EXECUTABLE_SUFFIX:STRING=.serial \ -DADIOS2_USE_MPI:BOOL=OFF \ -DHDF5_C_COMPILER_EXECUTABLE:FILEPATH=/usr/bin/h5cc configure_flags_mpi_common := $(configure_flags_common) \ -DADIOS2_USE_MPI:BOOL=ON \ -DADIOS2_USE_SSC:BOOL=ON configure_flags_mpi := $(configure_flags_mpi_common) \ -DCMAKE_INSTALL_CMAKEDIR:STRING=lib/$(DEB_HOST_GNU_TYPE)/cmake/adios2/mpi \ -DADIOS2_LIBRARY_FLAVOR:STRING=mpi \ -DADIOS2_LIBRARY_SUFFIX:STRING=_mpi \ -DADIOS2_EXECUTABLE_SUFFIX:STRING=.mpi \ -DMPI_C_COMPILER:FILEPATH=/usr/bin/mpicc.$(ARCH_DEFAULT_MPI_IMPL) \ -DMPI_CXX_COMPILER:FILEPATH=/usr/bin/mpic++.$(ARCH_DEFAULT_MPI_IMPL) \ -DMPI_Fortran_COMPILER:FILEPATH=/usr/bin/mpifort.$(ARCH_DEFAULT_MPI_IMPL) \ -DHDF5_C_COMPILER_EXECUTABLE:FILEPATH=/usr/bin/h5pcc.$(ARCH_DEFAULT_MPI_IMPL) override_dh_auto_clean: dh_clean $(foreach flavor,$(flavors),build-$(flavor)/ install-$(flavor)/) start_%: flavor = $(patsubst start_%,%,$@) start_%: dh_ctest_start --ctest-testing-dir=build-$(flavor) --builddirectory=build-$(flavor) --ctest-build-suffix=-$(flavor) override_dh_ctest_start: $(foreach flavor,$(flavors),start_$(flavor)) update_%: flavor = $(patsubst update_%,%,$@) update_%: dh_ctest_update --ctest-testing-dir=build-$(flavor) --builddirectory=build-$(flavor) --ctest-build-suffix=-$(flavor) override_dh_ctest_update: $(foreach flavor,$(flavors),update_$(flavor)) configure_%: flavor = $(patsubst configure_%,%,$@) configure_%: dh_ctest_configure -O--ctest-testing-dir=build-$(flavor) --builddirectory=build-$(flavor) -O--ctest-build-suffix=-$(flavor) -O--buildsystem=cmake+ninja -- $(configure_flags_$(flavor)) override_dh_ctest_configure: $(foreach flavor,$(flavors),configure_$(flavor)) build_%: flavor = $(patsubst build_%,%,$@) build_%: dh_ctest_build -O--ctest-testing-dir=build-$(flavor) --builddirectory=build-$(flavor) -O--ctest-build-suffix=-$(flavor) -O--buildsystem=cmake+ninja override_dh_ctest_build: $(foreach flavor,$(flavors),build_$(flavor)) test_%: flavor = $(patsubst test_%,%,$@) test_%: dh_ctest_test --ctest-testing-dir=build-$(flavor) --builddirectory=build-$(flavor) --ctest-build-suffix=-$(flavor) -- -R '^Install\.' $(EXTRA_CTEST_FLAGS) override_dh_ctest_test: $(foreach flavor,$(flavors),test_$(flavor)) submit_%: flavor = $(patsubst submit_%,%,$@) submit_%: dh_ctest_submit --ctest-testing-dir=build-$(flavor) --builddirectory=build-$(flavor) --ctest-build-suffix=-$(flavor) override_dh_ctest_submit: $(foreach flavor,$(flavors),submit_$(flavor)) install_%: flavor = $(patsubst install_%,%,$@) install_%: EXTRA_CMAKE_ARGS="-DCMAKE_PREFIX_PATH=$(CMAKE_PREFIX_PATH);$(CURDIR)/install-$(flavor)/usr/lib/$(DEB_HOST_GNU_TYPE)/cmake/adios2/$(flavor)" dh_auto_install --buildsystem=cmake+ninja --builddirectory=build-$(flavor) --destdir=install-$(flavor) dh_install --sourcedir=install-$(flavor) --package libadios2-$(flavor)-core-dev usr/bin/adios2-config.$(flavor) override_dh_auto_install: $(foreach flavor,$(flavors),install_$(flavor)) cmake_install_%: flavor = $(patsubst cmake_install_%,%,$@) cmake_install_%: cmdbase = dh_cmake_install --builddirectory=build-$(flavor) --sourcedir=install-$(flavor) cmake_install_%: $(cmdbase) --package adios2-$(flavor)-bin --component adios2_tools-runtime $(cmdbase) --package libadios2-$(flavor)-core-$(ADIOS2_SOVERSION) --component adios2_core-libraries $(cmdbase) --package libadios2-$(flavor)-core-dev --component adios2_core-development $(cmdbase) --package libadios2-$(flavor)-c-$(ADIOS2_SOVERSION) --component adios2_c-libraries $(cmdbase) --package libadios2-$(flavor)-c-dev --component adios2_c-development $(cmdbase) --package libadios2-$(flavor)-c++11-$(ADIOS2_SOVERSION) --component adios2_cxx11-libraries $(cmdbase) --package libadios2-$(flavor)-c++11-dev --component adios2_cxx11-development $(cmdbase) --package libadios2-$(flavor)-fortran-$(ADIOS2_SOVERSION) --component adios2_fortran-libraries $(cmdbase) --package libadios2-$(flavor)-fortran-dev --component adios2_fortran-development cmake_install_serial_extra: cmdbase = dh_cmake_install --builddirectory=build-serial --sourcedir=install-serial cmake_install_serial_extra: for pyver in $(PYVERS); do \ $(cmdbase) --package python3-adios2-serial --component adios2_python-python$$pyver; \ done cmake_install_mpi_extra: cmdbase = dh_cmake_install --builddirectory=build-mpi --sourcedir=install-mpi cmake_install_mpi_extra: for pyver in $(PYVERS); do \ $(cmdbase) --package python3-adios2-mpi --component adios2_python-python$$pyver; \ done $(cmdbase) --package adios2-data --component adios2_tools-data override_dh_cmake_install: cmdbase = dh_cmake_install --builddirectory=build-serial --sourcedir=install-serial override_dh_cmake_install: $(foreach flavor,$(flavors),cmake_install_$(flavor) cmake_install_$(flavor)_extra) $(cmdbase) --package adios2-scripts --component adios2_scripts-runtime dh_install --sourcedir=debian/adios2 --package python3-adios2 \ __init__.py usr/lib/python3/dist-packages/adios2 dh_install --sourcedir=debian/adios2 --package libadios2-common-core-dev \ adios2-config.cmake usr/lib/$(DEB_HOST_GNU_TYPE)/cmake/adios2 dh_install --sourcedir=install-serial --package libadios2-common-core-dev \ usr/lib/$(DEB_HOST_GNU_TYPE)/cmake/adios2/serial/adios2-config-version.cmake usr/lib/$(DEB_HOST_GNU_TYPE)/cmake/adios2 execute_after_dh_install: for dev_serial_package in libadios2-serial-core-dev libadios2-serial-c-dev libadios2-serial-c++11-dev; do \ dev_common_package=`echo $${dev_serial_package} | sed "s/serial/common/"`; \ if [ -d debian/$${dev_serial_package}/usr/include ]; then \ for file_inc_serial in `find debian/$${dev_serial_package}/usr/include -type f ! -name ADIOSConfig.h`; do \ file_inc_mpi=`echo $$file_inc_serial | sed "s/adios2-serial/adios2-mpi/"`; \ if diff $$file_inc_serial $$file_inc_mpi >/dev/null ; then \ file_inc=`echo $$file_inc_serial | sed "s|debian/$${dev_serial_package}/||"`; \ mkdir -p debian/$${dev_common_package}; \ dh_install -p $${dev_common_package} --sourcedir=debian/$${dev_serial_package} $$file_inc; \ rm $$file_inc_serial $$file_inc_mpi; \ fi; \ done; \ dev_mpi_package=`echo $${dev_serial_package} | sed "s/serial/mpi/"`; \ find debian/$${dev_serial_package}/usr/include -type d -empty -delete; \ find debian/$${dev_mpi_package}/usr/include -type d -empty -delete; \ fi; \ done execute_before_dh_fixperms-arch: for flavor in serial mpi; do \ sed "s|^#\!/bin/bash$$|#\!/bin/bash\nDEB_HOST_MULTIARCH=\$$(dpkg-architecture -qDEB_HOST_MULTIARCH)|; \ s|$(DEB_HOST_MULTIARCH)|\$${DEB_HOST_MULTIARCH}|g;" \ -i debian/libadios2-$${flavor}-core-dev/usr/bin/adios2-config.$${flavor}; \ done override_dh_missing-arch: dh_missing --sourcedir=install-serial dh_missing --sourcedir=install-mpi \ -Xusr/bin/adios2_deactivate_bp \ -Xusr/bin/adios2_json_pp \ -Xusr/bin/bp4dbg \ -Xusr/bin/bp5dbg \ -Xusr/lib/python3/dist-packages/adios2/bp4dbg \ -Xusr/lib/python3/dist-packages/adios2/bp5dbg execute_after_dh_installdocs: for p in libadios2-serial-core-dev libadios2-mpi-core-dev python3-adios2; do \ dh_installdocs -p $$p debian/README.Debian; \ done