bug-make
[Top][All Lists]
Advanced

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

Re: Converting make rules into other file formats


From: thutt
Subject: Re: Converting make rules into other file formats
Date: Sat, 14 Oct 2017 12:47:41 -0700

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.

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



reply via email to

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