All of 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.