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