[dpdk-dev,06/11] mk: fix verbose pmdinfogen run

Message ID 1467905790-10597-7-git-send-email-thomas.monjalon@6wind.com (mailing list archive)
State Superseded, archived
Headers

Commit Message

Thomas Monjalon July 7, 2016, 3:36 p.m. UTC
  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@6wind.com>
---
 mk/internal/rte.compile-pre.mk | 26 ++++++++++++--------------
 1 file changed, 12 insertions(+), 14 deletions(-)
  

Comments

Neil Horman July 7, 2016, 4:04 p.m. UTC | #1
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@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@tuxdriver.com>
  

Patch

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)))