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