Makefile: expose 'graph-depends' to generate a graph of the dependency tree
authorYann E. MORIN <yann.morin.1998@free.fr>
Sat, 28 Dec 2013 17:39:12 +0000 (18:39 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sun, 29 Dec 2013 11:13:19 +0000 (12:13 +0100)
Generate the graph of the complete dependency tree by calling:
    make graph-depends

It's also possible to generate the graph-depends for a single package:
    make PKG-graph-depends

The graphs are generated in $(O)/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
package/pkg-generic.mk

index 98ca7980f447e0a766d422a19faebc121e29c253..8107865040f12cd9285beb4b8109d2a09f49f6f4 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -642,6 +642,11 @@ graph-build: $(O)/build/build-time.log
                                   --output=$(O)/graphs/build.pie-$(t).pdf \
                                   $(if $(GRAPH_ALT),--alternate-colors)$(sep))
 
+graph-depends:
+       @$(INSTALL) -d $(O)/graphs
+       @./support/scripts/graph-depends \
+       |dot -Tpdf -o $(O)/graphs/$(@).pdf
+
 else # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
 
 all: menuconfig
@@ -814,6 +819,7 @@ help:
        @echo '  toolchain              - build toolchain'
        @echo '  <package>-rebuild      - force recompile <package>'
        @echo '  <package>-reconfigure  - force reconfigure <package>'
+       @echo '  <package>-graph-depends    - generate graph of the dependency tree for package'
        @echo
        @echo 'Configuration:'
        @echo '  menuconfig             - interactive curses-based configurator'
@@ -855,6 +861,7 @@ endif
        @echo '  manual-text            - build manual in text'
        @echo '  manual-epub            - build manual in ePub'
        @echo '  graph-build            - generate graphs of the build times'
+       @echo '  graph-depends          - generate graph of the dependency tree'
        @echo
        @echo 'Miscellaneous:'
        @echo '  source                 - download all sources needed for offline-build'
index 66034bac6b4dac66c7ad316c668df628183fae20..8005ce99ff62bae59bbc2b890a73737ef460d695 100644 (file)
@@ -468,6 +468,11 @@ endif
 $(1)-show-depends:
                        @echo $$($(2)_DEPENDENCIES)
 
+$(1)-graph-depends:
+                       @$(INSTALL) -d $(O)/graphs
+                       @./support/scripts/graph-depends $(1) \
+                       |dot -Tpdf -o $(O)/graphs/$$(@).pdf
+
 $(1)-dirclean:         $$($(2)_TARGET_DIRCLEAN)
 
 $(1)-clean-for-rebuild: