@@ -77,6 +77,63 @@ function build_curl2 {
7777 touch curl-stamp
7878}
7979
80+ function build_hdf5 {
81+ if [ -e hdf5-stamp ]; then return ; fi
82+ build_zlib
83+ # libaec is a drop-in replacement for szip
84+ build_libaec
85+ local hdf5_url=https://support.hdfgroup.org/ftp/HDF5/releases
86+ local short=$( echo $HDF5_VERSION | awk -F " ." ' {printf "%d.%d", $1, $2}' )
87+ fetch_unpack $hdf5_url /hdf5-$short /hdf5-$HDF5_VERSION /src/hdf5-$HDF5_VERSION .tar.gz
88+
89+ if [[ ! -z " IS_OSX" && " $PLAT " = " arm64" ]] && [[ " $CROSS_COMPILING " = " 1" ]]; then
90+ pushd hdf5-$HDF5_VERSION
91+ # from https://github.com/conda-forge/hdf5-feedstock/commit/2cb83b63965985fa8795b0a13150bf0fd2525ebd
92+ export ac_cv_sizeof_long_double=8
93+ export hdf5_cv_ldouble_to_long_special=no
94+ export hdf5_cv_long_to_ldouble_special=no
95+ export hdf5_cv_ldouble_to_llong_accurate=yes
96+ export hdf5_cv_llong_to_ldouble_correct=yes
97+ export hdf5_cv_disable_some_ldouble_conv=no
98+ export hdf5_cv_system_scope_threads=yes
99+ export hdf5_cv_printf_ll=" l"
100+ export PAC_FC_MAX_REAL_PRECISION=15
101+ export PAC_C_MAX_REAL_PRECISION=17
102+ export PAC_FC_ALL_INTEGER_KINDS=" {1,2,4,8,16}"
103+ export PAC_FC_ALL_REAL_KINDS=" {4,8}"
104+ export H5CONFIG_F_NUM_RKIND=" INTEGER, PARAMETER :: num_rkinds = 2"
105+ export H5CONFIG_F_NUM_IKIND=" INTEGER, PARAMETER :: num_ikinds = 5"
106+ export H5CONFIG_F_RKIND=" INTEGER, DIMENSION(1:num_rkinds) :: rkind = (/4,8/)"
107+ export H5CONFIG_F_IKIND=" INTEGER, DIMENSION(1:num_ikinds) :: ikind = (/1,2,4,8,16/)"
108+ export PAC_FORTRAN_NATIVE_INTEGER_SIZEOF=" 4"
109+ export PAC_FORTRAN_NATIVE_INTEGER_KIND=" 4"
110+ export PAC_FORTRAN_NATIVE_REAL_SIZEOF=" 4"
111+ export PAC_FORTRAN_NATIVE_REAL_KIND=" 4"
112+ export PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF=" 8"
113+ export PAC_FORTRAN_NATIVE_DOUBLE_KIND=" 8"
114+ export PAC_FORTRAN_NUM_INTEGER_KINDS=" 5"
115+ export PAC_FC_ALL_REAL_KINDS_SIZEOF=" {4,8}"
116+ export PAC_FC_ALL_INTEGER_KINDS_SIZEOF=" {1,2,4,8,16}"
117+ curl -sLO https://github.com/conda-forge/hdf5-feedstock/raw/2cb83b63965985fa8795b0a13150bf0fd2525ebd/recipe/patches/osx_cross_configure.patch
118+ curl -sLO https://github.com/conda-forge/hdf5-feedstock/raw/2cb83b63965985fa8795b0a13150bf0fd2525ebd/recipe/patches/osx_cross_fortran_src_makefile.patch
119+ curl -sLO https://github.com/conda-forge/hdf5-feedstock/raw/2cb83b63965985fa8795b0a13150bf0fd2525ebd/recipe/patches/osx_cross_hl_fortran_src_makefile.patch
120+ curl -sLO https://github.com/conda-forge/hdf5-feedstock/raw/2cb83b63965985fa8795b0a13150bf0fd2525ebd/recipe/patches/osx_cross_src_makefile.patch
121+ patch -p0 < osx_cross_configure.patch
122+ patch -p0 < osx_cross_fortran_src_makefile.patch
123+ patch -p0 < osx_cross_hl_fortran_src_makefile.patch
124+ patch -p0 < osx_cross_src_makefile.patch
125+ popd
126+ fi
127+
128+ (cd hdf5-$HDF5_VERSION \
129+ && export LD_LIBRARY_PATH=$LD_LIBRARY_PATH :$BUILD_PREFIX /lib \
130+ && ./configure --with-szlib=$BUILD_PREFIX --prefix=$BUILD_PREFIX \
131+ --enable-threadsafe --enable-unsupported --with-pthread=yes \
132+ && make -j4 \
133+ && make install)
134+ touch hdf5-stamp
135+ }
136+
80137function build_libs {
81138 build_hdf5
82139 build_curl2
0 commit comments