Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
    • Switch to GitLab Next
  • Sign in / Register
LilyPond
LilyPond
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 1,064
    • Issues 1,064
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
    • Iterations
  • Merge Requests 16
    • Merge Requests 16
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Security & Compliance
    • Security & Compliance
    • Dependency List
    • License Compliance
  • Operations
    • Operations
    • Metrics
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Code Review
    • Insights
    • Issue
    • Repository
    • Value Stream
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • LilyPond
  • LilyPondLilyPond
  • Merge Requests
  • !209

Merged
Opened Jun 29, 2020 by Fr. Samuel Springuel@rpspringuelContributor

DOC: Changes to the documentation on using Make with LilyPond

  • Overview 10
  • Commits 1
  • Pipelines 4
  • Changes 1

A revision of !180 (closed)

  1. In the first part where the top of the ly files is described, the example code (for symphony-cello.ly) add quotation marks around the names of the files in the \include statements. As best I can understand, these quotation marks are required by the syntax of the \include statement (http://lilypond.org/doc/v2.20/Documentation/notation/including-lilypond-files).

  2. The model Makefile for *nix OSes has several things about it which I think make it less than ideal as an example. In particular:
    a) the definition of CPU_CORES is not portable to macOS as /proc/cpuinfo is not present in macOS. Further, make never passes more than one target to LilyPond at a time (the recipe passes just the first prerequisite) and so there is no benefit to using the -djob-count flag. I therefore remove this variable and flag.
    b) The portions of the recipe for moving the pdf and midi files is overly complicated by the tests to see if the files exist. Further, these tests are only needed because it has been written as a 1-logical-line script which means that the shell has control over the continuation of the recipe rather than make. I rewrite the recipe as 3 logical lines so that make will automatically halt the recipe if the creation of the pdf and midi files by LilyPond fails.
    c) The archive target is eliminated because it refers to a directory outside of the example hierarchy (this also brings things into line with the Windows example makefile, where the target is already eliminated).
    d) The Makefile doesn’t check to see if the PDF and MIDI directories exist when executing the recipe to create pdf and midi files. To correct this, I added them as order-only prerequisites and recipes to create these directories should they be missing.
    e) The comment describing the target names for the parts is contradictory. It first says that make foo.pdf is the appropriate target for instrument foo (which would be make cello.pdf for the cello), and then gives the example of make symphony-cello.pdf. It is corrected to be consistent and correct.
    f) No .DEFAULT_GOAL is specified, so make falls back on picking the first target. I add the .DEFAULT_GOAL explicitly as score so that those less familiar with make aren’t surprised by a new default goal as they modify the file to their own use case.
    g) symphonyDefs.ily is added as a prerequisite to all of the targets (in the common variable). This way changes to symphonyDefs.ily will trigger rebuilds of the scores.
    h) Variables are defined using immediate evaluation (:=) as delayed evaluation (=) is not necessary for any of them.

Changes b, d, f, g, and h are also applied to the Windows sample makefile (the others do not apply) but these have not been tested (as I don't have a Windows system with GNUmake).

Edited Jul 04, 2020 by Pkx
Assignee
Assign to
Reviewer
Request review from
2.21.3
Milestone
2.21.3 (Past due)
Assign milestone
Time tracking
Reference: lilypond/lilypond!209
Source branch: doc/make