diff mbox

Makefiles: Allow CFLAGS to overide the build

Message ID 1392675389-26607-1-git-send-email-mike.holmes@linaro.org
State Superseded, archived
Headers show

Commit Message

Mike Holmes Feb. 17, 2014, 10:16 p.m. UTC
Signed-off-by: Mike Holmes <mike.holmes@linaro.org>
---

CFLAGS is usually expected to take effect on a build if applied from the
command line when calling make, or if it is set in the environment.

Examples are when building with CLANG, -Wno-error must be applied to
allow CLANG warnings which are a superset of gcc to cause the build to
fail. e.g. make CC=clang CFLAGS=-Wno-error 

When building with optimizations off and with -g for debugging, it must
be possible to alter the defaults, in ODPs case these defaults are in
Makefile.inc

e.g. make CFLAGS=-O3

 .checkpatch.conf                |  1 +
 Makefile.inc                    | 16 ++++++++--------
 platform/linux-generic/Makefile | 10 +++++-----
 test/api_test/Makefile          |  6 +++---
 test/example/Makefile           |  2 +-
 test/packet/Makefile            |  4 ++--
 test/packet_netmap/Makefile     |  6 +++---
 7 files changed, 23 insertions(+), 22 deletions(-)

Comments

Petri Savolainen Feb. 18, 2014, 7:55 a.m. UTC | #1
On Tuesday, 18 February 2014 00:16:29 UTC+2, Mike Holmes wrote:
>
> Signed-off-by: Mike Holmes <mike....@linaro.org <javascript:>> 
> --- 
>
> CFLAGS is usually expected to take effect on a build if applied from the 
> command line when calling make, or if it is set in the environment. 
>
> Examples are when building with CLANG, -Wno-error must be applied to 
> allow CLANG warnings which are a superset of gcc to cause the build to 
> fail. e.g. make CC=clang CFLAGS=-Wno-error 
>
> When building with optimizations off and with -g for debugging, it must 
> be possible to alter the defaults, in ODPs case these defaults are in 
> Makefile.inc 
>
> e.g. make CFLAGS=-O3 
>
>  .checkpatch.conf                |  1 + 
>  Makefile.inc                    | 16 ++++++++-------- 
>  platform/linux-generic/Makefile | 10 +++++----- 
>  test/api_test/Makefile          |  6 +++--- 
>  test/example/Makefile           |  2 +- 
>  test/packet/Makefile            |  4 ++-- 
>  test/packet_netmap/Makefile     |  6 +++--- 
>  7 files changed, 23 insertions(+), 22 deletions(-) 
>
> diff --git a/.checkpatch.conf b/.checkpatch.conf 
> index e1a25c8..9076410 100644 
> --- a/.checkpatch.conf 
> +++ b/.checkpatch.conf 
> @@ -1,3 +1,4 @@ 
>  --no-tree 
>  --strict 
>  --ignore=NEW_TYPEDEFS 
> +--ignore=DEPRECATED_VARIABLE 
> diff --git a/Makefile.inc b/Makefile.inc 
> index 7dea028..75a4829 100644 
> --- a/Makefile.inc 
> +++ b/Makefile.inc 
> @@ -4,17 +4,17 @@ 
>  # SPDX-License-Identifier:        BSD-3-Clause 
>   
>  PLATFORM ?= linux-generic 
> -CFLAGS  += -DODP_DEBUG=1 
> -#CFLAGS  += -O3 
> -CFLAGS  += -O0 -g 
> +EXTRA_CFLAGS  += -DODP_DEBUG=1 
> +#EXTRA_CFLAGS  += -O3 
> +EXTRA_CFLAGS  += -O0 -g 
>

As I said earlier, -O3 must be used by default. It must be used in 
regression testing. Otherwise we have code soon that does not compile with 
-O3, or compiles but has bugs with optimization.

-Petri
 

