59a7116cc2
benchfn used to rely on mem.h, and util, which in turn relied on platform.h. Using benchfn outside of zstd required to bring all these dependencies. Now, dependency is reduced to timefn only. This required to create a separate timefn from util, and rewrite benchfn and timefn to no longer need mem.h. Separating timefn from util has a wide effect accross the code base, as usage of time functions is widespread. A lot of build scripts had to be updated to also include timefn.
77 lines
2.3 KiB
Makefile
77 lines
2.3 KiB
Makefile
|
|
ZSTDDIR = ../../lib
|
|
PRGDIR = ../../programs
|
|
ZSTDCOMMON_FILES := $(ZSTDDIR)/common/*.c
|
|
ZSTDCOMP_FILES := $(ZSTDDIR)/compress/*.c
|
|
ZSTDDECOMP_FILES := $(ZSTDDIR)/decompress/*.c
|
|
ZSTD_FILES := $(ZSTDDECOMP_FILES) $(ZSTDCOMMON_FILES) $(ZSTDCOMP_FILES)
|
|
|
|
MULTITHREAD_LDFLAGS = -pthread
|
|
DEBUGFLAGS= -g -DZSTD_DEBUG=1
|
|
CPPFLAGS += -I$(ZSTDDIR) -I$(ZSTDDIR)/common -I$(ZSTDDIR)/compress \
|
|
-I$(ZSTDDIR)/dictBuilder -I$(ZSTDDIR)/deprecated -I$(PRGDIR)
|
|
CFLAGS ?= -O3
|
|
CFLAGS += -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow \
|
|
-Wstrict-aliasing=1 -Wswitch-enum -Wdeclaration-after-statement \
|
|
-Wstrict-prototypes -Wundef \
|
|
-Wvla -Wformat=2 -Winit-self -Wfloat-equal -Wwrite-strings \
|
|
-Wredundant-decls
|
|
CFLAGS += $(DEBUGFLAGS)
|
|
CFLAGS += $(MOREFLAGS)
|
|
FLAGS = $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(MULTITHREAD_LDFLAGS)
|
|
|
|
all: adapt datagen
|
|
|
|
adapt: $(ZSTD_FILES) $(PRGDIR)/util.c $(PRGDIR)/timefn.c adapt.c
|
|
$(CC) $(FLAGS) $^ -o $@
|
|
|
|
adapt-debug: $(ZSTD_FILES) $(PRGDIR)/util.c $(PRGDIR)/timefn.c adapt.c
|
|
$(CC) $(FLAGS) -DDEBUG_MODE=2 $^ -o adapt
|
|
|
|
datagen : $(PRGDIR)/datagen.c datagencli.c
|
|
$(CC) $(FLAGS) $^ -o $@
|
|
|
|
test-adapt-correctness: datagen adapt
|
|
@./test-correctness.sh
|
|
@echo "test correctness complete"
|
|
|
|
test-adapt-performance: datagen adapt
|
|
@./test-performance.sh
|
|
@echo "test performance complete"
|
|
|
|
clean:
|
|
@$(RM) -f adapt datagen
|
|
@$(RM) -rf *.dSYM
|
|
@$(RM) -f tmp*
|
|
@$(RM) -f tests/*.zst
|
|
@$(RM) -f tests/tmp*
|
|
@echo "finished cleaning"
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# make install is validated only for Linux, macOS, BSD, Hurd and Solaris targets
|
|
#-----------------------------------------------------------------------------
|
|
ifneq (,$(filter $(shell uname),Linux Darwin GNU/kFreeBSD GNU OpenBSD FreeBSD NetBSD DragonFly SunOS))
|
|
|
|
ifneq (,$(filter $(shell uname),SunOS))
|
|
INSTALL ?= ginstall
|
|
else
|
|
INSTALL ?= install
|
|
endif
|
|
|
|
PREFIX ?= /usr/local
|
|
DESTDIR ?=
|
|
BINDIR ?= $(PREFIX)/bin
|
|
|
|
INSTALL_PROGRAM ?= $(INSTALL) -m 755
|
|
|
|
install: adapt
|
|
@echo Installing binaries
|
|
@$(INSTALL) -d -m 755 $(DESTDIR)$(BINDIR)/
|
|
@$(INSTALL_PROGRAM) adapt $(DESTDIR)$(BINDIR)/zstd-adaptive
|
|
@echo zstd-adaptive installation completed
|
|
|
|
uninstall:
|
|
@$(RM) $(DESTDIR)$(BINDIR)/zstd-adaptive
|
|
@echo zstd-adaptive programs successfully uninstalled
|
|
endif
|