Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH] graphs: add option to remove transitive dependencies in dependency graph
Date: Fri, 9 May 2014 16:38:30 +0200	[thread overview]
Message-ID: <20140509143830.GF3173@free.fr> (raw)
In-Reply-To: <CAHXCMMLkk-0FxgrcExWQukmpZcwC4qELaRexRYDGnapyzPECFQ@mail.gmail.com>

Samuel, All,

On 2014-05-09 16:09 +0200, Samuel Martin spake thusly:
> On Fri, May 9, 2014 at 3:34 PM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> > too) as make targets so it was easier for users to generate the graphs
> > rather than directly call the scripts (since the scripts could even
> > reside in another dir when building out-of-tree, and it would be more
> > complex to reach for the scripts).
> 
> Arf! I forgot this.
> 
> In this case, I would do:
> - to get the default graph:
>   make foo-graph-depends
> - to get a customized graph:
>   make foo-graph-depends BR2_GRAPH_DEPS_OPTS="..."

A single variable is not enough, since we have options:

  - for support/scripts/graph-depends: maximum depth, transitive deps or
    not

  - the 'dot' utilities: draw top-down or left-right, and so on...

So either greaph-depends has to understand a subset (or all) of dot's
options (Eeek!), or we offer two variables.

> And I'd expect to find some help somewhere in the doc to know what are
> the supported options,

Already in the manual, section 3.5, "Daily use" and sub-sections:

    3.5.7. Graphing the dependencies between packages
    http://buildroot.net/downloads/manual/manual.html#_graphing_the_dependencies_between_packages

    3.5.8. Graphing the build duration
    http://buildroot.net/downloads/manual/manual.html#_graphing_the_build_duration

    3.5.5. Environment variables
    http://buildroot.net/downloads/manual/manual.html#env-vars

> or how to get the graph-depends help, so via
> the manual or in the help message of the BR2_GRAPH_DEPS_OPTS kconfig
> entry.

We already document the mere existence of graph-build, graph-depends and
PKG-graph-depends inthe output of make help:

    <package>-graph-depends    - generate graph of the dependency tree
                                 for package
    graph-build            - generate graphs of the build times
    graph-depends          - generate graph of the dependency tree

But the variables are only documented in the manual (see above.)

> So, in the end, the call to graph-depends script would just be:
>   $(TOPDIR)/support/scripts/graph-depends $(BR2_GRAPH_DEPS_OPTS)
> or:
>   $(TOPDIR)/support/scripts/graph-depends -p $(1) $(BR2_GRAPH_DEPS_OPTS)

Not really, it currently is (roughly):

    $(TOPDIR)/support/scripts/graph-depends -d $(DEPTH) \
    |tee $(O)/graphs/$(@).dot \
    |dot $(DOT_OPTS) -o$(O)/graphs/$(@).$(BR_GRAPH_OUT)

support/scripts/graph-depends /only/ generates a dot program, not the
graph itself.

> No black magics with the args... just keep it simple ;-)
> "Buildroot is a simple, efficient and easy-to-use tool" (not from me,
> from http://buildroot.org/ :-])

Yes, but all the alternate solutions are ending being more complex that
mere environment variables.

Grantes, I do not like the environment variables much, since it is easy
to forget them on a subsequent make. That's why my series (I still have
to post it) gets rid of as many variables as possible.

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

  reply	other threads:[~2014-05-09 14:38 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-06 22:44 [Buildroot] [PATCH] graphs: add option to remove transitive dependencies in dependency graph Yann E. MORIN
2014-05-09  9:52 ` Yann E. MORIN
2014-05-09 10:00   ` Peter Korsgaard
2014-05-09 10:20     ` Yann E. MORIN
2014-05-09 11:16       ` Samuel Martin
2014-05-09 13:34         ` Yann E. MORIN
2014-05-09 14:09           ` Samuel Martin
2014-05-09 14:38             ` Yann E. MORIN [this message]
2014-05-09 15:07               ` Samuel Martin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140509143830.GF3173@free.fr \
    --to=yann.morin.1998@free.fr \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox