648db22b |
1 | # ################################################################ |
2 | # Copyright (c) Meta Platforms, Inc. and affiliates. |
3 | # All rights reserved. |
4 | # |
5 | # This source code is licensed under both the BSD-style license (found in the |
6 | # LICENSE file in the root directory of this source tree) and the GPLv2 (found |
7 | # in the COPYING file in the root directory of this source tree). |
8 | # You may select, at your option, one of the above-listed licenses. |
9 | # ################################################################ |
10 | |
11 | ZSTD ?= zstd # note: requires zstd installation on local system |
12 | |
13 | UNAME?= $(shell uname) |
14 | ifeq ($(UNAME), SunOS) |
15 | DIFF ?= gdiff |
16 | else |
17 | DIFF ?= diff |
18 | endif |
19 | |
20 | HARNESS_FILES=*.c |
21 | |
22 | MULTITHREAD_LDFLAGS = -pthread |
23 | DEBUGFLAGS= -g -DZSTD_DEBUG=1 |
24 | CPPFLAGS += -I$(ZSTDDIR) -I$(ZSTDDIR)/common -I$(ZSTDDIR)/compress \ |
25 | -I$(ZSTDDIR)/dictBuilder -I$(ZSTDDIR)/deprecated -I$(PRGDIR) |
26 | CFLAGS ?= -O2 |
27 | CFLAGS += -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow \ |
28 | -Wstrict-aliasing=1 -Wswitch-enum \ |
29 | -Wredundant-decls -Wstrict-prototypes -Wundef \ |
30 | -Wvla -Wformat=2 -Winit-self -Wfloat-equal -Wwrite-strings \ |
31 | -std=c99 |
32 | CFLAGS += $(DEBUGFLAGS) |
33 | CFLAGS += $(MOREFLAGS) |
34 | FLAGS = $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(MULTITHREAD_LDFLAGS) |
35 | |
36 | harness: $(HARNESS_FILES) |
37 | $(CC) $(FLAGS) $^ -o $@ |
38 | |
39 | clean: |
40 | @$(RM) harness *.o |
41 | @$(RM) -rf harness.dSYM # MacOS specific |
42 | |
43 | test: harness |
44 | # |
45 | # Testing single-file decompression with educational decoder |
46 | # |
47 | @$(ZSTD) -f README.md -o tmp.zst |
48 | @./harness tmp.zst tmp |
49 | @$(DIFF) -s tmp README.md |
50 | @$(RM) tmp* |
51 | # |
52 | # Testing dictionary decompression with education decoder |
53 | # |
54 | # note : files are presented multiple for training, to reach minimum threshold |
55 | @$(ZSTD) --train harness.c zstd_decompress.c zstd_decompress.h README.md \ |
56 | harness.c zstd_decompress.c zstd_decompress.h README.md \ |
57 | harness.c zstd_decompress.c zstd_decompress.h README.md \ |
58 | -o dictionary |
59 | @$(ZSTD) -f README.md -D dictionary -o tmp.zst |
60 | @./harness tmp.zst tmp dictionary |
61 | @$(DIFF) -s tmp README.md |
62 | @$(RM) tmp* dictionary |