xref: /freebsd/sys/contrib/zstd/doc/educational_decoder/Makefile (revision 9cbefe25d46756f342c7dd3d174d2d1103808f21)
1*9cbefe25SConrad Meyer# ################################################################
2*9cbefe25SConrad Meyer# Copyright (c) 2016-present, Yann Collet, Facebook, Inc.
3*9cbefe25SConrad Meyer# All rights reserved.
4*9cbefe25SConrad Meyer#
5*9cbefe25SConrad Meyer# This source code is licensed under both the BSD-style license (found in the
6*9cbefe25SConrad Meyer# LICENSE file in the root directory of this source tree) and the GPLv2 (found
7*9cbefe25SConrad Meyer# in the COPYING file in the root directory of this source tree).
8*9cbefe25SConrad Meyer# ################################################################
9*9cbefe25SConrad Meyer
10*9cbefe25SConrad MeyerZSTD ?= zstd   # note: requires zstd installation on local system
11*9cbefe25SConrad Meyer
12*9cbefe25SConrad MeyerUNAME?= $(shell uname)
13*9cbefe25SConrad Meyerifeq ($(UNAME), SunOS)
14*9cbefe25SConrad MeyerDIFF ?= gdiff
15*9cbefe25SConrad Meyerelse
16*9cbefe25SConrad MeyerDIFF ?= diff
17*9cbefe25SConrad Meyerendif
18*9cbefe25SConrad Meyer
190c16b537SWarner LoshHARNESS_FILES=*.c
200c16b537SWarner Losh
210c16b537SWarner LoshMULTITHREAD_LDFLAGS = -pthread
220c16b537SWarner LoshDEBUGFLAGS= -g -DZSTD_DEBUG=1
230c16b537SWarner LoshCPPFLAGS += -I$(ZSTDDIR) -I$(ZSTDDIR)/common -I$(ZSTDDIR)/compress \
240c16b537SWarner Losh            -I$(ZSTDDIR)/dictBuilder -I$(ZSTDDIR)/deprecated -I$(PRGDIR)
25*9cbefe25SConrad MeyerCFLAGS   ?= -O2
260c16b537SWarner LoshCFLAGS   += -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow                 \
27*9cbefe25SConrad Meyer            -Wstrict-aliasing=1 -Wswitch-enum                               \
28*9cbefe25SConrad Meyer            -Wredundant-decls -Wstrict-prototypes -Wundef                   \
290c16b537SWarner Losh            -Wvla -Wformat=2 -Winit-self -Wfloat-equal -Wwrite-strings      \
30*9cbefe25SConrad Meyer            -std=c99
310c16b537SWarner LoshCFLAGS   += $(DEBUGFLAGS)
320c16b537SWarner LoshCFLAGS   += $(MOREFLAGS)
330c16b537SWarner LoshFLAGS     = $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(MULTITHREAD_LDFLAGS)
340c16b537SWarner Losh
350c16b537SWarner Loshharness: $(HARNESS_FILES)
360c16b537SWarner Losh	$(CC) $(FLAGS) $^ -o $@
370c16b537SWarner Losh
380c16b537SWarner Loshclean:
39*9cbefe25SConrad Meyer	@$(RM) harness
40*9cbefe25SConrad Meyer	@$(RM) -rf harness.dSYM  # MacOS specific
410c16b537SWarner Losh
420c16b537SWarner Loshtest: harness
43*9cbefe25SConrad Meyer	#
44*9cbefe25SConrad Meyer	# Testing single-file decompression with educational decoder
45*9cbefe25SConrad Meyer	#
46*9cbefe25SConrad Meyer	@$(ZSTD) -f README.md -o tmp.zst
470c16b537SWarner Losh	@./harness tmp.zst tmp
48*9cbefe25SConrad Meyer	@$(DIFF) -s tmp README.md
49*9cbefe25SConrad Meyer	@$(RM) tmp*
50*9cbefe25SConrad Meyer	#
51*9cbefe25SConrad Meyer	# Testing dictionary decompression with education decoder
52*9cbefe25SConrad Meyer	#
53*9cbefe25SConrad Meyer	# note : files are presented multiple for training, to reach minimum threshold
54*9cbefe25SConrad Meyer	@$(ZSTD) --train harness.c zstd_decompress.c zstd_decompress.h README.md \
55*9cbefe25SConrad Meyer                  harness.c zstd_decompress.c zstd_decompress.h README.md \
56*9cbefe25SConrad Meyer                  harness.c zstd_decompress.c zstd_decompress.h README.md \
57*9cbefe25SConrad Meyer                  -o dictionary
58*9cbefe25SConrad Meyer	@$(ZSTD) -f README.md -D dictionary -o tmp.zst
590c16b537SWarner Losh	@./harness tmp.zst tmp dictionary
60*9cbefe25SConrad Meyer	@$(DIFF) -s tmp README.md
61*9cbefe25SConrad Meyer	@$(RM) tmp* dictionary
62*9cbefe25SConrad Meyer	@$(MAKE) clean
63