>   
>  OBJ_DIR  = ./obj 
>  DESTDIR ?= $(ODP_ROOT)/build 
>   
> -CFLAGS += -W -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes 
> -CFLAGS += -Wmissing-declarations -Wold-style-definition -Wpointer-arith 
> -CFLAGS += -Wcast-align -Wnested-externs -Wcast-qual -Wformat-nonliteral 
> -CFLAGS += -Wformat-security -Wundef -Wwrite-strings 
> +EXTRA_CFLAGS += -W -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes 
> +EXTRA_CFLAGS += -Wmissing-declarations -Wold-style-definition 
> -Wpointer-arith 
> +EXTRA_CFLAGS += -Wcast-align -Wnested-externs -Wcast-qual 
> -Wformat-nonliteral 
> +EXTRA_CFLAGS += -Wformat-security -Wundef -Wwrite-strings 
>   
>  CC     ?= gcc 
>  LD     ?= gcc 
> @@ -26,5 +26,5 @@ RMDIR  := rm -rf 
>  RM     := rm -f 
>  COPY   := cp -r 
>   
> -CFLAGS  += -pthread 
> +EXTRA_EXTRA_CFLAGS  += -pthread 
>  LDFLAGS += -pthread 
> diff --git a/platform/linux-generic/Makefile 
> b/platform/linux-generic/Makefile 
> index f665683..9828ee4 100644 
> --- a/platform/linux-generic/Makefile 
> +++ b/platform/linux-generic/Makefile 
> @@ -32,12 +32,12 @@ ODP_ROOT = ../.. 
>  LIB_DIR  = ./lib 
>  DOC_DIR  = ./doc 
>   
> -CFLAGS  += -I$(ODP_ROOT)/include 
> -CFLAGS  += -I./include 
> -CFLAGS  += -I./include/api 
> +EXTRA_CFLAGS  += -I$(ODP_ROOT)/include 
> +EXTRA_CFLAGS  += -I./include 
> +EXTRA_CFLAGS  += -I./include/api 
>   
>  ifeq ($(ODP_HAVE_NETMAP),yes) 
> -CFLAGS  += -DODP_HAVE_NETMAP 
> +EXTRA_CFLAGS  += -DODP_HAVE_NETMAP 
>  endif 
>   
>  include $(ODP_ROOT)/Makefile.inc 
> @@ -92,7 +92,7 @@ $(DOC_DIR): 
>  # 
>  $(OBJ_DIR)/%.o: ./source/%.c 
>          $(ECHO) Compiling $< 
> -        $(CC) -c -MD $(CFLAGS) -o $@ $< 
> +        $(CC) -c -MD $(EXTRA_CFLAGS) $(CFLAGS) -o $@ $< 
>   
>  # 
>  # Lib rule 
> diff --git a/test/api_test/Makefile b/test/api_test/Makefile 
> index 15c18f4..741fbe4 100644 
> --- a/test/api_test/Makefile 
> +++ b/test/api_test/Makefile 
> @@ -12,12 +12,12 @@ ODP_ATOMIC    = odp_atomic 
>  ODP_SHM       = odp_shm 
>  ODP_RING      = odp_ring 
>   
> -CFLAGS  += -I$(ODP_ROOT)/platform/linux-generic/include 
> +EXTRA_CFLAGS  += -I$(ODP_ROOT)/platform/linux-generic/include 
>   
>  include ../Makefile.inc 
>  include $(ODP_ROOT)/Makefile.inc 
>   
> -CFLAGS      += -I$(ODP_TEST_ROOT)/api_test 
> +EXTRA_CFLAGS      += -I$(ODP_TEST_ROOT)/api_test 
>   
>  ATOMIC_OBJS  = 
>  ATOMIC_OBJS += $(OBJ_DIR)/odp_common.o 
> @@ -52,7 +52,7 @@ $(OBJ_DIR): $(DESTDIR)/lib/libodp.a 
>  # 
>  $(OBJ_DIR)/%.o: %.c 
>          $(ECHO) Compiling $< 
> -        $(CC) -c -MD $(CFLAGS) -o $@ $< 
> +        $(CC) -c -MD $(EXTRA_CFLAGS) $(CFLAGS) -o $@ $< 
>   
>  # 
>  # Link rule 
> diff --git a/test/example/Makefile b/test/example/Makefile 
> index d43e780..8064977 100644 
> --- a/test/example/Makefile 
> +++ b/test/example/Makefile 
> @@ -30,7 +30,7 @@ $(OBJ_DIR): $(DESTDIR)/lib/libodp.a 
>  # 
>  $(OBJ_DIR)/%.o: %.c 
>          $(ECHO) Compiling $< 
> -        $(CC) -c -MD $(CFLAGS) -o $@ $< 
> +        $(CC) -c -MD $(EXTRA_CFLAGS) $(CFLAGS) -o $@ $< 
>   
>  # 
>  # Link rule 
> diff --git a/test/packet/Makefile b/test/packet/Makefile 
> index f1cb7d9..c66b37c 100644 
> --- a/test/packet/Makefile 
> +++ b/test/packet/Makefile 
> @@ -9,7 +9,7 @@ ODP_APP  = odp_packet 
>  include ../Makefile.inc 
>  include $(ODP_ROOT)/Makefile.inc 
>   
> -CFLAGS  += -I$(ODP_TEST_ROOT)/packet 
> +EXTRA_CFLAGS  += -I$(ODP_TEST_ROOT)/packet 
>   
>  OBJS     = 
>  OBJS    += $(OBJ_DIR)/odp_example_pktio.o 
> @@ -32,7 +32,7 @@ $(OBJ_DIR): $(DESTDIR)/lib/libodp.a 
>  # 
>  $(OBJ_DIR)/%.o: %.c 
>          $(ECHO) Compiling $< 
> -        $(CC) -c -MD $(CFLAGS) -o $@ $< 
> +        $(CC) -c -MD $(EXTRA_CFLAGS) $(CFLAGS) -o $@ $< 
>   
>  # 
>  # Link rule 
> diff --git a/test/packet_netmap/Makefile b/test/packet_netmap/Makefile 
> index 5febb33..d92d113 100644 
> --- a/test/packet_netmap/Makefile 
> +++ b/test/packet_netmap/Makefile 
> @@ -6,8 +6,8 @@ 
>  ODP_ROOT = ../.. 
>  ODP_APP  = odp_packet 
>   
> -CFLAGS  += -DODP_HAVE_NETMAP 
> -CFLAGS  += -O0 -g 
> +EXTRA_CFLAGS  += -DODP_HAVE_NETMAP 
> +EXTRA_CFLAGS  += -O0 -g 
>   
>  include ../Makefile.inc 
>  include $(ODP_ROOT)/Makefile.inc 
> @@ -33,7 +33,7 @@ $(OBJ_DIR): $(DESTDIR)/lib/libodp.a 
>  # 
>  $(OBJ_DIR)/%.o: %.c 
>          $(ECHO) Compiling $< 
> -        $(CC) -c -MD $(CFLAGS) -o $@ $< 
> +        $(CC) -c -MD $(EXTRA_CFLAGS) $(CFLAGS) -o $@ $< 
>   
>  # 
>  # Link rule 
> -- 
> 1.8.3.2 
>
>
diff mbox

Patch

diff --git a/.checkpatch.conf b/.checkpatch.conf
index e1a25c8..9076410 100644
--- a/.checkpatch.conf
+++ b/.checkpatch.conf
@@ -1,3 +1,4 @@ 
 --no-tree
 --strict
 --ignore=NEW_TYPEDEFS
+--ignore=DEPRECATED_VARIABLE
diff --git a/Makefile.inc b/Makefile.inc
index 7dea028..75a4829 100644
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -4,17 +4,17 @@ 
 # SPDX-License-Identifier:	BSD-3-Clause
 
 PLATFORM ?= linux-generic
-CFLAGS  += -DODP_DEBUG=1
-#CFLAGS  += -O3
-CFLAGS  += -O0 -g
+EXTRA_CFLAGS  += -DODP_DEBUG=1
+#EXTRA_CFLAGS  += -O3
+EXTRA_CFLAGS  += -O0 -g
 
 OBJ_DIR  = ./obj
 DESTDIR ?= $(ODP_ROOT)/build
 
-CFLAGS += -W -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes
-CFLAGS += -Wmissing-declarations -Wold-style-definition -Wpointer-arith
-CFLAGS += -Wcast-align -Wnested-externs -Wcast-qual -Wformat-nonliteral
-CFLAGS += -Wformat-security -Wundef -Wwrite-strings
+EXTRA_CFLAGS += -W -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes
+EXTRA_CFLAGS += -Wmissing-declarations -Wold-style-definition -Wpointer-arith
+EXTRA_CFLAGS += -Wcast-align -Wnested-externs -Wcast-qual -Wformat-nonliteral
+EXTRA_CFLAGS += -Wformat-security -Wundef -Wwrite-strings
 
 CC     ?= gcc
 LD     ?= gcc
@@ -26,5 +26,5 @@  RMDIR  := rm -rf
 RM     := rm -f
 COPY   := cp -r
 
-CFLAGS  += -pthread
+EXTRA_EXTRA_CFLAGS  += -pthread
 LDFLAGS += -pthread
diff --git a/platform/linux-generic/Makefile b/platform/linux-generic/Makefile
index f665683..9828ee4 100644
--- a/platform/linux-generic/Makefile
+++ b/platform/linux-generic/Makefile
@@ -32,12 +32,12 @@  ODP_ROOT = ../..
 LIB_DIR  = ./lib
 DOC_DIR  = ./doc
 
-CFLAGS  += -I$(ODP_ROOT)/include
-CFLAGS  += -I./include
-CFLAGS  += -I./include/api
+EXTRA_CFLAGS  += -I$(ODP_ROOT)/include
+EXTRA_CFLAGS  += -I./include
+EXTRA_CFLAGS  += -I./include/api
 
 ifeq ($(ODP_HAVE_NETMAP),yes)
