Re: [PATCH] Allow override of CFLAGS

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



	Hello,

On Thu, 8 Aug 2013, Simon Horman wrote:

> When building ipvsadm this allows make to add to CFLAGS supplied
> on the command line.

	Hm, the change below simply adds -I, variable
override is already possible before the change. Is the
commit correct?

> This seems to make sense as Makefile and libipvs/Makefile
> add different CFLAGS but it may be desirable to supply supplementary
> flags when building ipvsadm.
> 
> In particular the following may be useful when building ipvsadm
> on Debian Jessie.
> 
> make CFLAGS='-I/usr/include/libnl3' LIBS='-lnl-3 -lnl-genl-3 -lnl-3 -lpopt'

	Hm, such command line vars override the
vars in Makefiles, they do not add to them. So, it is
not good for libipvs where -fPIC is the difference.

	make has such rules for vars:

Order of variables:
- command line
- makefile
- environment

For example: var=env make var=command_line
If -e is provided order is: command line, environment, makefile
Sub-make: only command line and environment vars are inherited,
	use 'export' to provide variables defined in makefile

	As result, we can support EXTRA_CFLAGS when
we want to add -Idir or other options, for example:

Makefile:
CFLAGS = $(EXTRA_CFLAGS) -Wall -Wunused -Wstrict-prototypes -g

libipvs/Makefile:
CFLAGS = $(EXTRA_CFLAGS) -Wall -Wunused -Wstrict-prototypes -g -fPIC

	Then:

1. Add to CFLAGS by providing EXTRA_CFLAGS, override LIBS:

	make EXTRA_CFLAGS='-I/usr/include/libnl3' \
		LIBS='-lnl-3 -lnl-genl-3 -lnl-3 -lpopt'

2. Override CFLAGS for both Makefiles because CFLAGS from
command line is inherited in sub-make

	make CFLAGS='-I/usr/include/libnl3 -fPIC' \
		LIBS='-lnl-3 -lnl-genl-3 -lnl-3 -lpopt'

	We can add EXTRA_LIBS if needed to complement
EXTRA_CFLAGS.

	Also, this is NOT an alternative:

Makefile:
CFLAGS+=-Wall -Wunused -Wstrict-prototypes -g

Makefile:
CFLAGS+=-Wall -Wunused -Wstrict-prototypes -g -fPIC

	because make CFLAGS=... will override the var,
makefile can override command line vars in such way but
it is ugly:

override var=DEFERRED
override var:=IMMEDIATE
override var+=APPEND

> Signed-off-by: Simon Horman <horms@xxxxxxxxxxxx>
> ---
>  Makefile | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/Makefile b/Makefile
> index 6e36d79..c8c1eec 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -48,7 +48,7 @@ STATIC_LIBS	= libipvs/libipvs.a
>  ifeq "${ARCH}" "sparc64"
>      CFLAGS = -Wall -Wunused -Wstrict-prototypes -g -m64 -pipe -mcpu=ultrasparc -mcmodel=medlow
>  else
> -    CFLAGS = -Wall -Wunused -Wstrict-prototypes -g
> +    CFLAGS = -I/usr/include/libnl3 -Wall -Wunused -Wstrict-prototypes -g
>  endif
>  
>  
> -- 
> 1.8.3.2

Regards

--
Julian Anastasov <ja@xxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe lvs-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Filesystem Devel]     [Linux NFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]     [X.Org]

  Powered by Linux