endif
-.PHONY: default all lib lz4programs clean test versionsTest
+.PHONY: default all lib lz4programs clean test versionsTest examples
default: lz4programs
all: lib
- @cd $(PRGDIR); $(MAKE) -e all
+ @cd $(PRGDIR); $(MAKE) all
lib:
- @cd $(LZ4DIR); $(MAKE) -e all
+ @cd $(LZ4DIR); $(MAKE) all
lz4programs:
- @cd $(PRGDIR); $(MAKE) -e
+ @cd $(PRGDIR); $(MAKE)
clean:
@cd $(PRGDIR); $(MAKE) clean > $(VOID)
ifneq (,$(filter $(shell uname),Linux Darwin GNU/kFreeBSD GNU))
install:
- @cd $(LZ4DIR); $(MAKE) -e install
- @cd $(PRGDIR); $(MAKE) -e install
+ @cd $(LZ4DIR); $(MAKE) install
+ @cd $(PRGDIR); $(MAKE) install
uninstall:
@cd $(LZ4DIR); $(MAKE) uninstall
sudo $(MAKE) install
test:
- @cd $(PRGDIR); $(MAKE) -e test
+ @cd $(PRGDIR); $(MAKE) test
test-travis: $(TRAVIS_TARGET)
@cd cmake_unofficial; cmake CMakeLists.txt; $(MAKE)
gpptest: clean
- $(MAKE) all CC=g++ CFLAGS="-O3 -Wall -Wextra -Wundef -Wshadow -Wcast-align -Werror"
+ $(MAKE) all CC=g++ CFLAGS="-O3 -I../lib -Wall -Wextra -Wundef -Wshadow -Wcast-align -Werror"
clangtest: clean
- $(MAKE) all CC=clang CPPFLAGS="-Werror -Wconversion -Wno-sign-conversion"
+ CFLAGS="-O3 -Werror -Wconversion -Wno-sign-conversion" $(MAKE) all CC=clang
sanitize: clean
- $(MAKE) test CC=clang CPPFLAGS="-g -fsanitize=undefined" FUZZER_TIME="-T1mn" NB_LOOPS=-i1
+ CFLAGS="-g -fsanitize=undefined" $(MAKE) test CC=clang FUZZER_TIME="-T1mn" NB_LOOPS=-i1
staticAnalyze: clean
- CPPFLAGS=-g scan-build --status-bugs -v $(MAKE) all
+ CFLAGS=-g scan-build --status-bugs -v $(MAKE) all
armtest: clean
- cd lib; $(MAKE) -e all CC=arm-linux-gnueabi-gcc CPPFLAGS="-Werror"
- cd programs; $(MAKE) -e bins CC=arm-linux-gnueabi-gcc CPPFLAGS="-Werror"
+ cd lib; CFLAGS="-O3 -Werror" $(MAKE) all CC=arm-linux-gnueabi-gcc
+ cd programs; CFLAGS="-O3 -Werror" $(MAKE) bins CC=arm-linux-gnueabi-gcc
versionsTest: clean
@cd versionsTest; $(MAKE)
examples:
- cd lib; $(MAKE) -e
- cd programs; $(MAKE) -e lz4
- cd examples; $(MAKE) -e test
+ cd lib; $(MAKE)
+ cd programs; $(MAKE) lz4
+ cd examples; $(MAKE) test
prg-travis:
- @cd $(PRGDIR); $(MAKE) -e test-travis
+ @cd $(PRGDIR); $(MAKE) test-travis
endif
r132
-Improved: Small decompression speed boost (+5%)
+Improved: Small decompression speed boost (+4%)
+Makefile: Generate intermediate object files (*.o) for faster compilation on low power systems
r131
New : Dos/DJGPP target, thanks to Louis Santillan (#114)
LZ4 Library
-Copyright (c) 2011-2014, Yann Collet
+Copyright (c) 2011-2015, Yann Collet
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# ################################################################
# Version numbers
-VERSION ?= 132
-LIBVER_MAJOR=`sed -n '/define LZ4_VERSION_MAJOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < lz4.h`
-LIBVER_MINOR=`sed -n '/define LZ4_VERSION_MINOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < lz4.h`
-LIBVER_PATCH=`sed -n '/define LZ4_VERSION_RELEASE/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < lz4.h`
-LIBVER=$(LIBVER_MAJOR).$(LIBVER_MINOR).$(LIBVER_PATCH)
+VERSION?= 132
+LIBVER_MAJOR:=`sed -n '/define LZ4_VERSION_MAJOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < lz4.h`
+LIBVER_MINOR:=`sed -n '/define LZ4_VERSION_MINOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < lz4.h`
+LIBVER_PATCH:=`sed -n '/define LZ4_VERSION_RELEASE/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < lz4.h`
+LIBVER := $(LIBVER_MAJOR).$(LIBVER_MINOR).$(LIBVER_PATCH)
DESTDIR?=
PREFIX ?= /usr/local
CPPFLAGS= -DXXH_NAMESPACE=LZ4_
CFLAGS ?= -O3
CFLAGS += -std=c99 -Wall -Wextra -Wundef -Wshadow -Wcast-align -Wcast-qual -Wstrict-prototypes -pedantic
-LDFLAGS = -I.
-FLAGS = $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
+FLAGS = $(CPPFLAGS) $(CFLAGS) $(LDFLAGS)
LIBDIR?= $(PREFIX)/lib
INCLUDEDIR=$(PREFIX)/include
all: liblz4
-liblz4: lz4.c lz4hc.c lz4frame.c xxhash.c
+liblz4: lz4.c lz4hc.c lz4frame.c xxhash.c # need to compile once with -fPIC, and once without -fPIC
@echo compiling static library
- @$(CC) $(FLAGS) -c $^
- @$(AR) rcs liblz4.a lz4.o lz4hc.o lz4frame.o xxhash.o
+ @$(AR) rcs $@.a $^
@echo compiling dynamic library $(LIBVER)
@$(CC) $(FLAGS) -shared $^ -fPIC $(SONAME_FLAGS) -o $@.$(SHARED_EXT_VER)
@echo creating versioned links
# datagen : generates synthetic data samples for tests & benchmarks
# ##########################################################################
-RELEASE?= r132
+RELEASE ?= r132
-DESTDIR?=
-PREFIX ?= /usr/local
-CFLAGS ?= -O3
-CFLAGS += -std=c99 -Wall -Wextra -Wundef -Wshadow -Wcast-qual -Wcast-align -Wstrict-prototypes -pedantic -DLZ4_VERSION=\"$(RELEASE)\"
-FLAGS := -I../lib $(CPPFLAGS) $(CFLAGS) $(LDFLAGS)
+DESTDIR ?=
+PREFIX ?= /usr/local
+CFLAGS ?= -O3 # can select your own settings, for example : CFLAGS="-O2 -g" make
+CFLAGS += -I../lib -std=c99 -Wall -Wextra -Wundef -Wshadow -Wcast-qual -Wcast-align -Wstrict-prototypes -pedantic
+CPPFLAGS:= -DXXH_NAMESPACE=LZ4_ -DLZ4_VERSION=\"$(RELEASE)\"
+FLAGS := $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
-BINDIR := $(PREFIX)/bin
-MANDIR := $(PREFIX)/share/man/man1
-LZ4DIR := ../lib
+BINDIR := $(PREFIX)/bin
+MANDIR := $(PREFIX)/share/man/man1
+LZ4DIR := ../lib
# Define *.exe as extension for Windows systems
all: bins m32
-lz4: $(LZ4DIR)/lz4.c $(LZ4DIR)/lz4hc.c $(LZ4DIR)/lz4frame.c $(LZ4DIR)/xxhash.c bench.c lz4io.c lz4cli.c
- $(CC) $(FLAGS) $^ -o $@$(EXT)
+lz4: $(LZ4DIR)/lz4.o $(LZ4DIR)/lz4hc.o $(LZ4DIR)/lz4frame.o $(LZ4DIR)/xxhash.o bench.o lz4io.o lz4cli.o
+ $(CC) $(FLAGS) $^ -o $@$(EXT)
-lz4c : $(LZ4DIR)/lz4.c $(LZ4DIR)/lz4hc.c $(LZ4DIR)/lz4frame.c $(LZ4DIR)/xxhash.c bench.c lz4io.c lz4cli.c
- $(CC) $(FLAGS) -DENABLE_LZ4C_LEGACY_OPTIONS $^ -o $@$(EXT)
+lz4c : $(LZ4DIR)/lz4.o $(LZ4DIR)/lz4hc.o $(LZ4DIR)/lz4frame.o $(LZ4DIR)/xxhash.o bench.o lz4io.o lz4cli.o
+ $(CC) $(FLAGS) -DENABLE_LZ4C_LEGACY_OPTIONS $^ -o $@$(EXT)
lz4c32: $(LZ4DIR)/lz4.c $(LZ4DIR)/lz4hc.c $(LZ4DIR)/lz4frame.c $(LZ4DIR)/xxhash.c bench.c lz4io.c lz4cli.c
$(CC) -m32 $(FLAGS) -DENABLE_LZ4C_LEGACY_OPTIONS $^ -o $@$(EXT)
-fullbench : $(LZ4DIR)/lz4.c $(LZ4DIR)/lz4hc.c $(LZ4DIR)/lz4frame.c $(LZ4DIR)/xxhash.c fullbench.c
- $(CC) $(FLAGS) $^ -o $@$(EXT)
+fullbench : $(LZ4DIR)/lz4.o $(LZ4DIR)/lz4hc.o $(LZ4DIR)/lz4frame.o $(LZ4DIR)/xxhash.o fullbench.c
+ $(CC) $(FLAGS) $^ -o $@$(EXT)
fullbench32: $(LZ4DIR)/lz4.c $(LZ4DIR)/lz4hc.c $(LZ4DIR)/lz4frame.c $(LZ4DIR)/xxhash.c fullbench.c
$(CC) -m32 $(FLAGS) $^ -o $@$(EXT)
-fuzzer : $(LZ4DIR)/lz4.c $(LZ4DIR)/lz4hc.c $(LZ4DIR)/xxhash.c fuzzer.c
- $(CC) $(FLAGS) $^ -o $@$(EXT)
+fuzzer : $(LZ4DIR)/lz4.o $(LZ4DIR)/lz4hc.o $(LZ4DIR)/xxhash.o fuzzer.c
+ $(CC) $(FLAGS) $^ -o $@$(EXT)
fuzzer32: $(LZ4DIR)/lz4.c $(LZ4DIR)/lz4hc.c $(LZ4DIR)/xxhash.c fuzzer.c
$(CC) -m32 $(FLAGS) $^ -o $@$(EXT)
-frametest: $(LZ4DIR)/lz4frame.c $(LZ4DIR)/lz4.c $(LZ4DIR)/lz4hc.c $(LZ4DIR)/xxhash.c frametest.c
- $(CC) $(FLAGS) $^ -o $@$(EXT)
+frametest: $(LZ4DIR)/lz4frame.o $(LZ4DIR)/lz4.o $(LZ4DIR)/lz4hc.o $(LZ4DIR)/xxhash.o frametest.c
+ $(CC) $(FLAGS) $^ -o $@$(EXT)
frametest32: $(LZ4DIR)/lz4frame.c $(LZ4DIR)/lz4.c $(LZ4DIR)/lz4hc.c $(LZ4DIR)/xxhash.c frametest.c
$(CC) -m32 $(FLAGS) $^ -o $@$(EXT)
-datagen : datagen.c datagencli.c
- $(CC) $(FLAGS) $^ -o $@$(EXT)
+datagen : datagen.o datagencli.c
+ $(CC) $(FLAGS) $^ -o $@$(EXT)
clean:
@rm -f core *.o *.test tmp* \