Fix feature detection with multiple -arch flags
When multiple -arch flags are used, the compiler invokes itself once for each architecture. Apparently, input on stdin is consumed by the compilation of the first arch and is no longer available to the compilation of the second arch, which results in a build failure and the potentially incorrect determination that a feature is not available. So write the feature detection source to a file instead of using stdin.
This commit is contained in:
+4
-4
@@ -91,7 +91,7 @@ VOID = /dev/null
|
|||||||
|
|
||||||
# thread detection
|
# thread detection
|
||||||
NO_THREAD_MSG := ==> no threads, building without multithreading support
|
NO_THREAD_MSG := ==> no threads, building without multithreading support
|
||||||
HAVE_PTHREAD := $(shell printf '\#include <pthread.h>\nint main(void) { return 0; }' | $(CC) $(FLAGS) -o have_pthread$(EXT) -x c - -pthread 2> $(VOID) && rm have_pthread$(EXT) && echo 1 || echo 0)
|
HAVE_PTHREAD := $(shell printf '\#include <pthread.h>\nint main(void) { return 0; }' > have_pthread.c && $(CC) $(FLAGS) -o have_pthread$(EXT) have_pthread.c -pthread 2> $(VOID) && rm have_pthread$(EXT) && echo 1 || echo 0; rm have_pthread.c)
|
||||||
HAVE_THREAD := $(shell [ "$(HAVE_PTHREAD)" -eq "1" -o -n "$(filter Windows%,$(OS))" ] && echo 1 || echo 0)
|
HAVE_THREAD := $(shell [ "$(HAVE_PTHREAD)" -eq "1" -o -n "$(filter Windows%,$(OS))" ] && echo 1 || echo 0)
|
||||||
ifeq ($(HAVE_THREAD), 1)
|
ifeq ($(HAVE_THREAD), 1)
|
||||||
THREAD_MSG := ==> building with threading support
|
THREAD_MSG := ==> building with threading support
|
||||||
@@ -103,7 +103,7 @@ endif
|
|||||||
|
|
||||||
# zlib detection
|
# zlib detection
|
||||||
NO_ZLIB_MSG := ==> no zlib, building zstd without .gz support
|
NO_ZLIB_MSG := ==> no zlib, building zstd without .gz support
|
||||||
HAVE_ZLIB := $(shell printf '\#include <zlib.h>\nint main(void) { return 0; }' | $(CC) $(FLAGS) -o have_zlib$(EXT) -x c - -lz 2> $(VOID) && rm have_zlib$(EXT) && echo 1 || echo 0)
|
HAVE_ZLIB := $(shell printf '\#include <zlib.h>\nint main(void) { return 0; }' > have_zlib.c && $(CC) $(FLAGS) -o have_zlib$(EXT) have_zlib.c -lz 2> $(VOID) && rm have_zlib$(EXT) && echo 1 || echo 0; rm have_zlib.c)
|
||||||
ifeq ($(HAVE_ZLIB), 1)
|
ifeq ($(HAVE_ZLIB), 1)
|
||||||
ZLIB_MSG := ==> building zstd with .gz compression support
|
ZLIB_MSG := ==> building zstd with .gz compression support
|
||||||
ZLIBCPP = -DZSTD_GZCOMPRESS -DZSTD_GZDECOMPRESS
|
ZLIBCPP = -DZSTD_GZCOMPRESS -DZSTD_GZDECOMPRESS
|
||||||
@@ -114,7 +114,7 @@ endif
|
|||||||
|
|
||||||
# lzma detection
|
# lzma detection
|
||||||
NO_LZMA_MSG := ==> no liblzma, building zstd without .xz/.lzma support
|
NO_LZMA_MSG := ==> no liblzma, building zstd without .xz/.lzma support
|
||||||
HAVE_LZMA := $(shell printf '\#include <lzma.h>\nint main(void) { return 0; }' | $(CC) $(FLAGS) -o have_lzma$(EXT) -x c - -llzma 2> $(VOID) && rm have_lzma$(EXT) && echo 1 || echo 0)
|
HAVE_LZMA := $(shell printf '\#include <lzma.h>\nint main(void) { return 0; }' > have_lzma.c && $(CC) $(FLAGS) -o have_lzma$(EXT) have_lzma.c -llzma 2> $(VOID) && rm have_lzma$(EXT) && echo 1 || echo 0; rm have_lzma.c)
|
||||||
ifeq ($(HAVE_LZMA), 1)
|
ifeq ($(HAVE_LZMA), 1)
|
||||||
LZMA_MSG := ==> building zstd with .xz/.lzma compression support
|
LZMA_MSG := ==> building zstd with .xz/.lzma compression support
|
||||||
LZMACPP = -DZSTD_LZMACOMPRESS -DZSTD_LZMADECOMPRESS
|
LZMACPP = -DZSTD_LZMACOMPRESS -DZSTD_LZMADECOMPRESS
|
||||||
@@ -125,7 +125,7 @@ endif
|
|||||||
|
|
||||||
# lz4 detection
|
# lz4 detection
|
||||||
NO_LZ4_MSG := ==> no liblz4, building zstd without .lz4 support
|
NO_LZ4_MSG := ==> no liblz4, building zstd without .lz4 support
|
||||||
HAVE_LZ4 := $(shell printf '\#include <lz4frame.h>\n\#include <lz4.h>\nint main(void) { return 0; }' | $(CC) $(FLAGS) -o have_lz4$(EXT) -x c - -llz4 2> $(VOID) && rm have_lz4$(EXT) && echo 1 || echo 0)
|
HAVE_LZ4 := $(shell printf '\#include <lz4frame.h>\n\#include <lz4.h>\nint main(void) { return 0; }' > have_lz4.c && $(CC) $(FLAGS) -o have_lz4$(EXT) have_lz4.c -llz4 2> $(VOID) && rm have_lz4$(EXT) && echo 1 || echo 0; rm have_lz4.c)
|
||||||
ifeq ($(HAVE_LZ4), 1)
|
ifeq ($(HAVE_LZ4), 1)
|
||||||
LZ4_MSG := ==> building zstd with .lz4 compression support
|
LZ4_MSG := ==> building zstd with .lz4 compression support
|
||||||
LZ4CPP = -DZSTD_LZ4COMPRESS -DZSTD_LZ4DECOMPRESS
|
LZ4CPP = -DZSTD_LZ4COMPRESS -DZSTD_LZ4DECOMPRESS
|
||||||
|
|||||||
Reference in New Issue
Block a user