3700f28e31017dc88cb1729062e6d5eb9cfce89c
[blender-staging.git] / extern / lzo / minilzo / README.LZO
1
2  ============================================================================
3  miniLZO -- mini subset of the LZO real-time data compression library
4  ============================================================================
5
6  Author  : Markus Franz Xaver Johannes Oberhumer
7            <markus@oberhumer.com>
8            http://www.oberhumer.com/opensource/lzo/
9  Version : 2.03
10  Date    : 30 Apr 2008
11
12  I've created miniLZO for projects where it is inconvenient to
13  include (or require) the full LZO source code just because you
14  want to add a little bit of data compression to your application.
15
16  miniLZO implements the LZO1X-1 compressor and both the standard and
17  safe LZO1X decompressor. Apart from fast compression it also useful
18  for situations where you want to use pre-compressed data files (which
19  must have been compressed with LZO1X-999).
20
21  miniLZO consists of one C source file and three header files:
22     minilzo.c
23     minilzo.h, lzoconf.h, lzodefs.h
24
25  To use miniLZO just copy these files into your source directory, add
26  minilzo.c to your Makefile and #include minilzo.h from your program.
27  Note: you also must distribute this file (`README.LZO') with your project.
28
29  minilzo.o compiles to about 6 kB (using gcc or Visual C on a i386), and
30  the sources are about 30 kB when packed with zip - so there's no more
31  excuse that your application doesn't support data compression :-)
32
33  For more information, documentation, example programs and other support
34  files (like Makefiles and build scripts) please download the full LZO
35  package from
36     http://www.oberhumer.com/opensource/lzo/
37
38  Have fun,
39   Markus
40
41
42  P.S. minilzo.c is generated automatically from the LZO sources and
43       therefore functionality is completely identical
44
45
46  Appendix A: building miniLZO
47  ----------------------------
48  miniLZO is written such a way that it should compile and run
49  out-of-the-box on most machines.
50
51  If you are running on a very unusual architecture and lzo_init() fails then
52  you should first recompile with `-DLZO_DEBUG' to see what causes the failure.
53  The most probable case is something like `sizeof(char *) != sizeof(long)'.
54  After identifying the problem you can compile by adding some defines
55  like `-DSIZEOF_CHAR_P=8' to your Makefile.
56
57  The best solution is (of course) using Autoconf - if your project uses
58  Autoconf anyway just add `-DMINILZO_HAVE_CONFIG_H' to your compiler
59  flags when compiling minilzo.c. See the LZO distribution for an example
60  how to set up configure.in.
61
62
63  Appendix B: list of public functions available in miniLZO
64  ---------------------------------------------------------
65  Library initialization
66     lzo_init()
67
68  Compression
69     lzo1x_1_compress()
70
71  Decompression
72     lzo1x_decompress()
73     lzo1x_decompress_safe()
74
75  Checksum functions
76     lzo_adler32()
77
78  Version functions
79     lzo_version()
80     lzo_version_string()
81     lzo_version_date()
82
83  Portable (but slow) string functions
84     lzo_memcmp()
85     lzo_memcpy()
86     lzo_memmove()
87     lzo_memset()
88
89
90  Appendix C: suggested macros for `configure.in' when using Autoconf
91  -------------------------------------------------------------------
92  Checks for typedefs and structures
93     AC_CHECK_TYPE(ptrdiff_t,long)
94     AC_TYPE_SIZE_T
95     AC_CHECK_SIZEOF(short)
96     AC_CHECK_SIZEOF(int)
97     AC_CHECK_SIZEOF(long)
98     AC_CHECK_SIZEOF(long long)
99     AC_CHECK_SIZEOF(__int64)
100     AC_CHECK_SIZEOF(void *)
101     AC_CHECK_SIZEOF(size_t)
102     AC_CHECK_SIZEOF(ptrdiff_t)
103
104  Checks for compiler characteristics
105     AC_C_CONST
106
107  Checks for library functions
108     AC_CHECK_FUNCS(memcmp memcpy memmove memset)
109
110
111  Appendix D: Copyright
112  ---------------------
113  LZO and miniLZO are Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002,
114  2003, 2004, 2005, 2006, 2007, 2008 Markus Franz Xaver Johannes Oberhumer
115
116  LZO and miniLZO are distributed under the terms of the GNU General
117  Public License (GPL).  See the file COPYING.
118
119  Special licenses for commercial and other applications which
120  are not willing to accept the GNU General Public License
121  are available by contacting the author.
122
123