README 4.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. LIBMATIO Matlab MAT file I/O library
  2. libmatio is an open-source library for reading/writing Matlab MAT files. This
  3. library is designed for use by programs/libraries that do not have access or
  4. do not want to rely on Matlab's libmat shared library.
  5. Contact:
  6. You can contact me (Christopher Hulbert) through email at cch@isl-inc.com
  7. Acknowledgements:
  8. Thank you to Jacco van Beek for helping me get the software running under
  9. solaris and for providing test files to get byteswapping verified.
  10. Contributing:
  11. Part of my reason for releasing this software is I have many other projects
  12. to work on and have many features I would still like to implement. If you
  13. make changes, I would appreciate your contributions and more than likely will
  14. include them in future releases. If you are interested in collaborations,
  15. contact me via email at cch@isl-inc.com.
  16. Building:
  17. Four of the builds currently supported make use of the GNU autotools,
  18. and thus you should have them. There is a build script in the top-level
  19. directory for the four builds including the following supported platforms:
  20. cygwin, mingw, linux, and solaris. You can of course configure and build
  21. your own way. A Visual C 7 Solution has been created in the build-vc7
  22. direcotry and a Visual C 6 workspace in the build-vc6 directory.
  23. These should be self containing, just open and build. There are multiple
  24. configurations supported, but I recommend the LIB Release or the
  25. DLL Release. The build-windows directory contains a batch file to build using
  26. nmake. This makes it easier to set variables and install the software.
  27. Doxygen is required to build the documentation. Since not all platforms
  28. support doxygen (mingw and Visual C come to mind) I have included the API
  29. documentation in the top-level directory as a pdf.
  30. ZLIB:
  31. To support compressed MAT files, zlib 1.2.2 or greater is required. If zlib
  32. 1.2.2 is used, there is a bug in inflate.c. A patch file (inflate.patch) is
  33. included in the patches directory and should be applied before creating the zlib
  34. library or libmatio will likely crash at some point. The latest release of zlib
  35. already has this patch applied. A minimal zlib 1.2.3 has been included. This
  36. does not have ALL build targets and does not include the contrib directory.
  37. This is simply because of size requirements on the File Exchange.
  38. Due to some linking problems under linux/solaris, when shared libraries are
  39. compiled against the static zlib and a program (like Matlab) loads in zlib
  40. symbols, it uses those symbols instead of the static ones. This should not
  41. affect stand-alone programs or static libraries (unless linked against from
  42. something like a mex file). Therefore, when building libmatio, it is
  43. recommended to use the built-in zlib 1.2.3 or to compile the zlib with
  44. -DZ_PREFIX which only changes the symbol names to add z_ to external symbols.
  45. This eliminates the possibility of using zlib symbols from a shared library. To
  46. build zlib with the z prefix, you can use:
  47. CFLAGS=-DZ_PREFIX ./configure;make;make install
  48. the build scripts provided already make the zlib that is included with this
  49. distribution and set the flags to use that as appropriate.
  50. Targets:
  51. The library has been tested/used on linux and windows little-endian
  52. architectures, as well as solarix big-endian. Again, thanks to Jacco for using
  53. a big-endian system and providing some test files for that as well as testing
  54. reading little-endian files on a big-endian system.
  55. Copyright Notice:
  56. Copyright (C) 2005-2006 Christopher C. Hulbert
  57. This library is free software; you can redistribute it and/or
  58. modify it under the terms of the GNU Lesser General Public
  59. License as published by the Free Software Foundation; either
  60. version 2.1 of the License, or (at your option) any later version.
  61. This library is distributed in the hope that it will be useful,
  62. but WITHOUT ANY WARRANTY; without even the implied warranty of
  63. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  64. Lesser General Public License for more details.
  65. You should have received a copy of the GNU Lesser General Public
  66. License along with this library; if not, write to the Free Software
  67. Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA