From aa82d85aeab4331f2a4142496d57ca0f92eeeb87 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 30 Apr 2014 12:56:21 +0400 Subject: [PATCH] hdf5: Fix building and installing. --- mingw-w64-hdf5/PKGBUILD | 56 ++++++++++--------- .../hdf5-default-import-suffix.patch | 20 +++++++ mingw-w64-hdf5/hdf5-fix-install-docs.patch | 20 +++++++ mingw-w64-hdf5/hdf5-link-ws2_32-mingw.patch | 29 ++++++++++ mingw-w64-hdf5/hdf5-ws2_32.patch | 22 -------- 5 files changed, 99 insertions(+), 48 deletions(-) create mode 100644 mingw-w64-hdf5/hdf5-default-import-suffix.patch create mode 100644 mingw-w64-hdf5/hdf5-fix-install-docs.patch create mode 100644 mingw-w64-hdf5/hdf5-link-ws2_32-mingw.patch delete mode 100644 mingw-w64-hdf5/hdf5-ws2_32.patch diff --git a/mingw-w64-hdf5/PKGBUILD b/mingw-w64-hdf5/PKGBUILD index 5219e288f6..7100908805 100644 --- a/mingw-w64-hdf5/PKGBUILD +++ b/mingw-w64-hdf5/PKGBUILD @@ -1,3 +1,4 @@ +# Maintainer: Alexey Pavlov # Contributor: Xin Sun _realname=hdf5 @@ -10,22 +11,39 @@ arch=('any') url="http://www.hdfgroup.org/HDF5/" source=( "http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-${pkgver}/src/hdf5-${pkgver}.tar.bz2" - "hdf5-ws2_32.patch" + "hdf5-link-ws2_32-mingw.patch" + "hdf5-default-import-suffix.patch" "hdf5-install.patch" + "hdf5-fix-install-docs.patch" ) -md5sums=( - "03ad766d225f5e872eb3e5ce95524a08" - "c1aa1d0306fdefe435f35bc3dc7f860b" - "50e4241f7c977e180da866cd43e571c3" -) -depends=("${_mingw_suff}-gcc-libs" "${_mingw_suff}-zlib" "${_mingw_suff}-szip") -makedepends=("${_mingw_suff}-gcc" "${_mingw_suff}-cmake" "patch") +md5sums=('03ad766d225f5e872eb3e5ce95524a08' + 'c2eae0fa98e1b0f15c70d6ac65f8f7fb' + 'ff88f8dac682af32181ca801f25b12aa' + '66314208fdeb6e6456ab003e1ae837e5' + 'f41dd4f98034fbdd3e15e0800ce79407') +depends=("${_mingw_suff}-gcc-libs" "${_mingw_suff}-gcc-libgfortran" "${_mingw_suff}-zlib" "${_mingw_suff}-szip") +makedepends=("${_mingw_suff}-gcc" "${_mingw_suff}-gcc-fortran" "${_mingw_suff}-cmake" "patch") options=('staticlibs' 'strip') prepare() { cd ${srcdir}/${_realname}-${pkgver} - patch -p0 -i ${srcdir}/hdf5-ws2_32.patch - patch -p0 -i ${srcdir}/hdf5-install.patch + patch -p1 -i ${srcdir}/hdf5-link-ws2_32-mingw.patch + patch -p1 -i ${srcdir}/hdf5-install.patch + patch -p1 -i ${srcdir}/hdf5-default-import-suffix.patch + patch -p1 -i ${srcdir}/hdf5-fix-install-docs.patch + + # rename X.dll to X-0.dll + echo "IF (BUILD_SHARED_LIBS)" >> CMakeLists.txt + echo "SET_TARGET_PROPERTIES (\${HDF5_LIB_TARGET} PROPERTIES SUFFIX -0.dll)">> CMakeLists.txt + echo "SET_TARGET_PROPERTIES (\${HDF5_HL_LIB_TARGET} PROPERTIES SUFFIX -0.dll)">> CMakeLists.txt + echo "SET_TARGET_PROPERTIES (\${HDF5_CPP_LIB_TARGET} PROPERTIES SUFFIX -0.dll)">> CMakeLists.txt + echo "SET_TARGET_PROPERTIES (\${HDF5_HL_CPP_LIB_TARGET} PROPERTIES SUFFIX -0.dll)">> CMakeLists.txt + echo "SET_TARGET_PROPERTIES (\${HDF5_TOOLS_LIB_TARGET} PROPERTIES SUFFIX -0.dll)">> CMakeLists.txt + echo "SET_TARGET_PROPERTIES (\${HDF5_F90_LIB_TARGET} PROPERTIES SUFFIX -0.dll)">> CMakeLists.txt + echo "SET_TARGET_PROPERTIES (\${HDF5_F90_C_LIB_TARGET} PROPERTIES SUFFIX -0.dll)">> CMakeLists.txt + echo "SET_TARGET_PROPERTIES (\${HDF5_HL_F90_LIB_TARGET} PROPERTIES SUFFIX -0.dll)">> CMakeLists.txt + echo "SET_TARGET_PROPERTIES (\${HDF5_HL_F90_C_LIB_TARGET} PROPERTIES SUFFIX -0.dll)">> CMakeLists.txt + echo "ENDIF ()" >> CMakeLists.txt } build() { @@ -39,7 +57,8 @@ build() { -DCMAKE_SKIP_RPATH=ON \ -DHDF5_BUILD_HL_LIB=ON \ -DHDF5_BUILD_CPP_LIB=ON \ - -DHDF5_BUILD_FORTRAN=OFF \ + -DHDF5_BUILD_FORTRAN=ON \ + -DHDF5_BUILD_TOOLS=ON \ -DHDF5_ENABLE_DEPRECATED_SYMBOLS=OFF \ -DHDF5_ENABLE_SZIP_SUPPORT=ON \ -DHDF5_ENABLE_Z_LIB_SUPPORT=ON \ @@ -50,19 +69,4 @@ build() { package() { cd "${srcdir}/build-${MINGW_CHOST}" make -j1 install - - # clear README, licenses, etc. or shall we move them to another place? - for f in ${pkgdir}${MINGW_PREFIX}/share/* - do - [[ -f $f ]] && rm -f $f - done - - mv ${pkgdir}${MINGW_PREFIX}/lib/hdf5.lib ${pkgdir}${MINGW_PREFIX}/lib/libhdf5.dll.a - mv ${pkgdir}${MINGW_PREFIX}/lib/hdf5_hl.lib ${pkgdir}${MINGW_PREFIX}/lib/libhdf5_hl.dll.a - mv ${pkgdir}${MINGW_PREFIX}/lib/hdf5_cpp.lib ${pkgdir}${MINGW_PREFIX}/lib/libhdf5_cpp.dll.a - mv ${pkgdir}${MINGW_PREFIX}/lib/hdf5_hl_cpp.lib ${pkgdir}${MINGW_PREFIX}/lib/libhdf5_hl_cpp.dll.a - sed -s "s|hdf5.lib|libhdf5.dll.a|g" -i ${pkgdir}${MINGW_PREFIX}/share/cmake/hdf5/hdf5-targets-release.cmake - sed -s "s|hdf5_cpp.lib|libhdf5_cpp.dll.a|g" -i ${pkgdir}${MINGW_PREFIX}/share/cmake/hdf5/hdf5-targets-release.cmake - sed -s "s|hdf5_hl.lib|libhdf5_hl.dll.a|g" -i ${pkgdir}${MINGW_PREFIX}/share/cmake/hdf5/hdf5-targets-release.cmake - sed -s "s|hdf5_hl_cpp.lib|libhdf5_hl_cpp.dll.a|g" -i ${pkgdir}${MINGW_PREFIX}/share/cmake/hdf5/hdf5-targets-release.cmake } diff --git a/mingw-w64-hdf5/hdf5-default-import-suffix.patch b/mingw-w64-hdf5/hdf5-default-import-suffix.patch new file mode 100644 index 0000000000..9355fb6ac3 --- /dev/null +++ b/mingw-w64-hdf5/hdf5-default-import-suffix.patch @@ -0,0 +1,20 @@ +diff -ur hdf5-1.8.12.orig/config/cmake/HDFMacros.cmake hdf5-1.8.12/config/cmake/HDFMacros.cmake +--- hdf5-1.8.12.orig/config/cmake/HDFMacros.cmake 2013-11-22 22:35:38.454236491 +0100 ++++ hdf5-1.8.12/config/cmake/HDFMacros.cmake 2013-11-22 22:37:27.717130034 +0100 +@@ -108,16 +108,6 @@ + RELWITHDEBINFO_OUTPUT_NAME ${LIB_RELEASE_NAME} + ) + +- #----- Use MSVC Naming conventions for Shared Libraries +- IF (MINGW AND ${libtype} MATCHES "SHARED") +- SET_TARGET_PROPERTIES (${libtarget} +- PROPERTIES +- IMPORT_SUFFIX ".lib" +- IMPORT_PREFIX "" +- PREFIX "" +- ) +- ENDIF (MINGW AND ${libtype} MATCHES "SHARED") +- + ENDMACRO (HDF_SET_LIB_OPTIONS) + + #------------------------------------------------------------------------------- diff --git a/mingw-w64-hdf5/hdf5-fix-install-docs.patch b/mingw-w64-hdf5/hdf5-fix-install-docs.patch new file mode 100644 index 0000000000..6aa3b95594 --- /dev/null +++ b/mingw-w64-hdf5/hdf5-fix-install-docs.patch @@ -0,0 +1,20 @@ +--- hdf5-1.8.12/CMakeInstallation.cmake.orig 2013-11-21 19:14:04.000000000 +0400 ++++ hdf5-1.8.12/CMakeInstallation.cmake 2014-04-30 12:23:14.248200000 +0400 +@@ -144,7 +144,7 @@ + FILES + ${HDF5_SOURCE_DIR}/ACKNOWLEDGMENTS + ${HDF5_SOURCE_DIR}/COPYING +- DESTINATION ${HDF5_INSTALL_DATA_DIR} ++ DESTINATION ${HDF5_INSTALL_DATA_DIR}/doc/hdf5 + COMPONENT hdfdocuments + ) + IF (EXISTS "${HDF5_SOURCE_DIR}/release_docs" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/release_docs") +@@ -188,7 +188,7 @@ + ENDIF (HDF5_PACK_INSTALL_DOCS) + INSTALL ( + FILES ${release_files} +- DESTINATION ${HDF5_INSTALL_DATA_DIR} ++ DESTINATION ${HDF5_INSTALL_DATA_DIR}/doc/hdf5 + COMPONENT hdfdocuments + ) + ENDIF (EXISTS "${HDF5_SOURCE_DIR}/release_docs" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/release_docs") diff --git a/mingw-w64-hdf5/hdf5-link-ws2_32-mingw.patch b/mingw-w64-hdf5/hdf5-link-ws2_32-mingw.patch new file mode 100644 index 0000000000..a7788bd35b --- /dev/null +++ b/mingw-w64-hdf5/hdf5-link-ws2_32-mingw.patch @@ -0,0 +1,29 @@ +diff -ur hdf5-1.8.12.orig/src/CMakeLists.txt hdf5-1.8.12/src/CMakeLists.txt +--- hdf5-1.8.12.orig/src/CMakeLists.txt 2013-11-22 22:01:31.874461256 +0100 ++++ hdf5-1.8.12/src/CMakeLists.txt 2013-11-22 22:06:19.702407529 +0100 +@@ -615,9 +615,9 @@ + #----------------------------------------------------------------------------- + ADD_EXECUTABLE (H5detect ${HDF5_SRC_DIR}/H5detect.c) + TARGET_C_PROPERTIES (H5detect " " " ") +-IF (MSVC) +- TARGET_LINK_LIBRARIES (H5detect "ws2_32.lib") +-ENDIF (MSVC) ++IF (WIN32) ++ TARGET_LINK_LIBRARIES (H5detect ws2_32) ++ENDIF () + + SET (CMD $) + ADD_CUSTOM_COMMAND ( +@@ -629,9 +629,9 @@ + + ADD_EXECUTABLE (H5make_libsettings ${HDF5_SRC_DIR}/H5make_libsettings.c) + TARGET_C_PROPERTIES (H5make_libsettings " " " ") +-IF (MSVC) +- TARGET_LINK_LIBRARIES (H5make_libsettings "ws2_32.lib") +-ENDIF (MSVC) ++IF (WIN32) ++ TARGET_LINK_LIBRARIES (H5make_libsettings ws2_32) ++ENDIF () + + SET (CMD $) + ADD_CUSTOM_COMMAND ( diff --git a/mingw-w64-hdf5/hdf5-ws2_32.patch b/mingw-w64-hdf5/hdf5-ws2_32.patch deleted file mode 100644 index 91a278fb9a..0000000000 --- a/mingw-w64-hdf5/hdf5-ws2_32.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- src/CMakeLists.txt.orig 2013-11-21 23:13:52.000000000 +0800 -+++ src/CMakeLists.txt 2014-04-29 17:27:57.526688800 +0800 -@@ -618,6 +618,9 @@ - IF (MSVC) - TARGET_LINK_LIBRARIES (H5detect "ws2_32.lib") - ENDIF (MSVC) -+IF (MINGW) -+ TARGET_LINK_LIBRARIES (H5detect "-lws2_32") -+ENDIF (MINGW) - - SET (CMD $) - ADD_CUSTOM_COMMAND ( -@@ -632,6 +635,9 @@ - IF (MSVC) - TARGET_LINK_LIBRARIES (H5make_libsettings "ws2_32.lib") - ENDIF (MSVC) -+IF (MINGW) -+ TARGET_LINK_LIBRARIES (H5make_libsettings "-lws2_32") -+ENDIF (MINGW) - - SET (CMD $) - ADD_CUSTOM_COMMAND (