summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYann Collet <yann.collet.73@gmail.com>2015-08-15 16:21:45 (GMT)
committerYann Collet <yann.collet.73@gmail.com>2015-08-15 16:21:45 (GMT)
commit60119e2585fd652a9c6dfd06aafa4c8f49208501 (patch)
tree588a5abaa5f485da55a91b2e7bb63655f5acbf5d
parent9517bd9234f1a8978490b04719e6b704fb8e3686 (diff)
downloadlz4-60119e2585fd652a9c6dfd06aafa4c8f49208501.zip
lz4-60119e2585fd652a9c6dfd06aafa4c8f49208501.tar.gz
lz4-60119e2585fd652a9c6dfd06aafa4c8f49208501.tar.bz2
Makefile : generates *.o for faster processing
-rw-r--r--Makefile34
-rw-r--r--NEWS3
-rw-r--r--lib/LICENSE4
-rw-r--r--lib/Makefile18
-rw-r--r--programs/Makefile43
5 files changed, 51 insertions, 51 deletions
diff --git a/Makefile b/Makefile
index b69c930..ec2233c 100644
--- a/Makefile
+++ b/Makefile
@@ -58,18 +58,18 @@ VOID = /dev/null
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)
@@ -84,8 +84,8 @@ clean:
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
@@ -95,7 +95,7 @@ travis-install:
sudo $(MAKE) install
test:
- @cd $(PRGDIR); $(MAKE) -e test
+ @cd $(PRGDIR); $(MAKE) test
test-travis: $(TRAVIS_TARGET)
@@ -103,30 +103,30 @@ cmake:
@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
diff --git a/NEWS b/NEWS
index 88512b0..021d042 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,6 @@
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)
diff --git a/lib/LICENSE b/lib/LICENSE
index b566df3..bd3c80d 100644
--- a/lib/LICENSE
+++ b/lib/LICENSE
@@ -1,5 +1,5 @@
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,
@@ -21,4 +21,4 @@ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
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.
diff --git a/lib/Makefile b/lib/Makefile
index de410df..77d787e 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -31,19 +31,18 @@
# ################################################################
# 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
@@ -67,10 +66,9 @@ default: liblz4
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
diff --git a/programs/Makefile b/programs/Makefile
index 3e37260..0a6f91a 100644
--- a/programs/Makefile
+++ b/programs/Makefile
@@ -34,17 +34,18 @@
# 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
@@ -72,35 +73,35 @@ bins: lz4 lz4c fullbench fuzzer frametest datagen
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* \