graphs: support generating png graphs
authorYann E. MORIN <yann.morin.1998@free.fr>
Sat, 28 Dec 2013 17:39:13 +0000 (18:39 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sun, 29 Dec 2013 11:13:25 +0000 (12:13 +0100)
PDF files can not be easily embedded in other documents (eg. ODT, or HTML).

Add support for generating PNG graphs, by setting the GRAPH_OUT=pdf|png on
the command line:
    make GRAPH_OUT=png graph-build graph-depends

The default is still to generate PDF graphs.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Makefile
docs/manual/common-usage.txt
package/pkg-generic.mk
support/scripts/graph-build-time

index 8107865040f12cd9285beb4b8109d2a09f49f6f4..4320e7b2f36a260425b1f73986c38856a03fda2d 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -121,6 +121,9 @@ else
   $(shell echo BR2_EXTERNAL ?= $(BR2_EXTERNAL) > $(BR2_EXTERNAL_FILE))
 endif
 
+# Need that early, before we scan packages
+# Avoids doing the $(or...) everytime
+BR2_GRAPH_OUT := $(or $(GRAPH_OUT),pdf)
 
 BUILD_DIR:=$(BASE_DIR)/build
 STAMP_DIR:=$(BASE_DIR)/stamps
@@ -635,17 +638,17 @@ graph-build: $(O)/build/build-time.log
        @install -d $(O)/graphs
        $(foreach o,name build duration,./support/scripts/graph-build-time \
                                        --type=histogram --order=$(o) --input=$(<) \
-                                       --output=$(O)/graphs/build.hist-$(o).pdf \
+                                       --output=$(O)/graphs/build.hist-$(o).$(BR2_GRAPH_OUT) \
                                        $(if $(GRAPH_ALT),--alternate-colors)$(sep))
        $(foreach t,packages steps,./support/scripts/graph-build-time \
                                   --type=pie-$(t) --input=$(<) \
-                                  --output=$(O)/graphs/build.pie-$(t).pdf \
+                                  --output=$(O)/graphs/build.pie-$(t).$(BR2_GRAPH_OUT) \
                                   $(if $(GRAPH_ALT),--alternate-colors)$(sep))
 
 graph-depends:
        @$(INSTALL) -d $(O)/graphs
        @./support/scripts/graph-depends \
-       |dot -Tpdf -o $(O)/graphs/$(@).pdf
+       |dot -T$(BR2_GRAPH_OUT) -o $(O)/graphs/$(@).$(BR2_GRAPH_OUT)
 
 else # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
 
index 7c7694265f0ca0187db59974c178ad5ee185070c..c7e45689349ee32b72681d5d13fd26b255408115 100644 (file)
@@ -88,6 +88,8 @@ to +make+ or set in the environment:
   is the recommended way of setting it.
 * +GRAPH_ALT+, if set and non-empty, to use an alternate color-scheme in
   build-time graphs
+* +GRAPH_OUT+ to set the filetype of generated graphs, either +pdf+ (the
+  default), or +png+.
 
 An example that uses config files located in the toplevel directory and
 in your $HOME:
index 8005ce99ff62bae59bbc2b890a73737ef460d695..b519d6942cc4f094e2201818ed902ffa4e43e09d 100644 (file)
@@ -471,7 +471,7 @@ $(1)-show-depends:
 $(1)-graph-depends:
                        @$(INSTALL) -d $(O)/graphs
                        @./support/scripts/graph-depends $(1) \
-                       |dot -Tpdf -o $(O)/graphs/$$(@).pdf
+                       |dot -T$(BR2_GRAPH_OUT) -o $(O)/graphs/$$(@).$(BR2_GRAPH_OUT)
 
 $(1)-dirclean:         $$($(2)_TARGET_DIRCLEAN)
 
index 2216db2b655c4e7a650e32bddd6b0b9fa52b49fa..00c2349faf4763319e849ecbb98a140bde9c88d8 100755 (executable)
@@ -51,7 +51,6 @@
 
 import matplotlib
 import numpy
-matplotlib.use('PDF')
 
 import matplotlib.pyplot as plt
 import matplotlib.font_manager as fm
@@ -264,7 +263,7 @@ parser.add_argument("--alternate-colors", '-c', action="store_true",
 parser.add_argument("--input", '-i', metavar="OUTPUT",
                     help="Input file (usually $(O)/build/build-time.log)")
 parser.add_argument("--output", '-o', metavar="OUTPUT", required=True,
-                    help="Output file (PDF extension)")
+                    help="Output file (.pdf or .png extension)")
 args = parser.parse_args()
 
 d = read_data(args.input)