<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7650.28">
<TITLE>RE: [Cook] Help wanted with unorthodox use of cook</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=2>Yes cook can do the things you want. And I'd be happy to contribute some cook fragments.<BR>
But it is not clear from this email what your process is beyond include dependencies? I have not yet taken time to peruse your Nancy web info...<BR>
Are you producing &quot;output&quot; html files with the includes expanded in them? If so then those are your build product and cook just needs to know when to re-build them based on calculated dependencies. And if that process uses something like -I/a/b/c to find the includes, it will be quite simple to deal with.<BR>
<BR>
The cook features that can help with this is &quot;cascade dependencies&quot;, and the resolve function.<BR>
It can also support a baseline and change structure so you need not have all sources in the same directory tree.<BR>
<BR>
Jerry Pendergraft&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; voice:651-523-6935<BR>
St.Jude Medical&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mobil:651-491-0163<BR>
Atrial Fibrillation Division&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; email:jpendergraft@sjm.com<BR>
1350 Energy Lane<BR>
St.Paul, MN&nbsp; 55108<BR>
<BR>
-----Original Message-----<BR>
From: cook-users-bounces+jpendergraft=sjm.com@auug.org.au on behalf of Reuben Thomas<BR>
Sent: Thu 01-Mar-07 19:53<BR>
To: Cook users list<BR>
Subject: [Cook] Help wanted with unorthodox use of cook<BR>
<BR>
I have a slightly unusual use for cook, but I'm a complete newbie to it and<BR>
have little idea how to go about using it for this purpose. I have a very<BR>
simple web-templating system to which I want to add support for generated<BR>
files, but it occurred to me that this is just reinventing the wheel.<BR>
However, apart from cook, none of the make-like systems I investigated<BR>
seemed able to straightforwardly do what I want, namely:<BR>
<BR>
1. Have a single top-level makefile that worked for a complete directory<BR>
hierarchy.<BR>
<BR>
2. Process non-standard includes dependencies.<BR>
<BR>
Having studied the cook manual and introduction I discovered that cook<BR>
handles 1 fine, and probably can do 2 easily, but I'd appreciate any<BR>
pointers the experts can give.<BR>
<BR>
Basically, includes work like this in my system: suppose a file<BR>
foo/bar/baz/bob.html contains &quot;$include{fragment}&quot;. Then a file called<BR>
&quot;fragment&quot; is searched for in the following directories, in the following<BR>
order: foo/bar/baz, foo/bar, foo, &lt;root&gt;.<BR>
<BR>
So, it's pretty easy to see how to write a script to generate the<BR>
dependencies (it's just a simplified version of the program I already wrote,<BR>
called nancy: <A HREF="http://rrt.sc3d.org/Software/Nancy">http://rrt.sc3d.org/Software/Nancy</A>). It then needs to be run<BR>
on each file in each leaf directory of the hierarchy (the &quot;leaf<BR>
directory=web page&quot; rule means that every web page can have per-page<BR>
includes that don't conflict with any other page's includes). The simplest<BR>
thing I can think of is writing a script that a) finds all the leaf<BR>
directories, and b) finds the includes as above. Indeed, I already have<BR>
such a script. But I was wondering if that's overkill given cook's<BR>
capabilities. It then remains to tell cook how to produce an output file;<BR>
the other important detail is that, in order to avoid confusion and allow<BR>
fragments to use the same file suffix as web pages, to avoid having to<BR>
reprogram editors or file associations, I only do out-of-tree &quot;builds&quot;, but<BR>
again, cook seems able to cope.<BR>
<BR>
What I'd really appreciate is some moderately precise pointers on how best<BR>
to implement each element of this scheme, but any help would be much<BR>
appreciated, including of course any mistakes I seem to have made about<BR>
cook. I hope to end up with nancy written in cook as a single generic<BR>
Howto.cook file that I can use instead of nancy, adding per-project build<BR>
rules as necessary for projects that generate include files by other (more<BR>
traditional!) means; the motivating example in my case is HTML fragments<BR>
generated from XML.<BR>
<BR>
--<BR>
<A HREF="http://rrt.sc3d.org/">http://rrt.sc3d.org/</A> | impunity, n.&nbsp; wealth (Bierce)<BR>
_______________________________________________<BR>
Cook-users mailing list<BR>
Cook-users@auug.org.au<BR>
<A HREF="http://www.auug.org.au/mailman/listinfo/cook-users">http://www.auug.org.au/mailman/listinfo/cook-users</A><BR>
<BR>
<BR>
</FONT>
</P>

</BODY>
</HTML>