view src/hdf5.mk @ 7186:19a46de50b18 default tip @

* src/jasper.mk: update to v4.2.4
author John Donoghue <john.donoghue@ieee.org>
date Thu, 02 May 2024 09:22:30 -0400
parents 7116726c5243
children
line wrap: on
line source

# This file is part of MXE.
# See index.html for further information.

PKG             := hdf5
$(PKG)_IGNORE   :=
$(PKG)_VERSION  := 1.12.1
$(PKG)_CHECKSUM := 665eed49a004f96f852887bb2b232dd7d3d8d8a0
$(PKG)_SUBDIR   := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE     := $(PKG)-$($(PKG)_VERSION).tar.bz2
$(PKG)_URL      := https://support.hdfgroup.org/ftp/HDF5/releases/$(PKG)-$(call SHORT_PKG_VERSION,$(PKG))/$(PKG)-$($(PKG)_VERSION)/src/$($(PKG)_FILE)
$(PKG)_DEPS     := build-ninja zlib

define $(PKG)_UPDATE
    echo 'Warning: Updates are temporarily disabled for package hdf5.' >&2;
    echo $(hdf5_VERSION)
endef

ifeq ($(MXE_SYSTEM),mingw)
    ifneq ($(MXE_NATIVE_BUILD),yes)
        $(PKG)_CROSS_CONFIG_OPTIONS := \
            -DHDF5_USE_PREGEN=ON \
            -DHAVE_IOEO_EXITCODE=0 \
            -DH5_LDOUBLE_TO_LONG_SPECIAL_RUN=1 \
            -DH5_LDOUBLE_TO_LONG_SPECIAL_RUN__TRYRUN_OUTPUT="" \
            -DH5_LONG_TO_LDOUBLE_SPECIAL_RUN=1 \
            -DH5_LONG_TO_LDOUBLE_SPECIAL_RUN__TRYRUN_OUTPUT="" \
            -DH5_LDOUBLE_TO_LLONG_ACCURATE_RUN=0 \
            -DH5_LDOUBLE_TO_LLONG_ACCURATE_RUN__TRYRUN_OUTPUT="" \
            -DH5_LLONG_TO_LDOUBLE_CORRECT_RUN=0 \
            -DH5_LLONG_TO_LDOUBLE_CORRECT_RUN__TRYRUN_OUTPUT="" \
            -DH5_DISABLE_SOME_LDOUBLE_CONV_RUN=1 \
            -DH5_DISABLE_SOME_LDOUBLE_CONV_RUN__TRYRUN_OUTPUT="" \
            -DH5_NO_ALIGNMENT_RESTRICTIONS_RUN=0 \
            -DH5_NO_ALIGNMENT_RESTRICTIONS_RUN__TRYRUN_OUTPUT="" \
            -DH5_PRINTF_LL_TEST_RUN=0 \
            -DH5_PRINTF_LL_TEST_RUN__TRYRUN_OUTPUT="" \
            -DTEST_LFS_WORKS_RUN=0
    endif
endif

define $(PKG)_BUILD
    if test x$(MXE_SYSTEM) = xmingw; then \
        mkdir '$(1)/pregen'; \
        mkdir '$(1)/pregen/shared'; \
        case '$(TARGET)' in \
            x86_64-w64-mingw32) \
                cp '$(1)/src/H5Tinit.c.mingw64' '$(1)/pregen/H5Tinit.c' & \
                cp '$(1)/src/H5Tinit.c.mingw64' '$(1)/pregen/shared/H5Tinit.c' & \
                cp '$(1)/src/H5lib_settings.c.mingw64' '$(1)/pregen/H5lib_settings.c' & \
                cp '$(1)/src/H5lib_settings.c.mingw64' '$(1)/pregen/shared/H5lib_settings.c' \
            ;; \
            i686-w64-mingw32) \
                cp '$(1)/src/H5Tinit.c.mingw32' '$(1)/pregen/H5Tinit.c' & \
                cp '$(1)/src/H5Tinit.c.mingw32' '$(1)/pregen/shared/H5Tinit.c' & \
                cp '$(1)/src/H5lib_settings.c.mingw32' '$(1)/pregen/H5lib_settings.c' & \
                cp '$(1)/src/H5lib_settings.c.mingw32' '$(1)/pregen/shared/H5lib_settings.c' \
            ;; \
            i686-pc-mingw32) \
                cp '$(1)/src/H5Tinit.c.mingw32' '$(1)/pregen/H5Tinit.c' & \
                cp '$(1)/src/H5Tinit.c.mingw32' '$(1)/pregen/shared/H5Tinit.c' & \
                cp '$(1)/src/H5lib_settings.c.mingw32' '$(1)/pregen/H5lib_settings.c' & \
                cp '$(1)/src/H5lib_settings.c.mingw32' '$(1)/pregen/shared/H5lib_settings.c' \
            ;; \
        esac; \
    fi

    mkdir '$(1)/.build'

    cd '$(1)/.build' && cmake .. -G Ninja \
        -DCMAKE_INSTALL_PREFIX=$(HOST_PREFIX) \
        $($(PKG)_CMAKE_FLAGS) \
        $(CMAKE_CCACHE_FLAGS) \
        $(CMAKE_BUILD_SHARED_OR_STATIC) \
        -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
        -DHDF5_INSTALL_BIN_DIR='$(HOST_BINDIR)' \
        -DHDF5_INSTALL_LIB_DIR='$(HOST_LIBDIR)' \
        -DHDF5_INSTALL_INCLUDE_DIR='$(HOST_INCDIR)' \
        -DHDF5_INSTALL_DATA_DIR='$(HOST_PREFIX)/share' \
        -DHDF5_BUILD_CPP_LIB=OFF \
        -DHDF5_BUILD_HL_LIB=ON \
        -DHDF5_ENABLE_Z_LIB_SUPPORT=ON \
        -DHDF5_ENABLE_SZIP_SUPPORT=OFF \
        -DHDF5_ENABLE_SZIP_ENCODING=OFF \
        -DHDF5_BUILD_DOC=OFF \
        -DBUILD_TESTING=OFF \
        $($(PKG)_CROSS_CONFIG_OPTIONS) \
        -DHDF5_USE_PREGEN_DIR='$(1)/pregen'

    cmake --build '$(1)/.build' -j '$(JOBS)' 
    DESTDIR='$(3)' cmake --install '$(1)/.build'

    # FIXME: Change the build rule to create the shared libs with the prefix
    if [ $(BUILD_STATIC) = yes ]; then \
      if test x$(MXE_SYSTEM) = xmingw; then \
        mv '$(3)/$(HOST_LIBDIR)/hdf5.lib' '$(3)/$(HOST_LIBDIR)/libhdf5.lib'; \
        mv '$(3)/$(HOST_LIBDIR)/hdf5_tools.lib' '$(3)/$(HOST_LIBDIR)/libhdf5_tools.lib'; \
        mv '$(3)/$(HOST_LIBDIR)/hdf5_hl.lib' '$(3)/$(HOST_LIBDIR)/libhdf5_hl.lib'; \
      fi; \
    fi

    if [ "$(ENABLE_DEP_DOCS)" == "no" ]; then \
        rm -rf '$(3)$(HOST_PREFIX)/share/hdf5_examples'; \
    fi
endef