On Thu, Jul 07, 2016 at 05:36:25PM +0200, Thomas Monjalon wrote:
> When building with "make V=1" it is expected to see the output of each
> compiler command in order to debug them.
> Unfortunately the pmdinfogen related commands were always quiet.
>
> It is fixed by defining the commands in some Makefile variables.
> They are printed if the verbose mode is enabled.
>
> The other benefit of this rework is to stop compilation after a
> failure with pmdinfogen.
>
> The command readlink is removed in this rework because it seems useless.
>
> Fixes: 3d781ca32874 ("mk: do post processing on objects that register a
> driver")
>
> Signed-off-by: Thomas Monjalon <thomas.monjalon at 6wind.com>
> ---
> mk/internal/rte.compile-pre.mk | 26 ++++++++++++--------------
> 1 file changed, 12 insertions(+), 14 deletions(-)
>
> diff --git a/mk/internal/rte.compile-pre.mk b/mk/internal/rte.compile-pre.mk
> index 87d2d93..9c25ff6 100644
> --- a/mk/internal/rte.compile-pre.mk
> +++ b/mk/internal/rte.compile-pre.mk
> @@ -84,28 +84,26 @@ C_TO_O = $(CC) -Wp,-MD,$(call obj2dep,$(@)).tmp $(CFLAGS)
> \
> C_TO_O_STR = $(subst ','\'',$(C_TO_O)) #'# fix syntax highlight
> C_TO_O_DISP = $(if $(V),"$(C_TO_O_STR)"," CC $(@)")
> endif
> +PMDINFO_GEN = $(RTE_SDK_BIN)/app/pmdinfogen $@ $@.pmd.c
> +PMDINFO_CC = $(CC) $(CFLAGS) -c -o $@.pmd.o $@.pmd.c
> +PMDINFO_LD = $(CROSS)ld $(LDFLAGS) -r -o $@.o $@.pmd.o $@
> +PMDINFO_TO_O = if grep -q 'PMD_REGISTER_DRIVER(.*)' $<; then \
> + echo "$(if $V,$(PMDINFO_GEN), PMDINFO $@.pmd.c)" && \
> + $(PMDINFO_GEN) && \
> + echo "$(if $V,$(PMDINFO_CC), CC $@.pmd.o)" && \
> + $(PMDINFO_CC) && \
> + echo "$(if $V,$(PMDINFO_LD), LD $@)" && \
> + $(PMDINFO_LD) && \
> + mv -f $@.o $@; fi
> C_TO_O_CMD = 'cmd_$@ = $(C_TO_O_STR)'
> C_TO_O_DO = @set -e; \
> echo $(C_TO_O_DISP); \
> $(C_TO_O) && \
> - sh -c "grep -q \"PMD_REGISTER_DRIVER(.*)\" $<; \
> - if [ \$$? -eq 0 ]; then \
> - echo \" PMDINFOGEN\" $@; \
> - OBJF=`readlink -f $@`; \
> - $(RTE_SDK_BIN)/app/pmdinfogen \$$OBJF \$$OBJF.pmd.c; \
> - if [ \$$? -eq 0 ]; \
> - then \
> - echo \" PMDINFOBUILD\" $@; \
> - $(CC) $(CFLAGS) -c -o \$$OBJF.pmd.o \$$OBJF.pmd.c; \
> - $(CROSS)ld $(LDFLAGS) -r -o \$$OBJF.o \$$OBJF.pmd.o
> \$$OBJF; \
> - mv -f \$$OBJF.o \$$OBJF; \
> - fi; \
> - fi;" && \
> + $(PMDINFO_TO_O) && \
> echo $(C_TO_O_CMD) > $(call obj2cmd,$(@)) && \
> sed 's,'$@':,dep_'$@' =,' $(call obj2dep,$(@)).tmp > $(call
> obj2dep,$(@)) && \
> rm -f $(call obj2dep,$(@)).tmp
>
> -
> # return an empty string if string are equal
> compare = $(strip $(subst $(1),,$(2)) $(subst $(2),,$(1)))
>
> --
> 2.7.0
>
>
Acked-by: Neil Horman <nhorman at tuxdriver.com>