Digamos que o seu Makefile seja este:
.PHONY: wilma barney betty
fred: wilma barney betty
A versão mais recente do remake tem uma opção --profile
que gera dados que podem ser transformados em um gráfico das dependências verificado. O formato de saída do arquivo de dados é o que o callgrind usa, portanto, outro programa é necessário para produzir os gráficos a partir dos dados que são enviados. Consulte o link
Em uma versão mais antiga do remake, veja como você pode obter as dependências usando
$ remake -X -f Makefile
GNU Make 4.1+dbg0.91
Built for x86_64-unknown-linux-gnu
Copyright (C) 1988-2014 Free Software Foundation, Inc.
Copyright (C) 2015 Rocky Bernstein.
License GPLv3+: GNU GPL version 3 or later
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Reading makefiles...
Updating makefiles....
Updating goal targets....
File 'fred' does not exist.
File 'wilma' does not exist.
Must remake target 'wilma'.
Successfully remade target file 'wilma'.
<- (/tmp/??:0)
wilma
remake<0> target fred depend
fred: wilma barney betty
remake<1> quit
remake: That's all, folks...
Se você colocar esses comandos em um arquivo, diga cmds.txt
:
target fred depend
quit
Então você pode executar:
cat cmds.txt | remake -X -f Makefile
Deixo como um exercício como fazer algo mais elaborado, como um programa de escrita que usa um nome de dependência e executa o acima.