<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8">
</head>
<body>
<div style="font-family:sans-serif"><div style="white-space:normal">
<p dir="auto">On 16 Mar 2018, at 15:03, Robert Dodier wrote:</p>

<blockquote style="border-left:2px solid #777; color:#777; margin:0 0 5px; padding-left:5px">
<p dir="auto">Thanks, Robert, that helps a lot. Using ASDF:SYSTEM-RELATIVE-PATHNAME<br>
is a big step forward.</p>

<p dir="auto">A follow-up question: Is there a way to know, within a file which is<br>
being loaded, whether or not it's being loaded via ASDF? The index<br>
file might be loaded via CL:LOAD also.</p>

<p dir="auto">Just to clarify the situation a little, the .info is created from<br>
.texi by makeinfo, and then it's parsed (by a Perl script -- OH MY<br>
WHAT HAVE I DONE?? Ha ha, only serious) to get the offset and length<br>
of each documentation item, which is stored in the index, which is<br>
implemented as a Lisp program that reads the .info and builds suitable<br>
hash tables, to be used by Maxima's documentation system at run time.<br>
All that with makeinfo and the info parser happens long before ASDF<br>
comes into the picture. The .info and index.lisp are packaged with the<br>
rest of the code, and that's the package that ASDF sees.</p>

<p dir="auto">I don't doubt that this systems has flaws, but at this point I am<br>
taking it as a given; I'm trying to make progress on a lot of fronts,<br>
and cleaning up this monstrosity is a lower priority item.</p>

<p dir="auto">best,<br>
Robert Dodier</p>
</blockquote>

<p dir="auto">Another trick you could try is to define a special class of files for the info files (probably just a subclass of <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">cl-source-file</code>).  Then you could tell ASDF not to move that class of files, by providing a method on <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">OUTPUT-FILES</code>.  Here's the relevant <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">DEFGENERIC</code>:<br>
```<br>
(defgeneric output-files (operation component)<br>
    (:documentation "Methods for this function return two values: a list of output files<br>
corresponding to this action, and a boolean indicating if they have already been subjected<br>
to relevant output translations and should not be further translated.</p>

<p dir="auto">Methods on PERFORM <em>must</em> call this function to determine where their outputs are to be located.<br>
They may rely on the order of the files to discriminate between outputs.<br>
"))<br>
```</p>

<p dir="auto">You can return T for the second value in order to have output-translations <em>not</em> apply, IIRC.</p>
</div>
</div>
</body>
</html>