From 5c538b40c29f87886f24ffade7e6f068d4e0cf22 Mon Sep 17 00:00:00 2001 From: Thomas Heijligen Date: Wed, 20 Oct 2021 15:55:35 +0200 Subject: Makefile, ich_descriptors_tool/Makefile: unify behavior ich_descriptors_tool/Makefile: have the same behavior as the main flashrom Makefile - only set gcc explicit on MinGW HOST_OS - don't fallback to gcc if CC was not set - set CFLAGS and EXEC_SUFFIX for TARGET_OS, not for HOST_OS Change-Id: I353c3de250167994a4aea1edfef57d839e900d78 Signed-off-by: Thomas Heijligen Reviewed-on: https://review.coreboot.org/c/flashrom/+/58468 Tested-by: build bot (Jenkins) Reviewed-by: Nico Huber --- Makefile | 2 +- util/ich_descriptors_tool/Makefile | 15 +++++++-------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index e8bf8fc70..b03ab7c25 100644 --- a/Makefile +++ b/Makefile @@ -854,7 +854,7 @@ OBJS = $(CLI_OBJS) $(LIBFLASHROM_OBJS) all: hwlibs features $(PROGRAM)$(EXEC_SUFFIX) $(PROGRAM).8 ifeq ($(ARCH), x86) - @+$(MAKE) -C util/ich_descriptors_tool/ TARGET_OS=$(TARGET_OS) EXEC_SUFFIX=$(EXEC_SUFFIX) + @+$(MAKE) -C util/ich_descriptors_tool/ HOST_OS=$(HOST_OS) TARGET_OS=$(TARGET_OS) endif $(PROGRAM)$(EXEC_SUFFIX): $(OBJS) diff --git a/util/ich_descriptors_tool/Makefile b/util/ich_descriptors_tool/Makefile index 168220ca8..7f5814fc1 100644 --- a/util/ich_descriptors_tool/Makefile +++ b/util/ich_descriptors_tool/Makefile @@ -18,24 +18,19 @@ WARNERROR ?= yes SRC = $(wildcard *.c) -CC ?= gcc - # If the user has specified custom CFLAGS, all CFLAGS settings below will be # completely ignored by gnumake. CFLAGS ?= -Os -Wall -Wshadow +# Auto determine HOST_OS and TARGET_OS if they are not set as argument HOST_OS ?= $(shell uname) +TARGET_OS := $(call c_macro_test, ../../Makefile.d/os_test.h) + ifeq ($(findstring MINGW, $(HOST_OS)), MINGW) # Explicitly set CC = gcc on MinGW, otherwise: "cc: command not found". CC = gcc -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 -override TARGET_OS := $(call c_macro_test, ../../Makefile.d/os_test.h) - ifeq ($(TARGET_OS), DOS) EXEC_SUFFIX := .exe # DJGPP has odd uint*_t definitions which cause lots of format string warnings. @@ -43,6 +38,9 @@ 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/ CFLAGS += -D__USE_MINGW_ANSI_STDIO=1 endif @@ -73,6 +71,7 @@ $(SHAREDOBJ): $(OBJATH)/%.o : $(SHAREDSRCDIR)/%.c $(PROGRAM)$(EXEC_SUFFIX): $(OBJ) $(SHAREDOBJ) $(CC) $(LDFLAGS) -o $(PROGRAM)$(EXEC_SUFFIX) $(OBJ) $(SHAREDOBJ) +# We don't use EXEC_SUFFIX here because we want to clean everything. clean: rm -f $(PROGRAM) $(PROGRAM).exe rm -rf $(DEPPATH) $(OBJATH) -- cgit v1.2.3