Permalink
Browse files

lzo: Update to 2.08

Fixes issue 142
  • Loading branch information...
mandyke
mandyke committed Jul 29, 2014
1 parent 7e39d4f commit 8f3ae93635a849c880fb36fa919ae61e2bcced8e
Showing with 8,501 additions and 2,268 deletions.
  1. +5 −1 Makefile.in
  2. +3 −0 configure.ac
  3. +123 −0 lzo/README.LZO
  4. +248 −255 lzo/lzoconf.h
  5. +2,998 −0 lzo/lzodefs.h
  6. +5,113 −1,995 lzo/minilzo.c
  7. +11 −17 lzo/minilzo.h
@@ -118,7 +118,11 @@ dist_files = \

dist_dirs = m4 include_server/test_data

dist_lzo = lzo/minilzo.c lzo/minilzo.h lzo/lzoconf.h lzo/.stamp-conf.in
dist_lzo = lzo/minilzo.c \
lzo/minilzo.h \
lzo/lzoconf.h \
lzo/lzodefs.h \
lzo/.stamp-conf.in

dist_contrib = contrib/distcc-absolutify \
contrib/distcc.sh \
@@ -224,6 +224,9 @@ AC_ISC_POSIX
# variadic macros. If we can disable it, do so.


# This is needed for our included version of lzo.
CPPFLAGS="$CPPFLAGS -DMINILZO_HAVE_CONFIG_H"

# This is needed for our included version of popt.
# TODO(csilvers): figure out what that above comment means, and if it's true.
CPPFLAGS="$CPPFLAGS -DHAVE_CONFIG_H"
@@ -0,0 +1,123 @@

============================================================================
miniLZO -- mini subset of the LZO real-time data compression library
============================================================================

Author : Markus Franz Xaver Johannes Oberhumer
<markus@oberhumer.com>
http://www.oberhumer.com/opensource/lzo/
Version : 2.08
Date : 29 Jun 2014

I've created miniLZO for projects where it is inconvenient to
include (or require) the full LZO source code just because you
want to add a little bit of data compression to your application.

miniLZO implements the LZO1X-1 compressor and both the standard and
safe LZO1X decompressor. Apart from fast compression it also useful
for situations where you want to use pre-compressed data files (which
must have been compressed with LZO1X-999).

miniLZO consists of one C source file and three header files:
minilzo.c
minilzo.h, lzoconf.h, lzodefs.h

To use miniLZO just copy these files into your source directory, add
minilzo.c to your Makefile and #include minilzo.h from your program.
Note: you also must distribute this file ('README.LZO') with your project.

minilzo.o compiles to about 6 KiB (using gcc or Visual C on an i386), and
the sources are about 30 KiB when packed with zip - so there's no more
excuse that your application doesn't support data compression :-)

For more information, documentation, example programs and other support
files (like Makefiles and build scripts) please download the full LZO
package from
http://www.oberhumer.com/opensource/lzo/

Have fun,
Markus


P.S. minilzo.c is generated automatically from the LZO sources and
therefore functionality is completely identical


Appendix A: building miniLZO
----------------------------
miniLZO is written such a way that it should compile and run
out-of-the-box on most machines.

If you are running on a very unusual architecture and lzo_init() fails then
you should first recompile with '-DLZO_DEBUG' to see what causes the failure.
The most probable case is something like 'sizeof(void *) != sizeof(size_t)'.
After identifying the problem you can compile by adding some defines
like '-DSIZEOF_VOID_P=8' to your Makefile.

The best solution is (of course) using Autoconf - if your project uses
Autoconf anyway just add '-DMINILZO_HAVE_CONFIG_H' to your compiler
flags when compiling minilzo.c. See the LZO distribution for an example
how to set up configure.ac.


Appendix B: list of public functions available in miniLZO
---------------------------------------------------------
Library initialization
lzo_init()

Compression
lzo1x_1_compress()

Decompression
lzo1x_decompress()
lzo1x_decompress_safe()

Checksum functions
lzo_adler32()

Version functions
lzo_version()
lzo_version_string()
lzo_version_date()

Portable (but slow) string functions
lzo_memcmp()
lzo_memcpy()
lzo_memmove()
lzo_memset()


Appendix C: suggested macros for 'configure.ac' when using Autoconf
-------------------------------------------------------------------
Checks for typedefs and structures
AC_CHECK_TYPE(ptrdiff_t,long)
AC_TYPE_SIZE_T
AC_CHECK_SIZEOF(short)
AC_CHECK_SIZEOF(int)
AC_CHECK_SIZEOF(long)
AC_CHECK_SIZEOF(long long)
AC_CHECK_SIZEOF(__int64)
AC_CHECK_SIZEOF(void *)
AC_CHECK_SIZEOF(size_t)
AC_CHECK_SIZEOF(ptrdiff_t)

Checks for compiler characteristics
AC_C_CONST

Checks for library functions
AC_CHECK_FUNCS(memcmp memcpy memmove memset)


Appendix D: Copyright
---------------------
LZO and miniLZO are Copyright (C) 1996-2014 Markus Franz Xaver Oberhumer
All Rights Reserved.

LZO and miniLZO are distributed under the terms of the GNU General
Public License (GPL). See the file COPYING.

Special licenses for commercial and other applications which
are not willing to accept the GNU General Public License
are available by contacting the author.


Oops, something went wrong.

0 comments on commit 8f3ae93

Please sign in to comment.