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