From: fred Date: Wed, 27 Mar 2002 01:20:50 +0000 (+0000) Subject: lilypond-1.5.6 X-Git-Tag: release/1.5.59~583 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=ae425ff8e3fe33a22c96b621ad5076f4d250e5d1;p=lilypond.git lilypond-1.5.6 --- diff --git a/Documentation/index.texi b/Documentation/index.texi index d67c4ef2fd..3a78e88b82 100644 --- a/Documentation/index.texi +++ b/Documentation/index.texi @@ -116,9 +116,12 @@ want to fine-tune output, you need the information in this document. @c Jan's site? @itemize @bullet -@item @uref{../out-www/regression-test.html,regression-test} -A large document that tests all kinds of features (in +@item @uref{../out-www/regression-test.html,Regression Test} +A large document that tests all kinds of features (also as @uref{../out-www/regression-test.ps.gz,Postscript}). +@item @uref{../../input/bugs/out-www/bugs.html,Bugs} +A document that shows bugs (also as +@uref{../../input/bugs/out-www/bugs.ps.gz,Postscript}). @item @uref{http://www2.iro.umontreal.ca/~pinard/po/registry.cgi?domain=lilypond">Translations,lilypond textual domain diff --git a/buildscripts/lys-to-tely.py b/buildscripts/lys-to-tely.py new file mode 100644 index 0000000000..eac92934e8 --- /dev/null +++ b/buildscripts/lys-to-tely.py @@ -0,0 +1,79 @@ +#!@PYTHON@ + +import sys +import os +import string +import getopt + +program_name = 'lys-to-tely' + +def help (): + sys.stdout.write (r"""Usage: lys-to-tely [OPTION]... LY-FILE... +Construct tely doc from LY-FILEs. + +Options: + -h, --help print this help + -o,output=NAME write tely doc to NAME + -t,title=TITLE set tely tely doc title TITLE +""") + sys.exit (0) + +(options, files) = getopt.getopt(sys.argv[1:], 'hn:t:', [ + 'help', 'name=', 'title=']) + +name="ly-doc" +title="Ly Doc" +for opt in options: + o = opt[0] + a = opt[1] + if o == '-h' or o == '--help': + help () + elif o == '-n' or o == '--name': + name = a + elif o == '-t' or o == '--title': + title = a + else: + raise 'unknown opt ', o + +def strip_extension (f, ext): + (p, e) = os.path.splitext (f) + if e == ext: + e = '' + return p + e + +if files: + dir = os.path.dirname (name) + if not dir: + dir = "." + name = strip_extension (os.path.basename (name), ".tely") + + s = '''\input texinfo +@setfilename %s.info +@settitle %s + +@c fool ls-latex +@ignore +@author Han-Wen Nienhuys and Jan Nieuwenhuizen +@title %s +@end ignore + +@node Top, , , (dir) +''' % (name, title, title) + + def name2line (n): + # UGR + if string.find (n, '+') >= 0: + s = "@lilypondfile{%s}" % n + else: + s = "@lilypondfile[printfilename]{%s}" % n + return s + + s = s + string.join (map (lambda x: name2line (x), files), "\n") + s = s + '\n@bye\n' + f = "%s/%s.tely" % (dir, name) + sys.stderr.write ("%s: writing %s..." % (program_name, f)) + h = open (f, "w") + h.write (s) + h.close () + sys.stderr.write ('\n') + diff --git a/input/bugs/GNUmakefile b/input/bugs/GNUmakefile index 9c2b9f48fe..51c90c814c 100644 --- a/input/bugs/GNUmakefile +++ b/input/bugs/GNUmakefile @@ -1,8 +1,9 @@ -# input/bugs/Makefile - depth = ../.. -LOCALSTEPMAKE_TEMPLATES=ly mutopia -include $(depth)/make/stepmake.make +STEPMAKE_TEMPLATES=documentation texinfo tex +LOCALSTEPMAKE_TEMPLATES=lilypond ly lysdoc +EXTRA_DIST_FILES=README +include $(depth)/make/stepmake.make +TITLE=Assorted Possible Bugs diff --git a/input/bugs/README b/input/bugs/README new file mode 100644 index 0000000000..2865bdf333 --- /dev/null +++ b/input/bugs/README @@ -0,0 +1,7 @@ +This directory holds a collection of examples that show all simple +notation bugs known to exist in LilyPond. + +Bugs that make lilypond crash, or don't generate notation should go in + + input/no-notation + diff --git a/input/no-notation/GNUmakefile b/input/no-notation/GNUmakefile index 9c2b9f48fe..7bdc0ec440 100644 --- a/input/no-notation/GNUmakefile +++ b/input/no-notation/GNUmakefile @@ -1,8 +1,8 @@ -# input/bugs/Makefile - depth = ../.. +EXTRA_DIST_FILES=README LOCALSTEPMAKE_TEMPLATES=ly mutopia + include $(depth)/make/stepmake.make diff --git a/input/no-notation/README b/input/no-notation/README new file mode 100644 index 0000000000..357b67355d --- /dev/null +++ b/input/no-notation/README @@ -0,0 +1,7 @@ +These examples make lilypond crash or exit prematurely. + +Some are bugs that should be fixed to generate output, andd then +moved to ../bugs or ../regression. + +Some (notably parse*.ly) are just error/warning generation tests +and should remain here. \ No newline at end of file diff --git a/input/no-notation/denneboom.ly b/input/no-notation/denneboom.ly new file mode 100644 index 0000000000..9b72cf4fe6 --- /dev/null +++ b/input/no-notation/denneboom.ly @@ -0,0 +1,116 @@ +\version "1.3.148" +\header{ +filename = "denneboom.ly" +enteredby = "jcn" +copyright = "public domain" +} +%{ file tests silly line shapes %} + +\include "paper20.ly" + + + +oden = \lyrics{ + O | + den- ne- boom, o | + den- ne- boom Wat | + zijn uw tak- ken | + won- der- schoon +} + +ikheb = \lyrics{ + Ik | + heb u laatst in_'t | + bos zien staan toen | + zat- en er geen | + kaars- jes aan +} + +ugloeit = \lyrics{ + U | + gloeit in bar- re | + win- ter- tijd, als | + sneeuw op aar- de | + licht ge- spreid +} + +oboom = \notes\transpose c''{ + g,8 | + c8. c16 c4. d8 | + e8. e16 e4. e8 | + d e f4 b, | + d8. c16 c4 r8 +} + +bos = \notes\transpose c''{ + g8 | + g e a4. g8 | + g8. f16 f4 r8 f8 | + f d g4. f8 | + f8. e16 e4 r8 +} + + +melody = \notes{ + \oboom + \oboom + \bos + \oboom +} + + +verseOne = \notes{ + \oden + \oden + \ikheb + \oden +} + +verseOneStaff = \context Lyrics = one + \verseOne + + +verseTwo = \notes{ + \oden + \oden + \ugloeit + \oden +} + +verseTwoStaff = \context Lyrics = two + \verseTwo + + +denneboomShape = \paper{ + \paperTwenty + indent = 20. \mm + + % UGH -- THIS IS HAIRY + #'margin-shape = #(map + (lambda (x) (cons-map mm-to-pt x)) + '((70.0 . 20.) + (65.0 . 30.0) + (57.5 . 45.0) + (50.0 . 60.0) + (42.5 . 75.) + (35.0 . 90.) + (27.5 . 105.) + (20.0 . 120.0) + (10.0 . 140.0) + (65.0 . 30.0)) + ) + + gourlay_maxmeasures = 30. + arithmetic_basicspace = 3.8 + arithmetic_multiplier = 8.\pt +} + +\score{ + \addlyrics + \context Staff { \time 3/4 \melody } + \context Lyrics \verseOne + \paper{ + \denneboomShape + } + \midi{ \tempo 4 = 90 } +} diff --git a/input/no-notation/die-staff.ly b/input/no-notation/die-staff.ly new file mode 100644 index 0000000000..1f3b94174a --- /dev/null +++ b/input/no-notation/die-staff.ly @@ -0,0 +1,23 @@ +\version "1.3.148" + +\header { +texidoc = "a staff should really die, if no one's referencing it." +} +\score { + { + \context Staff = q { + \notes { a' b' c' d' } + } + + \break + + \context PianoStaff < + \context Staff = i { + \notes { a' b' c' d' } + } + \context Staff = ii { + \notes { \clef "bass" a b c d } + } + > + } +} diff --git a/input/no-notation/pc-direction.ly b/input/no-notation/pc-direction.ly new file mode 100644 index 0000000000..ead276947b --- /dev/null +++ b/input/no-notation/pc-direction.ly @@ -0,0 +1,140 @@ +\version "1.3.148" + +% move to regtest once it works? + + +% still not workign ? --hwn. + +\header { +texidoc = " +On their own staff, staffcombined voices should be stemboth (not up/down) +while voicecombined threads should get their direction set (up/down) + +" +} + + +End = { \skip 1*8 } + +violaI = \notes\relative c'' { + c c e4. e8 +} +violaII = \notes\relative c'' { + c4 b a a +} + + +violoncello = \notes\relative c' { + c8 c c c c8 c c c\break + a1 +} + +contrabasso = \notes\relative c { + a4 a8 a a8 a a a\break + a1 +} + +violeStaff = \notes \context Staff = viole < + \context Voice=oneViole < + \property Staff.instrument = #"Viola" + \property Staff.instr = #"Vla." + + \End + > + \context Voice=twoViole < + \property Staff.instrument = #"Viola II" + \property Staff.instr = #"Vla. II" + \End + > + \context Voice=oneViole \partcombine Voice + \context Thread=oneViole \violaI + \context Thread=twoViole \violaII +> + +staffCombinePianoStaffProperties = { + \property PianoStaff.devNullThread = #'() + \property PianoStaff.soloADue = ##t + \property PianoStaff.soloText = #"" + \property PianoStaff.soloIIText = #"" + % This is non-conventional, but currently it is + % the only way to tell the difference. + \property PianoStaff.aDueText = #"\\`a2" + \property PianoStaff.splitInterval = #'(1 . 0) + \property PianoStaff.changeMoment = #`(,(make-moment 1 1) . ,(make-moment 1 1)) + \property PianoStaff.noDirection = ##t +} + + +\score { + < + \context StaffGroup < + \violeStaff + + \context PianoStaff = bassi_group \notes < + \staffCombinePianoStaffProperties + \context Staff=oneBassi < \clef bass + \property Staff.instrument = #'(lines + "Violoncello" " e" "Contrabasso") + + \property Staff.instr = #"Vc." + \End > + \context Staff=twoBassi < \clef bass + \property Staff.instrument = #"Contrabasso" + \property Staff.instr = #"Cb." + + \End > + + \context Staff=oneBassi \partcombine Staff + \context Voice=oneBassi { \violoncello } + \context Voice=twoBassi { \contrabasso } + > +> + > + \paper { + % \paperSixteen + linewidth = 80 * \staffspace + textheight = 200 * \staffspace + \translator{ + \ThreadContext + \consists "Rest_engraver" + + % Set value for engraver at thread level, + % to override the default that is set in ScoreContext + % for added engraver at Voice level + devNullThread = #'() + } + \translator{ + \VoiceContext + \remove "Rest_engraver" + + % The staff combine (bassi part) needs a + % thread_devnull_engraver here. + % Instead of maintaining two separate hierarchies, + % we switch add it, but switch it off immideately. + % The staff combine parts switch it on. + % devNullThread = #'never + \consists "Thread_devnull_engraver" + } + \translator{ + \HaraKiriStaffContext + \consists "Mark_engraver" + } + \translator { + \OrchestralScoreContext + skipBars = ##t + soloText = #"I." + soloIIText = #"II." + % By default, turn off the Thread_devnull_engraver + % at Voice level + devNullThread = #'never + + % Hmm + currentBarNumber = #218 + BarNumber \override #'padding = #3 + RestCollision \override #'maximum-rest-count = #1 + marginScriptHorizontalAlignment = #1 + TimeSignature \override #'style = #'C + } + } +} + diff --git a/input/no-notation/textcresc.ly b/input/no-notation/textcresc.ly new file mode 100644 index 0000000000..533877f130 --- /dev/null +++ b/input/no-notation/textcresc.ly @@ -0,0 +1,15 @@ +\version "1.3.148" +\header{ +texidoc="crashes lily" +} + +\score { \notes { + \context Voice { + \property Voice.crescendoText = "cresc." + \property Voice.crescendoSpanner = #'dashed-line + c2. r8 c8 \< \break \! c1 + } +} +\paper { linewidth = 5.\cm} +} + diff --git a/input/regression/abe.ly b/input/regression/abe.ly new file mode 100644 index 0000000000..5da6abcc77 --- /dev/null +++ b/input/regression/abe.ly @@ -0,0 +1,23 @@ +\header { +texidoc="Automatic beamer behaves nicely." +} +\version "1.3.148" + + +% Generated by mudela-book.py options are +\include "paper16.ly" +\paper { linewidth = 390.000000 \pt } + +\score { + \notes \relative c'' { + a\longa a\breve + a1 a2 a4 a8 a16 a32 a64 a64 + } + \paper { + \translator { + \StaffContext + \remove "Clef_engraver" + \remove "Staff_symbol_engraver" + } + } +} diff --git a/input/regression/auto-beam-tuplets.ly b/input/regression/auto-beam-tuplets.ly new file mode 100644 index 0000000000..f70c00f2de --- /dev/null +++ b/input/regression/auto-beam-tuplets.ly @@ -0,0 +1,14 @@ +\version "1.3.148" + +\header { +texidoc = "Tuplet-spanner should not put (visible) brackets on +beams even if they're auto generated." +} + +\score { \notes \relative c' { + \property Voice.tupletSpannerDuration = #(make-moment 1 4) + \property Voice.TupletBracket \override #'tuplet-bracket-visibility = #'if-no-beam + \times 2/3 { + [f8 f f ][f8 f f ] f f f f f f + } +}} diff --git a/input/regression/beamed-chord.ly b/input/regression/beamed-chord.ly new file mode 100644 index 0000000000..f1836d2a64 --- /dev/null +++ b/input/regression/beamed-chord.ly @@ -0,0 +1,17 @@ +\version "1.3.148" + +\header{ +texidoc = "Hairy case for beam, chord, and automatic knees." + +%texidoc = "Beam thinks that first two notes should be stem down. Can +%be fixed by uncommenting \stemUp" +} + +\score{ + \notes\relative c'{ + %\stemUp + \clef alto + \time 3/4 + r8 ) bes' d g, c, c,> r | + } +} diff --git a/input/regression/grace-dynamic.ly b/input/regression/grace-dynamic.ly new file mode 100644 index 0000000000..37d9c89a3c --- /dev/null +++ b/input/regression/grace-dynamic.ly @@ -0,0 +1,8 @@ +\version "1.3.148" +\header{ + % ? +% niet zo onschuldig! je hebt graces gefixt in 1.5, zie maar eens 1.3.150 +texidoc="Dynamics on grace notes are small and behave nicely (don't crash into to main note)." +} + + \score { \notes \context Voice {\grace {c'_\f} d e f g}} diff --git a/input/regression/grace-staff-length.ly b/input/regression/grace-staff-length.ly new file mode 100644 index 0000000000..548afbab7d --- /dev/null +++ b/input/regression/grace-staff-length.ly @@ -0,0 +1,20 @@ +\version "1.3.148" +\header{ +texidoc = "Stripped version of trip.ly. Staffs should be of correct length." +} +\score{ + \context PianoStaff \notes < + \context Staff = treble { + r1 + r1 + \bar "|." + } + \context Staff = bass { + r1 + \context Staff { + \grace { c16 } c1 + } + } + > + \paper { } +} diff --git a/input/regression/grace-stems.ly b/input/regression/grace-stems.ly new file mode 100644 index 0000000000..6b401ff2de --- /dev/null +++ b/input/regression/grace-stems.ly @@ -0,0 +1,24 @@ +\version "1.3.148" +\header{ +texidoc = "startGraceMusic should no-stem-extend to true; +the two grace beams should be the same here. +" +} + + +\score { + \context Voice \notes\relative c { + \grace { + [f8 e8] + \property Voice.Stem \override #'no-stem-extend = ##t + [f8 e8] + \property Voice.Stem \revert #'no-stem-extend + } + a4 + + } + \paper { + linewidth=-1.0 + } + \midi { } +} diff --git a/input/regression/hinterfleisch-gone.ly b/input/regression/hinterfleisch-gone.ly new file mode 100644 index 0000000000..e24bbee194 --- /dev/null +++ b/input/regression/hinterfleisch-gone.ly @@ -0,0 +1,16 @@ +\version "1.3.148" +\header { +texidoc="The first and last notes of a measure should be spaced nicely." +} +% jij had zoon mooi tight spacing example, +% kan zo'n harde space ook niet voor en na maatstreep! +\score { + \notes \relative c'' { + \time 2/4 + \property Voice.noAutoBeaming=##t + a4 a8 + a32 a a a +} +%%set bit wide +\paper {linewidth = 100.\mm} +} diff --git a/input/regression/markup-stack.ly b/input/regression/markup-stack.ly new file mode 100644 index 0000000000..cee7ebe513 --- /dev/null +++ b/input/regression/markup-stack.ly @@ -0,0 +1,5 @@ +\version "1.3.148" +\header {texidoc="Stacking of markup scripts."} +\paper { linewidth=-1. } +\score { \notes { c^#`(columns "" (lines "1" (bold "2") "3"))}} + diff --git a/input/regression/pc-mmrest.ly b/input/regression/pc-mmrest.ly new file mode 100644 index 0000000000..6dc4bbff2e --- /dev/null +++ b/input/regression/pc-mmrest.ly @@ -0,0 +1,59 @@ +\version "1.3.148" +\header { +texidoc="Multi measure rests of second voice should not disappear." +} + + +#(set! point-and-click line-column-location) +one = \notes\relative c'' { + + f4 \!e-.\f r2| + R1| + f2\p()es| + \property Voice.crescendoText = #'(lines " " "cresc." " ") + \property Voice.crescendoSpanner = #'dashed-line + d1\<| + d1| + d2 d2| + d2 d2| + \!f1\ff | + f1 +} + +two = \notes \relative c'' { + r4 c r2| + R1*6| + c1 ~| + c1 +} + +\score { + \notes < + \context Staff = Viole < + \context Voice=one \partcombine Voice + \context Thread=one \one + \context Thread=two \two + > ~ + > + \paper { + \translator { + \ThreadContext + \consists "Rest_engraver" + } + \translator { + \VoiceContext + \remove "Rest_engraver" + \consists Multi_measure_rest_engraver + \consists Bar_engraver + } + \translator { + \HaraKiriStaffContext + \remove Multi_measure_rest_engraver + \remove Bar_engraver + } + \translator { + \OrchestralScoreContext + RestCollision \override #'maximum-rest-count = #1 + } + } +} \ No newline at end of file diff --git a/input/regression/pc-switch-slur.ly b/input/regression/pc-switch-slur.ly new file mode 100644 index 0000000000..39e6ac4990 --- /dev/null +++ b/input/regression/pc-switch-slur.ly @@ -0,0 +1,26 @@ +\version "1.3.148" +\header{ +texidoc="The partcombiner should not combine two small slurs into a big one." +} + +\score{ + \context Staff < + \context Voice=one\skip 1 + \context Voice=two\skip 1 + \context Voice=one \partcombine Voice + \context Thread=one \notes\relative c'' { + c4( c b )a + a( b c )d + } + \context Thread=two \notes\relative c'' { + a4( c b )a + a( b c )a + + } + > + \paper{ + linewidth=140.\mm + } +} + + diff --git a/input/regression/slur-dots.ly b/input/regression/slur-dots.ly new file mode 100644 index 0000000000..adc652e344 --- /dev/null +++ b/input/regression/slur-dots.ly @@ -0,0 +1,13 @@ +\version "1.3.148" +\header{ +texidoc="Slurs should not get confused by augmentation dots. We use a lot +of dots here, to make problems more visible." +} +\score { + \notes\relative c'' { + c4.............()c + } + \paper { + linewidth = -1. + } +} diff --git a/input/regression/spacing-very-tight.ly b/input/regression/spacing-very-tight.ly new file mode 100644 index 0000000000..b6fdb49970 --- /dev/null +++ b/input/regression/spacing-very-tight.ly @@ -0,0 +1,17 @@ +\version "1.3.148" +\header { + When tightly spaced, hinterfleisch -> 0. + Stems may touch the bar lines, opposite stems may touch eachother. + We need a mininum of about a note-width/interline space in these + situations, so that in tightly spaced music all vertical lines + are about equally spaced. +} +\score { + \notes \relative c''{ + r1 e4 f, e' f, + } + \paper { + linewidth = 25.0 \mm + indent = 0.0\mm + } +} diff --git a/input/regression/text-spanner.ly b/input/regression/text-spanner.ly new file mode 100644 index 0000000000..e4b875e923 --- /dev/null +++ b/input/regression/text-spanner.ly @@ -0,0 +1,15 @@ +\version "1.3.148" + +% text spanners should not repeat start text when broken + +\score { + \notes \relative c'' { + \property Voice.crescendoText = #"cresc." + \property Voice.crescendoSpanner = #'dashed-line + c1\< c \break + c1 \!c \break + } + \paper { + linewidth = 40*\staffspace + } +} diff --git a/input/regression/tie-break-accidental.ly b/input/regression/tie-break-accidental.ly new file mode 100644 index 0000000000..b89660d8f8 --- /dev/null +++ b/input/regression/tie-break-accidental.ly @@ -0,0 +1,19 @@ +\version "1.3.148" + +\header { +texidoc = "First and second bes (tied across line break) +should get an accidental, but others should not. +Only first B should get natural sign." +} + +\score { + \notes { + bes1 ~ | \break + bes2 ~ bes4 ~ bes4 ~ | bes1 + \key f\major + bes1 ~|bes2 b ~|b ~ b ~|b1 + } + \paper { + linewidth = 40*\staffspace + } +} diff --git a/input/test/beam-stem-test.ly b/input/test/beam-stem-test.ly new file mode 100644 index 0000000000..639bc51344 --- /dev/null +++ b/input/test/beam-stem-test.ly @@ -0,0 +1,16 @@ +\version "1.3.148" +\header { + texidoc="Beam-stem attachment test. Helper file for ps/dvips problems." +} + +\score { + \context RhythmicStaff \notes { + \stemUp [c8 c] + \stemDown [c8 c] + \stemUp [c8. c16] + } + \paper { + linewidth = -1.0 + magnification = 64 + } +} \ No newline at end of file diff --git a/make/lilypond-vars.make b/make/lilypond-vars.make index 1634bdbcf0..55162760aa 100644 --- a/make/lilypond-vars.make +++ b/make/lilypond-vars.make @@ -30,6 +30,7 @@ LILYPOND = $(depth)/$(builddir)/lily/$(outconfbase)/lilypond LILYPOND_BOOK = $(script-dir)/lilypond-book.py LILYPOND_BOOK_INCLUDES = -I $(pwd) -I $(outdir) -I$(input-dir) -I $(input-dir)/tricks/ -I $(input-dir)/regression/ -I $(input-dir)/test/ -I $(input-dir)/tutorial/ LY2DVI = $(script-dir)/ly2dvi.py +LYS_TO_TELY = $(buildscript-dir)/lys-to-tely.py PS_TO_GIFS = $(buildscript-dir)/ps-to-gifs.sh PS_TO_PNGS = $(buildscript-dir)/ps-to-pngs.sh @@ -43,6 +44,7 @@ LILYPOND = $(shell $(SHELL) -c 'type -p lilypond') LILYPOND_BOOK = $(shell $(SHELL) -c 'type -p lilypond-book') LILYPOND_BOOK_INCLUDES = -I. -I.. -I$(outdir) LY2DVI = $(shell $(SHELL) -c 'type -p ly2dvi') +LYS_TO_TELY = $(shell $(SHELL) -c 'type -p lys-to-tely') PS_TO_GIFS = $(shell $(SHELL) -c 'type -p ps-to-gifs') PS_TO_PNGS = $(shell $(SHELL) -c 'type -p ps-to-pngs') diff --git a/make/ly-rules.make b/make/ly-rules.make index 4c238e1fb6..81cb51cb6d 100644 --- a/make/ly-rules.make +++ b/make/ly-rules.make @@ -5,7 +5,6 @@ $(outdir)/%.latex: %.doc rm -f $@ -# LILYPONDPREFIX=$(LILYPONDPREFIX)/.. $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --dependencies --outdir=$(outdir) $< $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --dependencies --outdir=$(outdir) $< chmod -w $@ @@ -13,15 +12,19 @@ $(outdir)/%.latex: %.doc # it is not, for --srcdir builds $(outdir)/%.texi: %.tely rm -f $@ -# LILYPONDPREFIX=$(LILYPONDPREFIX)/.. $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --dependencies --outdir=$(outdir) --format=texi $< $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --dependencies --outdir=$(outdir) --format=texi $< chmod -w $@ +$(outdir)/%.texi: $(outdir)/%.tely + rm -f $@ + $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --dependencies --outdir=$(outdir) --format=texi $< + rm -f $< + chmod -w $@ + # nexi: no-lily texi # for plain info doco: don't run lily $(outdir)/%.nexi: %.tely rm -f $@ -# LILYPONDPREFIX=$(LILYPONDPREFIX)/.. $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --dependencies --outdir=$(outdir) --format=texi --no-lily $< $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --dependencies --outdir=$(outdir) --format=texi --no-lily $< mv $(@D)/$(*F).texi $@ chmod -w $@ diff --git a/make/lysdoc-rules.make b/make/lysdoc-rules.make new file mode 100644 index 0000000000..5c77bbd8bd --- /dev/null +++ b/make/lysdoc-rules.make @@ -0,0 +1,3 @@ + +$(outdir)/$(NAME).tely: $(LY_FILES) + $(PYTHON) ../../buildscripts/lys-to-tely.py --name=$(outdir)/$(NAME) --title="$(TITLE)" $(LY_FILES) \ No newline at end of file diff --git a/make/lysdoc-targets.make b/make/lysdoc-targets.make new file mode 100644 index 0000000000..51d4aace22 --- /dev/null +++ b/make/lysdoc-targets.make @@ -0,0 +1,2 @@ + +local-WWW: $(outdir)/$(NAME).html \ No newline at end of file diff --git a/make/lysdoc-vars.make b/make/lysdoc-vars.make new file mode 100644 index 0000000000..b3143833f9 --- /dev/null +++ b/make/lysdoc-vars.make @@ -0,0 +1,4 @@ +TITLE=LYs Doc +LY_FILES = $(wildcard *.ly) +NAME=$(notdir $(pwd)) +