mirror of
				https://review.coreboot.org/flashrom.git
				synced 2025-11-04 07:00:39 +01:00 
			
		
		
		
	This allows to build `ich_descriptors_tool` with custom CFLAGS in the environment. Change-Id: If10f08e44141d05f0ee52615303652da576d2fc6 Signed-off-by: Nico Huber <nico.h@gmx.de> Reviewed-on: https://review.coreboot.org/c/flashrom/+/66979 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Thomas Heijligen <src@posteo.de>
		
			
				
	
	
		
			84 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
#
 | 
						|
# This file is part of the flashrom project.
 | 
						|
#
 | 
						|
# This Makefile works standalone, but it is usually called from the main
 | 
						|
# Makefile in the flashrom directory.
 | 
						|
 | 
						|
include ../../Makefile.include
 | 
						|
 | 
						|
PROGRAM=ich_descriptors_tool
 | 
						|
EXTRAINCDIRS = ../../ .
 | 
						|
DEPPATH = .dep
 | 
						|
OBJATH = .obj
 | 
						|
SHAREDSRC = ich_descriptors.c
 | 
						|
SHAREDSRCDIR = ../..
 | 
						|
# If your compiler spits out excessive warnings, run make WARNERROR=no
 | 
						|
# You shouldn't have to change this flag.
 | 
						|
WARNERROR ?= yes
 | 
						|
 | 
						|
SRC = $(wildcard *.c)
 | 
						|
 | 
						|
# If the user has specified custom CFLAGS, all CFLAGS settings below will be
 | 
						|
# completely ignored by gnumake.
 | 
						|
CFLAGS ?= -Os -Wall -Wshadow
 | 
						|
override CFLAGS += -I$(SHAREDSRCDIR)/include
 | 
						|
 | 
						|
# 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
 | 
						|
endif
 | 
						|
 | 
						|
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/
 | 
						|
CFLAGS += -D__USE_MINGW_ANSI_STDIO=1
 | 
						|
endif
 | 
						|
 | 
						|
ifeq ($(WARNERROR), yes)
 | 
						|
CFLAGS += -Werror
 | 
						|
endif
 | 
						|
 | 
						|
 | 
						|
FLASHROM_CFLAGS += -MMD -MP -MF $(DEPPATH)/$(@F).d
 | 
						|
# enables functions that populate the descriptor structs from plain binary dumps
 | 
						|
FLASHROM_CFLAGS += -D ICH_DESCRIPTORS_FROM_DUMP_ONLY
 | 
						|
FLASHROM_CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
 | 
						|
 | 
						|
OBJ = $(OBJATH)/$(SRC:%.c=%.o)
 | 
						|
 | 
						|
SHAREDOBJ = $(OBJATH)/$(notdir $(SHAREDSRC:%.c=%.o))
 | 
						|
 | 
						|
all:$(PROGRAM)$(EXEC_SUFFIX)
 | 
						|
 | 
						|
$(OBJ): $(OBJATH)/%.o : %.c
 | 
						|
	$(CC) $(CFLAGS) $(CPPFLAGS) $(FLASHROM_CFLAGS) -o $@ -c $<
 | 
						|
 | 
						|
# this enables us to share source files without simultaneously sharing .o files
 | 
						|
# with flashrom, which would lead to unexpected results (w/o running make clean)
 | 
						|
$(SHAREDOBJ): $(OBJATH)/%.o : $(SHAREDSRCDIR)/%.c
 | 
						|
	$(CC) $(CFLAGS) $(CPPFLAGS) $(FLASHROM_CFLAGS) -o $@ -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)
 | 
						|
 | 
						|
# Include the dependency files.
 | 
						|
-include $(shell mkdir -p $(DEPPATH) $(OBJATH) 2>/dev/null) $(wildcard $(DEPPATH)/*)
 | 
						|
 | 
						|
.PHONY: all clean
 |