[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Converting make rules into other file formats

From: Eddy Petrișor
Subject: Re: Converting make rules into other file formats
Date: Sun, 15 Oct 2017 11:45:23 +0300

Before talking about formats and graphical representation, I advise you to ask if Paul agrees with this kind thing. I was personally very disappointed when he rejected the profiling patches I proposed and reworked in the form that made most sense from a practical pov, because he thought even very simple formatting of info is too much for make to do.

Here is the bug report: 

Eddy Petrișor

Pe 14 oct. 2017 10:47 PM, <address@hidden> a scris:
SF Markus Elfring writes:
 > > A Makefile is basically a human-readable text file with instructions
 > > on how to create executables with a compiler for example.
 > How often do you look for a more visual representation of this content?
 > > It has pretty much nothing to do with creating graphics.
 > I got an other opinion.
 > * Do you care to display constructed directed acyclic graphs
 >   by other tools?
 > * Are you interested in further improvements for data export variants?

 I use graphviz.  But I work on a tool that generates the Makefiles,
 and I can have it output a graph description alongside the Makefiles.

 If you have onlky Makefiles, I can envision a few ways to generate a
 graph.  This is a bit manual, but you could use order-only
 prerequisites to dump out the dependency tree to different 'node'
 files (consider '-j'), and post process all the node files into a
 bigger graph.

    all:    alpha beta

    ALPHA_PREREQS = alpha.c alpha.h
    BETA_PREREQS =  beta.c beta.h

    alpha:  $(ALPHA_PREREQS) | alpha.node

    beta:   $(BETA_PREREQS) | beta.node

    alpha.node:     $(ALPHA_PREREQS)
            echo "$@ depends on $^" >$@

    beta.node:      $(BETA_PREREQS)
            echo "$@ depends on $^" >$@

 You may be able to get some different inspiration from "Gnu Make
 Unleashed" section in the section called 'Making and XML bill of
 materials in GNU Make'.

 Essentially, you need to run Make because of the runtime processing
 of the variables defined in the Makefiles, or you've got to interpose
 yourself before Make and know the dependency graph already.

The gym does not appreciate 'Row Row Row Your Boat' while one is rowing.

Bug-make mailing list

reply via email to

[Prev in Thread] Current Thread [Next in Thread]