On 25/05/20 19:25, Fr. Samuel Springuel wrote: > I think this is where you’ve missed something. When using DK’s code as the > init file (or my later version, which make the output more make-friendly), > LilyPond **does not actually typeset the music.** All it does is read > through the files to construct ly:source-files and then output that list to > stdout. It is the equivalent, in some sense, of the -M option for a CC > (which is where the whole analogy got started). cc -M sample.c does not > create sample.o, it outputs the list of files that sample.o depends on. > Likewise lilypond --init parse-only.ly sample.ly does not create sample.pdf, > it outputs the list of files that sample.pdf depends on. In both cases we’re > using the compiler’s (cc or lilypond) already existing knowledge of how to > read its source and find the mentioned includes, but instead of telling it to > use that knowledge to create the target (the object file or pdf), we’re > telling it to use that knowledge to create the dependency list.
So. Am I correct in thinking that, if you change one .ily file, you need to rebuild the entire makefile? WHY? I don't know the exact make syntax but my makefile would be something like partTrombone.pdf partTrombone.ly lilypond partTrombone.ly partTrombone.ly voiceTrombone.ily : voiceTrombone.ily dynamics.ily : Here I'm assuming that ":" tells make that this is a virtual object - it can't be made but it's affected by changes to the file(s) that it depends on. So if I edit dynamics.ily, then do "make partTrombone.pdf", make will cascade that virtual dependency up, realise that partTrombone.pdf is out of date, and rebuild it. And it means if put a new include into dynamics.ily, I just need to create/update the line for dynamics.ily, and everything that depends on it will rebuild if I run the "make" command. Cheers, Wol