mirror of
				https://github.com/facebook/zstd.git
				synced 2025-10-31 16:47:48 +02:00 
			
		
		
		
	Merge pull request #3753 from facebook/make2
minor Makefile refactoring
This commit is contained in:
		
							
								
								
									
										66
									
								
								lib/Makefile
									
									
									
									
									
								
							
							
						
						
									
										66
									
								
								lib/Makefile
									
									
									
									
									
								
							| @@ -8,6 +8,9 @@ | ||||
| # You may select, at your option, one of the above-listed licenses. | ||||
| # ################################################################ | ||||
|  | ||||
| # default target (when runing `make` with no argument) | ||||
| lib-release: | ||||
|  | ||||
| # Modules | ||||
| ZSTD_LIB_COMPRESSION ?= 1 | ||||
| ZSTD_LIB_DECOMPRESSION ?= 1 | ||||
| @@ -54,12 +57,11 @@ VERSION := $(ZSTD_VERSION) | ||||
| # Note: by default, the static library is built single-threaded and dynamic library is built | ||||
| # multi-threaded. It is possible to force multi or single threaded builds by appending | ||||
| # -mt or -nomt to the build target (like lib-mt for multi-threaded, lib-nomt for single-threaded). | ||||
| .PHONY: default | ||||
| default: lib-release | ||||
|  | ||||
|  | ||||
| CPPFLAGS_DYNLIB  += -DZSTD_MULTITHREAD # dynamic library build defaults to multi-threaded | ||||
| LDFLAGS_DYNLIB   += -pthread | ||||
| CPPFLAGS_STATLIB +=                    # static library build defaults to single-threaded | ||||
| CPPFLAGS_STATICLIB +=                  # static library build defaults to single-threaded | ||||
|  | ||||
|  | ||||
| ifeq ($(findstring GCC,$(CCVER)),GCC) | ||||
| @@ -91,7 +93,7 @@ all: lib | ||||
|  | ||||
|  | ||||
| .PHONY: libzstd.a  # must be run every time | ||||
| libzstd.a: CPPFLAGS += $(CPPFLAGS_STATLIB) | ||||
| libzstd.a: CPPFLAGS += $(CPPFLAGS_STATICLIB) | ||||
|  | ||||
| SET_CACHE_DIRECTORY = \ | ||||
|    +$(MAKE) --no-print-directory $@ \ | ||||
| @@ -109,19 +111,19 @@ libzstd.a: | ||||
| else | ||||
| # BUILD_DIR is defined | ||||
|  | ||||
| ZSTD_STATLIB_DIR := $(BUILD_DIR)/static | ||||
| ZSTD_STATLIB := $(ZSTD_STATLIB_DIR)/libzstd.a | ||||
| ZSTD_STATLIB_OBJ := $(addprefix $(ZSTD_STATLIB_DIR)/,$(ZSTD_LOCAL_OBJ)) | ||||
| $(ZSTD_STATLIB): ARFLAGS = rcs | ||||
| $(ZSTD_STATLIB): | $(ZSTD_STATLIB_DIR) | ||||
| $(ZSTD_STATLIB): $(ZSTD_STATLIB_OBJ) | ||||
| ZSTD_STATICLIB_DIR := $(BUILD_DIR)/static | ||||
| ZSTD_STATICLIB := $(ZSTD_STATICLIB_DIR)/libzstd.a | ||||
| ZSTD_STATICLIB_OBJ := $(addprefix $(ZSTD_STATICLIB_DIR)/,$(ZSTD_LOCAL_OBJ)) | ||||
| $(ZSTD_STATICLIB): ARFLAGS = rcs | ||||
| $(ZSTD_STATICLIB): | $(ZSTD_STATICLIB_DIR) | ||||
| $(ZSTD_STATICLIB): $(ZSTD_STATICLIB_OBJ) | ||||
|   # Check for multithread flag at target execution time | ||||
| 	$(if $(filter -DZSTD_MULTITHREAD,$(CPPFLAGS)),\ | ||||
|     @echo compiling multi-threaded static library $(LIBVER),\ | ||||
|     @echo compiling single-threaded static library $(LIBVER)) | ||||
| 	$(AR) $(ARFLAGS) $@ $^ | ||||
|  | ||||
| libzstd.a: $(ZSTD_STATLIB) | ||||
| libzstd.a: $(ZSTD_STATICLIB) | ||||
| 	cp -f $< $@ | ||||
|  | ||||
| endif | ||||
| @@ -182,14 +184,14 @@ lib : libzstd.a libzstd | ||||
| # make does not consider implicit pattern rule for .PHONY target | ||||
|  | ||||
| %-mt : CPPFLAGS_DYNLIB  := -DZSTD_MULTITHREAD | ||||
| %-mt : CPPFLAGS_STATLIB := -DZSTD_MULTITHREAD | ||||
| %-mt : CPPFLAGS_STATICLIB := -DZSTD_MULTITHREAD | ||||
| %-mt : LDFLAGS_DYNLIB   := -pthread | ||||
| %-mt : % | ||||
| 	@echo multi-threaded build completed | ||||
|  | ||||
| %-nomt : CPPFLAGS_DYNLIB  := | ||||
| %-nomt : LDFLAGS_DYNLIB   := | ||||
| %-nomt : CPPFLAGS_STATLIB := | ||||
| %-nomt : CPPFLAGS_STATICLIB := | ||||
| %-nomt : % | ||||
| 	@echo single-threaded build completed | ||||
|  | ||||
| @@ -200,42 +202,52 @@ lib : libzstd.a libzstd | ||||
|  | ||||
| # Generate .h dependencies automatically | ||||
|  | ||||
| DEPFLAGS = -MT $@ -MMD -MP -MF | ||||
| # -MMD: compiler generates dependency information as a side-effect of compilation, without system headers | ||||
| # -MP: adds phony target for each dependency other than main file. | ||||
| DEPFLAGS = -MMD -MP | ||||
|  | ||||
| $(ZSTD_DYNLIB_DIR)/%.o : %.c $(ZSTD_DYNLIB_DIR)/%.d | $(ZSTD_DYNLIB_DIR) | ||||
| # ensure that ZSTD_DYNLIB_DIR exists prior to generating %.o | ||||
| $(ZSTD_DYNLIB_DIR)/%.o : %.c | $(ZSTD_DYNLIB_DIR) | ||||
| 	@echo CC $@ | ||||
| 	$(COMPILE.c) $(DEPFLAGS) $(ZSTD_DYNLIB_DIR)/$*.d $(OUTPUT_OPTION) $< | ||||
| 	$(COMPILE.c) $(DEPFLAGS) $(OUTPUT_OPTION) $< | ||||
|  | ||||
| $(ZSTD_STATLIB_DIR)/%.o : %.c $(ZSTD_STATLIB_DIR)/%.d | $(ZSTD_STATLIB_DIR) | ||||
| $(ZSTD_STATICLIB_DIR)/%.o : %.c | $(ZSTD_STATICLIB_DIR) | ||||
| 	@echo CC $@ | ||||
| 	$(COMPILE.c) $(DEPFLAGS) $(ZSTD_STATLIB_DIR)/$*.d $(OUTPUT_OPTION) $< | ||||
| 	$(COMPILE.c) $(DEPFLAGS) $(OUTPUT_OPTION) $< | ||||
|  | ||||
| $(ZSTD_DYNLIB_DIR)/%.o : %.S | $(ZSTD_DYNLIB_DIR) | ||||
| 	@echo AS $@ | ||||
| 	$(COMPILE.S) $(OUTPUT_OPTION) $< | ||||
|  | ||||
| $(ZSTD_STATLIB_DIR)/%.o : %.S | $(ZSTD_STATLIB_DIR) | ||||
| $(ZSTD_STATICLIB_DIR)/%.o : %.S | $(ZSTD_STATICLIB_DIR) | ||||
| 	@echo AS $@ | ||||
| 	$(COMPILE.S) $(OUTPUT_OPTION) $< | ||||
|  | ||||
| MKDIR ?= mkdir | ||||
| $(BUILD_DIR) $(ZSTD_DYNLIB_DIR) $(ZSTD_STATLIB_DIR): | ||||
| 	$(MKDIR) -p $@ | ||||
| MKDIR ?= mkdir -p | ||||
| $(BUILD_DIR) $(ZSTD_DYNLIB_DIR) $(ZSTD_STATICLIB_DIR): | ||||
| 	$(MKDIR) $@ | ||||
|  | ||||
| DEPFILES := $(ZSTD_DYNLIB_OBJ:.o=.d) $(ZSTD_STATLIB_OBJ:.o=.d) | ||||
| DEPFILES := $(ZSTD_DYNLIB_OBJ:.o=.d) $(ZSTD_STATICLIB_OBJ:.o=.d) | ||||
| $(DEPFILES): | ||||
|  | ||||
| include $(wildcard $(DEPFILES)) | ||||
| # The leading '-' means: do not fail is include fails (ex: directory does not exist yet) | ||||
| -include $(wildcard $(DEPFILES)) | ||||
|  | ||||
|  | ||||
| # Special case : building library in single-thread mode _and_ without zstdmt_compress.c | ||||
| ZSTDMT_FILES = compress/zstdmt_compress.c | ||||
| ZSTD_NOMT_FILES = $(filter-out $(ZSTDMT_FILES),$(ZSTD_FILES)) | ||||
| # Special case : build library in single-thread mode _and_ without zstdmt_compress.c | ||||
| # Note : we still need threading.c and pool.c for the dictionary builder, | ||||
| # but they will correctly behave single-threaded. | ||||
| ZSTDMT_FILES = zstdmt_compress.c | ||||
| ZSTD_NOMT_FILES = $(filter-out $(ZSTDMT_FILES),$(notdir $(ZSTD_FILES))) | ||||
| libzstd-nomt: CFLAGS += -fPIC -fvisibility=hidden | ||||
| libzstd-nomt: LDFLAGS += -shared | ||||
| libzstd-nomt: $(ZSTD_NOMT_FILES) | ||||
| 	@echo compiling single-thread dynamic library $(LIBVER) | ||||
| 	@echo files : $(ZSTD_NOMT_FILES) | ||||
| 	@if echo "$(ZSTD_NOMT_FILES)" | tr ' ' '\n' | $(GREP) -q zstdmt; then \ | ||||
|         echo "Error: Found zstdmt in list."; \ | ||||
|         exit 1; \ | ||||
|     fi | ||||
| 	$(CC) $(FLAGS) $^ $(LDFLAGS) $(SONAME_FLAGS) -o $@ | ||||
|  | ||||
| .PHONY: clean | ||||
|   | ||||
| @@ -8,12 +8,21 @@ | ||||
| # You may select, at your option, one of the above-listed licenses. | ||||
| # ################################################################ | ||||
|  | ||||
| # This included Makefile provides the following variables : | ||||
| # LIB_SRCDIR, LIB_BINDIR | ||||
|  | ||||
| # Ensure the file is not included twice | ||||
| # Note : must be included after setting the default target | ||||
| ifndef LIBZSTD_MK_INCLUDED | ||||
| LIBZSTD_MK_INCLUDED := 1 | ||||
|  | ||||
| ################################################################## | ||||
| # Input Variables | ||||
| ################################################################## | ||||
|  | ||||
| # Zstd lib directory | ||||
| LIBZSTD ?= ./ | ||||
| # By default, library's directory is same as this included makefile | ||||
| LIB_SRCDIR ?= $(dir $(realpath $(lastword $(MAKEFILE_LIST)))) | ||||
| LIB_BINDIR ?= $(LIBSRC_DIR) | ||||
|  | ||||
| # ZSTD_LIB_MINIFY is a helper variable that | ||||
| # configures a bunch of other variables to space-optimized defaults. | ||||
| @@ -60,6 +69,7 @@ VOID ?= /dev/null | ||||
| NUM_SYMBOL := \# | ||||
|  | ||||
| # define silent mode as default (verbose mode with V=1 or VERBOSE=1) | ||||
| # Note : must be defined _after_ the default target | ||||
| $(V)$(VERBOSE).SILENT: | ||||
|  | ||||
| # When cross-compiling from linux to windows, | ||||
| @@ -69,7 +79,7 @@ $(V)$(VERBOSE).SILENT: | ||||
| TARGET_SYSTEM ?= $(OS) | ||||
|  | ||||
| # Version numbers | ||||
| LIBVER_SRC := $(LIBZSTD)/zstd.h | ||||
| LIBVER_SRC := $(LIB_SRCDIR)/zstd.h | ||||
| LIBVER_MAJOR_SCRIPT:=`sed -n '/define ZSTD_VERSION_MAJOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < $(LIBVER_SRC)` | ||||
| LIBVER_MINOR_SCRIPT:=`sed -n '/define ZSTD_VERSION_MINOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < $(LIBVER_SRC)` | ||||
| LIBVER_PATCH_SCRIPT:=`sed -n '/define ZSTD_VERSION_RELEASE/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < $(LIBVER_SRC)` | ||||
| @@ -136,14 +146,14 @@ ifeq ($(HAVE_COLORNEVER), 1) | ||||
| endif | ||||
| GREP = grep $(GREP_OPTIONS) | ||||
|  | ||||
| ZSTD_COMMON_FILES := $(sort $(wildcard $(LIBZSTD)/common/*.c)) | ||||
| ZSTD_COMPRESS_FILES := $(sort $(wildcard $(LIBZSTD)/compress/*.c)) | ||||
| ZSTD_DECOMPRESS_FILES := $(sort $(wildcard $(LIBZSTD)/decompress/*.c)) | ||||
| ZSTD_DICTBUILDER_FILES := $(sort $(wildcard $(LIBZSTD)/dictBuilder/*.c)) | ||||
| ZSTD_DEPRECATED_FILES := $(sort $(wildcard $(LIBZSTD)/deprecated/*.c)) | ||||
| ZSTD_COMMON_FILES := $(sort $(wildcard $(LIB_SRCDIR)/common/*.c)) | ||||
| ZSTD_COMPRESS_FILES := $(sort $(wildcard $(LIB_SRCDIR)/compress/*.c)) | ||||
| ZSTD_DECOMPRESS_FILES := $(sort $(wildcard $(LIB_SRCDIR)/decompress/*.c)) | ||||
| ZSTD_DICTBUILDER_FILES := $(sort $(wildcard $(LIB_SRCDIR)/dictBuilder/*.c)) | ||||
| ZSTD_DEPRECATED_FILES := $(sort $(wildcard $(LIB_SRCDIR)/deprecated/*.c)) | ||||
| ZSTD_LEGACY_FILES := | ||||
|  | ||||
| ZSTD_DECOMPRESS_AMD64_ASM_FILES := $(sort $(wildcard $(LIBZSTD)/decompress/*_amd64.S)) | ||||
| ZSTD_DECOMPRESS_AMD64_ASM_FILES := $(sort $(wildcard $(LIB_SRCDIR)/decompress/*_amd64.S)) | ||||
|  | ||||
| ifneq ($(ZSTD_NO_ASM), 0) | ||||
|   CPPFLAGS += -DZSTD_DISABLE_ASM | ||||
| @@ -191,7 +201,7 @@ endif | ||||
|  | ||||
| ifneq ($(ZSTD_LEGACY_SUPPORT), 0) | ||||
| ifeq ($(shell test $(ZSTD_LEGACY_SUPPORT) -lt 8; echo $$?), 0) | ||||
|   ZSTD_LEGACY_FILES += $(shell ls $(LIBZSTD)/legacy/*.c | $(GREP) 'v0[$(ZSTD_LEGACY_SUPPORT)-7]') | ||||
|   ZSTD_LEGACY_FILES += $(shell ls $(LIB_SRCDIR)/legacy/*.c | $(GREP) 'v0[$(ZSTD_LEGACY_SUPPORT)-7]') | ||||
| endif | ||||
| endif | ||||
| CPPFLAGS  += -DZSTD_LEGACY_SUPPORT=$(ZSTD_LEGACY_SUPPORT) | ||||
| @@ -220,6 +230,8 @@ ifeq ($(HAVE_HASH),0) | ||||
| endif | ||||
| endif # BUILD_DIR | ||||
|  | ||||
| ZSTD_SUBDIR := $(LIBZSTD)/common $(LIBZSTD)/compress $(LIBZSTD)/decompress $(LIBZSTD)/dictBuilder $(LIBZSTD)/legacy $(LIBZSTD)/deprecated | ||||
| ZSTD_SUBDIR := $(LIB_SRCDIR)/common $(LIB_SRCDIR)/compress $(LIB_SRCDIR)/decompress $(LIB_SRCDIR)/dictBuilder $(LIB_SRCDIR)/legacy $(LIB_SRCDIR)/deprecated | ||||
| vpath %.c $(ZSTD_SUBDIR) | ||||
| vpath %.S $(ZSTD_SUBDIR) | ||||
|  | ||||
| endif # LIBZSTD_MK_INCLUDED | ||||
|   | ||||
| @@ -15,12 +15,11 @@ | ||||
| # zstd-decompress : decompressor-only version of zstd | ||||
| # ########################################################################## | ||||
|  | ||||
| .PHONY: default | ||||
| default: zstd-release | ||||
| # default target (when runing `make` with no argument) | ||||
| zstd-release: | ||||
|  | ||||
| LIBZSTD := ../lib | ||||
|  | ||||
| include $(LIBZSTD)/libzstd.mk | ||||
| LIBZSTD_MK_DIR = ../lib | ||||
| include $(LIBZSTD_MK_DIR)/libzstd.mk | ||||
|  | ||||
| ifeq ($(shell $(CC) -v 2>&1 | $(GREP) -c "gcc version "), 1) | ||||
|   ALIGN_LOOP = -falign-loops=32 | ||||
| @@ -223,7 +222,7 @@ zstd-noxz : zstd | ||||
|  | ||||
| ## zstd-dll: zstd executable linked to dynamic library libzstd (must have same version) | ||||
| .PHONY: zstd-dll | ||||
| zstd-dll : LDFLAGS+= -L$(LIBZSTD) | ||||
| zstd-dll : LDFLAGS+= -L$(LIB_BINDIR) | ||||
| zstd-dll : LDLIBS += -lzstd | ||||
| zstd-dll : ZSTDLIB_LOCAL_SRC = xxhash.c pool.c threading.c | ||||
| zstd-dll : zstd | ||||
|   | ||||
| @@ -20,23 +20,21 @@ | ||||
| # zstreamtest32: Same as zstreamtest, but forced to compile in 32-bits mode | ||||
| # ########################################################################## | ||||
|  | ||||
| LIBZSTD = ../lib | ||||
|  | ||||
| ZSTD_LEGACY_SUPPORT ?= 0 | ||||
|  | ||||
| DEBUGLEVEL ?= 2 | ||||
| export DEBUGLEVEL  # transmit value to sub-makefiles | ||||
|  | ||||
| include $(LIBZSTD)/libzstd.mk | ||||
| LIBZSTD_MK_DIR := ../lib | ||||
| include $(LIBZSTD_MK_DIR)/libzstd.mk | ||||
|  | ||||
| ZSTDDIR = $(LIBZSTD) | ||||
| PRGDIR  = ../programs | ||||
| PYTHON ?= python3 | ||||
| TESTARTEFACT := versionsTest | ||||
|  | ||||
| DEBUGFLAGS += -g -Wno-c++-compat | ||||
| CPPFLAGS   += -I$(ZSTDDIR) -I$(ZSTDDIR)/common -I$(ZSTDDIR)/compress \ | ||||
|               -I$(ZSTDDIR)/dictBuilder -I$(ZSTDDIR)/deprecated -I$(PRGDIR) \ | ||||
| CPPFLAGS   += -I$(LIB_SRCDIR) -I$(LIB_SRCDIR)/common -I$(LIB_SRCDIR)/compress \ | ||||
|               -I$(LIB_SRCDIR)/dictBuilder -I$(LIB_SRCDIR)/deprecated -I$(PRGDIR) \ | ||||
|               -DZSTD_WINDOW_OVERFLOW_CORRECT_FREQUENTLY=1 | ||||
|  | ||||
| ZSTDCOMMON_FILES := $(sort $(ZSTD_COMMON_FILES)) | ||||
| @@ -46,15 +44,15 @@ ZSTD_FILES  := $(ZSTDDECOMP_FILES) $(ZSTDCOMMON_FILES) $(ZSTDCOMP_FILES) | ||||
| ZDICT_FILES := $(sort $(ZSTD_DICTBUILDER_FILES)) | ||||
|  | ||||
| ZSTD_F1 := $(sort $(wildcard $(ZSTD_FILES))) | ||||
| ZSTD_OBJ1 := $(subst $(ZSTDDIR)/common/,zstdm_,$(ZSTD_F1)) | ||||
| ZSTD_OBJ2 := $(subst $(ZSTDDIR)/compress/,zstdc_,$(ZSTD_OBJ1)) | ||||
| ZSTD_OBJ3 := $(subst $(ZSTDDIR)/decompress/,zstdd_,$(ZSTD_OBJ2)) | ||||
| ZSTD_OBJ1 := $(subst $(LIB_SRCDIR)/common/,zstdm_,$(ZSTD_F1)) | ||||
| ZSTD_OBJ2 := $(subst $(LIB_SRCDIR)/compress/,zstdc_,$(ZSTD_OBJ1)) | ||||
| ZSTD_OBJ3 := $(subst $(LIB_SRCDIR)/decompress/,zstdd_,$(ZSTD_OBJ2)) | ||||
| ZSTD_OBJ4 := $(ZSTD_OBJ3:.c=.o) | ||||
| ZSTD_OBJECTS := $(ZSTD_OBJ4:.S=.o) | ||||
|  | ||||
| ZSTDMT_OBJ1 := $(subst $(ZSTDDIR)/common/,zstdmt_m_,$(ZSTD_F1)) | ||||
| ZSTDMT_OBJ2 := $(subst $(ZSTDDIR)/compress/,zstdmt_c_,$(ZSTDMT_OBJ1)) | ||||
| ZSTDMT_OBJ3 := $(subst $(ZSTDDIR)/decompress/,zstdmt_d_,$(ZSTDMT_OBJ2)) | ||||
| ZSTDMT_OBJ1 := $(subst $(LIB_SRCDIR)/common/,zstdmt_m_,$(ZSTD_F1)) | ||||
| ZSTDMT_OBJ2 := $(subst $(LIB_SRCDIR)/compress/,zstdmt_c_,$(ZSTDMT_OBJ1)) | ||||
| ZSTDMT_OBJ3 := $(subst $(LIB_SRCDIR)/decompress/,zstdmt_d_,$(ZSTDMT_OBJ2)) | ||||
| ZSTDMT_OBJ4 := $(ZSTDMT_OBJ3:.c=.o) | ||||
| ZSTDMT_OBJECTS := $(ZSTDMT_OBJ4:.S=.o) | ||||
|  | ||||
| @@ -100,38 +98,38 @@ zstd zstd32 zstd-nolegacy zstd-dll: | ||||
|  | ||||
| .PHONY: libzstd | ||||
| libzstd : | ||||
| 	$(MAKE) -C $(ZSTDDIR) libzstd MOREFLAGS+="$(DEBUGFLAGS)" | ||||
| 	$(MAKE) -C $(LIB_SRCDIR) libzstd MOREFLAGS+="$(DEBUGFLAGS)" | ||||
|  | ||||
| %-dll : libzstd | ||||
| %-dll : LDFLAGS += -L$(ZSTDDIR) -lzstd | ||||
| %-dll : LDFLAGS += -L$(LIB_BINDIR) -lzstd | ||||
|  | ||||
| $(ZSTDDIR)/libzstd.a : | ||||
| 	$(MAKE) -C $(ZSTDDIR) libzstd.a | ||||
| $(LIB_BINDIR)/libzstd.a : | ||||
| 	$(MAKE) -C $(LIB_SRCDIR) libzstd.a | ||||
|  | ||||
| zstdm_%.o : $(ZSTDDIR)/common/%.c | ||||
| zstdm_%.o : $(LIB_SRCDIR)/common/%.c | ||||
| 	$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@ | ||||
|  | ||||
| zstdc_%.o : $(ZSTDDIR)/compress/%.c | ||||
| zstdc_%.o : $(LIB_SRCDIR)/compress/%.c | ||||
| 	$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@ | ||||
|  | ||||
| zstdd_%.o : $(ZSTDDIR)/decompress/%.c | ||||
| zstdd_%.o : $(LIB_SRCDIR)/decompress/%.c | ||||
| 	$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@ | ||||
|  | ||||
| zstdd_%.o : $(ZSTDDIR)/decompress/%.S | ||||
| zstdd_%.o : $(LIB_SRCDIR)/decompress/%.S | ||||
| 	$(CC) -c $(CPPFLAGS) $(ASFLAGS) $< -o $@ | ||||
|  | ||||
| zstdmt%.o : CPPFLAGS += $(MULTITHREAD_CPP) | ||||
|  | ||||
| zstdmt_m_%.o : $(ZSTDDIR)/common/%.c | ||||
| zstdmt_m_%.o : $(LIB_SRCDIR)/common/%.c | ||||
| 	$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@ | ||||
|  | ||||
| zstdmt_c_%.o : $(ZSTDDIR)/compress/%.c | ||||
| zstdmt_c_%.o : $(LIB_SRCDIR)/compress/%.c | ||||
| 	$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@ | ||||
|  | ||||
| zstdmt_d_%.o : $(ZSTDDIR)/decompress/%.c | ||||
| zstdmt_d_%.o : $(LIB_SRCDIR)/decompress/%.c | ||||
| 	$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@ | ||||
|  | ||||
| zstdmt_d_%.o : $(ZSTDDIR)/decompress/%.S | ||||
| zstdmt_d_%.o : $(LIB_SRCDIR)/decompress/%.S | ||||
| 	$(CC) -c $(CPPFLAGS) $(ASFLAGS) $< -o $@ | ||||
|  | ||||
| FULLBENCHS := fullbench fullbench32 | ||||
| @@ -146,12 +144,12 @@ $(FULLBENCHS) : $(PRGDIR)/datagen.c $(PRGDIR)/util.c $(PRGDIR)/timefn.c $(PRGDIR | ||||
|  | ||||
| CLEAN += fullbench-lib | ||||
| fullbench-lib : CPPFLAGS += -DXXH_NAMESPACE=ZSTD_ | ||||
| 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 $(LIB_SRCDIR)/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 | ||||
| #	$(CC) $(FLAGS) $(filter %.c,$^) -o $@$(EXT) -DZSTD_DLL_IMPORT=1 $(ZSTDDIR)/dll/libzstd.dll | ||||
| #	$(CC) $(FLAGS) $(filter %.c,$^) -o $@$(EXT) -DZSTD_DLL_IMPORT=1 $(LIB_SRCDIR)/dll/libzstd.dll | ||||
| 	$(LINK.c) $^ $(LDLIBS) -o $@$(EXT) | ||||
|  | ||||
| CLEAN += fuzzer fuzzer32 | ||||
| @@ -165,7 +163,7 @@ fuzzer32 : $(ZSTD_FILES) | ||||
| 	$(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 | ||||
| fuzzer-dll : $(LIB_SRCDIR)/common/xxhash.c $(PRGDIR)/util.c $(PRGDIR)/timefn.c $(PRGDIR)/datagen.c fuzzer.c | ||||
| 	$(CC) $(CPPFLAGS) $(CFLAGS) $(filter %.c,$^) $(LDFLAGS) -o $@$(EXT) | ||||
|  | ||||
| CLEAN += zstreamtest zstreamtest32 | ||||
| @@ -196,7 +194,7 @@ zstreamtest_ubsan : $(ZSTREAMFILES) | ||||
| 	$(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 : $(LIB_SRCDIR)/common/xxhash.c  # xxh symbols not exposed from dll | ||||
| zstreamtest-dll : $(ZSTREAM_LOCAL_FILES) | ||||
| 	$(CC) $(CPPFLAGS) $(CFLAGS) $(filter %.c,$^) $(LDFLAGS) -o $@$(EXT) | ||||
|  | ||||
| @@ -224,15 +222,15 @@ CLEAN += invalidDictionaries | ||||
| invalidDictionaries : $(ZSTD_OBJECTS) invalidDictionaries.c | ||||
|  | ||||
| CLEAN += legacy | ||||
| legacy : CPPFLAGS += -I$(ZSTDDIR)/legacy -UZSTD_LEGACY_SUPPORT -DZSTD_LEGACY_SUPPORT=4 | ||||
| legacy : $(ZSTD_FILES) $(sort $(wildcard $(ZSTDDIR)/legacy/*.c)) legacy.c | ||||
| legacy : CPPFLAGS += -I$(LIB_SRCDIR)/legacy -UZSTD_LEGACY_SUPPORT -DZSTD_LEGACY_SUPPORT=4 | ||||
| legacy : $(ZSTD_FILES) $(sort $(wildcard $(LIB_SRCDIR)/legacy/*.c)) legacy.c | ||||
|  | ||||
| CLEAN += decodecorpus | ||||
| decodecorpus : LDLIBS += -lm | ||||
| decodecorpus : $(filter-out zstdc_zstd_compress.o, $(ZSTD_OBJECTS)) $(ZDICT_FILES) $(PRGDIR)/util.c $(PRGDIR)/timefn.c decodecorpus.c | ||||
|  | ||||
| CLEAN += poolTests | ||||
| 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 $(LIB_SRCDIR)/common/pool.c $(LIB_SRCDIR)/common/threading.c $(LIB_SRCDIR)/common/zstd_common.c $(LIB_SRCDIR)/common/error_private.c | ||||
| 	$(LINK.c) $(MULTITHREAD) $^ -o $@$(EXT) | ||||
|  | ||||
| .PHONY: versionsTest | ||||
| @@ -245,11 +243,11 @@ automated_benchmarking: clean | ||||
|  | ||||
| # make checkTag : check that release tag corresponds to release version | ||||
| CLEAN += checkTag | ||||
| checkTag.o : $(ZSTDDIR)/zstd.h | ||||
| checkTag.o : $(LIB_SRCDIR)/zstd.h | ||||
|  | ||||
| .PHONY: clean | ||||
| clean: | ||||
| 	$(MAKE) -C $(ZSTDDIR) clean | ||||
| 	$(MAKE) -C $(LIB_SRCDIR) clean | ||||
| 	$(MAKE) -C $(PRGDIR) clean | ||||
| 	$(MAKE) -C fuzz clean | ||||
| 	$(RM) -R $(TESTARTEFACT) | ||||
|   | ||||
| @@ -24,13 +24,12 @@ else | ||||
| endif | ||||
| CORPORA_URL_PREFIX:=https://github.com/facebook/zstd/releases/download/fuzz-corpora/ | ||||
|  | ||||
| LIBZSTD = ../../lib | ||||
| LIBZSTD_MK_DIR = ../../lib | ||||
| DEBUGLEVEL ?= 2 | ||||
| ZSTD_LEGACY_SUPPORT ?= 1 | ||||
|  | ||||
| include $(LIBZSTD)/libzstd.mk | ||||
| include $(LIBZSTD_MK_DIR)/libzstd.mk | ||||
|  | ||||
| ZSTDDIR = ../../lib | ||||
| PRGDIR = ../../programs | ||||
| CONTRIBDIR = ../../contrib | ||||
|  | ||||
| @@ -38,8 +37,8 @@ DEFAULT_SEQ_PROD_DIR = $(CONTRIBDIR)/externalSequenceProducer | ||||
| DEFAULT_SEQ_PROD_SRC = $(DEFAULT_SEQ_PROD_DIR)/sequence_producer.c | ||||
| THIRD_PARTY_SEQ_PROD_OBJ ?= | ||||
|  | ||||
| FUZZ_CPPFLAGS := -I$(ZSTDDIR) -I$(ZSTDDIR)/common -I$(ZSTDDIR)/compress \ | ||||
| 	-I$(ZSTDDIR)/dictBuilder -I$(ZSTDDIR)/deprecated -I$(ZSTDDIR)/legacy \ | ||||
| FUZZ_CPPFLAGS := -I$(LIB_SRCDIR) -I$(LIB_SRCDIR)/common -I$(LIB_SRCDIR)/compress \ | ||||
| 	-I$(LIB_SRCDIR)/dictBuilder -I$(LIB_SRCDIR)/deprecated -I$(LIB_SRCDIR)/legacy \ | ||||
| 	-I$(CONTRIBDIR)/seekable_format -I$(PRGDIR) -I$(DEFAULT_SEQ_PROD_DIR) \ | ||||
| 	-DZSTD_MULTITHREAD -DZSTD_LEGACY_SUPPORT=1 $(CPPFLAGS) | ||||
| FUZZ_EXTRA_FLAGS := -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow \ | ||||
| @@ -78,11 +77,11 @@ FUZZ_SRC       := \ | ||||
| 	$(DEFAULT_SEQ_PROD_SRC) | ||||
| FUZZ_SRC := $(sort $(wildcard $(FUZZ_SRC))) | ||||
|  | ||||
| FUZZ_D_OBJ1 := $(subst $(ZSTDDIR)/common/,d_lib_common_,$(FUZZ_SRC)) | ||||
| FUZZ_D_OBJ2 := $(subst $(ZSTDDIR)/compress/,d_lib_compress_,$(FUZZ_D_OBJ1)) | ||||
| FUZZ_D_OBJ3 := $(subst $(ZSTDDIR)/decompress/,d_lib_decompress_,$(FUZZ_D_OBJ2)) | ||||
| FUZZ_D_OBJ4 := $(subst $(ZSTDDIR)/dictBuilder/,d_lib_dictBuilder_,$(FUZZ_D_OBJ3)) | ||||
| FUZZ_D_OBJ5 := $(subst $(ZSTDDIR)/legacy/,d_lib_legacy_,$(FUZZ_D_OBJ4)) | ||||
| FUZZ_D_OBJ1 := $(subst $(LIB_SRCDIR)/common/,d_lib_common_,$(FUZZ_SRC)) | ||||
| FUZZ_D_OBJ2 := $(subst $(LIB_SRCDIR)/compress/,d_lib_compress_,$(FUZZ_D_OBJ1)) | ||||
| FUZZ_D_OBJ3 := $(subst $(LIB_SRCDIR)/decompress/,d_lib_decompress_,$(FUZZ_D_OBJ2)) | ||||
| FUZZ_D_OBJ4 := $(subst $(LIB_SRCDIR)/dictBuilder/,d_lib_dictBuilder_,$(FUZZ_D_OBJ3)) | ||||
| FUZZ_D_OBJ5 := $(subst $(LIB_SRCDIR)/legacy/,d_lib_legacy_,$(FUZZ_D_OBJ4)) | ||||
| FUZZ_D_OBJ6 := $(subst $(PRGDIR)/,d_prg_,$(FUZZ_D_OBJ5)) | ||||
| FUZZ_D_OBJ7 := $(subst $(DEFAULT_SEQ_PROD_DIR)/,d_default_seq_prod_,$(FUZZ_D_OBJ6)) | ||||
| FUZZ_D_OBJ8 := $(subst $\./,d_fuzz_,$(FUZZ_D_OBJ7)) | ||||
| @@ -90,11 +89,11 @@ FUZZ_D_OBJ9 := $(FUZZ_D_OBJ8:.c=.o) | ||||
| FUZZ_D_OBJ10 := $(THIRD_PARTY_SEQ_PROD_OBJ) $(FUZZ_D_OBJ9) | ||||
| FUZZ_DECOMPRESS_OBJ := $(FUZZ_D_OBJ10:.S=.o) | ||||
|  | ||||
| FUZZ_RT_OBJ1 := $(subst $(ZSTDDIR)/common/,rt_lib_common_,$(FUZZ_SRC)) | ||||
| FUZZ_RT_OBJ2 := $(subst $(ZSTDDIR)/compress/,rt_lib_compress_,$(FUZZ_RT_OBJ1)) | ||||
| FUZZ_RT_OBJ3 := $(subst $(ZSTDDIR)/decompress/,rt_lib_decompress_,$(FUZZ_RT_OBJ2)) | ||||
| FUZZ_RT_OBJ4 := $(subst $(ZSTDDIR)/dictBuilder/,rt_lib_dictBuilder_,$(FUZZ_RT_OBJ3)) | ||||
| FUZZ_RT_OBJ5 := $(subst $(ZSTDDIR)/legacy/,rt_lib_legacy_,$(FUZZ_RT_OBJ4)) | ||||
| FUZZ_RT_OBJ1 := $(subst $(LIB_SRCDIR)/common/,rt_lib_common_,$(FUZZ_SRC)) | ||||
| FUZZ_RT_OBJ2 := $(subst $(LIB_SRCDIR)/compress/,rt_lib_compress_,$(FUZZ_RT_OBJ1)) | ||||
| FUZZ_RT_OBJ3 := $(subst $(LIB_SRCDIR)/decompress/,rt_lib_decompress_,$(FUZZ_RT_OBJ2)) | ||||
| FUZZ_RT_OBJ4 := $(subst $(LIB_SRCDIR)/dictBuilder/,rt_lib_dictBuilder_,$(FUZZ_RT_OBJ3)) | ||||
| FUZZ_RT_OBJ5 := $(subst $(LIB_SRCDIR)/legacy/,rt_lib_legacy_,$(FUZZ_RT_OBJ4)) | ||||
| FUZZ_RT_OBJ6 := $(subst $(PRGDIR)/,rt_prg_,$(FUZZ_RT_OBJ5)) | ||||
| FUZZ_RT_OBJ7 := $(subst $(DEFAULT_SEQ_PROD_DIR)/,rt_default_seq_prod_,$(FUZZ_RT_OBJ6)) | ||||
| FUZZ_RT_OBJ8 := $(subst $\./,rt_fuzz_,$(FUZZ_RT_OBJ7)) | ||||
| @@ -129,22 +128,22 @@ FUZZ_TARGETS :=       \ | ||||
|  | ||||
| all: libregression.a $(FUZZ_TARGETS) | ||||
|  | ||||
| rt_lib_common_%.o: $(ZSTDDIR)/common/%.c | ||||
| rt_lib_common_%.o: $(LIB_SRCDIR)/common/%.c | ||||
| 	$(CC) $(FUZZ_CPPFLAGS) $(FUZZ_CFLAGS) $(FUZZ_ROUND_TRIP_FLAGS) $< -c -o $@ | ||||
|  | ||||
| rt_lib_compress_%.o: $(ZSTDDIR)/compress/%.c | ||||
| rt_lib_compress_%.o: $(LIB_SRCDIR)/compress/%.c | ||||
| 	$(CC) $(FUZZ_CPPFLAGS) $(FUZZ_CFLAGS) $(FUZZ_ROUND_TRIP_FLAGS) $< -c -o $@ | ||||
|  | ||||
| rt_lib_decompress_%.o: $(ZSTDDIR)/decompress/%.c | ||||
| rt_lib_decompress_%.o: $(LIB_SRCDIR)/decompress/%.c | ||||
| 	$(CC) $(FUZZ_CPPFLAGS) $(FUZZ_CFLAGS) $(FUZZ_ROUND_TRIP_FLAGS) $< -c -o $@ | ||||
|  | ||||
| rt_lib_decompress_%.o: $(ZSTDDIR)/decompress/%.S | ||||
| rt_lib_decompress_%.o: $(LIB_SRCDIR)/decompress/%.S | ||||
| 	$(CC) $(FUZZ_CPPFLAGS) $(FUZZ_ASFLAGS) $(FUZZ_ROUND_TRIP_FLAGS) $< -c -o $@ | ||||
|  | ||||
| rt_lib_dictBuilder_%.o: $(ZSTDDIR)/dictBuilder/%.c | ||||
| rt_lib_dictBuilder_%.o: $(LIB_SRCDIR)/dictBuilder/%.c | ||||
| 	$(CC) $(FUZZ_CPPFLAGS) $(FUZZ_CFLAGS) $(FUZZ_ROUND_TRIP_FLAGS) $< -c -o $@ | ||||
|  | ||||
| rt_lib_legacy_%.o: $(ZSTDDIR)/legacy/%.c | ||||
| rt_lib_legacy_%.o: $(LIB_SRCDIR)/legacy/%.c | ||||
| 	$(CC) $(FUZZ_CPPFLAGS) $(FUZZ_CFLAGS) $(FUZZ_ROUND_TRIP_FLAGS) $< -c -o $@ | ||||
|  | ||||
| rt_prg_%.o: $(PRGDIR)/%.c | ||||
| @@ -156,22 +155,22 @@ rt_fuzz_%.o: %.c | ||||
| rt_default_seq_prod_%.o: $(DEFAULT_SEQ_PROD_DIR)/%.c | ||||
| 	$(CC) $(FUZZ_CPPFLAGS) $(FUZZ_CFLAGS) $(FUZZ_ROUND_TRIP_FLAGS) $< -c -o $@ | ||||
|  | ||||
| d_lib_common_%.o: $(ZSTDDIR)/common/%.c | ||||
| d_lib_common_%.o: $(LIB_SRCDIR)/common/%.c | ||||
| 	$(CC) $(FUZZ_CPPFLAGS) $(FUZZ_CFLAGS) $< -c -o $@ | ||||
|  | ||||
| d_lib_compress_%.o: $(ZSTDDIR)/compress/%.c | ||||
| d_lib_compress_%.o: $(LIB_SRCDIR)/compress/%.c | ||||
| 	$(CC) $(FUZZ_CPPFLAGS) $(FUZZ_CFLAGS) $< -c -o $@ | ||||
|  | ||||
| d_lib_decompress_%.o: $(ZSTDDIR)/decompress/%.c | ||||
| d_lib_decompress_%.o: $(LIB_SRCDIR)/decompress/%.c | ||||
| 	$(CC) $(FUZZ_CPPFLAGS) $(FUZZ_CFLAGS) $< -c -o $@ | ||||
|  | ||||
| d_lib_decompress_%.o: $(ZSTDDIR)/decompress/%.S | ||||
| d_lib_decompress_%.o: $(LIB_SRCDIR)/decompress/%.S | ||||
| 	$(CC) $(FUZZ_CPPFLAGS) $(FUZZ_ASFLAGS) $< -c -o $@ | ||||
|  | ||||
| d_lib_dictBuilder_%.o: $(ZSTDDIR)/dictBuilder/%.c | ||||
| d_lib_dictBuilder_%.o: $(LIB_SRCDIR)/dictBuilder/%.c | ||||
| 	$(CC) $(FUZZ_CPPFLAGS) $(FUZZ_CFLAGS) $< -c -o $@ | ||||
|  | ||||
| d_lib_legacy_%.o: $(ZSTDDIR)/legacy/%.c | ||||
| d_lib_legacy_%.o: $(LIB_SRCDIR)/legacy/%.c | ||||
| 	$(CC) $(FUZZ_CPPFLAGS) $(FUZZ_CFLAGS) $< -c -o $@ | ||||
|  | ||||
| d_prg_%.o: $(PRGDIR)/%.c | ||||
|   | ||||
		Reference in New Issue
	
	Block a user