Author: Andreas Tille <tille@debian.org>
Last-Update: Thu, 25 Apr 2019 07:33:49 +0200
Description: use Debian packaged libhdf5

--- a/configure.ac
+++ b/configure.ac
@@ -92,7 +92,7 @@ fi
 echo "S3_VFD=${WITH_S3_VFD}"
 
 #untar the lib
-BASEPBNAME="hdf5"
+BASEPBNAME="/usr/include/hdf5"
 PBTGZNAME=hdf5small_cxx_hl_1.10.6.tar.gz
 cd src
 if test -d ./${BASEPBNAME}; then 
@@ -102,31 +102,11 @@ else
 	gunzip -dc ${PBTGZNAME} | tar xf -;
 fi;
 
-echo "building the szip library...";
-cd ${BASEPBNAME}/szip;
-./configure --with-pic --enable-shared=no \
-    CC="${CC}" CFLAGS="${CFLAGS} ${CPICFLAGS}" CPPFLAGS="${CPPFLAGS}"
-$MAKE
-$MAKE install
-SZIP_HOME=`pwd -P`/szip
-
-
-echo "building the hdf5 library...";
-cd ../;
-./configure --with-pic --enable-shared=no --enable-cxx --enable-hl \
-    --with-szlib=${SZIP_HOME} --with-zlib=${ZLIB_HOME} \
-    ${WITH_S3_VFD} \
-    CXX="${CXX}" CXXFLAGS="${CXXFLAGS} ${CXXPICFLAGS}" \
-    CC="${CC}" CFLAGS="${CFLAGS} ${CPICFLAGS}" \
-    CPPFLAGS="${CPPFLAGS}" LDFLAGS="${LDFLAGS}"
-$MAKE lib
-cd ../../
-
 #update variables in Makevars
-HDF5_INCLUDE="${BASEPBNAME}/src"
-HDF5_CXX_INCLUDE="${BASEPBNAME}/c++/src"
-HDF5_HL_INCLUDE="${BASEPBNAME}/hl/src"
-HDF5_HL_CXX_INCLUDE="${BASEPBNAME}/hl/c++/src"
+HDF5_INCLUDE="/usr/include/hdf5/serial"
+HDF5_CXX_INCLUDE="/usr/include/hdf5/serial"
+HDF5_HL_INCLUDE="/usr/include/hdf5/serial"
+HDF5_HL_CXX_INCLUDE="/usr/include/hdf5/serial"
 AC_SUBST(HDF5_INCLUDE)
 AC_SUBST(HDF5_CXX_INCLUDE)
 AC_SUBST(HDF5_HL_INCLUDE)
