|
From: | Jonathan Kulp |
Subject: | Re: DOCS: include a sample "Makefile"? |
Date: | Sun, 17 May 2009 20:28:33 -0500 |
User-agent: | Thunderbird 2.0.0.21 (X11/20090409) |
Peter Chubb wrote:
Jonathan> What I can't figure out how to make it do is recompile a Jonathan> score whose \include "notes.ily" file has changed, something Jonathan> that is much more likely to happen than the main.ly file. Jonathan> I've added .ily to the list of suffixes, and I added a line Jonathan> saying that the .ly files depend on .ily files, but when I Jonathan> touch a .ily file, and the pdf for that part already exists, Jonathan> it still says "nothing to be done for <target>". The PDF depends on all the inputs that go to make it ... you need to tell make about that because it can't work it out on its own. So: fred.pdf: fred.ly fred_mvmt1.ily fred_mvmt2.ily
Ok I'm starting to get it. This version works as expected. If I touch any .ly or .ily file, then make will recreate the appropriate pdf.
Does this now resemble something I can make generic and put in the docs? Any GNU Make extensions left in there?
Thanks for being so patient with a makefile noob. :) Jon -- Jonathan Kulp http://www.jonathankulp.com piece = stamitz LILY_CMD = lilypond -ddelete-intermediate-files \ -dno-point-and-clicknotes = cello.ily figures.ily horn.ily oboe.ily trioString.ily viola.ily violinOne.ily violinTwo.ily
MOVEMENTS = $(piece)I.pdf $(piece)II.pdf $(piece)III.pdf $(piece)IV.pdf .SUFFIXES: .ly .ily .pdf .midi curdir = $(shell pwd) VPATH = $(curdir)/Scores $(curdir)/PDF $(curdir)/Parts $(curdir)/Notes %.pdf %.midi: %.ly cd PDF; $(LILY_CMD) $< $(piece).pdf: $(notes) cello.pdf: cello.ly cello.ily figures.ily trioString.ily horn.pdf: horn.ly horn.ily oboes.pdf: oboes.ly oboe.ily viola.pdf: viola.ly viola.ily violinOne.pdf: violinOne.ly violinOne.ily violinTwo.pdf: violinTwo.ly violinTwo.ily $(MOVEMENTS): $(notes) .PHONY: score score: $(piece).pdf .PHONY: parts parts: cello.pdf violinOne.pdf violinTwo.pdf viola.pdf oboes.pdf horn.pdf .PHONY: movements movements: $(MOVEMENTS)
[Prev in Thread] | Current Thread | [Next in Thread] |