-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
134 lines (109 loc) · 4.49 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# ################################################################
# LZ4 Makefile
# Copyright (C) Yann Collet 2011-2013
# GPL v2 License
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# You can contact the author at :
# - LZ4 source repository : http://code.google.com/p/lz4/
# - LZ4 forum froup : https://groups.google.com/forum/#!forum/lz4c
# ################################################################
# lz4 : Command Line Utility, supporting gzip-like arguments
# lz4c : CLU, supporting also legacy lz4demo arguments
# lz4c32: Same as lz4c, but forced to compile in 32-bits mode
# fuzzer : Test tool, to check lz4 integrity on target platform
# fuzzer32: Same as fuzzer, but forced to compile in 32-bits mode
# fullbench : Precisely measure speed for each LZ4 function variant
# fullbench32: Same as fullbench, but forced to compile in 32-bits mode
# ################################################################
RELEASE=r107
DESTDIR=
PREFIX=${DESTDIR}/usr
BINDIR=$(PREFIX)/bin
MANDIR=$(PREFIX)/share/man/man1
DISTRIBNAME=lz4-$(RELEASE).tar.gz
CC=gcc
CFLAGS=-I. -std=c99 -Wall -W -Wundef
# Define *.exe as extension for Windows systems
# ifeq ($(OS),Windows_NT)
ifneq (,$(filter Windows%,$(OS)))
EXT =.exe
else
EXT =
endif
TEXT = bench.c bench.h fullbench.c fuzzer.c lz4.1 lz4.c lz4cli.c \
lz4_format_description.txt lz4.h lz4hc.c lz4hc.h \
Makefile xxhash.c xxhash.h \
NEWS COPYING \
cmake/CMakeLists.txt cmake/pack/release_COPYING.txt \
cmake/pack/CMakeLists.txt
NONTEXT = LZ4_Streaming_Format.odt
SOURCES = $(TEXT) $(NONTEXT)
default: lz4 lz4c
all: lz4 lz4c lz4c32 fuzzer fuzzer32 fullbench fullbenchK fullbenchK3 fullbenchO2 fullbenchO1 fullbench-dbg fullbench32
lz4: lz4.c lz4hc.c bench.c xxhash.c lz4cli.c
$(CC) -O3 $(CFLAGS) -DDISABLE_LZ4C_LEGACY_OPTIONS $^ -o $@$(EXT)
lz4c : lz4.c lz4hc.c bench.c xxhash.c lz4cli.c
$(CC) -O3 $(CFLAGS) $^ -o $@$(EXT)
lz4c32: lz4.c lz4hc.c bench.c xxhash.c lz4cli.c
$(CC) -m32 -O3 $(CFLAGS) $^ -o $@$(EXT)
fuzzer : lz4.c lz4hc.c fuzzer.c
@echo fuzzer is a test tool to check lz4 integrity on target platform
$(CC) -O3 $(CFLAGS) $^ -o $@$(EXT)
fuzzer32: lz4.c lz4hc.c fuzzer.c
$(CC) -m32 -O3 $(CFLAGS) $^ -o $@$(EXT)
fullbench : lz4.c lz4hc.c lzjb.c lzxx.c xxhash.c fullbench.c
$(CC) -O3 $(CFLAGS) $^ -o $@$(EXT)
fullbenchK : lz4.c lz4hc.c lzjb.c lzxx.c xxhash.c fullbench.c
$(CC) -O2 -DKERN_DEOPT $(CFLAGS) $^ -o $@$(EXT)
fullbenchK3 : lz4.c lz4hc.c lzjb.c lzxx.c xxhash.c fullbench.c
$(CC) -O3 -DKERN_DEOPT $(CFLAGS) $^ -o $@$(EXT)
fullbenchO2 : lz4.c lz4hc.c lzjb.c lzxx.c xxhash.c fullbench.c
$(CC) -O2 $(CFLAGS) $^ -o $@$(EXT)
fullbenchO1 : lz4.c lz4hc.c lzjb.c lzxx.c xxhash.c fullbench.c
$(CC) -O1 -ggdb $(CFLAGS) $^ -o $@$(EXT)
fullbench-dbg : lz4.c lz4hc.c lzjb.c lzxx.c xxhash.c fullbench.c
$(CC) -ggdb $(CFLAGS) $^ -o $@$(EXT)
fullbench32: lz4.c lz4hc.c lzjb.c lzxx.c xxhash.c fullbench.c
$(CC) -m32 -O3 $(CFLAGS) $^ -o $@$(EXT)
clean:
@rm -f core *.o lz4$(EXT) lz4c$(EXT) lz4c32$(EXT) \
fuzzer$(EXT) fuzzer32$(EXT) fullbench$(EXT) fullbench32$(EXT) fullbenchO2$(EXT) fullbenchO1$(EXT) fullbench-dbg$(EXT) fullbenchK$(EXT) fullbenchK3$(EXT)
@echo Cleaning completed
ifeq ($(shell uname),Linux)
install: lz4 lz4c
@install -d -m 755 $(BINDIR)/ $(MANDIR)/
@install -m 755 lz4 $(BINDIR)/lz4
@install -m 755 lz4c $(BINDIR)/lz4c
@install -m 644 lz4.1 $(MANDIR)/lz4.1
uninstall:
[ -x $(BINDIR)/lz4 ] && rm -f $(BINDIR)/lz4
[ -x $(BINDIR)/lz4c ] && rm -f $(BINDIR)/lz4c
[ -f $(MANDIR)/lz4.1 ] && rm -f $(MANDIR)/lz4.1
dist: clean
@install -dD -m 700 lz4-$(RELEASE)/cmake/pack/
@for f in $(TEXT); do \
tr -d '\r' < $$f > .tmp; \
install -m 600 .tmp lz4-$(RELEASE)/$$f; \
done
@rm .tmp
@for f in $(NONTEXT); do \
install -m 600 $$f lz4-$(RELEASE)/$$f; \
done
@tar -czf $(DISTRIBNAME) lz4-$(RELEASE)/
@rm -rf lz4-$(RELEASE)
@echo Distribution $(DISTRIBNAME) built
endif