From: Yann Collet Date: Wed, 2 Dec 2020 07:36:05 +0000 (-0800) Subject: better usage of default build rules X-Git-Tag: v1.4.7~19^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=37165f66b7f5ee6d8e3426aa06b247cf2152da44;p=thirdparty%2Fzstd.git better usage of default build rules --- diff --git a/tests/Makefile b/tests/Makefile index c073543cb..0a362882f 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -25,6 +25,7 @@ PYTHON ?= python3 TESTARTEFACT := versionsTest DEBUGLEVEL ?= 1 +export DEBUGLEVEL # transmit value to sub-makefiles DEBUGFLAGS = -g -DDEBUGLEVEL=$(DEBUGLEVEL) CPPFLAGS += -I$(ZSTDDIR) -I$(ZSTDDIR)/common -I$(ZSTDDIR)/compress \ -I$(ZSTDDIR)/dictBuilder -I$(ZSTDDIR)/deprecated -I$(PRGDIR) @@ -77,21 +78,23 @@ FUZZERTEST ?= -T200s ZSTDRTTEST = --test-large-data DECODECORPUS_TESTTIME ?= -T30 -.PHONY: default all all32 allnothread dll clean test test32 test-all versionsTest - +.PHONY: default default: fullbench - @echo $(ZSTDMT_OBJECTS) +.PHONY: all all: fullbench fuzzer zstreamtest paramgrill datagen decodecorpus roundTripCrash \ fullbench-lib poolTests +.PHONY: all32 all32: fullbench32 fuzzer32 zstreamtest32 +.PHONY: allnothread allnothread: MULTITHREAD_CPP= allnothread: MULTITHREAD_LD= allnothread: fullbench fuzzer paramgrill datagen decodecorpus # note : broken : requires symbols unavailable from dynamic library +.PHONY: dll dll: fuzzer-dll zstreamtest-dll .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 libzstd : - $(MAKE) -C $(ZSTDDIR) libzstd + $(MAKE) -C $(ZSTDDIR) libzstd MOREFLAGS+="$(DEBUGFLAGS)" %-dll : libzstd %-dll : LDFLAGS += -L$(ZSTDDIR) -lzstd -.PHONY: zstd-staticLib -zstd-staticLib : +.PHONY: $(ZSTDDIR)/libzstd.a +$(ZSTDDIR)/libzstd.a : $(MAKE) -C $(ZSTDDIR) libzstd.a 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 : $(ZSTD_FILES) 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 : zstd-staticLib -fullbench-lib : $(PRGDIR)/datagen.c $(PRGDIR)/util.c $(PRGDIR)/timefn.c $(PRGDIR)/benchfn.c fullbench.c - $(CC) $(FLAGS) $(filter %.c,$^) -o $@$(EXT) $(ZSTDDIR)/libzstd.a +fullbench-lib : $(PRGDIR)/datagen.c $(PRGDIR)/util.c $(PRGDIR)/timefn.c $(PRGDIR)/benchfn.c $(ZSTDDIR)/libzstd.a fullbench.c + $(LINK.c) $^ -o $@$(EXT) # note : broken : requires symbols unavailable from dynamic library 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) fuzzer32: $(ZSTD_FILES) 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 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) zstreamtest32 : $(ZSTREAMFILES) zstreamtest zstreamtest32 : - $(CC) $(FLAGS) $^ -o $@$(EXT) + $(LINK.c) $^ -o $@$(EXT) zstreamtest_asan : CFLAGS += -fsanitize=address zstreamtest_asan : $(ZSTREAMFILES) - $(CC) $(FLAGS) $(MULTITHREAD) $^ -o $@$(EXT) + $(LINK.c) $(MULTITHREAD) $^ -o $@$(EXT) zstreamtest_tsan : CFLAGS += -fsanitize=thread zstreamtest_tsan : $(ZSTREAMFILES) - $(CC) $(FLAGS) $(MULTITHREAD) $^ -o $@$(EXT) + $(LINK.c) $(MULTITHREAD) $^ -o $@$(EXT) # note : broken : requires symbols unavailable from dynamic library zstreamtest-dll : $(ZSTDDIR)/common/xxhash.c # xxh symbols not exposed from dll zstreamtest-dll : $(ZSTREAM_LOCAL_FILES) $(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 - $(CC) $(FLAGS) $^ -lm -o $@$(EXT) datagen : $(PRGDIR)/datagen.c datagencli.c - $(CC) $(FLAGS) $^ -o $@$(EXT) + $(LINK.c) $^ -o $@$(EXT) +roundTripCrash: CFLAGS += $(MULTITHREAD) roundTripCrash : $(ZSTD_OBJECTS) roundTripCrash.c - $(CC) $(FLAGS) $(MULTITHREAD) $^ -o $@$(EXT) -longmatch : $(ZSTD_OBJECTS) longmatch.c - $(CC) $(FLAGS) $^ -o $@$(EXT) +longmatch : $(ZSTD_OBJECTS) longmatch.c +bigdict: CFLAGS += $(MULTITHREAD) bigdict: $(ZSTDMT_OBJECTS) $(PRGDIR)/datagen.c bigdict.c - $(CC) $(FLAGS) $(MULTITHREAD) $^ -o $@$(EXT) invalidDictionaries : $(ZSTD_OBJECTS) invalidDictionaries.c - $(CC) $(FLAGS) $^ -o $@$(EXT) legacy : CPPFLAGS += -I$(ZSTDDIR)/legacy -DZSTD_LEGACY_SUPPORT=4 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 - $(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 - $(CC) $(FLAGS) $(MULTITHREAD) $^ -o $@$(EXT) + $(LINK.c) $(MULTITHREAD) $^ -o $@$(EXT) .PHONY: versionsTest versionsTest: clean $(PYTHON) test-zstd-versions.py +.PHONY: automated_benchmarking automated_benchmarking: clean $(PYTHON) automated_benchmarking.py -checkTag: checkTag.c $(ZSTDDIR)/zstd.h - $(CC) $(FLAGS) $< -o $@$(EXT) +# make checkTag +checkTag.o : $(ZSTDDIR)/zstd.h +.PHONY: clean clean: $(MAKE) -C $(ZSTDDIR) clean $(MAKE) -C $(PRGDIR) clean - @$(RM) -fR $(TESTARTEFACT) - @$(RM) -rf tmp* # some test directories are named tmp* - @$(RM) core *.o *.tmp result* *.gcda dictionary *.zst \ + $(RM) -fR $(TESTARTEFACT) + $(RM) -rf tmp* # some test directories are named tmp* + $(RM) core *.o *.tmp result* *.gcda dictionary *.zst \ $(PRGDIR)/zstd$(EXT) $(PRGDIR)/zstd32$(EXT) \ fullbench$(EXT) fullbench32$(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 .PHONY: shortest -shortest: ZSTDRTTEST= +shortest: ZSTDRTTEST= # remove long tests shortest: test-zstd +.PHONY: check +check: shortest + .PHONY: fuzztest fuzztest: test-fuzzer test-zstream test-decodecorpus @@ -305,8 +309,10 @@ ifeq ($(QEMU_SYS),) test: test-pool endif +.PHONY: test32 test32: test-zstd32 test-fullbench32 test-fuzzer32 test-zstream32 +.PHONY: test-all test-all: test test32 valgrindTest test-decodecorpus-cli