This should be reasonably easy to accomplish with run-scripts.

Use something like this
http://stackoverflow.com/questions/4826485/ghostscript-pdf-total-pages to
determine the number of pages in the pdf and generate the rule on the fly.

Run-scripts can be quite powerful / useful. For example, this
https://gist.github.com/ppannuto/2664fc10c2d87c8fbe23 will parse a gnuplot
file and automatically generate build rules for all the figures it makes.

HTH,

-Pat

On Tue, Sep 1, 2015 at 10:24 AM Ryan Gonzalez <[email protected]> wrote:

> I don't think this is possible with Tup. In Neil Mitchell's build system
> comparison, no one could figure out how to do something like this with Tup.
> You might want to try Shake or Fbuild, both of which are a bit more
> complicated but can do stuff like this.
>
> Maybe the Lua scripting could also help here?
>
>
> On August 31, 2015 11:27:28 PM CDT, Micah Villmow <[email protected]>
> wrote:
>>
>> This is what I don't want to do:
>> : build/nodes.pdf |> convert -density 300 %f -quality 100 install/%B.png
>> |> install/nodes-0.png install/nodes-1.png install/nodes-2.png
>> install/nodes-3.png install/nodes-4.png install/nodes-5.png
>> install/nodes-6.png install/nodes-7.png install/nodes-8.png
>> install/nodes-9.png install/nodes-10.png install/nodes-11.png
>> install/nodes-12.png install/nodes-13.png install/nodes-14.png
>> install/nodes-15.png install/nodes-16.png install/nodes-17.png
>> install/nodes-18.png install/nodes-19.png install/nodes-20.png
>> install/nodes-21.png install/nodes-22.png install/nodes-23.png
>> install/nodes-24.png install/nodes-25.png install/nodes-26.png
>> install/nodes-27.png install/nodes-28.png install/nodes-29.png
>> install/nodes-30.png install/nodes-31.png install/nodes-32.png
>> install/nodes-33.png install/nodes-34.png install/nodes-35.png
>> install/nodes-36.png install/nodes-37.png install/nodes-38.png
>> install/nodes-39.png install/nodes-40.png install/nodes-41.png
>> install/nodes-42.png install/nodes-43.png install/nodes-44.png
>> install/nodes-45.png install/nodes-46.png install/nodes-47.png
>> install/nodes-48.png install/nodes-49.png install/nodes-50.png
>> install/nodes-51.png install/nodes-52.png install/nodes-53.png
>> install/nodes-54.png install/nodes-55.png install/nodes-56.png
>> install/nodes-57.png install/nodes-58.png install/nodes-59.png
>> install/nodes-60.png install/nodes-61.png install/nodes-62.png
>> install/nodes-63.png install/nodes-64.png install/nodes-65.png
>> install/nodes-66.png install/nodes-67.png install/nodes-68.png
>> install/nodes-69.png install/nodes-70.png install/nodes-71.png
>> install/nodes-72.png install/nodes-73.png install/nodes-74.png
>> install/nodes-75.png install/nodes-76.png install/nodes-77.png
>> install/nodes-78.png install/nodes-79.png install/nodes-80.png
>> install/nodes-81.png install/nodes-82.png install/nodes-83.png
>> install/nodes-84.png install/nodes-85.png install/nodes-86.png
>> install/nodes-87.png install/nodes-88.png install/nodes-89.png
>> install/nodes-90.png install/nodes-91.png install/nodes-92.png
>> install/nodes-93.png install/nodes-94.png install/nodes-95.png
>> install/nodes-96.png install/nodes-97.png install/nodes-98.png
>> install/nodes-99.png install/nodes-100.png install/nodes-101.png
>> install/nodes-102.png install/nodes-103.png install/nodes-104.png
>> install/nodes-105.png install/nodes-106.png install/nodes-107.png
>> install/nodes-108.png install/nodes-109.png install/nodes-110.png
>> install/nodes-111.png install/nodes-112.png install/nodes-113.png
>> install/nodes-114.png install/nodes-115.png install/nodes-116.png
>> install/nodes-117.png install/nodes-118.png install/nodes-119.png
>> install/nodes-120.png install/nodes-121.png install/nodes-122.png
>> install/nodes-123.png install/nodes-124.png install/nodes-125.png
>> install/nodes-126.png install/nodes-127.png install/nodes-128.png
>> install/nodes-129.png install/nodes-130.png install/nodes-131.png
>> install/nodes-132.png install/nodes-133.png install/nodes-134.png
>> install/nodes-135.png install/nodes-136.png install/nodes-137.png
>> install/nodes-138.png install/nodes-139.png install/nodes-140.png
>> install/nodes-141.png install/nodes-142.png install/nodes-143.png
>> install/nodes-144.png install/nodes-145.png install/nodes-146.png
>> install/nodes-147.png install/nodes-148.png install/nodes-149.png
>> install/nodes-150.png install/nodes-151.png install/nodes-152.png
>> install/nodes-153.png install/nodes-154.png install/nodes-155.png
>> install/nodes-156.png install/nodes-157.png install/nodes-158.png
>> install/nodes-159.png install/nodes-160.png install/nodes-161.png
>> install/nodes-162.png install/nodes-163.png install/nodes-164.png
>> install/nodes-165.png install/nodes-166.png install/nodes-167.png
>> install/nodes-168.png
>>
>>
>> On Sunday, August 30, 2015 at 10:09:58 AM UTC-7, Micah Villmow wrote:
>>>
>>> I'm trying to get Tup to handle depenedencies on output only files
>>> without manually specifying them all directly.
>>>
>>> I have this rule:
>>> : foreach build/*.pdf |> convert -density 300 %f -quality 100
>>> install/%B.png |> install/%g*.png
>>>
>>>
>>> This takes a bunch of intermediate PDF files that were created from
>>> latex that have pictures on them one per page and turns them into
>>> individual png files. I need a way to have TUP register all of the outputs
>>> as valid. The reason why I do not want to specify them manually is that
>>> each PDF file has a variable number of output images based on other inputs.
>>>
>>> So I want to basically say that anything in the install directory is a
>>> valid output, but never has a dependency.
>>>
>>>
> --
> Sent from my Nexus 5 with K-9 Mail. Please excuse my brevity.
>
> --
> --
> tup-users mailing list
> email: [email protected]
> unsubscribe: [email protected]
> options: http://groups.google.com/group/tup-users?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "tup-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
-- 
tup-users mailing list
email: [email protected]
unsubscribe: [email protected]
options: http://groups.google.com/group/tup-users?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"tup-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to