better usage of default build rules
This commit is contained in:
+37
-31
@@ -25,6 +25,7 @@ PYTHON ?= python3
|
|||||||
TESTARTEFACT := versionsTest
|
TESTARTEFACT := versionsTest
|
||||||
|
|
||||||
DEBUGLEVEL ?= 1
|
DEBUGLEVEL ?= 1
|
||||||
|
export DEBUGLEVEL # transmit value to sub-makefiles
|
||||||
DEBUGFLAGS = -g -DDEBUGLEVEL=$(DEBUGLEVEL)
|
DEBUGFLAGS = -g -DDEBUGLEVEL=$(DEBUGLEVEL)
|
||||||
CPPFLAGS += -I$(ZSTDDIR) -I$(ZSTDDIR)/common -I$(ZSTDDIR)/compress \
|
CPPFLAGS += -I$(ZSTDDIR) -I$(ZSTDDIR)/common -I$(ZSTDDIR)/compress \
|
||||||
-I$(ZSTDDIR)/dictBuilder -I$(ZSTDDIR)/deprecated -I$(PRGDIR)
|
-I$(ZSTDDIR)/dictBuilder -I$(ZSTDDIR)/deprecated -I$(PRGDIR)
|
||||||
@@ -77,21 +78,23 @@ FUZZERTEST ?= -T200s
|
|||||||
ZSTDRTTEST = --test-large-data
|
ZSTDRTTEST = --test-large-data
|
||||||
DECODECORPUS_TESTTIME ?= -T30
|
DECODECORPUS_TESTTIME ?= -T30
|
||||||
|
|
||||||
.PHONY: default all all32 allnothread dll clean test test32 test-all versionsTest
|
.PHONY: default
|
||||||
|
|
||||||
default: fullbench
|
default: fullbench
|
||||||
@echo $(ZSTDMT_OBJECTS)
|
|
||||||
|
|
||||||
|
.PHONY: all
|
||||||
all: fullbench fuzzer zstreamtest paramgrill datagen decodecorpus roundTripCrash \
|
all: fullbench fuzzer zstreamtest paramgrill datagen decodecorpus roundTripCrash \
|
||||||
fullbench-lib poolTests
|
fullbench-lib poolTests
|
||||||
|
|
||||||
|
.PHONY: all32
|
||||||
all32: fullbench32 fuzzer32 zstreamtest32
|
all32: fullbench32 fuzzer32 zstreamtest32
|
||||||
|
|
||||||
|
.PHONY: allnothread
|
||||||
allnothread: MULTITHREAD_CPP=
|
allnothread: MULTITHREAD_CPP=
|
||||||
allnothread: MULTITHREAD_LD=
|
allnothread: MULTITHREAD_LD=
|
||||||
allnothread: fullbench fuzzer paramgrill datagen decodecorpus
|
allnothread: fullbench fuzzer paramgrill datagen decodecorpus
|
||||||
|
|
||||||
# note : broken : requires symbols unavailable from dynamic library
|
# note : broken : requires symbols unavailable from dynamic library
|
||||||
|
.PHONY: dll
|
||||||
dll: fuzzer-dll zstreamtest-dll
|
dll: fuzzer-dll zstreamtest-dll
|
||||||
|
|
||||||
.PHONY: zstd zstd32 zstd-nolegacy # only external makefile knows how to build or update them
|
.PHONY: zstd zstd32 zstd-nolegacy # only external makefile knows how to build or update them
|
||||||
@@ -100,13 +103,13 @@ zstd zstd32 zstd-nolegacy:
|
|||||||
|
|
||||||
.PHONY: libzstd
|
.PHONY: libzstd
|
||||||
libzstd :
|
libzstd :
|
||||||
$(MAKE) -C $(ZSTDDIR) libzstd
|
$(MAKE) -C $(ZSTDDIR) libzstd MOREFLAGS+="$(DEBUGFLAGS)"
|
||||||
|
|
||||||
%-dll : libzstd
|
%-dll : libzstd
|
||||||
%-dll : LDFLAGS += -L$(ZSTDDIR) -lzstd
|
%-dll : LDFLAGS += -L$(ZSTDDIR) -lzstd
|
||||||
|
|
||||||
.PHONY: zstd-staticLib
|
.PHONY: $(ZSTDDIR)/libzstd.a
|
||||||
zstd-staticLib :
|
$(ZSTDDIR)/libzstd.a :
|
||||||
$(MAKE) -C $(ZSTDDIR) libzstd.a
|
$(MAKE) -C $(ZSTDDIR) libzstd.a
|
||||||
|
|
||||||
zstdm_%.o : $(ZSTDDIR)/common/%.c
|
zstdm_%.o : $(ZSTDDIR)/common/%.c
|
||||||
@@ -135,12 +138,11 @@ fullbench fullbench32 : LDFLAGS += $(MULTITHREAD_LD)
|
|||||||
fullbench fullbench32 : DEBUGFLAGS = -DNDEBUG # turn off assert() for speed measurements
|
fullbench fullbench32 : DEBUGFLAGS = -DNDEBUG # turn off assert() for speed measurements
|
||||||
fullbench fullbench32 : $(ZSTD_FILES)
|
fullbench fullbench32 : $(ZSTD_FILES)
|
||||||
fullbench fullbench32 : $(PRGDIR)/datagen.c $(PRGDIR)/util.c $(PRGDIR)/timefn.c $(PRGDIR)/benchfn.c fullbench.c
|
fullbench fullbench32 : $(PRGDIR)/datagen.c $(PRGDIR)/util.c $(PRGDIR)/timefn.c $(PRGDIR)/benchfn.c fullbench.c
|
||||||
$(CC) $(FLAGS) $^ -o $@$(EXT)
|
$(LINK.c) $^ -o $@$(EXT)
|
||||||
|
|
||||||
fullbench-lib : CPPFLAGS += -DXXH_NAMESPACE=ZSTD_
|
fullbench-lib : CPPFLAGS += -DXXH_NAMESPACE=ZSTD_
|
||||||
fullbench-lib : zstd-staticLib
|
fullbench-lib : $(PRGDIR)/datagen.c $(PRGDIR)/util.c $(PRGDIR)/timefn.c $(PRGDIR)/benchfn.c $(ZSTDDIR)/libzstd.a fullbench.c
|
||||||
fullbench-lib : $(PRGDIR)/datagen.c $(PRGDIR)/util.c $(PRGDIR)/timefn.c $(PRGDIR)/benchfn.c fullbench.c
|
$(LINK.c) $^ -o $@$(EXT)
|
||||||
$(CC) $(FLAGS) $(filter %.c,$^) -o $@$(EXT) $(ZSTDDIR)/libzstd.a
|
|
||||||
|
|
||||||
# note : broken : requires symbols unavailable from dynamic library
|
# note : broken : requires symbols unavailable from dynamic library
|
||||||
fullbench-dll: $(PRGDIR)/datagen.c $(PRGDIR)/util.c $(PRGDIR)/benchfn.c $(PRGDIR)/timefn.c fullbench.c
|
fullbench-dll: $(PRGDIR)/datagen.c $(PRGDIR)/util.c $(PRGDIR)/benchfn.c $(PRGDIR)/timefn.c fullbench.c
|
||||||
@@ -153,7 +155,7 @@ fuzzer32: CFLAGS += -m32
|
|||||||
fuzzer : $(ZSTDMT_OBJECTS)
|
fuzzer : $(ZSTDMT_OBJECTS)
|
||||||
fuzzer32: $(ZSTD_FILES)
|
fuzzer32: $(ZSTD_FILES)
|
||||||
fuzzer fuzzer32 : $(ZDICT_FILES) $(PRGDIR)/util.c $(PRGDIR)/timefn.c $(PRGDIR)/datagen.c fuzzer.c
|
fuzzer fuzzer32 : $(ZDICT_FILES) $(PRGDIR)/util.c $(PRGDIR)/timefn.c $(PRGDIR)/datagen.c fuzzer.c
|
||||||
$(CC) $(FLAGS) $^ -o $@$(EXT)
|
$(LINK.c) $^ -o $@$(EXT)
|
||||||
|
|
||||||
# note : broken : requires symbols unavailable from dynamic library
|
# note : broken : requires symbols unavailable from dynamic library
|
||||||
fuzzer-dll : $(ZSTDDIR)/common/xxhash.c $(PRGDIR)/util.c $(PRGDIR)/timefn.c $(PRGDIR)/datagen.c fuzzer.c
|
fuzzer-dll : $(ZSTDDIR)/common/xxhash.c $(PRGDIR)/util.c $(PRGDIR)/timefn.c $(PRGDIR)/datagen.c fuzzer.c
|
||||||
@@ -177,66 +179,65 @@ zstreamtest zstreamtest32 : LDFLAGS += $(MULTITHREAD_LD)
|
|||||||
zstreamtest : $(ZSTDMT_OBJECTS) $(ZSTREAM_PROPER_FILES)
|
zstreamtest : $(ZSTDMT_OBJECTS) $(ZSTREAM_PROPER_FILES)
|
||||||
zstreamtest32 : $(ZSTREAMFILES)
|
zstreamtest32 : $(ZSTREAMFILES)
|
||||||
zstreamtest zstreamtest32 :
|
zstreamtest zstreamtest32 :
|
||||||
$(CC) $(FLAGS) $^ -o $@$(EXT)
|
$(LINK.c) $^ -o $@$(EXT)
|
||||||
|
|
||||||
zstreamtest_asan : CFLAGS += -fsanitize=address
|
zstreamtest_asan : CFLAGS += -fsanitize=address
|
||||||
zstreamtest_asan : $(ZSTREAMFILES)
|
zstreamtest_asan : $(ZSTREAMFILES)
|
||||||
$(CC) $(FLAGS) $(MULTITHREAD) $^ -o $@$(EXT)
|
$(LINK.c) $(MULTITHREAD) $^ -o $@$(EXT)
|
||||||
|
|
||||||
zstreamtest_tsan : CFLAGS += -fsanitize=thread
|
zstreamtest_tsan : CFLAGS += -fsanitize=thread
|
||||||
zstreamtest_tsan : $(ZSTREAMFILES)
|
zstreamtest_tsan : $(ZSTREAMFILES)
|
||||||
$(CC) $(FLAGS) $(MULTITHREAD) $^ -o $@$(EXT)
|
$(LINK.c) $(MULTITHREAD) $^ -o $@$(EXT)
|
||||||
|
|
||||||
# note : broken : requires symbols unavailable from dynamic library
|
# note : broken : requires symbols unavailable from dynamic library
|
||||||
zstreamtest-dll : $(ZSTDDIR)/common/xxhash.c # xxh symbols not exposed from dll
|
zstreamtest-dll : $(ZSTDDIR)/common/xxhash.c # xxh symbols not exposed from dll
|
||||||
zstreamtest-dll : $(ZSTREAM_LOCAL_FILES)
|
zstreamtest-dll : $(ZSTREAM_LOCAL_FILES)
|
||||||
$(CC) $(CPPFLAGS) $(CFLAGS) $(filter %.c,$^) $(LDFLAGS) -o $@$(EXT)
|
$(CC) $(CPPFLAGS) $(CFLAGS) $(filter %.c,$^) $(LDFLAGS) -o $@$(EXT)
|
||||||
|
|
||||||
paramgrill : DEBUGFLAGS = # turn off assert() by default for speed measurements
|
paramgrill : DEBUGFLAGS = # turn off debug for speed measurements
|
||||||
|
paramgrill : LDLIBS += -lm
|
||||||
paramgrill : $(ZSTD_FILES) $(PRGDIR)/util.c $(PRGDIR)/timefn.c $(PRGDIR)/benchfn.c $(PRGDIR)/benchzstd.c $(PRGDIR)/datagen.c paramgrill.c
|
paramgrill : $(ZSTD_FILES) $(PRGDIR)/util.c $(PRGDIR)/timefn.c $(PRGDIR)/benchfn.c $(PRGDIR)/benchzstd.c $(PRGDIR)/datagen.c paramgrill.c
|
||||||
$(CC) $(FLAGS) $^ -lm -o $@$(EXT)
|
|
||||||
|
|
||||||
datagen : $(PRGDIR)/datagen.c datagencli.c
|
datagen : $(PRGDIR)/datagen.c datagencli.c
|
||||||
$(CC) $(FLAGS) $^ -o $@$(EXT)
|
$(LINK.c) $^ -o $@$(EXT)
|
||||||
|
|
||||||
|
roundTripCrash: CFLAGS += $(MULTITHREAD)
|
||||||
roundTripCrash : $(ZSTD_OBJECTS) roundTripCrash.c
|
roundTripCrash : $(ZSTD_OBJECTS) roundTripCrash.c
|
||||||
$(CC) $(FLAGS) $(MULTITHREAD) $^ -o $@$(EXT)
|
|
||||||
|
|
||||||
longmatch : $(ZSTD_OBJECTS) longmatch.c
|
longmatch : $(ZSTD_OBJECTS) longmatch.c
|
||||||
$(CC) $(FLAGS) $^ -o $@$(EXT)
|
|
||||||
|
|
||||||
|
bigdict: CFLAGS += $(MULTITHREAD)
|
||||||
bigdict: $(ZSTDMT_OBJECTS) $(PRGDIR)/datagen.c bigdict.c
|
bigdict: $(ZSTDMT_OBJECTS) $(PRGDIR)/datagen.c bigdict.c
|
||||||
$(CC) $(FLAGS) $(MULTITHREAD) $^ -o $@$(EXT)
|
|
||||||
|
|
||||||
invalidDictionaries : $(ZSTD_OBJECTS) invalidDictionaries.c
|
invalidDictionaries : $(ZSTD_OBJECTS) invalidDictionaries.c
|
||||||
$(CC) $(FLAGS) $^ -o $@$(EXT)
|
|
||||||
|
|
||||||
legacy : CPPFLAGS += -I$(ZSTDDIR)/legacy -DZSTD_LEGACY_SUPPORT=4
|
legacy : CPPFLAGS += -I$(ZSTDDIR)/legacy -DZSTD_LEGACY_SUPPORT=4
|
||||||
legacy : $(ZSTD_FILES) $(wildcard $(ZSTDDIR)/legacy/*.c) legacy.c
|
legacy : $(ZSTD_FILES) $(wildcard $(ZSTDDIR)/legacy/*.c) legacy.c
|
||||||
$(CC) $(FLAGS) $^ -o $@$(EXT)
|
|
||||||
|
|
||||||
|
decodecorpus : LDLIBS += -lm
|
||||||
decodecorpus : $(filter-out zstdc_zstd_compress.o, $(ZSTD_OBJECTS)) $(ZDICT_FILES) $(PRGDIR)/util.c $(PRGDIR)/timefn.c decodecorpus.c
|
decodecorpus : $(filter-out zstdc_zstd_compress.o, $(ZSTD_OBJECTS)) $(ZDICT_FILES) $(PRGDIR)/util.c $(PRGDIR)/timefn.c decodecorpus.c
|
||||||
$(CC) $(FLAGS) $^ -o $@$(EXT) -lm
|
|
||||||
|
|
||||||
poolTests : $(PRGDIR)/util.c $(PRGDIR)/timefn.c poolTests.c $(ZSTDDIR)/common/pool.c $(ZSTDDIR)/common/threading.c $(ZSTDDIR)/common/zstd_common.c $(ZSTDDIR)/common/error_private.c
|
poolTests : $(PRGDIR)/util.c $(PRGDIR)/timefn.c poolTests.c $(ZSTDDIR)/common/pool.c $(ZSTDDIR)/common/threading.c $(ZSTDDIR)/common/zstd_common.c $(ZSTDDIR)/common/error_private.c
|
||||||
$(CC) $(FLAGS) $(MULTITHREAD) $^ -o $@$(EXT)
|
$(LINK.c) $(MULTITHREAD) $^ -o $@$(EXT)
|
||||||
|
|
||||||
.PHONY: versionsTest
|
.PHONY: versionsTest
|
||||||
versionsTest: clean
|
versionsTest: clean
|
||||||
$(PYTHON) test-zstd-versions.py
|
$(PYTHON) test-zstd-versions.py
|
||||||
|
|
||||||
|
.PHONY: automated_benchmarking
|
||||||
automated_benchmarking: clean
|
automated_benchmarking: clean
|
||||||
$(PYTHON) automated_benchmarking.py
|
$(PYTHON) automated_benchmarking.py
|
||||||
|
|
||||||
checkTag: checkTag.c $(ZSTDDIR)/zstd.h
|
# make checkTag
|
||||||
$(CC) $(FLAGS) $< -o $@$(EXT)
|
checkTag.o : $(ZSTDDIR)/zstd.h
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
clean:
|
clean:
|
||||||
$(MAKE) -C $(ZSTDDIR) clean
|
$(MAKE) -C $(ZSTDDIR) clean
|
||||||
$(MAKE) -C $(PRGDIR) clean
|
$(MAKE) -C $(PRGDIR) clean
|
||||||
@$(RM) -fR $(TESTARTEFACT)
|
$(RM) -fR $(TESTARTEFACT)
|
||||||
@$(RM) -rf tmp* # some test directories are named tmp*
|
$(RM) -rf tmp* # some test directories are named tmp*
|
||||||
@$(RM) core *.o *.tmp result* *.gcda dictionary *.zst \
|
$(RM) core *.o *.tmp result* *.gcda dictionary *.zst \
|
||||||
$(PRGDIR)/zstd$(EXT) $(PRGDIR)/zstd32$(EXT) \
|
$(PRGDIR)/zstd$(EXT) $(PRGDIR)/zstd32$(EXT) \
|
||||||
fullbench$(EXT) fullbench32$(EXT) \
|
fullbench$(EXT) fullbench32$(EXT) \
|
||||||
fullbench-lib$(EXT) fullbench-dll$(EXT) \
|
fullbench-lib$(EXT) fullbench-dll$(EXT) \
|
||||||
@@ -293,9 +294,12 @@ list:
|
|||||||
@$(MAKE) -pRrq -f $(lastword $(MAKEFILE_LIST)) : 2>/dev/null | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | sort | egrep -v -e '^[^[:alnum:]]' -e '^$@$$' | xargs
|
@$(MAKE) -pRrq -f $(lastword $(MAKEFILE_LIST)) : 2>/dev/null | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | sort | egrep -v -e '^[^[:alnum:]]' -e '^$@$$' | xargs
|
||||||
|
|
||||||
.PHONY: shortest
|
.PHONY: shortest
|
||||||
shortest: ZSTDRTTEST=
|
shortest: ZSTDRTTEST= # remove long tests
|
||||||
shortest: test-zstd
|
shortest: test-zstd
|
||||||
|
|
||||||
|
.PHONY: check
|
||||||
|
check: shortest
|
||||||
|
|
||||||
.PHONY: fuzztest
|
.PHONY: fuzztest
|
||||||
fuzztest: test-fuzzer test-zstream test-decodecorpus
|
fuzztest: test-fuzzer test-zstream test-decodecorpus
|
||||||
|
|
||||||
@@ -305,8 +309,10 @@ ifeq ($(QEMU_SYS),)
|
|||||||
test: test-pool
|
test: test-pool
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
.PHONY: test32
|
||||||
test32: test-zstd32 test-fullbench32 test-fuzzer32 test-zstream32
|
test32: test-zstd32 test-fullbench32 test-fuzzer32 test-zstream32
|
||||||
|
|
||||||
|
.PHONY: test-all
|
||||||
test-all: test test32 valgrindTest test-decodecorpus-cli
|
test-all: test test32 valgrindTest test-decodecorpus-cli
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user