]> granicus.if.org Git - esp-idf/commitdiff
build examples: Only build verbose on failure, save on log output
authorAngus Gratton <angus@espressif.com>
Mon, 14 Nov 2016 04:29:27 +0000 (15:29 +1100)
committerAngus Gratton <angus@espressif.com>
Mon, 14 Nov 2016 04:29:27 +0000 (15:29 +1100)
make/build_examples.sh
make/component_wrapper.mk

index 53cba23b1e5f8f73f3e9f3f275374d154e46f8ab..a522666a98219eb12bd9c31c744bd1b376105f18 100755 (executable)
@@ -15,16 +15,15 @@ RESULT=0
 set -e
 
 for example in ${IDF_PATH}/examples/*; do
-       [ -f ${example}/Makefile ] || continue
-       echo "Building ${example} as ${EXAMPLE_NUM}..."
-       mkdir ${EXAMPLE_NUM}
-       cp -r ${example} ${EXAMPLE_NUM}
-       pushd ${EXAMPLE_NUM}/`basename ${example}`
-       # can't do "make defconfig all" as this will trip menuconfig
-       # sometimes
-       make defconfig V=1 && make V=1 || RESULT=$?
-       popd
-       EXAMPLE_NUM=$(( $EXAMPLE_NUM + 1 ))
+    [ -f ${example}/Makefile ] || continue
+    echo "Building ${example} as ${EXAMPLE_NUM}..."
+    mkdir ${EXAMPLE_NUM}
+    cp -r ${example} ${EXAMPLE_NUM}
+    pushd ${EXAMPLE_NUM}/`basename ${example}`
+    # build non-verbose first, only build verbose if there's an error
+    make defconfig all || (RESULT=$?; make V=1)
+    popd
+    EXAMPLE_NUM=$(( $EXAMPLE_NUM + 1 ))
 done
 
 exit $RESULT
index e1283bda8fafa70a072c90a49b6cfeff829b7982..55a135158ad293b96d27306d8c461dc9864d8aa2 100644 (file)
@@ -41,8 +41,9 @@ COMPONENT_LIBRARY = lib$(COMPONENT_NAME).a
 # Source dirs a component has. Default to root directory of component.
 COMPONENT_SRCDIRS = .
 
-#Names of binary files to embed as symbols in the component library
+#Names of binary & text files to embed as raw content in the component library
 COMPONENT_EMBED_FILES ?=
+COMPONENT_EMBED_TXTFILES ?=
 
 # By default, include only the include/ dir.
 COMPONENT_ADD_INCLUDEDIRS = include
@@ -72,6 +73,11 @@ COMPONENT_OBJS += $(foreach compsrcdir,$(COMPONENT_SRCDIRS),$(patsubst %.S,%.o,$
 COMPONENT_OBJS := $(patsubst $(COMPONENT_PATH)/%,%,$(COMPONENT_OBJS))
 endif
 
+# Object files with embedded binaries to add to the component library
+# Correspond to the files named in COMPONENT_EMBED_FILES & COMPONENT_EMBED_TXTFILES
+COMPONENT_EMBED_OBJS ?= $(addsuffix .bin.o,$(COMPONENT_EMBED_FILES)) $(addsuffix .txt.o,$(COMPONENT_EMBED_TXTFILES))
+
+
 # If we're called to compile something, we'll get passed the COMPONENT_INCLUDES
 # variable with all the include dirs from all the components in random order. This
 # means we can accidentally grab a header from another component before grabbing our own.
@@ -133,7 +139,7 @@ build: $(COMPONENT_LIBRARY)
 $(COMPONENT_LIBRARY): $(COMPONENT_OBJS) $(COMPONENT_EMBED_OBJS)
        $(summary) AR $@
        rm -f $@
-       $(AR) cru $@ $(COMPONENT_OBJS)
+       $(AR) cru $@ $^
 endif
 
 # If COMPONENT_OWNCLEANTARGET is not set, define a phony clean target
@@ -187,11 +193,11 @@ OBJCOPY_EMBED_ARGS := --input binary --output elf32-xtensa-le --binary-architect
 # path to the input file.
 define GenerateEmbedTarget
 $(1).$(2).o: $(call resolvepath,$(1),$(COMPONENT_PATH)) | $$(dir $(1))
-       $$(summary) EMBED $$@
-       $$(Q) $(if $(filter-out $$(notdir $$(abspath $$<)),$$(abspath $$(notdir $$<))), cp $$< $$(notdir $$<) )  # copy input file to build dir, unless already in build dir
-       $$(Q) $(if $(subst bin,,$(2)),echo -ne '\0' >> $$(notdir $$<) )  # trailing NUL byte on text output
-       $$(Q) $$(OBJCOPY) $(OBJCOPY_EMBED_ARGS) $$(notdir $$<) $$@
-       $$(Q) rm $$(notdir $$<)
+       $(summary) EMBED $$@
+       $$(if $$(filter-out $$(notdir $$(abspath $$<)),$$(abspath $$(notdir $$<))), cp $$< $$(notdir $$<) )  # copy input file to build dir, unless already in build dir
+       $$(if $$(subst bin,,$(2)),echo -ne '\0' >> $$(notdir $$<) )  # trailing NUL byte on text output
+       $(OBJCOPY) $(OBJCOPY_EMBED_ARGS) $$(notdir $$<) $$@
+       rm $$(notdir $$<)
 endef
 
 # generate targets to embed binary & text files