git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 3/3] Makefile: use -Wdeclaration-after-statement if supported

From
Adam Spiers <git@adamspiers.org>
Date
Dec 16, 2012, 19:36 UTC
Message-ID
<1355686561-1057-4-git-send-email-git@adamspiers.org>
In-Reply-To
<1355686561-1057-1-git-send-email-git@adamspiers.org>

CodingGuidelines requests that code should be nice to older C compilers. Since modern gcc can warn on code written using newer dialects such as C99, it makes sense to take advantage of this by auto-detecting this capability and enabling it when found.

Signed-off-by: Adam Spiers <git@adamspiers.org>
---
If we adopt this approach, it may make sense to enable other flags
where available (e.g. -Wzero-as-null-pointer-constant, maybe even
-ansi).  In that case, something like this might be a more efficient
way of writing it:
    GCC_FLAGS=-Wdeclaration-after-statement,-Wanother-flag,-Wand-another
    GCC_FLAGS_REGEXP=$(shell echo $(GCC_FLAGS) | sed 's/,/\\|/g')
    GCC_SUPPORTED_FLAGS=$(shell cc --help -v 2>&1 | \
            sed -n '/.* \($(GCC_FLAGS_REGEXP)\) .*/{s//\1/;p}')
 Makefile | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index a49d1db..aae70d4 100644
--- a/Makefile
+++ b/Makefile
@@ -331,8 +331,13 @@ endif
 # CFLAGS and LDFLAGS are for the users to override from the command line.
 
 CFLAGS = -g -O2 -Wall
+GCC_DECL_AFTER_STATEMENT = \
+	$(shell $(CC) --help -v 2>&1 | \
+		grep -q -- -Wdeclaration-after-statement && \
+	  echo -Wdeclaration-after-statement)
+GCC_FLAGS = $(GCC_DECL_AFTER_STATEMENT)
+ALL_CFLAGS = $(CPPFLAGS) $(CFLAGS) $(GCC_FLAGS)
 LDFLAGS =
-ALL_CFLAGS = $(CPPFLAGS) $(CFLAGS)
 ALL_LDFLAGS = $(LDFLAGS)
 STRIP ?= strip
 
-- 
1.7.12.1.396.g53b3ea9
Previous: Adam SpiersNext: Junio C Hamano
Message 5 of 10 in “Help newbie git developers avoid obvious pitfalls”
  1. 0/3 Help newbie git developers avoid obvious pitfallsAdam Spiers, Dec 16, 2012
  2. 1/3 SubmittingPatches: add convention of prefixing commit messagesAdam Spiers, Dec 16, 2012
  3. Junio C HamanoDec 16, 2012
  4. 2/3 Documentation: move support for old compilers to CodingGuidelinesAdam Spiers, Dec 16, 2012
  5. 3/3 Makefile: use -Wdeclaration-after-statement if supportedAdam Spiers, Dec 16, 2012
  6. Junio C HamanoDec 17, 2012
  7. Adam SpiersDec 17, 2012
  8. Junio C HamanoDec 17, 2012
  9. Adam SpiersDec 22, 2012
  10. Junio C HamanoDec 22, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.