<div dir="ltr">Seems to me like you'd want some kind of script to parse your Pd patch, iteratively look through all the objects declared and look for them in pre-defined search paths.<div><br></div><div>I'm not 100% on what the hierarchy is in Pd, but probably start with paths added by [declare -path], relative sub directories, global user defined paths in Pd, and the normal Pd extern folder?<br><div><br></div><div>You'll probably want to compile a list of internal objects to check against as well. </div></div><div class="gmail_extra"><br><div class="gmail_quote">On 7 June 2016 at 10:43, Frank Barknecht <span dir="ltr"><<a href="mailto:fbar@footils.org" target="_blank">fbar@footils.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>On Mon, Jun 06, 2016 at 10:02:17PM -0400, William Huston wrote:<br>
> Yes, my plan is to include whatever abstractions in my own libraries.<br>
> But I do not know what those dependencies are!!<br>
> That is the problem.<br>
><br>
> My goal is to have a script or program which can<br>
> a) examine an arbitrary patch, (example: "BillsPatch.pd") and<br>
> b) examine my Pd runtime environment<br>
><br>
> ... and build a dependency tree. Something like this:<br>
<br>
</span>Maybe for starters you can start with Pd itself in a shell-like script and examine its output?<br>
With "-verbose" you get explicit error lines for every object missed and<br>
found like this:<br>
<br>
$ pd -stderr -noprefs -verbose somepatch.pd<br>
[...]<br>
tried /tmp/somepatch.pd and succeeded<br>
tried /tmp/a/in-b.l_ia64 and failed<br>
tried /tmp/b/in-b.l_ia64 and failed<br>
tried /tmp/in-b.l_ia64 and failed<br>
tried /home/fbar/pd-externals/in-b.l_ia64 and failed<br>
tried /usr/local/lib/pd-externals/in-b.l_ia64 and failed<br>
tried /usr/lib/puredata/extra/in-b.l_ia64 and failed<br>
tried /usr/lib/pd/extra/in-b.l_ia64 and failed<br>
[...]<br>
tried /usr/lib/pd/extra/in-b/in-b.pd_linux and failed<br>
tried /tmp/a/in-b.pd and failed<br>
tried /tmp/b/in-b.pd and succeeded<br>
<br>
Look for all "tried ... and succeeded" lines and extract the path or file.<br>
<br>
When testing if you have everything copyied, use "-noprefs" as well to<br>
ignore your own preferences.<br>
<br>
Ciao<br>
<span><font color="#888888">--<br>
 Frank Barknecht                                     _ ______footils.org__<br>
</font></span><div><div><br>
_______________________________________________<br>
<a href="mailto:Pd-list@lists.iem.at" target="_blank">Pd-list@lists.iem.at</a> mailing list<br>
UNSUBSCRIBE and account-management -> <a href="https://lists.puredata.info/listinfo/pd-list" rel="noreferrer" target="_blank">https://lists.puredata.info/listinfo/pd-list</a><br>
</div></div></blockquote></div><br></div></div>