From ab9a34c92eec815ef214470c927ddbe2e950e7e5 Mon Sep 17 00:00:00 2001
|
From: Joshua Watt <JPEWhacker@gmail.com>
|
Date: Wed, 26 May 2021 09:15:40 -0500
|
Subject: [PATCH] MinGW Build Fixes
|
|
Fixes building on MinGW by
|
1) Exporting the OS variable so that it is visible to sub-make
|
invocations
|
2) Fixing the extension handling so that make correctly identifies when
|
targets need to be rebuilt. Without the correct handling, make would
|
rebuild the executable targets when running `make install` because
|
it couldn't find them with the correct extension.
|
|
Upstream-Status: Submitted [https://github.com/facebook/zstd/pull/2685]
|
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
|
---
|
Makefile | 1 +
|
programs/Makefile | 74 +++++++++++++++++++++++------------------------
|
2 files changed, 38 insertions(+), 37 deletions(-)
|
|
diff --git a/Makefile b/Makefile
|
index c1908f0a..f9ce9504 100644
|
--- a/Makefile
|
+++ b/Makefile
|
@@ -29,6 +29,7 @@ VOID = /dev/null
|
# fail on other tested distros (ubuntu, debian) even
|
# without manually specifying the TARGET_SYSTEM.
|
TARGET_SYSTEM ?= $(OS)
|
+export OS
|
|
ifneq (,$(filter Windows%,$(TARGET_SYSTEM)))
|
EXT =.exe
|
diff --git a/programs/Makefile b/programs/Makefile
|
index 599fb02f..79b45c83 100644
|
--- a/programs/Makefile
|
+++ b/programs/Makefile
|
@@ -209,37 +209,37 @@ SET_CACHE_DIRECTORY = \
|
|
|
.PHONY: all
|
-all: zstd
|
+all: zstd$(EXT)
|
|
.PHONY: allVariants
|
-allVariants: zstd zstd-compress zstd-decompress zstd-small zstd-nolegacy zstd-dictBuilder
|
+allVariants: zstd$(EXT) zstd-compress$(EXT) zstd-decompress$(EXT) zstd-small$(EXT) zstd-nolegacy$(EXT) zstd-dictBuilder$(EXT)
|
|
.PHONY: zstd # must always be run
|
-zstd : CPPFLAGS += $(THREAD_CPP) $(ZLIBCPP) $(LZMACPP) $(LZ4CPP)
|
-zstd : LDFLAGS += $(THREAD_LD) $(DEBUGFLAGS_LD)
|
-zstd : LDLIBS += $(ZLIBLD) $(LZMALD) $(LZ4LD)
|
-zstd : CPPFLAGS += -DZSTD_LEGACY_SUPPORT=$(ZSTD_LEGACY_SUPPORT)
|
+zstd$(EXT) : CPPFLAGS += $(THREAD_CPP) $(ZLIBCPP) $(LZMACPP) $(LZ4CPP)
|
+zstd$(EXT) : LDFLAGS += $(THREAD_LD) $(DEBUGFLAGS_LD)
|
+zstd$(EXT) : LDLIBS += $(ZLIBLD) $(LZMALD) $(LZ4LD)
|
+zstd$(EXT) : CPPFLAGS += -DZSTD_LEGACY_SUPPORT=$(ZSTD_LEGACY_SUPPORT)
|
ifneq (,$(filter Windows%,$(OS)))
|
-zstd : $(RES_FILE)
|
+zstd$(EXT) : $(RES_FILE)
|
endif
|
|
ifndef BUILD_DIR
|
# generate BUILD_DIR from flags
|
|
-zstd:
|
+zstd$(EXT):
|
$(SET_CACHE_DIRECTORY)
|
|
else
|
# BUILD_DIR is defined
|
|
ZSTD_OBJ := $(addprefix $(BUILD_DIR)/, $(ZSTD_ALL_OBJ))
|
-$(BUILD_DIR)/zstd : $(ZSTD_OBJ)
|
+$(BUILD_DIR)/zstd$(EXT) : $(ZSTD_OBJ)
|
@echo "$(THREAD_MSG)"
|
@echo "$(ZLIB_MSG)"
|
@echo "$(LZMA_MSG)"
|
@echo "$(LZ4_MSG)"
|
@echo LINK $@
|
- $(CC) $(FLAGS) $^ $(LDLIBS) -o $@$(EXT)
|
+ $(CC) $(FLAGS) $^ $(LDLIBS) -o $@
|
|
ifeq ($(HAVE_HASH),1)
|
SRCBIN_HASH = $(shell cat $(BUILD_DIR)/zstd 2> $(VOID) | $(HASH) | cut -f 1 -d " ")
|
@@ -249,7 +249,7 @@ else
|
BIN_ISDIFFERENT = 1
|
endif
|
|
-zstd : $(BUILD_DIR)/zstd
|
+zstd$(EXT) : $(BUILD_DIR)/zstd$(EXT)
|
if [ $(BIN_ISDIFFERENT) -eq 1 ]; then \
|
cp -f $< $@; \
|
echo zstd build completed; \
|
@@ -263,46 +263,46 @@ endif # BUILD_DIR
|
.PHONY: zstd-release
|
zstd-release: DEBUGFLAGS := -DBACKTRACE_ENABLE=0
|
zstd-release: DEBUGFLAGS_LD :=
|
-zstd-release: zstd
|
+zstd-release: zstd$(EXT)
|
|
-zstd32 : CPPFLAGS += $(THREAD_CPP)
|
-zstd32 : LDFLAGS += $(THREAD_LD)
|
-zstd32 : CPPFLAGS += -DZSTD_LEGACY_SUPPORT=$(ZSTD_LEGACY_SUPPORT)
|
+zstd32$(EXT) : CPPFLAGS += $(THREAD_CPP)
|
+zstd32$(EXT) : LDFLAGS += $(THREAD_LD)
|
+zstd32$(EXT) : CPPFLAGS += -DZSTD_LEGACY_SUPPORT=$(ZSTD_LEGACY_SUPPORT)
|
ifneq (,$(filter Windows%,$(OS)))
|
-zstd32 : $(RES32_FILE)
|
+zstd32$(EXT) : $(RES32_FILE)
|
endif
|
-zstd32 : $(ZSTDLIB_FULL_SRC) $(ZSTD_CLI_SRC)
|
- $(CC) -m32 $(FLAGS) $^ -o $@$(EXT)
|
+zstd32$(EXT) : $(ZSTDLIB_FULL_SRC) $(ZSTD_CLI_SRC)
|
+ $(CC) -m32 $(FLAGS) $^ -o $@
|
|
## zstd-nolegacy: same scope as zstd, with just support of legacy formats removed
|
-zstd-nolegacy : LDFLAGS += $(THREAD_LD) $(ZLIBLD) $(LZMALD) $(LZ4LD) $(DEBUGFLAGS_LD)
|
-zstd-nolegacy : $(ZSTDLIB_CORE_SRC) $(ZDICT_SRC) $(ZSTD_CLI_OBJ)
|
- $(CC) $(FLAGS) $^ -o $@$(EXT) $(LDFLAGS)
|
+zstd-nolegacy$(EXT) : LDFLAGS += $(THREAD_LD) $(ZLIBLD) $(LZMALD) $(LZ4LD) $(DEBUGFLAGS_LD)
|
+zstd-nolegacy$(EXT) : $(ZSTDLIB_CORE_SRC) $(ZDICT_SRC) $(ZSTD_CLI_OBJ)
|
+ $(CC) $(FLAGS) $^ -o $@ $(LDFLAGS)
|
|
.PHONY: zstd-nomt
|
zstd-nomt : THREAD_CPP :=
|
zstd-nomt : THREAD_LD :=
|
zstd-nomt : THREAD_MSG := - multi-threading disabled
|
-zstd-nomt : zstd
|
+zstd-nomt : zstd$(EXT)
|
|
.PHONY: zstd-nogz
|
zstd-nogz : ZLIBCPP :=
|
zstd-nogz : ZLIBLD :=
|
zstd-nogz : ZLIB_MSG := - gzip support is disabled
|
-zstd-nogz : zstd
|
+zstd-nogz : zstd$(EXT)
|
|
.PHONY: zstd-noxz
|
zstd-noxz : LZMACPP :=
|
zstd-noxz : LZMALD :=
|
zstd-noxz : LZMA_MSG := - xz/lzma support is disabled
|
-zstd-noxz : zstd
|
+zstd-noxz : zstd$(EXT)
|
|
## zstd-dll: zstd executable linked to dynamic library libzstd (must have same version)
|
.PHONY: zstd-dll
|
zstd-dll : LDFLAGS+= -L$(ZSTDDIR)
|
zstd-dll : LDLIBS += -lzstd
|
zstd-dll : ZSTDLIB_LOCAL_SRC = xxhash.c
|
-zstd-dll : zstd
|
+zstd-dll : zstd$(EXT)
|
|
|
## zstd-pgo: zstd executable optimized with PGO.
|
@@ -321,23 +321,23 @@ zstd-pgo :
|
$(MAKE) zstd MOREFLAGS=-fprofile-use
|
|
## zstd-small: minimal target, supporting only zstd compression and decompression. no bench. no legacy. no other format.
|
-zstd-small: CFLAGS = -Os -s
|
-zstd-frugal zstd-small: $(ZSTDLIB_CORE_SRC) zstdcli.c util.c timefn.c fileio.c
|
- $(CC) $(FLAGS) -DZSTD_NOBENCH -DZSTD_NODICT -DZSTD_NOTRACE $^ -o $@$(EXT)
|
+zstd-small$(EXT): CFLAGS = -Os -s
|
+zstd-frugal$(EXT) zstd-small$(EXT): $(ZSTDLIB_CORE_SRC) zstdcli.c util.c timefn.c fileio.c
|
+ $(CC) $(FLAGS) -DZSTD_NOBENCH -DZSTD_NODICT -DZSTD_NOTRACE $^ -o $@
|
|
-zstd-decompress: $(ZSTDLIB_COMMON_C) $(ZSTDLIB_DECOMPRESS_C) zstdcli.c util.c timefn.c fileio.c
|
- $(CC) $(FLAGS) -DZSTD_NOBENCH -DZSTD_NODICT -DZSTD_NOCOMPRESS -DZSTD_NOTRACE $^ -o $@$(EXT)
|
+zstd-decompress$(EXT): $(ZSTDLIB_COMMON_C) $(ZSTDLIB_DECOMPRESS_C) zstdcli.c util.c timefn.c fileio.c
|
+ $(CC) $(FLAGS) -DZSTD_NOBENCH -DZSTD_NODICT -DZSTD_NOCOMPRESS -DZSTD_NOTRACE $^ -o $@
|
|
-zstd-compress: $(ZSTDLIB_COMMON_C) $(ZSTDLIB_COMPRESS_C) zstdcli.c util.c timefn.c fileio.c
|
- $(CC) $(FLAGS) -DZSTD_NOBENCH -DZSTD_NODICT -DZSTD_NODECOMPRESS -DZSTD_NOTRACE $^ -o $@$(EXT)
|
+zstd-compress$(EXT): $(ZSTDLIB_COMMON_C) $(ZSTDLIB_COMPRESS_C) zstdcli.c util.c timefn.c fileio.c
|
+ $(CC) $(FLAGS) -DZSTD_NOBENCH -DZSTD_NODICT -DZSTD_NODECOMPRESS -DZSTD_NOTRACE $^ -o $@
|
|
## zstd-dictBuilder: executable supporting dictionary creation and compression (only)
|
-zstd-dictBuilder: CPPFLAGS += -DZSTD_NOBENCH -DZSTD_NODECOMPRESS -DZSTD_NOTRACE
|
-zstd-dictBuilder: $(ZSTDLIB_COMMON_C) $(ZSTDLIB_COMPRESS_C) $(ZDICT_SRC) zstdcli.c util.c timefn.c fileio.c dibio.c
|
- $(CC) $(FLAGS) $^ -o $@$(EXT)
|
+zstd-dictBuilder$(EXT): CPPFLAGS += -DZSTD_NOBENCH -DZSTD_NODECOMPRESS -DZSTD_NOTRACE
|
+zstd-dictBuilder$(EXT): $(ZSTDLIB_COMMON_C) $(ZSTDLIB_COMPRESS_C) $(ZDICT_SRC) zstdcli.c util.c timefn.c fileio.c dibio.c
|
+ $(CC) $(FLAGS) $^ -o $@
|
|
-zstdmt: zstd
|
- ln -sf zstd zstdmt
|
+zstdmt$(EXT): zstd$(EXT)
|
+ ln -sf zstd$(EXT) zstdmt$(EXT)
|
|
.PHONY: generate_res
|
generate_res: $(RES64_FILE) $(RES32_FILE)
|
--
|
2.31.1
|