

The tricky part is when TARGET2 isn't stale against TARGET1 - in which case you should expect that TARGET1 shouldn't be rebuild. This surprisingly doesn't work because: the phony target was run anyway (as phony targets normally do), which means that the phony target was considered updated. first do 'make prepare' to prepare the "source files".Īnd because of that TARGET1 is considered stale against the phony target.play around with that by touching particular files to see them updated.You can see that fileall depends on file1 indirectly through a phony target - but it always gets rebuilt due to this dependency. If you change the dependency in fileall from filefwd to file, now fileall does not get rebuilt every time, but only when any of dependent targets is stale against it as a file. I often use them to tell the default target not to fire. Without PHONY, make superclean would fire clean, andsomethingelse, and catcher superclean but with PHONY, make superclean won't fire the catcher superclean. We don't have to worry about telling make the clean target is PHONY, because it isn't completely phony. The following quote from make/ it never produces the clean file, it has commands to fire so make will think it's a final target. GNU make only provides text manipulation (macros and text processingįunctions), which makes some bits difficult to read, as you can admire with
#Lilypond makefile full#
Scons brings power of a full programming language (Python), whereas We have to give reasons for switching to Scons. That has a GNU equivalent however, let me record technical argumentsīelow, so we will only have to link to this message in the archives when The reason to complain is that we would favor a non-GNU package > so I can't see any possible reason for GNU to complain. > (Documentation/*), as a possible "first try" before a possibleĪs it will similar to the website, it is a sensible idea. > What do you think about trying SCons to build the docs translated docs building implicitly assumes that documentation in English has been built first. specific needs regarding concurrency (no several simultaneous lilypond-book instances) limited programming features of GNU make (only text manipulation and macros)
#Lilypond makefile code#
avoiding make code duplication with variables and pattern rules on one hand, and template support for building outside the source tree (stepmake) output in subdirectories (provided by stepmake system)

dependencies across directories (that we haven't managed to handle completely with make yet(*),Īnd which I don't plan to contribute to achieve completely using GNU make)

many compilation steps (lilypond-book, Texinfo processors, text substituion with Python scripts) > website's makefile to the lilypond doc makefiles, I really wonder > I admire you for doing the makefiles in the past I've always been Then the translations, it will be suddenly a bit less trivial :-) You know that after adding the inkscape anf format-page stuff to this,

> so doing this with SCons would be a trivial change. > -init-file=web-texi2html.init -split=section lilypond-general.texi > texi2html -I=$(imagedir) -I=$(exampledir) -output=$(outdir) \ > Well, the website is current built with: Graham Percival :> On Thu, at 08:35:15AM +0200, John Mandereau wrote:
