[Buildroot] [PATCH 1/1] Makefile.in: add CPPFLAGS support

Arnout Vandecappelle arnout at mind.be
Wed Jul 25 23:02:06 UTC 2012


On 07/25/12 22:14, Samuel Martin wrote:
>
> Signed-off-by: Samuel Martin<s.martin49 at gmail.com>
>
> diff --git a/package/Makefile.in b/package/Makefile.in
> index 6fad224..d12bf5e 100644
> --- a/package/Makefile.in
> +++ b/package/Makefile.in
> @@ -85,18 +85,20 @@ ifeq ($(BR2_DEBUG_3),y)
>   TARGET_DEBUGGING=-g3
>   endif
>
> -TARGET_CFLAGS=$(TARGET_ABI) $(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING)
> +TARGET_CPPFLAGS = -I$(STAGING_DIR)/usr/include

  This is redundant for the target, because cpp uses the sysroot as well.
(I checked this with an external toolchain and a buildroot toolchain.)

> -ifeq ($(findstring yy,$(BR2_mips)$(BR2_MIPS_ABI64)),yy)
> -TARGET_CFLAGS+=-fno-pic -mno-abicalls
> +ifeq ($(BR2_LARGEFILE),y)
> +TARGET_CPPFLAGS += -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
>   endif
>
> -ifeq ($(BR2_LARGEFILE),y)
> -TARGET_CFLAGS+=-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
> +TARGET_CFLAGS = $(TARGET_ABI) $(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING) $(TARGET_CPPFLAGS)

  It shouldn't be needed to add the CPPFLAGS to the CFLAGS, since the build system will
normally combine the two for compilation.  However, it doesn't hurt to have them both,
so it's probably a good idea to duplicate it in CFLAGS so that build systems which
don't observe CPPFLAGS will not break down.

  Just one thing: I'd put the CPPFLAGS at the front of the list.

> +
> +ifeq ($(findstring yy,$(BR2_mips)$(BR2_MIPS_ABI64)),yy)
> +TARGET_CFLAGS += -fno-pic -mno-abicalls
>   endif
>
> -TARGET_CXXFLAGS=$(TARGET_CFLAGS)
> -TARGET_LDFLAGS=$(call qstrip,$(BR2_TARGET_LDFLAGS))
> +TARGET_CXXFLAGS  = $(TARGET_CFLAGS)
> +TARGET_LDFLAGS   = $(call qstrip,$(BR2_TARGET_LDFLAGS))
>
>   ifeq ($(BR2_TOOLCHAIN_BUILDROOT)$(BR2_TOOLCHAIN_CTNG),y)
>   TARGET_CROSS=$(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-
> @@ -153,9 +155,10 @@ FLEX:=$(shell which flex || type -p flex)
>   BISON:=$(shell which bison || type -p bison)
>   SED:=$(shell which sed || type -p sed) -i -e
>
> +HOST_CPPFLAGS ?= -I$(HOST_DIR)/include -I$(HOST_DIR)/usr/include

  Actually the $(HOST_DIR)/include can be left out: it doesn't exist.
Also I don't see the point of using ?=.  If it is specified on the
command line, it will anyway override this definition, and we know
it is not specified in any other Makefile.


  Regards,
  Arnout


>   HOST_CFLAGS   ?= -O2
> -HOST_CFLAGS   += -I$(HOST_DIR)/include -I$(HOST_DIR)/usr/include
> -HOST_CXXFLAGS += -I$(HOST_DIR)/include -I$(HOST_DIR)/usr/include
> +HOST_CFLAGS   += $(HOST_CPPFLAGS)
> +HOST_CXXFLAGS += $(HOST_CFLAGS)
>   HOST_LDFLAGS  += -L$(HOST_DIR)/lib -L$(HOST_DIR)/usr/lib -Wl,-rpath,$(HOST_DIR)/usr/lib
>   HOST_PATH=$(HOST_DIR)/bin:$(HOST_DIR)/usr/bin:$(PATH)
>
> @@ -184,12 +187,14 @@ TARGET_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \
>   		CXX_FOR_BUILD="$(HOSTCXX)" \
>   		FC_FOR_BUILD="$(HOSTFC)" \
>   		LD_FOR_BUILD="$(HOSTLD)" \
> +		CPPFLAGS_FOR_BUILD="$(HOST_CPPFLAGS)" \
>   		CFLAGS_FOR_BUILD="$(HOST_CFLAGS)" \
>   		CXXFLAGS_FOR_BUILD="$(HOST_CXXFLAGS)" \
>   		LDFLAGS_FOR_BUILD="$(HOST_LDFLAGS)" \
>   		FCFLAGS_FOR_BUILD="$(HOST_FCFLAGS)" \
>   		DEFAULT_ASSEMBLER="$(TARGET_AS)" \
>   		DEFAULT_LINKER="$(TARGET_LD)" \
> +		CPPFLAGS="$(TARGET_CPPFLAGS)" \
>   		CFLAGS="$(TARGET_CFLAGS)" \
>   		CXXFLAGS="$(TARGET_CXXFLAGS)" \
>   		LDFLAGS="$(TARGET_LDFLAGS)" \
> @@ -210,6 +215,7 @@ HOST_CONFIGURE_OPTS=PATH=$(HOST_PATH) \
>   		GCC="$(HOSTCC)" \
>   		CXX="$(HOSTCXX)" \
>   		CPP="$(HOSTCPP)" \
> +		CPPFLAGS="$(HOST_CPPFLAGS)" \
>   		CFLAGS="$(HOST_CFLAGS)" \
>   		CXXFLAGS="$(HOST_CXXFLAGS)" \
>   		LDFLAGS="$(HOST_LDFLAGS)" \

-- 
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F


More information about the buildroot mailing list