[flashrom] [PATCH] Be optionally seriously pedantic

Stefan Tauner stefan.tauner at student.tuwien.ac.at
Tue Aug 9 19:18:35 CEST 2011


This allows to easily test flashrom with numerous compiler warnings enabled.
A new variable "PEDANTIC" is introduced which disables the feature by default,
but can be overriden on the CLI. Additionally a new phony target "pedantic" is
introduced which disables -Werror, enables the pedantic warnings and calls
the default target recursively. It also has 'clean' as prerequisite to create
consistent output.
---
TODO:
- make it possible to execute other targets with make pedantic(?)
  (something like "make pedantic target=djgpp-dos")
- refine warnings used

Signed-off-by: Stefan Tauner <stefan.tauner at student.tuwien.ac.at>
---
 Makefile |   21 +++++++++++++++++++--
 1 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index c72d10a..7289bed 100644
--- a/Makefile
+++ b/Makefile
@@ -32,11 +32,22 @@ AR      ?= ar
 RANLIB  ?= ranlib
 
 WARNERROR ?= yes
+PEDANTIC ?= no
 
 ifeq ($(WARNERROR), yes)
 CFLAGS += -Werror
 endif
 
+ifeq ($(PEDANTIC), yes)
+CFLAGS += -std=c99 --pedantic -Wextra -fstrict-aliasing\
+	-Wmissing-include-dirs -Winit-self -Wswitch-enum \
+	-Wundef -Wbad-function-cast -Wcast-qual -Wcast-align -Wconversion \
+	-Wstrict-prototypes -Wmissing-declarations -Wredundant-decls\
+	\
+	-Wno-unused-parameter
+	# -Wno-missing-field-initializers -Wno-sign-conversion
+endif
+
 # Determine the destination processor architecture
 override ARCH = $(strip $(shell LC_ALL=C $(CC) -E arch.h|grep -v '^\#'))
 
@@ -248,6 +259,7 @@ CLI_OBJS = flashrom.o cli_classic.o cli_output.o print.o
 PROGRAMMER_OBJS = udelay.o programmer.o
 
 all: pciutils features $(PROGRAM)$(EXEC_SUFFIX)
+	@echo $(CFLAGS)
 
 # Set the flashrom version string from the highest revision number
 # of the checked out flashrom files.
@@ -643,8 +655,13 @@ tarball: export
 	@echo Created $(EXPORTDIR)/flashrom-$(RELEASENAME).tar.bz2
 
 djgpp-dos: clean
-	make CC=i586-pc-msdosdjgpp-gcc STRIP=i586-pc-msdosdjgpp-strip WARNERROR=no OS_ARCH=DOS
+	$(MAKE) CC=i586-pc-msdosdjgpp-gcc STRIP=i586-pc-msdosdjgpp-strip WARNERROR=no OS_ARCH=DOS
+
+pedantic: export WARNERROR=no
+pedantic: export PEDANTIC=yes
+pedantic: clean
+	$(MAKE)
 
-.PHONY: all clean distclean compiler pciutils features export tarball dos featuresavailable
+.PHONY: all clean distclean compiler pciutils features export tarball dos featuresavailable pedantic
 
 -include $(OBJS:.o=.d)
-- 
1.7.1





More information about the flashrom mailing list