summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile7
-rw-r--r--util/ich_descriptors_tool/Makefile31
2 files changed, 28 insertions, 10 deletions
diff --git a/Makefile b/Makefile
index 774d5b3..c78f419 100644
--- a/Makefile
+++ b/Makefile
@@ -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)
OpenPOWER on IntegriCloud