From: Yann Collet Date: Sun, 17 Jul 2016 18:42:21 +0000 (+0200) Subject: moved `zstd.h` to `/lib` X-Git-Tag: v0.8.0^2~81 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=85f391996077c08d033f48564ccf6640a60a1aeb;p=thirdparty%2Fzstd.git moved `zstd.h` to `/lib` --- diff --git a/NEWS b/NEWS index dc9099a3f..1e7cefdca 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,6 @@ v0.7.5 Fixed : premature end of frame when zero-sized raw block, reported by Eric Biggers +Modified : minor compression level adaptations Update : specification, to v0.1.2 : max huffman depth at 11 bits v0.7.4 diff --git a/lib/Makefile b/lib/Makefile index 76731abc1..1f4f7eb85 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -31,9 +31,9 @@ # ################################################################ # Version numbers -LIBVER_MAJOR_SCRIPT:=`sed -n '/define ZSTD_VERSION_MAJOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < ./common/zstd.h` -LIBVER_MINOR_SCRIPT:=`sed -n '/define ZSTD_VERSION_MINOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < ./common/zstd.h` -LIBVER_PATCH_SCRIPT:=`sed -n '/define ZSTD_VERSION_RELEASE/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < ./common/zstd.h` +LIBVER_MAJOR_SCRIPT:=`sed -n '/define ZSTD_VERSION_MAJOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < ./zstd.h` +LIBVER_MINOR_SCRIPT:=`sed -n '/define ZSTD_VERSION_MINOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < ./zstd.h` +LIBVER_PATCH_SCRIPT:=`sed -n '/define ZSTD_VERSION_RELEASE/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < ./zstd.h` LIBVER_SCRIPT:= $(LIBVER_MAJOR_SCRIPT).$(LIBVER_MINOR_SCRIPT).$(LIBVER_PATCH_SCRIPT) LIBVER_MAJOR := $(shell echo $(LIBVER_MAJOR_SCRIPT)) LIBVER_MINOR := $(shell echo $(LIBVER_MINOR_SCRIPT)) @@ -46,7 +46,7 @@ PREFIX ?= /usr/local LIBDIR ?= $(PREFIX)/lib INCLUDEDIR=$(PREFIX)/include -CPPFLAGS= -I./common -DXXH_NAMESPACE=ZSTD_ +CPPFLAGS= -I. -I./common -DXXH_NAMESPACE=ZSTD_ CFLAGS ?= -O3 CFLAGS += -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow -Wstrict-aliasing=1 -Wswitch-enum -Wdeclaration-after-statement -Wstrict-prototypes -Wundef FLAGS = $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(MOREFLAGS) @@ -117,7 +117,7 @@ install: libzstd libzstd.pc @cp -a libzstd.$(SHARED_EXT) $(DESTDIR)$(LIBDIR) @cp -a libzstd.pc $(DESTDIR)$(LIBDIR)/pkgconfig/ @install -m 644 libzstd.a $(DESTDIR)$(LIBDIR)/libzstd.a - @install -m 644 common/zstd.h $(DESTDIR)$(INCLUDEDIR)/zstd.h + @install -m 644 zstd.h $(DESTDIR)$(INCLUDEDIR)/zstd.h @install -m 644 common/zbuff.h $(DESTDIR)$(INCLUDEDIR)/zbuff.h @install -m 644 dictBuilder/zdict.h $(DESTDIR)$(INCLUDEDIR)/zdict.h @echo zstd static and shared library installed diff --git a/lib/README.md b/lib/README.md index 935706506..2c24c254b 100644 --- a/lib/README.md +++ b/lib/README.md @@ -1,62 +1,51 @@ zstd - library files ================================ -The __lib__ directory contains several files, but depending on target use case, some of them may not be necessary. +The __lib__ directory contains several directories. +Depending on target use case, it's enough to include only files from relevant directories. -#### Minimal library files -To build the zstd library the following files are required: +#### API -- [common/bitstream.h](common/bitstream.h) -- [common/error_private.h](common/error_private.h) -- [common/error_public.h](common/error_public.h) -- common/fse.h -- common/fse_decompress.c -- common/huf.h -- [common/mem.h](common/mem.h) -- [common/zstd.h] -- common/zstd_internal.h -- compress/fse_compress.c -- compress/huf_compress.c -- compress/zstd_compress.c -- compress/zstd_opt.h -- decompress/huf_decompress.c -- decompress/zstd_decompress.c +Zstandard's stable API is exposed within [zstd.h](zstd.h), +at the root of `lib` directory. -Stable API is exposed in [common/zstd.h]. -Advanced and experimental API can be enabled by defining `ZSTD_STATIC_LINKING_ONLY`. -Never use them with a dynamic library, as their definition may change in future versions. -[common/zstd.h]: common/zstd.h +#### Advanced API +Some additional API may be useful if you're looking into advanced features : +- common/error_public.h : transform function result into an `enum`, + for precise error handling. +- ZSTD_STATIC_LINKING_ONLY : if you define this macro _before_ including `zstd.h`, + it will give access to advanced and experimental API. + These APIs shall ___never be used with dynamic library___ ! + They are not "stable", their definition may change in the future. + Only static linking is allowed. -#### Separate compressor and decompressor -To build a separate zstd compressor all files from `common/` and `compressor/` directories are required. -In a similar way to build a separate zstd decompressor all files from `common/` and `decompressor/` directories are needed. +#### Modular build +Directory `common/` is required in all circumstances. +You can select to support compression only, by just adding files from the `compress/` directory, +In a similar way, you can build a decompressor-only library with the `decompress/` directory. -#### Buffered streaming +Other optional functionalities provided are : -This complementary API makes streaming integration easier. -It is used by `zstd` command line utility, and [7zip plugin](http://mcmilk.de/projects/7-Zip-ZStd) : +- `dictBuilder/` : this directory contains source files required to create dictionaries. + The API can be consulted in `dictBuilder/zdict.h`. + It also depends on `common/` and `compress/` . -- common/zbuff.h -- compress/zbuff_compress.c -- decompress/zbuff_decompress.c +- `legacy/` : this directory contains source code to decompress previous versions of Zstd, + starting from `v0.1`. The main API can be consulted in `legacy/zstd_legacy.h`. + Note that it's required to compile the library with `ZSTD_LEGACY_SUPPORT = 1` . + Advanced API from each version can be found in its relevant header file. + For example, advanced API for version `v0.4` is in `zstd_v04.h` . + It also depends on `common/` and `decompress/` . -#### Dictionary builder +#### Streaming API -In order to create dictionaries from some training sets, -it's needed to include all files from [dictBuilder directory](dictBuilder/) - - -#### Legacy support - -Zstandard can decode previous formats, starting from v0.1. -Support for these format is provided in [folder legacy](legacy/). -It's also required to compile the library with `ZSTD_LEGACY_SUPPORT = 1`. +Streaming is currently provided by `common/zbuff.h`. #### Miscellaneous @@ -64,5 +53,5 @@ It's also required to compile the library with `ZSTD_LEGACY_SUPPORT = 1`. The other files are not source code. There are : - LICENSE : contains the BSD license text - - Makefile : script to compile or install zstd library (static or dynamic) - - libzstd.pc.in : for pkg-config (make install) + - Makefile : script to compile or install zstd library (static and dynamic) + - libzstd.pc.in : for pkg-config (`make install`) diff --git a/lib/common/zstd.h b/lib/zstd.h similarity index 100% rename from lib/common/zstd.h rename to lib/zstd.h diff --git a/programs/Makefile b/programs/Makefile index a55268a01..796742693 100644 --- a/programs/Makefile +++ b/programs/Makefile @@ -38,7 +38,7 @@ MANDIR = $(PREFIX)/share/man/man1 ZSTDDIR = ../lib -CPPFLAGS= -I$(ZSTDDIR)/common -I$(ZSTDDIR)/dictBuilder -DXXH_NAMESPACE=ZSTD_ +CPPFLAGS= -I$(ZSTDDIR) -I$(ZSTDDIR)/common -I$(ZSTDDIR)/dictBuilder -DXXH_NAMESPACE=ZSTD_ CFLAGS ?= -O3 # -falign-loops=32 # not always beneficial CFLAGS += -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow -Wstrict-aliasing=1 -Wswitch-enum -Wdeclaration-after-statement -Wstrict-prototypes -Wundef FLAGS = $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(MOREFLAGS)