diff options
-rw-r--r-- | Makefile | 7 | ||||
-rw-r--r-- | util/ich_descriptors_tool/Makefile | 31 |
2 files changed, 28 insertions, 10 deletions
@@ -26,6 +26,9 @@ PROGRAM = flashrom # If you want to cross-compile, just run e.g. # make CC=i586-pc-msdosdjgpp-gcc # You may have to specify STRIP/AR/RANLIB as well. +# +# Note for anyone editing this Makefile: gnumake will happily ignore any +# changes in this Makefile to variables set on the command line. CC ?= gcc STRIP ?= strip INSTALL = install @@ -83,7 +86,7 @@ ifeq ($(TARGET_OS), DOS) EXEC_SUFFIX := .exe CPPFLAGS += -I../libgetopt # DJGPP has odd uint*_t definitions which cause lots of format string warnings. -CPPFLAGS += -Wno-format +CFLAGS += -Wno-format # FIXME Check if we can achieve the same effect with -L../libgetopt -lgetopt LIBS += ../libgetopt/libgetopt.a # Bus Pirate, Serprog and PonyProg are not supported under DOS (missing serial support). @@ -119,7 +122,7 @@ endif ifeq ($(TARGET_OS), MinGW) EXEC_SUFFIX := .exe # MinGW doesn't have the ffs() function, but we can use gcc's __builtin_ffs(). -CFLAGS += -Dffs=__builtin_ffs +CPPFLAGS += -Dffs=__builtin_ffs # libusb-win32/libftdi stuff is usually installed in /usr/local. CPPFLAGS += -I/usr/local/include LDFLAGS += -L/usr/local/lib diff --git a/util/ich_descriptors_tool/Makefile b/util/ich_descriptors_tool/Makefile index d8a79f5..4d18aec 100644 --- a/util/ich_descriptors_tool/Makefile +++ b/util/ich_descriptors_tool/Makefile @@ -1,4 +1,8 @@ -CC ?= gcc +# +# 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. PROGRAM=ich_descriptors_tool EXTRAINCDIRS = ../../ . @@ -6,19 +10,30 @@ 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) -CFLAGS += -Wall -CFLAGS += -MMD -MP -MF $(DEPPATH)/$(@F).d -# enables functions that populate the descriptor structs from plain binary dumps -CFLAGS += -D ICH_DESCRIPTORS_FROM_DUMP -CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS)) +CC ?= gcc +# If the user has specified custom CFLAGS, all CFLAGS settings below will be +# completely ignored by gnumake. +CFLAGS ?= -Os -Wall -Wshadow ifeq ($(TARGET_OS), DOS) # DJGPP has odd uint*_t definitions which cause lots of format string warnings. CFLAGS += -Wno-format endif +ifeq ($(WARNERROR), yes) +CFLAGS += -Werror +endif + + +CPPFLAGS += -MMD -MP -MF $(DEPPATH)/$(@F).d +# enables functions that populate the descriptor structs from plain binary dumps +CPPFLAGS += -D ICH_DESCRIPTORS_FROM_DUMP +CPPFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS)) OBJ = $(OBJATH)/$(SRC:%.c=%.o) @@ -27,12 +42,12 @@ SHAREDOBJ = $(OBJATH)/$(notdir $(SHAREDSRC:%.c=%.o)) all:$(PROGRAM)$(EXEC_SUFFIX) $(OBJ): $(OBJATH)/%.o : %.c - $(CC) $(CFLAGS) -o $@ -c $< + $(CC) $(CFLAGS) $(CPPFLAGS) -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) -o $@ -c $< + $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< $(PROGRAM)$(EXEC_SUFFIX): $(OBJ) $(SHAREDOBJ) $(CC) -o $(PROGRAM)$(EXEC_SUFFIX) $(OBJ) $(SHAREDOBJ) |