19cbefe25SConrad Meyer# ################################################################
25ff13fbcSAllan Jude# Copyright (c) Yann Collet, Facebook, Inc.
39cbefe25SConrad Meyer# All rights reserved.
49cbefe25SConrad Meyer#
59cbefe25SConrad Meyer# This source code is licensed under both the BSD-style license (found in the
69cbefe25SConrad Meyer# LICENSE file in the root directory of this source tree) and the GPLv2 (found
79cbefe25SConrad Meyer# in the COPYING file in the root directory of this source tree).
837f1f268SConrad Meyer# You may select, at your option, one of the above-listed licenses.
99cbefe25SConrad Meyer# ################################################################
109cbefe25SConrad Meyer
119cbefe25SConrad MeyerZSTD ?= zstd   # note: requires zstd installation on local system
129cbefe25SConrad Meyer
139cbefe25SConrad MeyerUNAME?= $(shell uname)
149cbefe25SConrad Meyerifeq ($(UNAME), SunOS)
159cbefe25SConrad MeyerDIFF ?= gdiff
169cbefe25SConrad Meyerelse
179cbefe25SConrad MeyerDIFF ?= diff
189cbefe25SConrad Meyerendif
199cbefe25SConrad Meyer
200c16b537SWarner LoshHARNESS_FILES=*.c
210c16b537SWarner Losh
220c16b537SWarner LoshMULTITHREAD_LDFLAGS = -pthread
230c16b537SWarner LoshDEBUGFLAGS= -g -DZSTD_DEBUG=1
240c16b537SWarner LoshCPPFLAGS += -I$(ZSTDDIR) -I$(ZSTDDIR)/common -I$(ZSTDDIR)/compress \
250c16b537SWarner Losh            -I$(ZSTDDIR)/dictBuilder -I$(ZSTDDIR)/deprecated -I$(PRGDIR)
269cbefe25SConrad MeyerCFLAGS   ?= -O2
270c16b537SWarner LoshCFLAGS   += -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow                 \
289cbefe25SConrad Meyer            -Wstrict-aliasing=1 -Wswitch-enum                               \
299cbefe25SConrad Meyer            -Wredundant-decls -Wstrict-prototypes -Wundef                   \
300c16b537SWarner Losh            -Wvla -Wformat=2 -Winit-self -Wfloat-equal -Wwrite-strings      \
319cbefe25SConrad Meyer            -std=c99
320c16b537SWarner LoshCFLAGS   += $(DEBUGFLAGS)
330c16b537SWarner LoshCFLAGS   += $(MOREFLAGS)
340c16b537SWarner LoshFLAGS     = $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(MULTITHREAD_LDFLAGS)
350c16b537SWarner Losh
360c16b537SWarner Loshharness: $(HARNESS_FILES)
370c16b537SWarner Losh	$(CC) $(FLAGS) $^ -o $@
380c16b537SWarner Losh
390c16b537SWarner Loshclean:
4037f1f268SConrad Meyer	@$(RM) harness *.o
419cbefe25SConrad Meyer	@$(RM) -rf harness.dSYM  # MacOS specific
420c16b537SWarner Losh
430c16b537SWarner Loshtest: harness
449cbefe25SConrad Meyer	#
459cbefe25SConrad Meyer	# Testing single-file decompression with educational decoder
469cbefe25SConrad Meyer	#
479cbefe25SConrad Meyer	@$(ZSTD) -f README.md -o tmp.zst
480c16b537SWarner Losh	@./harness tmp.zst tmp
499cbefe25SConrad Meyer	@$(DIFF) -s tmp README.md
509cbefe25SConrad Meyer	@$(RM) tmp*
519cbefe25SConrad Meyer	#
529cbefe25SConrad Meyer	# Testing dictionary decompression with education decoder
539cbefe25SConrad Meyer	#
549cbefe25SConrad Meyer	# note : files are presented multiple for training, to reach minimum threshold
559cbefe25SConrad Meyer	@$(ZSTD) --train harness.c zstd_decompress.c zstd_decompress.h README.md \
569cbefe25SConrad Meyer                  harness.c zstd_decompress.c zstd_decompress.h README.md \
579cbefe25SConrad Meyer                  harness.c zstd_decompress.c zstd_decompress.h README.md \
589cbefe25SConrad Meyer                  -o dictionary
599cbefe25SConrad Meyer	@$(ZSTD) -f README.md -D dictionary -o tmp.zst
600c16b537SWarner Losh	@./harness tmp.zst tmp dictionary
619cbefe25SConrad Meyer	@$(DIFF) -s tmp README.md
629cbefe25SConrad Meyer	@$(RM) tmp* dictionary
63