URL:
  <https://savannah.gnu.org/bugs/?54791>

                 Summary: means to generate the list of dependencies for a
given target
                 Project: make
            Submitted by: mgk25
            Submitted on: Fri 05 Oct 2018 06:04:20 PM UTC
                Severity: 3 - Normal
              Item Group: Enhancement
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
       Component Version: 4.1
        Operating System: Any
           Fixed Release: None
           Triage Status: None

    _______________________________________________________

Details:

It would be very useful to have an official means of generating a list of all
files on which a given target depends.

One existing way to generate such a list is to parse the output of option -d
for "Considering" lines, as in:


$ make -Bndr <target-file> | perl -ne "/Considering target file '(.+)'./ &&
print \"\$1\\n\""


But this *hack* is based on a potentially unstable format of a debugging
function, so not something recommendable for production scripts.

It would be nice to have both a proper command-line option
"make -D <target>" and a function $(dependencies <target>) to generate such a
list for <target>.

Example application: I want to find out what is the latest git commit that
modified any of the dependencies of <target> (for example to derive a version
number for that target from that commit using "git describe"). Using the
proposed facilities, I could do that with


$ make -D <target> | xargs git log -n1 --pretty=format:%H --


or inside a Makefile


        git log -n1 --pretty=format:%H -- $(dependencies <target>)






    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?54791>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/


_______________________________________________
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to