2323EXT =
2424endif
2525
26+ # # default: Build lib-release and zstd-release
2627.PHONY : default
2728default : lib-release zstd-release
2829
2930.PHONY : all
3031all : allmost examples manual contrib
3132
3233.PHONY : allmost
33- allmost : allzstd
34- $(MAKE ) -C $(ZWRAPDIR ) all
34+ allmost : allzstd zlibwrapper
3535
36- # skip zwrapper, can't build that on alternate architectures without the proper zlib installed
36+ # skip zwrapper, can't build that on alternate architectures without the proper zlib installed
3737.PHONY : allzstd
3838allzstd : lib
3939 $(MAKE ) -C $(PRGDIR ) all
4444 $(MAKE ) -C $(PRGDIR ) zstd32
4545 $(MAKE ) -C $(TESTDIR ) all32
4646
47- .PHONY : lib lib-release
48- lib lib-release :
47+ .PHONY : lib lib-release libzstd.a
48+ lib lib-release :
4949 @$(MAKE ) -C $(ZSTDDIR ) $@
5050
5151.PHONY : zstd zstd-release
@@ -59,12 +59,13 @@ zstdmt:
5959 cp $(PRGDIR ) /zstd$(EXT ) ./zstdmt$(EXT )
6060
6161.PHONY : zlibwrapper
62- zlibwrapper :
63- $(MAKE ) -C $(ZWRAPDIR ) test
62+ zlibwrapper : lib
63+ $(MAKE ) -C $(ZWRAPDIR ) all
6464
6565.PHONY : test
66+ test : MOREFLAGS += -g -DDEBUGLEVEL=1 -Werror
6667test :
67- $( MAKE ) -C $(PRGDIR ) allVariants MOREFLAGS+= " -g -DDEBUGLEVEL=1 "
68+ MOREFLAGS= " $( MOREFLAGS ) " $( MAKE ) -j - C $(PRGDIR ) allVariants
6869 $(MAKE ) -C $(TESTDIR ) $@
6970
7071.PHONY : shortest
@@ -87,6 +88,7 @@ contrib: lib
8788 $(MAKE ) -C contrib/pzstd all
8889 $(MAKE ) -C contrib/seekable_format/examples all
8990 $(MAKE ) -C contrib/adaptive-compression all
91+ $(MAKE ) -C contrib/largeNbDicts all
9092
9193.PHONY : cleanTabs
9294cleanTabs :
@@ -103,21 +105,39 @@ clean:
103105 @$(MAKE ) -C contrib/pzstd $@ > $(VOID )
104106 @$(MAKE ) -C contrib/seekable_format/examples $@ > $(VOID )
105107 @$(MAKE ) -C contrib/adaptive-compression $@ > $(VOID )
108+ @$(MAKE ) -C contrib/largeNbDicts $@ > $(VOID )
106109 @$(RM ) zstd$(EXT ) zstdmt$(EXT ) tmp*
107110 @$(RM ) -r lz4
108111 @echo Cleaning completed
109112
110113# ------------------------------------------------------------------------------
111114# make install is validated only for Linux, macOS, Hurd and some BSD targets
112115# ------------------------------------------------------------------------------
113- ifneq (,$(filter $(shell uname) ,Linux Darwin GNU/kFreeBSD GNU OpenBSD FreeBSD DragonFly NetBSD MSYS_NT) )
116+ ifneq (,$(filter $(shell uname) ,Linux Darwin GNU/kFreeBSD GNU OpenBSD FreeBSD DragonFly NetBSD MSYS_NT Haiku ) )
114117
115118HOST_OS = POSIX
116- CMAKE_PARAMS = -DZSTD_BUILD_CONTRIB:BOOL=ON -DZSTD_BUILD_STATIC:BOOL=ON -DZSTD_BUILD_TESTS:BOOL=ON -DZSTD_ZLIB_SUPPORT:BOOL=ON -DZSTD_LZMA_SUPPORT:BOOL=ON
119+ CMAKE_PARAMS = -DZSTD_BUILD_CONTRIB:BOOL=ON -DZSTD_BUILD_STATIC:BOOL=ON -DZSTD_BUILD_TESTS:BOOL=ON -DZSTD_ZLIB_SUPPORT:BOOL=ON -DZSTD_LZMA_SUPPORT:BOOL=ON -DCMAKE_BUILD_TYPE=Release
120+
121+ EGREP = egrep --color=never
117122
123+ # Print a two column output of targets and their description. To add a target description, put a
124+ # comment in the Makefile with the format "## <TARGET>: <DESCRIPTION>". For example:
125+ #
126+ # # list: Print all targets and their descriptions (if provided)
118127.PHONY : list
119128list :
120- @$(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
129+ @TARGETS=$$($(MAKE ) -pRrq -f $(lastword $(MAKEFILE_LIST ) ) : 2>/dev/null \
130+ | awk -v RS= -F: ' /^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' \
131+ | $(EGREP ) -v -e ' ^[^[:alnum:]]' | sort); \
132+ { \
133+ printf " Target Name\tDescription\n" ; \
134+ printf " %0.s-" {1..16}; printf " \t" ; printf " %0.s-" {1..40}; printf " \n" ; \
135+ for target in $$ TARGETS; do \
136+ line=$$($(EGREP ) "^##[[:space:]]+$$target:" $(lastword $(MAKEFILE_LIST ) ) ) ; \
137+ description=$$(echo $$line | awk '{i=index($$0,":" ) ; print substr($$ 0,i+1)}' | xargs); \
138+ printf " $$ target\t$$ description\n" ; \
139+ done \
140+ } | column -t -s $$ ' \t'
121141
122142.PHONY : install clangtest armtest usan asan uasan
123143install :
@@ -197,7 +217,7 @@ gcc6test: clean
197217
198218clangtest : clean
199219 clang -v
200- $(MAKE ) all CXX=clang- ++ CC=clang MOREFLAGS=" -Werror -Wconversion -Wno-sign-conversion -Wdocumentation"
220+ $(MAKE ) all CXX=clang++ CC=clang MOREFLAGS=" -Werror -Wconversion -Wno-sign-conversion -Wdocumentation"
201221
202222armtest : clean
203223 $(MAKE ) -C $(TESTDIR ) datagen # use native, faster
@@ -286,6 +306,9 @@ gcc6install: apt-add-repo
286306gcc7install : apt-add-repo
287307 APT_PACKAGES=" libc6-dev-i386 gcc-multilib gcc-7 gcc-7-multilib" $(MAKE ) apt-install
288308
309+ gcc8install : apt-add-repo
310+ APT_PACKAGES=" libc6-dev-i386 gcc-multilib gcc-8 gcc-8-multilib" $(MAKE ) apt-install
311+
289312gpp6install : apt-add-repo
290313 APT_PACKAGES=" libc6-dev-i386 g++-multilib gcc-6 g++-6 g++-6-multilib" $(MAKE ) apt-install
291314
@@ -317,23 +340,23 @@ cmakebuild:
317340
318341c90build : clean
319342 $(CC ) -v
320- CFLAGS=" -std=c90" $(MAKE ) allmost # will fail, due to missing support for `long long`
343+ CFLAGS=" -std=c90 -Werror " $(MAKE ) allmost # will fail, due to missing support for `long long`
321344
322345gnu90build : clean
323346 $(CC ) -v
324- CFLAGS=" -std=gnu90" $(MAKE ) allmost
347+ CFLAGS=" -std=gnu90 -Werror " $(MAKE ) allmost
325348
326349c99build : clean
327350 $(CC ) -v
328- CFLAGS=" -std=c99" $(MAKE ) allmost
351+ CFLAGS=" -std=c99 -Werror " $(MAKE ) allmost
329352
330353gnu99build : clean
331354 $(CC ) -v
332- CFLAGS=" -std=gnu99" $(MAKE ) allmost
355+ CFLAGS=" -std=gnu99 -Werror " $(MAKE ) allmost
333356
334357c11build : clean
335358 $(CC ) -v
336- CFLAGS=" -std=c11" $(MAKE ) allmost
359+ CFLAGS=" -std=c11 -Werror " $(MAKE ) allmost
337360
338361bmix64build : clean
339362 $(CC ) -v
@@ -347,7 +370,10 @@ bmi32build: clean
347370 $(CC ) -v
348371 CFLAGS=" -O3 -mbmi -m32 -Werror" $(MAKE ) -C $(TESTDIR ) test
349372
350- staticAnalyze : clean
373+ # static analyzer test uses clang's scan-build
374+ # does not analyze zlibWrapper, due to detected issues in zlib source code
375+ staticAnalyze : SCANBUILD ?= scan-build
376+ staticAnalyze :
351377 $(CC ) -v
352- CPPFLAGS=-g scan-build --status-bugs -v $(MAKE ) all
378+ CC= $( CC ) CPPFLAGS=-g $( SCANBUILD ) --status-bugs -v $(MAKE ) allzstd examples contrib
353379endif
0 commit comments