@@ -136,18 +116,18 @@ AC_MSG_NOTICE([   HDF5_CXX_INCLUDE=${HDF
 AC_MSG_NOTICE([   HDF5_HL_INCLUDE=${HDF5_HL_INCLUDE}])
 AC_MSG_NOTICE([   HDF5_HL_CXX_INCLUDE=${HDF5_HL_CXX_INCLUDE}])
 
-HDF5_LIB="${BASEPBNAME}/src/.libs/libhdf5.a"
-HDF5_CXX_LIB="${BASEPBNAME}/c++/src/.libs/libhdf5_cpp.a"
-HDF5_HL_LIB="${BASEPBNAME}/hl/src/.libs/libhdf5_hl.a"
-HDF5_HL_CXX_LIB="${BASEPBNAME}/hl/c++/src/.libs/libhdf5_hl_cpp.a"
-SZIP_LIB="${BASEPBNAME}/szip/src/.libs/libsz.a"
+MULTIARCH=$(dpkg-architecture -qDEB_HOST_MULTIARCH)
+HDF5_LIB="/usr/lib/${MULTIARCH}/hdf5/serial/"
+HDF5_CXX_LIB="/usr/lib/${MULTIARCH}/hdf5/serial/libhdf5_cpp.a"
+HDF5_HL_LIB="/usr/lib/${MULTIARCH}/hdf5/serial/libhdf5_hl.a"
+HDF5_HL_CXX_LIB="/usr/lib/${MULTIARCH}/hdf5/serial/libhdf5_hl_cpp.a"
+SZIP_LIB="/usr/lib/${MULTIARCH}/libsz.a"
 
 AC_SUBST(HDF5_LIB)
 AC_SUBST(HDF5_CXX_LIB)
 AC_SUBST(HDF5_HL_LIB)
 AC_SUBST(HDF5_HL_CXX_LIB)
 AC_SUBST(SZIP_LIB)
-AC_SUBST(ZLIB_HOME)
 AC_SUBST(ZLIB_LIB)
 AC_SUBST(ZLIB_INCLUDE)
 
@@ -157,6 +137,12 @@ AC_MSG_NOTICE([   HDF5_HL_LIB=${HDF5_HL_
 AC_MSG_NOTICE([   HDF5_HL_CXX_LIB=${HDF5_HL_CXX_LIB}])
 AC_MSG_NOTICE([   SZIP_LIB=${SZIP_LIB}])
 
-AC_CONFIG_FILES([src/Makevars])
+# AC_CONFIG_FILES([src/Makevars])
+#     ... so try things manually
+sed -e "s+@HDF5_INCLUDE@+${HDF5_INCLUDE}+g" \
+    -e "s+@HDF5_LIB@+${HDF5_LIB}+g" \
+    -e "s+@ZLIB_LIB@+${ZLIB_LIB}+g" \
+    -e "s+@ZLIB_INCLUDE@+${ZLIB_INCLUDE}+g" \
+    Makevars.in > Makevars
 
 AC_OUTPUT
--- a/src/Rhdf5lib.c
+++ b/src/Rhdf5lib.c
@@ -6,7 +6,7 @@
 #ifdef _WIN32
     #include "hdf5/hdf5.h"
 #else
-    #include "hdf5/src/hdf5.h"
+    #include "hdf5.h"
 #endif
 
 SEXP Rhdf5lib_hdf5_libversion(void)
--- a/src/Makevars.in
+++ b/src/Makevars.in
@@ -19,25 +19,9 @@ USER_LIB_DIR = ${R_PACKAGE_DIR}/lib${R_A
 
 PKG_CPPFLAGS = -I${HDF5_INCLUDE} ${ZLIB_INCLUDE}
 PKG_CFLAGS = ${ZLIB_LIB}
-PKG_LIBS = "${USER_LIB_DIR}libhdf5.a" "${USER_LIB_DIR}libsz.a" -lz
+PKG_LIBS = -L${HDF5_LIB} -lhdf5 -lsz -lz
 
-all: copying $(SHLIB)
+all: $(SHLIB)
 
 $(SHLIB): Rhdf5lib.o
 
-Rhdf5lib.o: copying
-
-#copy hdf5 library headers to package include
-copying:
-	mkdir -p "${USER_INCLUDE}"
-	cp "${HDF5_INCLUDE}/"*.h "${USER_INCLUDE}"
-	cp "${HDF5_CXX_INCLUDE}/"*.h "${USER_INCLUDE}"
-	cp "${HDF5_HL_INCLUDE}/"*.h "${USER_INCLUDE}"
-	cp "${HDF5_HL_CXX_INCLUDE}/"*.h "${USER_INCLUDE}"
-	cp "${HDF5_INCLUDE}/"libhdf5.settings "${USER_INCLUDE}"
-	mkdir -p "${USER_LIB_DIR}"
-	cp "${HDF5_LIB}" "${USER_LIB_DIR}"
-	cp "${HDF5_CXX_LIB}" "${USER_LIB_DIR}"
-	cp "${HDF5_HL_LIB}" "${USER_LIB_DIR}"
-	cp "${HDF5_HL_CXX_LIB}" "${USER_LIB_DIR}"
-	cp "${SZIP_LIB}" "${USER_LIB_DIR}"
