summaryrefslogtreecommitdiffstats
path: root/util/ich_descriptors_tool
diff options
context:
space:
mode:
authorStefan Tauner <stefan.tauner@gmx.at>2017-10-26 18:45:00 +0200
committerNico Huber <nico.h@gmx.de>2017-11-03 16:50:17 +0000
commitf268d8b2d6fe5ea5ab0e0e2c5eec02c16d023ce5 (patch)
treee1bc61384072608248941a03ed03b1c0507816be /util/ich_descriptors_tool
parente1a960e0a520263b380d898459b6909a8d7f59c5 (diff)
downloadflashrom-f268d8b2d6fe5ea5ab0e0e2c5eec02c16d023ce5.tar.gz
flashrom-f268d8b2d6fe5ea5ab0e0e2c5eec02c16d023ce5.tar.bz2
flashrom-f268d8b2d6fe5ea5ab0e0e2c5eec02c16d023ce5.zip
Fix standalone ich_descriptor_tool compilation with MinGW and DJGPP
TARGET_OS as well as EXEC_SUFFIX were only set when called via the main makefile and even then __USE_MINGW_ANSI_STDIO was not set for MinGW. While at it, also replace the hardcoded gnu_printf printf format attribute with __MINGW_PRINTF_FORMAT which is set according to __USE_MINGW_ANSI_STDIO respectively. Change-Id: Id146f5ba06a0e510397c6f32a2bd7c819a405a25 Signed-off-by: Stefan Tauner <stefan.tauner@gmx.at> Reviewed-on: https://review.coreboot.org/21838 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nico Huber <nico.h@gmx.de>
Diffstat (limited to 'util/ich_descriptors_tool')
-rw-r--r--util/ich_descriptors_tool/Makefile13
1 files changed, 13 insertions, 0 deletions
diff --git a/util/ich_descriptors_tool/Makefile b/util/ich_descriptors_tool/Makefile
index e312996f9..d1b5eae92 100644
--- a/util/ich_descriptors_tool/Makefile
+++ b/util/ich_descriptors_tool/Makefile
@@ -21,10 +21,23 @@ CC ?= gcc
# If the user has specified custom CFLAGS, all CFLAGS settings below will be
# completely ignored by gnumake.
CFLAGS ?= -Os -Wall -Wshadow
+
+override TARGET_OS := $(shell $(CC) $(CPPFLAGS) -E $(SHAREDSRCDIR)/os.h | grep -v '^\#' | grep '"' | \
+ cut -f 2 -d'"')
+
ifeq ($(TARGET_OS), DOS)
+EXEC_SUFFIX := .exe
# DJGPP has odd uint*_t definitions which cause lots of format string warnings.
CFLAGS += -Wno-format
endif
+
+ifeq ($(TARGET_OS), MinGW)
+EXEC_SUFFIX := .exe
+# Some functions provided by Microsoft do not work as described in C99 specifications. This macro fixes that
+# for MinGW. See http://sourceforge.net/p/mingw-w64/wiki2/printf%20and%20scanf%20family/ */
+FLASHROM_CFLAGS += -D__USE_MINGW_ANSI_STDIO=1
+endif
+
ifeq ($(WARNERROR), yes)
CFLAGS += -Werror
endif