-CFLAGS  += -DODP_HAVE_NETMAP
+EXTRA_CFLAGS  += -DODP_HAVE_NETMAP
 endif
 
 include $(ODP_ROOT)/Makefile.inc
@@ -92,7 +92,7 @@  $(DOC_DIR):
 #
 $(OBJ_DIR)/%.o: ./source/%.c
 	$(ECHO) Compiling $<
-	$(CC) -c -MD $(CFLAGS) -o $@ $<
+	$(CC) -c -MD $(EXTRA_CFLAGS) $(CFLAGS) -o $@ $<
 
 #
 # Lib rule
diff --git a/test/api_test/Makefile b/test/api_test/Makefile
index 15c18f4..741fbe4 100644
--- a/test/api_test/Makefile
+++ b/test/api_test/Makefile
@@ -12,12 +12,12 @@  ODP_ATOMIC    = odp_atomic
 ODP_SHM       = odp_shm
 ODP_RING      = odp_ring
 
-CFLAGS  += -I$(ODP_ROOT)/platform/linux-generic/include
+EXTRA_CFLAGS  += -I$(ODP_ROOT)/platform/linux-generic/include
 
 include ../Makefile.inc
 include $(ODP_ROOT)/Makefile.inc
 
-CFLAGS      += -I$(ODP_TEST_ROOT)/api_test
+EXTRA_CFLAGS      += -I$(ODP_TEST_ROOT)/api_test
 
 ATOMIC_OBJS  =
 ATOMIC_OBJS += $(OBJ_DIR)/odp_common.o
@@ -52,7 +52,7 @@  $(OBJ_DIR): $(DESTDIR)/lib/libodp.a
 #
 $(OBJ_DIR)/%.o: %.c
 	$(ECHO) Compiling $<
-	$(CC) -c -MD $(CFLAGS) -o $@ $<
+	$(CC) -c -MD $(EXTRA_CFLAGS) $(CFLAGS) -o $@ $<
 
 #
 # Link rule
diff --git a/test/example/Makefile b/test/example/Makefile
index d43e780..8064977 100644
--- a/test/example/Makefile
+++ b/test/example/Makefile
@@ -30,7 +30,7 @@  $(OBJ_DIR): $(DESTDIR)/lib/libodp.a
 #
 $(OBJ_DIR)/%.o: %.c
 	$(ECHO) Compiling $<
-	$(CC) -c -MD $(CFLAGS) -o $@ $<
+	$(CC) -c -MD $(EXTRA_CFLAGS) $(CFLAGS) -o $@ $<
 
 #
 # Link rule
diff --git a/test/packet/Makefile b/test/packet/Makefile
index f1cb7d9..c66b37c 100644
--- a/test/packet/Makefile
+++ b/test/packet/Makefile
@@ -9,7 +9,7 @@  ODP_APP  = odp_packet
 include ../Makefile.inc
 include $(ODP_ROOT)/Makefile.inc
 
-CFLAGS  += -I$(ODP_TEST_ROOT)/packet
+EXTRA_CFLAGS  += -I$(ODP_TEST_ROOT)/packet
 
 OBJS     =
 OBJS    += $(OBJ_DIR)/odp_example_pktio.o
@@ -32,7 +32,7 @@  $(OBJ_DIR): $(DESTDIR)/lib/libodp.a
 #
 $(OBJ_DIR)/%.o: %.c
 	$(ECHO) Compiling $<
-	$(CC) -c -MD $(CFLAGS) -o $@ $<
+	$(CC) -c -MD $(EXTRA_CFLAGS) $(CFLAGS) -o $@ $<
 
 #
 # Link rule
diff --git a/test/packet_netmap/Makefile b/test/packet_netmap/Makefile
index 5febb33..d92d113 100644
--- a/test/packet_netmap/Makefile
+++ b/test/packet_netmap/Makefile
@@ -6,8 +6,8 @@ 
 ODP_ROOT = ../..
 ODP_APP  = odp_packet
 
-CFLAGS  += -DODP_HAVE_NETMAP
-CFLAGS  += -O0 -g
+EXTRA_CFLAGS  += -DODP_HAVE_NETMAP
+EXTRA_CFLAGS  += -O0 -g
 
 include ../Makefile.inc
 include $(ODP_ROOT)/Makefile.inc
@@ -33,7 +33,7 @@  $(OBJ_DIR): $(DESTDIR)/lib/libodp.a
 #
 $(OBJ_DIR)/%.o: %.c
 	$(ECHO) Compiling $<
-	$(CC) -c -MD $(CFLAGS) -o $@ $<
+	$(CC) -c -MD $(EXTRA_CFLAGS) $(CFLAGS) -o $@ $<
 
 #
 # Link rule