]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.0.16 release/1.0.16
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 14 Oct 1998 13:44:20 +0000 (15:44 +0200)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 14 Oct 1998 13:44:20 +0000 (15:44 +0200)
63 files changed:
Documentation/tex/refman.yo
NEWS
TODO
VERSION
buildscripts/lilypond-profile.sh
config.hh.in
configure
configure.in
init/declarations.ly
init/paper11.ly
init/paper13.ly
init/paper16.ly
init/paper20.ly
init/paper26.ly
init/scm.ly [deleted file]
lily/atom.cc
lily/auto-plet-engraver.cc
lily/engraver.cc
lily/graphical-lisp-element.cc [deleted file]
lily/include/atom.hh
lily/include/auto-plet-engraver.hh
lily/include/command-request.hh
lily/include/engraver.hh
lily/include/graphical-lisp-element.hh [deleted file]
lily/include/lily-guile.hh
lily/include/lily-proto.hh
lily/include/lookup.hh
lily/include/midi-item.hh
lily/include/music.hh
lily/include/musical-request.hh
lily/include/ps-lookup.hh
lily/include/request.hh
lily/include/score-element-info.hh
lily/include/score-engraver.hh
lily/include/tex-lookup.hh
lily/include/translator-change.hh
lily/lookup.cc
lily/main.cc
lily/midi-item.cc
lily/my-lily-lexer.cc
lily/note-column.cc
lily/parser.yy
lily/ps-lookup.cc
lily/ps-outputter.cc
lily/score-element-info.cc
lily/score-engraver.cc
lily/slur-engraver.cc
lily/slur.cc
lily/tex-lookup.cc
lily/ties-engraver.cc
make/STATE-VECTOR
make/out/lelievijver.lsm
make/out/lilypond.lsm
make/out/lilypond.spec
make/toplevel.make.in
mutopia/J.S.Bach/Solo-Cello-Suites/allemande-urtext.ly
mutopia/J.S.Bach/Solo-Cello-Suites/scsii-cello.ly
mutopia/J.S.Bach/Solo-Cello-Suites/scsii-viola.ly
mutopia/J.S.Bach/Solo-Cello-Suites/solo-cello-suite-ii.ly
ps/GNUmakefile [new file with mode: 0644]
stepmake/configure
stepmake/make/out/stepmake.lsm
stepmake/stepmake/tex-rules.make

index 96983f7f3565fa4ee92b8b51ba5d2e9aa813b72a..ae08ad2d24ae9172ea474776291a992b5d82c753 100644 (file)
@@ -6,6 +6,17 @@ redef(var)(1)(whenlatex(latexcommand({\normalfont\scshape )ARG1+latexcommand(}))
 
 redef(code)(1)(tt(ARG1))
 
+COMMENT(
+
+TODO:
+   the use of semicolons needs to be documented once it settles down
+   \times needs documentation with examples somewhere once it works (?)
+   paper size?
+   the explanation of how lyrics mode parses words seems ridiculous.  
+     Is there a simple way to explain this, or is the behavior
+     too complicated for a reasonable explanation?
+)
+
 
 COMMENT( This document contains Mudela fragments.  You need at least
 Yodl-1.30.18 to convert this to tex or html.
@@ -27,11 +38,10 @@ latexlayoutcmds(
 \input mudela-book
 )
 
-COMMENT(whenlatex(notableofcontents()))
 whentexinfo(notableofcontents())
 
-article(Mudela Reference Manual)
-      (Adrian Moriano, Han-Wen Nienhuys and Jan Nieuwenhuizen)
+article(Mudela 1.0.7 / LilyPond 1.0.15 Reference Manual)
+      (Adrian Mariano, Han-Wen Nienhuys and Jan Nieuwenhuizen)
       (nop()PIPETHROUGH(date "+%B %d, %Y")()()nop())
 
 COMMENT(
@@ -109,8 +119,8 @@ sect(Syntax)
 subsect(Basic Mudela)
 
 A Mudela file consists of keywords with arguments and identifier
-assignments separated by spaces, tabs or newlines.  (Semicolons are
-used by some keywords but are not generally required.)  A one line
+assignments separated by spaces, tabs or newlines.  Semicolons are
+used by some keywords but are not generally required.  A one line
 comment is introduced by a code(%) character.  Block comments are
 started by code(%{) and ended by code(%}).  They cannot be nested.
 
@@ -203,16 +213,16 @@ will only be able to refer to identifiers whose names begin with a
 letter and are entirely alphanumeric.  It is also impossible to refer
 to an identifier whose name is the same as the name of a keyword.  The
 following words are keywords:
-verb(absdynamic   header         musicalpitch   score         transpose
-accepts             in             notenames      script        type     
-bar         include        notes          shape         version  
-cadenza             key            output         skip        
-clef        keysignature   paper          spandynamic 
-cm          lyric          partial        symboltables
-consists     maininput      penalty        table       
-duration     mark           property       tempo       
-font        midi           pt             time        
-grouping     mm             relative       translator)
+verb(absdynamic   header         musicalpitch   remove         times
+accepts      in             name           score          translator
+bar          include        notenames      script         transpose 
+cadenza      key            notes          shape          type      
+clef         keysignature   paper          skip                  version   
+cm           lyrics         partial        spandynamic 
+consists     maininput      penalty        symboltables
+duration     mark           property       table       
+font         midi           pt             tempo       
+grouping     mm             relative       time)
 
 The right hand side of an identifier assignment is parsed completely
 when the assignment is made.  It therefore must have any context
@@ -220,24 +230,29 @@ specified in the definition.  For example, you must write
 code(foo=\notes{a8 b c}) rather than code(foo={a8 b c}).  Even though
 the context is specified in the definition, you must refer to the
 identifier inside the correct context:
-verb(foo = \paper{ linewidth = 6.0\in }
+verb(foo = \paper{ linewidth = 6.0\in; }
 \score{
   \notes{ ... }
   \paper{ \foo }
 })
 If code(\foo) is used here without the surrounding code(\paper) then
-an error will result.
+an error will result.  Note however that the following is acceptible
+verb(foo = \notes { ... }
+\score{ \foo })  
+It is not necessary to specify code(\notes).
 
 Identifiers can be set equal to integers, reals, strings, music,
 durations (specified with code(\duration)), note ornaments (specified
-with code(\script), dynamics commands, or code(:)), translator
-definitions, the code(\paper) block, the code(\midi) block or the
-code(\score) block.  When identifiers are used for translators, the
-code(\paper), code(\midi), and code(\score) blocks, they may only be
-referred to as the first item in a block.  So code(\paper{\one \two})
-is illegal because the identifier code(\two) is not the first thing in
-the block.
-
+with code(\script), dynamics commands, or code(:)), note name tables
+(specified with code(\notenames), translator definitions, the
+code(\paper) block, the code(\midi) block or the code(\score) block.
+When identifiers are used for translators, the code(\paper),
+code(\midi), and code(\score) blocks, they may only be referred to as
+the first item in a block.  So code(\paper{\one \two}) is illegal
+because the identifier code(\two) is not the first thing in the block.
+Unlike other identifier definitions, translator identifier definitions
+can only appear within code(\midi) or code(\paper) blocks.  See
+Section ref(translators) for more information.
 
 
 COMMENT(
@@ -310,7 +325,7 @@ Quoted words can also be used in lyrics mode to specify words that
 cannot be specified with the above rules.  Here are some examples.
 Not all of these words are printable by TeX().  
 verb(a&@&@&TSI|{[    % a word
-\'afoo}                % a word
+\'afoo}         % a word
 1THtrhortho     % not a word because it starts with a digit
 ``Hello''       % not a word because it starts with `
 Leise DOEXPAND(Fl\)DOEXPAND("u\)ss{}teren meine Sapfe       % 4 words
@@ -519,8 +534,8 @@ mudela()(
            open  flageolet reverseturn 
              trill  prall
            mordent prallprall prallmordent uprall  downprall }>
-  \paper{linewidth  = 5.875\in
-         indent = 0.0
+  \paper{linewidth  = 5.875\in;
+         indent = 0.0;
         }
 }
 )
@@ -556,7 +571,9 @@ code(\f), code(\ff), code(\fff), code(\fp), code(sf), and code(\sfz).
 
 A crescendo mark is started with code(\cr) and terminated with
 code(\rc).  A decrescendo mark is started with code(\decr) and
-terminated with code(\rced).
+terminated with code(\rced).  There are also shorthands for these
+marks.  A crescendo can be started with code(\<) and a decrescendo can
+be started with code(\>).  Either one can be terminated with code(\!).
 
 Tremolo marks can be printed by a note by adding code(:)[var(length)]
 after the note.  The length must be at least 8.  A var(length) value
@@ -881,7 +898,7 @@ mudela(center)(
            \clef varbaritone; c'4^"\kern -10mm varbaritone"
            \clef tenor;     c'4_"\kern -10mm tenor"
            \clef "G_8";   c'4^"\kern -6mm G\_8"  }  
-   \paper{ linewidth= 4.5 \in }
+   \paper{ linewidth= 4.5 \in; }
 }
 )
 mudela(center)(
@@ -891,7 +908,7 @@ mudela(center)(
            \clef soprano;  c'4_"\kern -10mm soprano"
            \clef treble;  c'4^"\kern -6mm treble"
            \clef french;  c'4_"\kern -10mm french" }  
-  \paper{ linewidth= 4.5 \in }
+  \paper{ linewidth= 4.5 \in; }
 }
 )
 The treble  clef  can also  be obtained using  the  names code(G) or
@@ -900,8 +917,9 @@ code(violin).  The bass clef is also available by code(\clef  F).
 dit(code(\cm)) Specify a dimension in centimeters. 
 
 dit(code(\consists) var(string)code(;)) This keyword can appear only within a
-code(\translator) block.  It specifies that an engraver named
-var(string) should be added to the translator.  See Section ref(translators).
+code(\translator) block.  It specifies that an engraver or performer named
+var(string) should be added to the translator.  See Section
+ref(translators).
 
 dit(code(\duration) code({) var(length) var(dotcount) code(})) Specify note
 duration.  The parameter var(length) is the negative logarithm (base
@@ -912,7 +930,7 @@ var(dotcount).
 dit(code(\font) var(string)) Internal keyword.  Used within
 code(\symboltables) to specify the font.
 
-dit(code(\grouping) var(durationseq))  Sets  the  metric structure of
+dit(code(\grouping) var(durationseq)code(;))  Sets  the  metric structure of
 the measure.  Each argument specifies the duration of one metric unit.
 For example, code(\duration 16*5;) specifies a grouping of five beats
 together in 5/16 time.  The default grouping is to have as many groups
@@ -930,12 +948,13 @@ dit(code(\in)) Specify a dimension in inches.
 
 dit(code(\include) var(file)) Include the specified file.  The
 argument var(file) is a string.  The full filename including the
-file(.ly) extension must be given. 
+file(.ly) extension must be given, and the filename must be quoted.
+(An unquoted string will not work here.)
 
-dit(code(\key) var(pitch)) Change key signature to that of
+dit(code(\key) var(pitch)code(;)) Change key signature to that of
 var(pitch)-major.
 
-dit(code(\keysignature) var(pitchseq);)
+dit(code(\keysignature) var(pitchseq)code(;))
 Specify an arbitrary key signature.  The pitches from var(pitch) will
 be printed in the key signature in the order that they appear on the list.
 
@@ -945,13 +964,15 @@ dit(code(\maininput)) Internal command.  This command is used for creating init
 files like file(init.fly) that read the user file into the middle of another
 file.  Using it in a user file will lead to an infinite loop.
         
-dit(code(\mark) var(unsigned) or code(\mark) var(string)) Allowed in
-music only.  Prints a mark over or under (?) the staff.  You must add
-code(Mark_engraver) to the Score context and it only seems to work if the
-mark appears at the beginning of a line.  
+dit(code(\mark) var(unsigned)code(;) or code(\mark) var(string)code(;)) 
+Allowed in music only.  Prints a mark over or under (?) the staff.
+You must add code(Mark_engraver) to the Score context and it only
+seems to work if the mark appears at the beginning of a line.
 
 dit(code(\midi) var(statementlist)) Appears in a score block to
-indicate that musical output should be produced.  See code(\tempo).
+indicate that musical output should be produced and to set output
+parameters.  Can also appear at the top level to set default output
+parameters.  See code(\tempo).
 
 dit(code(\mm)) Specify a dimension in millimeters. 
 
@@ -962,7 +983,12 @@ to 7, with 0 corresponding to C and 7 corresponding to B.  The shift
 is zero for a natural, negative to add flats, or positive to add
 sharps.
 
-dit(code(\notenames) var(assignmentlist)) Define new note names.  
+dit(code(\name) var(context)code(;)) Appears within code(\translator) to
+specify the name of the context that the translator handles. See Section
+ref(translators).   
+
+dit(code(\notenames) var(assignmentlist)) Define new note names.  This
+keyword can appear only at the top level. 
 The argument is a list of definitions of  the form
 var(name) = var(pitch),  where var(pitch) is specified with the
 code(\musicalpitch) keyword.  
@@ -970,26 +996,27 @@ code(\musicalpitch) keyword.
 dit(code(\notes) var(music)) Enter note mode and process the
 specified music. 
 
-dit(code(\)code(output) var(string)code(;)) Allowed only in
-code(\paper) block.  The parameter var(string) specifies an alternate
-name for the TeX() output.  A file(.tex) extension will be added to
-var(string) to produce the output file name.
+dit(code(\)code(output) var(string)code(;)) Generate a parse error.
 
 dit(code(\paper) var(statmentlist)) 
-Appears in a score block to indicate that the music should be printed.
+Appears in a score block to indicate that the music should be printed
+or to set output parameters.  Can also appear at the top level to set
+default output parameters for all of the score blocks.  
 The var(statmentlist) contains statements that change features of the
 output.  See Section ref(paper).  
 
-dit(code(\partial) var(duration)) Specify that the first measure of
+dit(code(\partial) var(duration)code(;)) Specify that the first measure of
 the music lasts only for the specified duration.
 
-dit(code(\penalty) code(=) var(int)) Allowed only in music.
+dit(code(\penalty) code(=) var(int)code(;)) Allowed only in music.
 Discourage or encourage line breaks.  See identifiers code(\break) and
 code(\nobreak) in Section ref(ident). 
 
 dit(code(\property) var(contextname)code(.)var(propname) code(=) var(value))
 Sets the var(propname) property of the context var(contextname) to the
-specified var(value).  All three arguments are strings.
+specified var(value).  All three arguments are strings.  Depending on
+the context it may be necessary to quote the strings or to leave space
+on both sides of the dot. 
 
 dit(code(\pt)) Specify a dimension in points. 
 
@@ -1002,6 +1029,10 @@ the starting pitch for this comparision.  In the case of chords, the
 first note of a chord is used as the base for the first pitches in the next
 chord.  See Section ref(relative).
 
+dit(code(\remove) var(string)code(;)) Can appear only in a
+code(\translator) block.  Specifies that a performer or engraver named
+var(string) should be removed.  See Section ref(translators).  
+
 dit(code(\score) var(statementlist)) Create a Score context.  This
 is the top level notation context.  
 COMMENT(this still needs work)
@@ -1033,7 +1064,7 @@ lines beyond those explicitly specified.
 COMMENT(First pair of dimensions seems to be skipped.  At least it is
 in the example file denneboom.ly.)
 
-dit(code(\skip) var(duration)) Skips the amount of time specified by
+dit(code(\skip) var(duration)code(;)) Skips the amount of time specified by
 var(duration).  A gap will be left for the skipped time with no notes
 printed.  It works in Note Mode or Lyrics Mode (but generates a
 mysterious error in lyrics).
@@ -1052,15 +1083,18 @@ file(table*.ly).
 dit(code(\table)) Internal keyword.  Used within code(\symboltables)
 to specify the tables.  See initialization files. 
 
-dit(code(\tempo) var(duration) = var(perminute)) Used within
-code(\midi) to specify the tempo.  For example, 
-`code(\midi { \tempo 4 = 76})' requests output with 76 quarter notes
-per minute. 
+dit(code(\tempo) var(duration) = var(perminute)code(;)) Used within
+code(\midi) or within music to specify the tempo.  For example, 
+`code(\midi { \tempo 4 = 76;})' requests output with 76 quarter notes
+per minute.  Note that if the music contains several tempo commands,
+only the last one is used to set the tempo for the entire MIDI output. 
+COMMENT(Is this true?)
 
+dit(code(\time) var(numerator)code(/)var(denominator)code(;)) Change the time
+signature.  The default time signature is 4/4.  
 
-dit(code(\time) var(numerator)code(/)var(denominator)) Change the time
-signature.  The default time signature  is 4/4.  
-
+dit(code(\times) var(numerator)code(/)var(denominator) var(music))
+Multiply the duration of var(music) by the specified fraction.
 
 dit(code(\translator) var(statements) or code(\translator)
 var(context) = var(name)) The first variant appears only within
@@ -1173,17 +1207,16 @@ subsubsubsect(Lyrics properties)
 description(
 
 dit(code(textstyle)) Set the font for lyrics.  The available font
-choices are code(normaltext), code(roman), code(italic), code(bold)
-code(normaltext), code(large), code(Large), code(huge), and
-code(finger).  The code(finger) font can only display numbers.  Note
-also that you must be careful when using code(\property) in Lyrics
-mode.  Because of the way strings are parsed, either put quotes around
-the arguments to code(\property) or be sure to leave a space on both
-sides of the dot.
-
-dit(code(textalignment)) Controls alignment of lyrics.  Set to \left
-to align the left end of the lyric with the note; set to \right to
-align the right end of the lyric with the note.  Set to \center to
+choices are code(roman), code(italic), code(bold), code(large),
+code(Large), code(typewriter), and code(finger).  The code(finger)
+font can only display numbers.  Note also that you must be careful
+when using code(\property) in Lyrics mode.  Because of the way strings
+are parsed, either put quotes around the arguments to code(\property)
+or be sure to leave a space on both sides of the dot.
+
+dit(code(textalignment)) Controls alignment of lyrics.  Set to code(\left)
+to align the left end of the lyric with the note; set to code(\right) to
+align the right end of the lyric with the note.  Set to code(\center) to
 align the center of the lyric with the note.  
 
 )
@@ -1192,7 +1225,12 @@ subsubsubsect(Voice properties)
 
 description(  
 
-dit(code(midi_instrument)) Sets  the  instrument for MIDI  output. 
+dit(code("midi_instrument")) Sets the instrument for MIDI output.  This
+property name must be quoted because of the embedded underscore.  If
+this property is not set then LilyPond will use the code(instrument)
+property.  This must be set to one of the strings on the list of MIDI
+instruments that appears in Section ref(midilist).  If you use a
+string which is not listed, LilyPond will silently substitute piano. 
 
 dit(code(transposing)) Tranpose the MIDI output.  Set this property to
 the number of half-steps to transpose by.
@@ -1247,7 +1285,7 @@ subsubsubsect(Staff properties)
 
 description(
  
-dit(code(defaultclef)) Determines the default clef.  See code(\clef)
+dit(code(defaultClef)) Determines the default clef.  See code(\clef)
 keyword.
 
 dit(code(nolines)) Sets the number of lines that the staff has.
@@ -1269,7 +1307,9 @@ code(\specialkey) or reset to 1 with code(\normalkey).
 dit(code(instrument) and code(instr)) If code(Staff_margin_engraver)
 is added to the Staff translator, then the code(instrument) property
 is used to label the first line of the staff and the code(instr)
-property is used to label subsequent lines.
+property is used to label subsequent lines.  If the
+code(midi_instrument) property is not set then code(instrument) is
+used to determine the instrument for MIDI output.
 COMMENT(This prints the instrument name on top of the staff lines.)
 
 dit(code(abbrev)) Set length for tremolo to be used if no length is
@@ -1290,11 +1330,11 @@ dit(code(timeSignatureStyle)) Changes the default two-digit layout
       written with two digits.
       dit(code(1)): All time signatures are typeset with a single
       digit, e.g. 3/2 is written as 3.
-      dit(code(C2/2,C4/4, old2/2, old3/2, old3/4, old4/4, old6/4 or
-      old9/4)): Tells Lilypond to use a specific symbol as time
-      signature, independently of the actual time signature.
+      dit(code(C2/2), code(C4/4), code(old2/2), code(old3/2),
+      code(old3/4), code(old4/4), code(old6/4) or
+      code(old9/4)): Tells Lilypond to use a specific symbol as time
+      signature.
    )
-
 The different time signature characters are shown below with
 their names:
 mudela(fragment,center)(
@@ -1317,8 +1357,6 @@ mudela(fragment,center)(
 }
 )
 
-COMMENT( timeSignatureSymbol?  timeSignatureChar? )
-
 
 )
    
@@ -1454,22 +1492,54 @@ code(castingalgorithm).  Equal to 0.0.
 )
 
 
-sect(The code(\paper) Block)
+sect(Output)
+label(output)
 label(paper)
 
-The code(\paper) block may begin with an optional identifier reference.  No
+The output produced by LilyPond is controlled by the code(\paper) and
+code(\midi) keywords.  These keywords appear in the code(\score) block
+to indicate that printed or musical output should be produced.  If
+neither keyword appears in a code(\score) block, then paper output is
+produced but MIDI output is not produced.  
+
+The contents of the code(\paper) and code(\midi) blocks can change the
+output in various ways.  These blocks can appear at the top level of a
+Mudela file to set default parameters for each type of output.  It is
+still necessary to explicitly specify the output type in the
+code(\score) blocks if you don't want the default behavior of
+producing only paper output.  
+
+The code(\paper) and code(\midi) blocks 
+may begin with an optional identifier reference.  No
 identifier references are allowed anywhere else in the block.  
-The keywords code(\shape), code(\)code(output) and code(\translator) may
-appear in this block.  In addition, variable assignments may appear.  
-The variables control layout details and are set to reasonable
-defaults that depend on the font size in use.  The only way to find out what
-variables are supported is to search the source code for code(get_var). 
+The code(\paper) block can contain the code(\shape) keyword; the
+code(\midi) block can contain the code(\tempo) keyword.  Both of them
+can contain code(\translator) keywords.  The code(\paper) block can
+also contain identifier assignments and parameter assignments.  Unlike
+at the top level, these assignments must be terminated by a semicolon.
+
 
 subsect(Paper variables)
 
-There are a large number of paper variables that are used to set internal
-details of the layout.  Usually you will not want to change these variables.
-Two variables that you may want to change are code(linewidth) and code(indent).
+There are a large number of paper variables that are used to control
+details of the layout.  Usually you will not want to change these
+variables; they are set by default to vaules that depend on the font
+size in use.  The only way to find out what variables are supported is
+to search the source code for code(get_var).  Two variables that you
+may want to change are code(linewidth) and code(indent).
+
+In order to change the font size used for the output, many variables
+need to be changed.  Some identifiers and initialization files can
+simplify this process.  The default size is 20pt.  In order to select
+a different size, you must do two things.  At the top level, do
+code(\include "paper)var(SZ)code(.ly") where var(SZ) is the height of
+the staff in points.  Values presently allowed are 11, 13, 16, 20, and
+26.  This loads some definitions, but does not cause them to take
+effect.  In order to actually change the size, you must use one of the
+identifiers: code(\paper_eleven), code(\paper_thirteen),
+code(\paper_sixteen), code(\paper_twenty) or code(\paper_twentysix)
+inside a code(\paper) block.
+
 
 description(
   dit(var(integer)) If an integer appears on the left side of an
@@ -1513,16 +1583,24 @@ lines, calculated from the center of the lines.
 dit(code(linewidth))  Sets the width of the lines.  If it is set to
 -1.0, then a single unjustified line is produced.  
 dit(code(notewidth)) Width of an average note head.  
+dit(code(output)) Specifies an alternate
+name for the TeX() output.  A file(.tex) extension will be added to
+the string you specify.
 dit(code(rulethickness)) Determines thickness of staff lines and bars. 
 dit(code(slur_clip_angle))
 dit(code(slur_clip_height))
 dit(code(slur_clip_ratio))
-dit(code(slur_height_limit))
-dit(code(slur_ratio))
+dit(code(slur_height_limit)) Specifies the maximum height of slurs.
+Normally equal to staff_height.
+dit(code(slur_ratio)) Specifes the ratio of slur hight to slur width
+to aim for.  Default value is 0.3.  
 dit(code(slur_rc_factor))
-dit(code(slur_slope_damping))
-dit(code(slur_thickness))
-dit(code(slur_x_gap))
+dit(code(slur_slope_damping)) Allows slurs to start and end at
+different heights ????  Default value is 0.5.
+dit(code(slur_thickness)) Specify slur thickness.  Equal to code(1.4 *
+\staffline) by default.  
+dit(code(slur_x_gap)) Horizontal space between note and slur.  Set to
+code(\interline / 5) by default.  
 dit(code(slur_x_minimum))
 dit(code(staffheight)) The height of the staff from the center of the
 bottom line to the center of the top line.  Equal to to code(4 * \interline).
@@ -1533,20 +1611,134 @@ dit(code(tie_slope_damping))
 dit(code(tie_x_minimum))
 )
 
+
+subsect(MIDI Instrument Names)
+label(midilist)
+
+The MIDI instrument name is set by the code(Staff."midi_instrument")
+property or, if that property is not set, the code(Staff.instrument)
+property.  The instrument name should be chosen from this list.  If
+string does not exactly match one from this list then LilyPond uses
+the default piano.
+
+COMMENT( acordina = accordion, tango accordian = concertina
+         distortion guitar = distorted guitar
+         orchestral strings = harp 
+         pan flute = wood flute? )
+
+verb("acoustic grand"               "contrabass"             "lead 7 (fifths)"
+"bright acoustic"              "tremolo strings"        "lead 8 (bass+lead)"
+"electric grand"               "pizzicato strings"      "pad 1 (new age)"
+"honky-tonk"                   "orchestral strings"     "pad 2 (warm)"
+"electric piano 1"             "timpani"                "pad 3 (polysynth)"
+"electric piano 2"             "string ensemble 1"      "pad 4 (choir)"
+"harpsichord"                  "string ensemble 2"      "pad 5 (bowed)"
+"clav"                         "synthstrings 1"         "pad 6 (metallic)"
+"celesta"                      "synthstrings 2"         "pad 7 (halo)"
+"glockenspiel"                 "choir aahs"             "pad 8 (sweep)"
+"music box"                    "voice oohs"             "fx 1 (rain)"
+"vibraphone"                   "synth voice"            "fx 2 (soundtrack)"
+"marimba"                      "orchestra hit"          "fx 3 (crystal)"
+"xylophone"                    "trumpet"                "fx 4 (atmosphere)"
+"tubular bells"                "trombone"               "fx 5 (brightness)"
+"dulcimer"                     "tuba"                   "fx 6 (goblins)"
+"drawbar organ"                "muted trumpet"          "fx 7 (echoes)"
+"percussive organ"             "french horn"            "fx 8 (sci-fi)"
+"rock organ"                   "brass section"          "sitar"
+"church organ"                 "synthbrass 1"           "banjo"
+"reed organ"                   "synthbrass 2"           "shamisen"
+"accordion"                    "soprano sax"            "koto"
+"harmonica"                    "alto sax"               "kalimba"
+"concertina"                   "tenor sax"              "bagpipe"
+"acoustic guitar (nylon)"      "baritone sax"           "fiddle"
+"acoustic guitar (steel)"      "oboe"                   "shanai"
+"electric guitar (jazz)"       "english horn"           "tinkle bell"
+"electric guitar (clean)"      "bassoon"                "agogo"
+"electric guitar (muted)"      "clarinet"               "steel drums"
+"overdriven guitar"            "piccolo"                "woodblock"
+"distorted guitar"             "flute"                  "taiko drum"
+"guitar harmonics"             "recorder"               "melodic tom"
+"acoustic bass"                "pan flute"              "synth drum"
+"electric bass (finger)"       "blown bottle"           "reverse cymbal"
+"electric bass (pick)"         "skakuhachi"             "guitar fret noise"
+"fretless bass"                "whistle"                "breath noise"
+"slap bass 1"                  "ocarina"                "seashore"
+"slap bass 2"                  "lead 1 (square)"        "bird tweet"
+"synth bass 1"                 "lead 2 (sawtooth)"      "telephone ring"
+"synth bass 2"                 "lead 3 (calliope)"      "helicopter"
+"violin"                       "lead 4 (chiff)"         "applause"
+"viola"                        "lead 5 (charang)"       "gunshot"
+"cello"                        "lead 6 (voice)")
+
+
+
 subsect(Translators)
 label(translators)
 
 The behavior of notation contexts is defined by the translators for
 those contexts.  The translator for a context specifies what notations
 are handled by the context, it specifies what other contexts the
-context can contain, and it sets property values for the context.  The
-default contexts are all defined in file(engraver.ly).  An easy way to
-change the behavior of a context is to copy the definition from that
-file and modify it.  
-
-The first thing that appears inside a code(\translator)
-definition is the type of the context being created.  There are 
-four types:
+context can contain, and it sets property values for the context.  
+There are different translators for each type of output.  The
+translators for paper output are defined in file(engraver.ly).  The
+translators for MIDI output are defined in file(performer.ly).  
+
+The first thing that appears inside a code(\translator) definition is
+the type of the context being created.  This is specified with the
+code(\type) keyword: code(\type) var(typename)code(;).  After the type
+of the context is specified, property assignments, the code(\name)
+keyword and code(\consists), code(\accepts), and code(\remove)
+keywords can appear in any order.  The code(\name) keyword specifies
+the name of the context that is handled by the translator.  If the
+name is not specified, the translator won't do anything.  Each
+code(\accepts) keyword specifies what contexts can be contained inside
+this one.  The code(\consists) keywords specify which notations are
+handled by the context.  Each code(\consists) keyword specifies the
+name of an engraver (for paper ouput) or performer (for MIDI output)
+which handles a certain notation.  The code(\remove) keyword can be
+used to remove a performer or engraver from the translator.
+
+In the code(\paper) block, it is also possible to define translator
+identifiers.  Like other block identifiers, the identifier can only
+be used as the very first item of a translator.  In order to define
+such an identifier outside of code(\score), you must do
+verb(\paper{ foo=\translator{ ... }
+\score{
+  \notes{ ... }
+  \paper{ \translator{ \foo ... } }
+})
+
+Some All of the standard translators have predefined identifiers,  making
+it easy to redefine these contexts by adding or removing items. 
+The predefined identifiers are:  code(StaffContext),
+code(RhythmicStaffContext),  code(VoiceContext),  code(ScoreContext), code(ScoreWithNumbers)
+
+
+subsubsect(Paper Types and Engravers and Pre-defined Translators)
+
+Some pre-defined identifiers can simplify modification of translators.
+The pre-defined identifiers are:  
+description(
+dit(code(StaffContext)) Default Staff  context. 
+dit(code(RhythmicStaffContext)) Default RhythmicStaff  context. 
+dit(code(VoiceContext)) Default Voice  context.  
+dit(code(ScoreContext))  Default  Score context. 
+dit(code(ScoreWithNumbers)) Score  context with numbering at  the
+Score level.   
+dit(code(BarNumberingStaffContext)) Staff context with numbering  at
+the Staff level.  
+dit(code(HaraKiriStaffContext))  
+dit(code(OrchestralPartStaffContext))
+dit(code(OrchestralScoreContext))
+)
+Using these pre-defined values, you can remove  or add items to the
+translator verb(\paper{ \translator{ \StaffContext
+                     \remove Some_engraver;
+                     \consists Different_engraver;  }})
+      
+
+
+There are four types for paper translators:
 description(
   dit(code(Engraver_group_engraver))
   dit(code(Hara_kiri_line_group_engraver))
@@ -1555,16 +1747,7 @@ description(
 )
 COMMENT( The names of these types seem somewhat confusing. )
 
-After the type of the context is specified, property assignments and
-code(\consists) and code(\accepts) keywords can appear in any order.  
-Each code(\accepts) keyword specifies what contexts can be contained
-inside this one.  
-
-The code(\consists) keywords specify which notations are
-handled by the context.  Each code(\consists) keyword specifies the
-name of an engraver which handles a certain notation.  
-Here is a list
-of the engravers. 
+The engravers for paper output are:
 
 description(
 dit(code(Abbreviation_beam_engraver))
@@ -1627,7 +1810,6 @@ left of the staff.
 dit(code(Staff_sym_engraver))
 dit(code(Stem_engraver)) Engraves stems.  Normally in code(Voice).
 dit(code(Ties_engraver)) Engraves ties.  Normally in code(Voice).
-COMMENT(perhaps should be named Tie_engraver?)
 dit(code(Time_signature_engraver)) Engraves the time signature.  Normally in
 code(Staff) and code(RhythmicStaff).
 dit(code(Timing_engraver)) Responsible for synchronizing timing information
@@ -1636,3 +1818,22 @@ this engraver should be removed from code(Score) and placed in code(Staff).
 dit(code(Vertical_align_engraver)) 
 )
 
+
+subsubsect(MIDI Types and Performers)
+
+The types available for  MIDI translators are:
+description(
+dit(code(Performer_group_performer))
+dit(code(Score_performer))
+dit(code(Staff_performer))
+)
+
+The performers for MIDI translators are:
+description(
+dit(code(Key_performer))
+dit(code(Time_signature_performer))
+dit(code(Note_performer))
+dit(code(Lyric_performer))
+dit(code(Swallow_performer))
+)
+
diff --git a/NEWS b/NEWS
index 12dcd9281f46eccd1cf99cb88ecfd3cf6d839a12..4473e4ea12588d4a6701e8127bfe863b0b23e072 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,13 +1,17 @@
-pl 15.jcn3
-       - try at scheme in Atom
-
-pl 15.jcn2
-       - autoconf on guile
-       - graphical-lisp-element + silly half hook-up with autuplet
-         (see init/test/tup.ly)
+pl 16
+       - read property ydirection and tieYDirection for tie direction.
+       - bf: slur over rest.
+       - bf: include path
+       - part of jcn2
+       - configure --enable-guile
 
 pl 15.jcn1
-       - autoconf on mf,mfont mp,mpost
+       - autoconf on mf,mfont mp,mpost
+pl 15.am
+       - Lots of patches from *Adrian* *Mariano*!
+
+**********
 
 pl 15
 pl 14.hwn1
diff --git a/TODO b/TODO
index 8adbc8d1da97b73e6ec6e033e4650cb650f24766..79b6623e1a3c665c19efa4c5c2adbdfd60f97224 100644 (file)
--- a/TODO
+++ b/TODO
@@ -11,6 +11,9 @@ grep for TODO and ugh/ugr/urg
 BUGS:
        
 
+       * egcs-1.1 -O2 -finline-functions  causes crash
+
+
        * formatting of input stuff. 
 
        * use real RTTI iso access_Stuff.
diff --git a/VERSION b/VERSION
index 9970bc70be380177ee46bab69b19e2930ef12bca..2021fd4c576b3e4f23b7d0a755ba7df0cab0a942 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,8 +1,8 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=0
-PATCH_LEVEL=15
-MY_PATCH_LEVEL=jcn3
+PATCH_LEVEL=16
+MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index 2cbd3e111502d1761c999047e88fdd6196803187..c20fa45672fde52ad3f27ca3ab0822e5734c510a 100644 (file)
@@ -2,15 +2,16 @@
 
 
 # set environment for LilyPond.  To be installed in /etc/profile.d/
-
+GS_LIB="@datadir@/afm"
+GS_FONTPATH="@datadir@/ps"
 LILYINCLUDE="@datadir@/ly"
+
+# include an empty path component for the system wide includes.
 MFINPUTS="@datadir@/mf:"${MFINPUTS:=":"}
 TEXINPUTS="@datadir@/tex:"${TEXINPUTS:=":"}
 
-# todo: GS stuff
-
-export  LILYINCLUDE MFINPUTS TEXINPUTS
+export LILYINCLUDE MFINPUTS TEXINPUTS GS_LIB GS_FONTPATH
 
-# echo  $LILYINCLUDE $MFINPUTS $TEXINPUTS
+# echo  $LILYINCLUDE $MFINPUTS $TEXINPUTS $GS_LIB $GS_FONTPATH
 
 
index 48542789c4ece408483a27d8cdef7693fee04a43..4eba1489772d7d8e9f1c7fa7b9ddf5a5c4969c3a 100644 (file)
@@ -27,3 +27,6 @@
 /* define directory and path separators */
 #define DIRSEP '@DIRSEP@'
 #define PATHSEP '@PATHSEP@'
+
+/* define GUILE-ification */
+#undef HAVE_LIBGUILE 
index fad9fdb1b4f413de9c2ffd5fa4fd9201bcf9cc5e..9588ac798a75f2e69b42c2dda9e2cb3a8a0ac390 100755 (executable)
--- a/configure
+++ b/configure
@@ -79,6 +79,8 @@ ac_help="$ac_help
   enable-mingw-prefix=DIR set the mingw32 directory (standalone windows32 exes)"
 ac_help="$ac_help
   enable-printing         turn on debug printing. Default: off"
+ac_help="$ac_help
+  enable-guile            link in GUILE. Default: off"
 ac_help="$ac_help
   with-localedir=LOCALE   use LOCALE as locale dir. Default: PREFIX/share/locale "
 ac_help="$ac_help
@@ -703,7 +705,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
 fi
 
 echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:707: checking host system type" >&5
+echo "configure:709: checking host system type" >&5
 
 host_alias=$host
 case "$host_alias" in
@@ -728,7 +730,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:732: checking for $ac_word" >&5
+echo "configure:734: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_MAKE'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -762,7 +764,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:766: checking for $ac_word" >&5
+echo "configure:768: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_FIND'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -799,7 +801,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:803: checking for $ac_word" >&5
+echo "configure:805: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_TAR'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -833,7 +835,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:837: checking for $ac_word" >&5
+echo "configure:839: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_BASH'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -866,7 +868,7 @@ test -n "$BASH" || BASH="/bin/sh"
     # Extract the first word of "${PYTHON:-python}", so it can be a program name with args.
 set dummy ${PYTHON:-python}; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:870: checking for $ac_word" >&5
+echo "configure:872: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_PYTHON'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1082,7 +1084,7 @@ EOF
     # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1086: checking for $ac_word" >&5
+echo "configure:1088: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1111,7 +1113,7 @@ if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1115: checking for $ac_word" >&5
+echo "configure:1117: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1159,7 +1161,7 @@ fi
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1163: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1165: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 
 ac_ext=c
 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -1169,11 +1171,11 @@ ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS
 cross_compiling=$ac_cv_prog_cc_cross
 
 cat > conftest.$ac_ext <<EOF
-#line 1173 "configure"
+#line 1175 "configure"
 #include "confdefs.h"
 main(){return(0);}
 EOF
-if { (eval echo configure:1177: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1179: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -1193,12 +1195,12 @@ if test $ac_cv_prog_cc_works = no; then
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1197: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1199: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1202: checking whether we are using GNU C" >&5
+echo "configure:1204: checking whether we are using GNU C" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1207,7 +1209,7 @@ else
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1211: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1213: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -1222,7 +1224,7 @@ if test $ac_cv_prog_gcc = yes; then
   ac_save_CFLAGS="$CFLAGS"
   CFLAGS=
   echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1226: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1228: checking whether ${CC-cc} accepts -g" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1263,13 +1265,21 @@ fi
 # AC_HAVE_HEADERS(limits.h malloc.h string.h unistd.h values.h)
 
 printing_b=no
+guile_b=no
 # Check whether --enable-printing or --disable-printing was given.
 if test "${enable_printing+set}" = set; then
   enableval="$enable_printing"
   printing_b=$enableval
 fi
 
+# Check whether --enable-guile or --disable-guile was given.
+if test "${enable_guile+set}" = set; then
+  enableval="$enable_guile"
+  guile_b=$enableval
+fi
+
 
+    
 if test "$optimise_b" = yes; then
     DEFINES="$DEFINES -DSTRING_UTILS_INLINED"
     cat >> confdefs.h <<\EOF
@@ -1279,7 +1289,7 @@ EOF
 fi
 
 echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6
-echo "configure:1283: checking how to run the C++ preprocessor" >&5
+echo "configure:1293: checking how to run the C++ preprocessor" >&5
 if test -z "$CXXCPP"; then
 if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1292,12 +1302,12 @@ ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $L
 cross_compiling=$ac_cv_prog_cxx_cross
   CXXCPP="${CXX-g++} -E"
   cat > conftest.$ac_ext <<EOF
-#line 1296 "configure"
+#line 1306 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1301: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1311: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   :
@@ -1328,7 +1338,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1332: checking for $ac_word" >&5
+echo "configure:1342: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1359,7 +1369,7 @@ test -n "$CXX" || CXX="gcc"
 
 
 echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1363: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
+echo "configure:1373: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
 
 ac_ext=C
 # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -1369,11 +1379,11 @@ ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $L
 cross_compiling=$ac_cv_prog_cxx_cross
 
 cat > conftest.$ac_ext <<EOF
-#line 1373 "configure"
+#line 1383 "configure"
 #include "confdefs.h"
 main(){return(0);}
 EOF
-if { (eval echo configure:1377: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1387: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   ac_cv_prog_cxx_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -1393,12 +1403,12 @@ if test $ac_cv_prog_cxx_works = no; then
   { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1397: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1407: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6
 cross_compiling=$ac_cv_prog_cxx_cross
 
 echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6
-echo "configure:1402: checking whether we are using GNU C++" >&5
+echo "configure:1412: checking whether we are using GNU C++" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1407,7 +1417,7 @@ else
   yes;
 #endif
 EOF
-if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1411: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1421: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gxx=yes
 else
   ac_cv_prog_gxx=no
@@ -1422,7 +1432,7 @@ if test $ac_cv_prog_gxx = yes; then
   ac_save_CXXFLAGS="$CXXFLAGS"
   CXXFLAGS=
   echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
-echo "configure:1426: checking whether ${CXX-g++} accepts -g" >&5
+echo "configure:1436: checking whether ${CXX-g++} accepts -g" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1452,17 +1462,17 @@ fi
 
     ac_safe=`echo "FlexLexer.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for FlexLexer.h""... $ac_c" 1>&6
-echo "configure:1456: checking for FlexLexer.h" >&5
+echo "configure:1466: checking for FlexLexer.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1461 "configure"
+#line 1471 "configure"
 #include "confdefs.h"
 #include <FlexLexer.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1466: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1476: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -1512,12 +1522,12 @@ fi
 
 
     echo $ac_n "checking whether explicit instantiation is needed""... $ac_c" 1>&6
-echo "configure:1516: checking whether explicit instantiation is needed" >&5
+echo "configure:1526: checking whether explicit instantiation is needed" >&5
 if eval "test \"`echo '$''{'lily_cv_need_explicit_instantiation'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1521 "configure"
+#line 1531 "configure"
 #include "confdefs.h"
 
     template <class T> struct foo { static int baz; };
@@ -1527,7 +1537,7 @@ int main() {
  return foo<int>::baz; 
 ; return 0; }
 EOF
-if { (eval echo configure:1531: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1541: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   lily_cv_need_explicit_instantiation=no
 else
@@ -1554,7 +1564,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1558: checking for $ac_word" >&5
+echo "configure:1568: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1596,7 +1606,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1600: checking for $ac_word" >&5
+echo "configure:1610: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_BISON'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1630,7 +1640,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1634: checking for $ac_word" >&5
+echo "configure:1644: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_FLEX'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1697,7 +1707,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1701: checking for $ac_word" >&5
+echo "configure:1711: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1729,7 +1739,7 @@ test -n "$AR" || AR="error"
     # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1733: checking for $ac_word" >&5
+echo "configure:1743: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1784,7 +1794,7 @@ fi
 
 
     echo $ac_n "checking language""... $ac_c" 1>&6
-echo "configure:1788: checking language" >&5    
+echo "configure:1798: checking language" >&5    
     case "$language" in
       En* | en* | Am* | am* | US* | us*)
            lang=English;;
@@ -1820,7 +1830,7 @@ EOF
 
 
     echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6
-echo "configure:1824: checking for gettext in -lintl" >&5
+echo "configure:1834: checking for gettext in -lintl" >&5
 ac_lib_var=`echo intl'_'gettext | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1828,7 +1838,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lintl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1832 "configure"
+#line 1842 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
@@ -1842,7 +1852,7 @@ int main() {
 gettext()
 ; return 0; }
 EOF
-if { (eval echo configure:1846: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1856: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -1872,12 +1882,12 @@ fi
     for ac_func in gettext
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1876: checking for $ac_func" >&5
+echo "configure:1886: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1881 "configure"
+#line 1891 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -1903,7 +1913,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:1907: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1917: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -1935,7 +1945,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1939: checking for $ac_word" >&5
+echo "configure:1949: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_MSGFMT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1965,7 +1975,7 @@ done
 test -n "$MSGFMT" || MSGFMT="\$(SHELL) \$(step-bindir)/fake-msgfmt.sh "
 
     echo $ac_n "checking whether msgfmt accepts -o""... $ac_c" 1>&6
-echo "configure:1969: checking whether msgfmt accepts -o" >&5
+echo "configure:1979: checking whether msgfmt accepts -o" >&5
     msgfmt_output="`msgfmt -o bla 2>&1 | grep usage`"
     if test "$msgfmt_output" = ""; then
        echo "$ac_t""yes" 1>&6
@@ -1985,7 +1995,156 @@ echo "configure:1969: checking whether msgfmt accepts -o" >&5
 
     fi
 
-# AC_STEPMAKE_TEXMF
+
+    # urg, never know what names these teTeX guys will think up
+    for ac_prog in mf
+do
+# Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:2006: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_METAFONT'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$METAFONT"; then
+  ac_cv_prog_METAFONT="$METAFONT" # Let the user override the test.
+else
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_METAFONT="$ac_prog"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+METAFONT="$ac_cv_prog_METAFONT"
+if test -n "$METAFONT"; then
+  echo "$ac_t""$METAFONT" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+test -n "$METAFONT" && break
+done
+test -n "$METAFONT" || METAFONT="no"
+
+    if test "x$METAFONT" = "xno"; then
+       for ac_prog in mfont
+do
+# Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:2041: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_MFONT'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$MFONT"; then
+  ac_cv_prog_MFONT="$MFONT" # Let the user override the test.
+else
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_MFONT="$ac_prog"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+MFONT="$ac_cv_prog_MFONT"
+if test -n "$MFONT"; then
+  echo "$ac_t""$MFONT" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+test -n "$MFONT" && break
+done
+test -n "$MFONT" || MFONT="-echo no mf or mfont"
+
+       METAFONT=$MFONT
+    fi
+
+    for ac_prog in mp
+do
+# Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:2078: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_METAPOST'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$METAPOST"; then
+  ac_cv_prog_METAPOST="$METAPOST" # Let the user override the test.
+else
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_METAPOST="$ac_prog"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+METAPOST="$ac_cv_prog_METAPOST"
+if test -n "$METAPOST"; then
+  echo "$ac_t""$METAPOST" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+test -n "$METAPOST" && break
+done
+test -n "$METAPOST" || METAPOST="no"
+
+    if test "x$METAPOST" = "xno"; then
+       for ac_prog in mpost
+do
+# Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:2113: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_MPOST'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$MPOST"; then
+  ac_cv_prog_MPOST="$MPOST" # Let the user override the test.
+else
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_MPOST="$ac_prog"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+MPOST="$ac_cv_prog_MPOST"
+if test -n "$MPOST"; then
+  echo "$ac_t""$MPOST" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+test -n "$MPOST" && break
+done
+test -n "$MPOST" || MPOST="-echo no mp or mpost"
+
+       METAPOST=$MPOST
+    fi
+
+    
+    
+
+# AC_STEPMAKE_TEXMF_DIRS
 
     if test "x$YODL" = "x"; then 
        for ac_prog in striproff
@@ -1993,7 +2152,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1997: checking for $ac_word" >&5
+echo "configure:2156: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_STRIPROFF'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2027,7 +2186,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2031: checking for $ac_word" >&5
+echo "configure:2190: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2061,7 +2220,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2065: checking for $ac_word" >&5
+echo "configure:2224: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL2HTML'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2095,7 +2254,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2099: checking for $ac_word" >&5
+echo "configure:2258: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL2LATEX'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2128,7 +2287,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2132: checking for $ac_word" >&5
+echo "configure:2291: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL2MAN'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2162,7 +2321,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2166: checking for $ac_word" >&5
+echo "configure:2325: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL2MSLESS'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2196,7 +2355,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2200: checking for $ac_word" >&5
+echo "configure:2359: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL2TEXINFO'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2230,7 +2389,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2234: checking for $ac_word" >&5
+echo "configure:2393: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL2TXT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2280,8 +2439,64 @@ test -n "$YODL2TXT" || YODL2TXT="-echo no yodl"
 
 
 
+case $guile_b in 
+    yes)
+    echo $ac_n "checking for scm_shell in -lguile""... $ac_c" 1>&6
+echo "configure:2446: checking for scm_shell in -lguile" >&5
+ac_lib_var=`echo guile'_'scm_shell | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lguile  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2454 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char scm_shell();
+
+int main() {
+scm_shell()
+; return 0; }
+EOF
+if { (eval echo configure:2468: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo guile | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
+
+  LIBS="-lguile $LIBS"
+
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+    ;;
+esac
+    
 echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
-echo "configure:2285: checking for 8-bit clean memcmp" >&5
+echo "configure:2500: checking for 8-bit clean memcmp" >&5
 if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2289,7 +2504,7 @@ else
   ac_cv_func_memcmp_clean=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 2293 "configure"
+#line 2508 "configure"
 #include "confdefs.h"
 #ifdef __cplusplus
 extern "C" void exit(int);
@@ -2302,7 +2517,7 @@ main()
 }
 
 EOF
-if { (eval echo configure:2306: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2521: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_memcmp_clean=yes
 else
@@ -2320,12 +2535,12 @@ echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6
 test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.o"
 
 echo $ac_n "checking for vprintf""... $ac_c" 1>&6
-echo "configure:2324: checking for vprintf" >&5
+echo "configure:2539: checking for vprintf" >&5
 if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2329 "configure"
+#line 2544 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char vprintf(); below.  */
@@ -2351,7 +2566,7 @@ vprintf();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2355: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2570: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_vprintf=yes"
 else
@@ -2375,12 +2590,12 @@ fi
 
 if test "$ac_cv_func_vprintf" != yes; then
 echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
-echo "configure:2379: checking for _doprnt" >&5
+echo "configure:2594: checking for _doprnt" >&5
 if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2384 "configure"
+#line 2599 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char _doprnt(); below.  */
@@ -2406,7 +2621,7 @@ _doprnt();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2410: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2625: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func__doprnt=yes"
 else
@@ -2433,12 +2648,12 @@ fi
 for ac_func in memmem snprintf vsnprintf gettext
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2437: checking for $ac_func" >&5
+echo "configure:2652: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2442 "configure"
+#line 2657 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2464,7 +2679,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2468: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2683: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -2503,7 +2718,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2507: checking for $ac_word" >&5
+echo "configure:2722: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2717,6 +2932,10 @@ s%@RANLIB@%$RANLIB%g
 s%@localedir@%$localedir%g
 s%@DIR_LOCALEDIR@%$DIR_LOCALEDIR%g
 s%@MSGFMT@%$MSGFMT%g
+s%@METAFONT@%$METAFONT%g
+s%@MFONT@%$MFONT%g
+s%@METAPOST@%$METAPOST%g
+s%@MPOST@%$MPOST%g
 s%@STRIPROFF@%$STRIPROFF%g
 s%@YODL@%$YODL%g
 s%@YODL2HTML@%$YODL2HTML%g
index d4a297075ff149ac74ae6396543b2b29004fc1c4..69f89668978f00cbe8f7d7413cd3738b8f3dc412 100644 (file)
@@ -16,10 +16,15 @@ AC_STEPMAKE_COMPILE
 # AC_HAVE_HEADERS(limits.h malloc.h string.h unistd.h values.h)
 
 printing_b=no
+guile_b=no
 AC_ARG_ENABLE(printing,
     [  enable-printing         turn on debug printing. Default: off],
     [printing_b=$enableval])
+AC_ARG_ENABLE(guile,
+    [  enable-guile            link in GUILE. Default: off],
+    [guile_b=$enableval])
 
+    
 if test "$optimise_b" = yes; then
     DEFINES="$DEFINES -DSTRING_UTILS_INLINED"
     AC_DEFINE(STRINGS_UTILS_INLINED)
@@ -37,12 +42,19 @@ AC_STEPMAKE_MSGFMT
 AC_STEPMAKE_TEXMF
 # AC_STEPMAKE_TEXMF_DIRS
 AC_STEPMAKE_YODL
-AC_CHECK_LIB(guile, scm_shell)
+
 
 dnl should check out -print
 dnl huh?
 dnl AC_CHECK_SEARCH_RESULT($FIND, find, Please use --enable-tex-dir)
 
+case $guile_b in 
+    yes)
+    AC_CHECK_LIB(guile, scm_shell)
+
+    ;;
+esac
+    
 AC_FUNC_MEMCMP
 AC_FUNC_VPRINTF
 AC_CHECK_FUNCS(memmem snprintf vsnprintf gettext)
index 462671530bafba90a79891dbe1eb5f8c08563e4b..d28a53c62f9492fbed5052b790879b471cfd9577 100644 (file)
@@ -11,6 +11,8 @@ longa = \duration { -2 0 }
 Gourlay = 1.0
 Wordwrap = 0.0
 
+papersize = "a4"
+
 \include "paper20.ly"
 
 \paper{
@@ -33,7 +35,5 @@ nobreak = { \penalty = -10000; }
 
 \include "property.ly"
 
-\include "scm.ly"
-
 % music = "\melodic\relative c"
 
index e20c03caa467ba3bff5dd3b8f24512246761c64b..dac7cbd31bb93aa99e88f7e6e4da5b2bf50aa8d9 100644 (file)
@@ -4,9 +4,6 @@
 
 paper_eleven = \paper {
        staffheight = 11.0\pt;
-       % a4 paper
-       linewidth = 15.0 \cm;
-       textheight = 15.0 \cm;
 
         % ugh see table11 for sizes
        quartwidth = 3.63\pt;
index 0d5c383d8944424b2cc1c99858afa942e4d961ee..96f5e61266c986d527aa882c14732f6a66d2e9a8 100644 (file)
@@ -4,9 +4,6 @@
 
 paper_thirteen = \paper {
        staffheight = 13.0\pt;
-       % a4 paper
-       linewidth = 15.0 \cm;
-       textheight = 18.0 \cm;
 
        % ugh see table13 for sizes
        quartwidth = 4.29\pt;
@@ -18,6 +15,5 @@ paper_thirteen = \paper {
        
        0=\symboltables { \table_thirteen }
        \include "params.ly";
-       \include "a4.ly";
 }
 
index c7f7352521dd78c1ba5705ab2074af190964fed1..11aa7a8fd218bbd1712960269b9fdec886de000a 100644 (file)
@@ -10,7 +10,6 @@
 
 paper_sixteen = \paper {
        staffheight = 16.0\pt;
-       linewidth = 15.5 \cm;
 
        % ugh, see table16 for sizes
        quartwidth = 5.28\pt;
index c8bf25b35b5fbdb4cf633c9b482c463a2de484e2..a67683b6552e5b56bd1ea7ef743d746c6b9c179d 100644 (file)
@@ -9,8 +9,6 @@
 
 paper_twenty = \paper {
        staffheight = 20.0\pt;
-       % where to get papersize (e.g. a5, letter)
-       papersize = "a4";
 
        % ugh see table20 for sizes
        quartwidth =  6.61\pt;
index fcc19ae2dc878ecc1a1c403654c8992a26247240..f8d662b64cfa469e4ff7ceb173951351f12a9394 100644 (file)
@@ -4,10 +4,9 @@
 
 paper_twentysix = \paper {
        staffheight = 26.0\pt;
-       papersize = "a4";
 
        % ugh see table26 for sizes
-       notewidth = 8.59\pt
+       quartwidth = 8.59\pt;
        wholewidth = 12.87\pt;
 
        arithmetic_basicspace = 2.;
@@ -15,7 +14,7 @@ paper_twentysix = \paper {
        
        0=\symboltables { \table_twentysix }
        \include "params.ly";
-       linewidth = linewidth20;
-       textheight = textheight20;
+       linewidth = \linewidth20;
+       textheight = \textheight20;
 }
 
diff --git a/init/scm.ly b/init/scm.ly
deleted file mode 100644 (file)
index 24883e0..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-\scm "
-(define (add-column p) (display \"adding column (in guile): \") (display p) (newline))
-(define (dashed-slur o l) (newline) (display \"output type: \") (display o) (newline) (display \"controls: \") (map display l) (newline))
-";
-
-% deze is blond
-% ((lambda (o) (dashed-slur o '((0.0 0.0) (17.2124966172942 -16.8303258151405) (161.324688856776 -15.2124966172942) (178.155014671916 2.0)))) 'ps)
-
index 3f79970b7154d1ad8f369db4c40ec088a7e7cfd8..76b59197d39219634b934a0f5761588a76705558 100644 (file)
@@ -76,14 +76,12 @@ Atom::Atom ()
     But Atom is used as a simple type *everywhere*,
     and we don't have virtual contructors.
    */
-  lambda_ = 0;
   str_ = global_lookup_l->unknown_str ();
 }
 
 Atom::Atom (String s, Box b)
   :  dim_ (b)
 {
-  lambda_ = 0;
   str_ = s;
 }
 
index 3ed45b2a46eb6390d17a60a4e1bf0f847f0b708d..8812f6245c4e728e5563f31faffcbc0612a9d0ca 100644 (file)
@@ -9,7 +9,7 @@
 
 #include "auto-plet-engraver.hh"
 #include "command-request.hh"
-#include "graphical-lisp-element.hh"
+#include "slur.hh"
 #include "note-column.hh"
 
 bool
@@ -27,11 +27,12 @@ Tuplet_engraver::do_try_request (Request *r)
   return true;
 }
 
+
 void
 Tuplet_engraver::do_process_requests ()
 {
   int stopcount =0;
-  Link_array<Graphical_lisp_element> start_arr;
+  Link_array<Slur> start_arr;
   
   for (int i=0; i < bracket_req_arr_.size (); i++)
     {
@@ -39,17 +40,16 @@ Tuplet_engraver::do_process_requests ()
        stopcount++;
       if (bracket_req_arr_[i]->spantype == Span_req::START)
        {
-         Graphical_lisp_element* glep = new Graphical_lisp_element ("tuplet");
-         start_arr.push  (glep);
-// lots of stuff does info->elem_l_->is_type ()
-//       announce_element (Score_element_info (glep, bracket_req_arr_[i]));
+         Slur *sp =new Slur;
+         start_arr.push  (sp);
+         announce_element (Score_element_info (sp, bracket_req_arr_[i]));
        }
     }
 
   for (; stopcount--; )
     {
-      Graphical_lisp_element* glep = started_span_p_arr_.pop ();
-      stop_now_span_p_arr_.push (glep);
+      Slur *sp = started_span_p_arr_.pop ();
+      stop_now_span_p_arr_.push (sp);
     }
 
   for (int i=0; i < start_arr.size (); i++)
@@ -63,8 +63,7 @@ Tuplet_engraver::acknowledge_element (Score_element_info i)
     {
       Note_column *nc = (Note_column*)i.elem_l_->access_Item ();
       for (int j =0; j  <started_span_p_arr_.size (); j++)
-//     started_span_p_arr_[j]->add_column (nc);
-       started_span_p_arr_[j]->call ("add-column", (void*)nc);
+       started_span_p_arr_[j]->add_column (nc);
     }
 }
 
index 3ecd606e926d24265882f807ab0be7976b215273..ecad05587023cc8ee2a188e9357a5bb31168b3d7 100644 (file)
@@ -26,18 +26,13 @@ Engraver::announce_element (Score_element_info i)
   daddy_grav_l()->announce_element (i);
 }
 
+
 void
 Engraver::typeset_element (Score_element*p)
 {
   daddy_grav_l()->typeset_element (p);
 }
 
-void
-Engraver::typeset_element (Graphical_lisp_element*p)
-{
-  daddy_grav_l ()->typeset_element (p);
-}
-
 Paper_def*
 Engraver::paper() const
 {
diff --git a/lily/graphical-lisp-element.cc b/lily/graphical-lisp-element.cc
deleted file mode 100644 (file)
index 8b9fdef..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
-  graphical-lisp-element.cc -- implement Graphical_lisp_element
-
-  source file of the GNU LilyPond music typesetter
-
-  (c) 1998 Jan Nieuwenhuizen <janneke@gnu.org>
-*/
-
-#include "graphical-lisp-element.hh"
-#include "string.hh"
-#include "debug.hh"
-
-#undef IMPLEMENT_STATIC_NAME
-#define IMPLEMENT_STATIC_NAME(c)\
-char const* c::static_name ()\
-{ return type_str_.ch_C (); }\
-size_t c::static_class_size () { return sizeof (c); }
-
-IMPLEMENT_IS_TYPE_B (Graphical_lisp_element);
-
-Graphical_lisp_element::Graphical_lisp_element (String str)
-{
-  type_str_ = str;
-}
-
-void*
-Graphical_lisp_element::access (String str)
-{
-  SCM scm;
-//  scm = gh_cons (gh_str02scm (str.ch_C ()));
-//  scm = gh_cons (gh_symbol2scm (str.ch_C ()));
-  return 0;
-}
-
-void
-Graphical_lisp_element::call (String str, void* p)
-{
-//  gh_apply (str.ch_C (), SCM_EOL);
-//  gh_apply (str.ch_C (), SCM_EOL);
-
-// mm, common lisp only?
-//  String ptr = to_str (" \\%x", p);
-  String ptr = to_str (" '%x", p);
-  str = "(" + str + ptr + ")";
-  gh_eval_str (str.ch_l ());
-//  gh_eval_str ("(add-column 0)");
-}
index fcd434f0ab4f3e0226c2a375edf394f80001f17f..0d88e7ce315cbba217a753c552fdc4c15f32e6f1 100644 (file)
@@ -9,18 +9,17 @@
 #ifndef ATOM_HH
 #define ATOM_HH
 
-#include "lily-guile.hh"
 #include "string.hh"
 #include "box.hh"
 #include "lily-proto.hh"
 
+
 /// a symbol which can be translated, and freely copied
 class Atom {
   Offset off_;
 public:
   String str_;
   String font_;
-  SCM lambda_;
   Box dim_;
 
   Offset offset () const;
index 14b1fefcc44c731637cc15015dae3ace065bf973..a8cafb9c7c414d1c558836a6fb28daf4a688608f 100644 (file)
@@ -23,8 +23,8 @@ public:
 protected:
   Link_array<Bracket_req> bracket_req_arr_;
 
-  Link_array<Graphical_lisp_element> started_span_p_arr_;
-  Link_array<Graphical_lisp_element> stop_now_span_p_arr_;
+  Link_array<Slur> started_span_p_arr_;
+  Link_array<Slur> stop_now_span_p_arr_;
 
   virtual void do_removal_processing ();
   virtual void acknowledge_element (Score_element_info);
index a76a3518615ff765dbb8e1c73e9de2f3fc1c5caf..a0afdc8f5e996765fa9bc54dce9d2fee455e8ea3 100644 (file)
@@ -16,7 +16,7 @@
 #include "musical-pitch.hh"
 
 /** Request which are  assumed to be "happening" before the
-  musical requests. */
+  musical requests.  Not coupled to a note or rest. */
 class Command_req  : public virtual Request  {
 public:
   REQUESTMETHODS(Command_req);
index 04fc21baa5f1e4314fb566380943e0a61b1fdf9e..a8086af1f556cc3d09b79d9b6bff25830c0e4dd4 100644 (file)
@@ -36,7 +36,6 @@ protected:
     Invoke walker method to typeset element. Default: pass on to daddy.
     */
   virtual void typeset_element (Score_element*elem_p);
-  virtual void typeset_element (Graphical_lisp_element*);
     
   /**
     take note of item/spanner
diff --git a/lily/include/graphical-lisp-element.hh b/lily/include/graphical-lisp-element.hh
deleted file mode 100644 (file)
index 036b727..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
-  graphical-lisp-element.hh -- declare Graphical_lisp_element
-
-  source file of the GNU LilyPond music typesetter
-
-  (c) 1998 Jan Nieuwenhuizen <janneke@gnu.org>
-*/
-
-
-#ifndef GRAPHICAL_LISP_ELEMENT_HH
-#define GRAPHICAL_LISP_ELEMENT_HH
-
-#include "lily-guile.hh"
-#include "lily-proto.hh"
-#include "string.hh"
-
-#define virtual
-#define static
-#include "virtual-methods.hh"
-
-class Graphical_lisp_element 
-{
-public:
-  DECLARE_MY_RUNTIME_TYPEINFO;
-
-  Graphical_lisp_element (String);
-
-  void* access (String);
-  void call (String, void*);
-
-private:
-  String type_str_;
-};
-
-#undef virtual
-#undef static
-
-#endif // GRAPHICAL_LISP_ELEMENT_HH
-
index 2e626b288037b4fd483f3a17c96f2f4602849bb8..1ea707038e2bb00c1e42cabce794287d8e1992c2 100644 (file)
@@ -9,8 +9,13 @@
 #ifndef LILY_GUILE_HH
 #define LILY_GUILE_HH
 
+#include "config.hh"
+
+#ifdef HAVE_LIBGUILE
 extern "C" { 
 #include <guile/gh.h> 
 }
-
+#else
+typedef long SCM;
+#endif
 #endif // LILY_GUILE_HH
index 184eec14c0f3f928978279667f83b918551c19bd..b7af83ec1620ba502e2518e234f8b0dfa390ec75 100644 (file)
@@ -77,7 +77,6 @@ struct Element_group_item;
 struct Engraver_group_engraver;
 struct General_script_def;
 struct Graphical_element;
-struct Graphical_lisp_element;
 struct Graphical_axis_group;
 struct Mark_req;
 struct Music_output;
index 4d2325ae82d01a6f069acea2ee7989cb667a476d..7efe60bb7e5c03fa4d4d06e7a2c32455c0a887ba 100644 (file)
@@ -40,8 +40,7 @@ public:
   Atom beam (Real,Real, Real) const;
   virtual String character_str (int i) const;
   Atom clef (String) const;
-//  virtual Atom dashed_slur (Array<Offset> controls, Real thick, Real dash) const = 0;
-  virtual Atom dashed_slur (Array<Offset> controls, Real thick, Real dash) const;
+  virtual Atom dashed_slur (Array<Offset> controls, Real thick, Real dash) const = 0;
   Atom dots () const;
   Atom dynamic (String) const;
   Atom fill (Box b) const;
index dc40138d137a46b7d0ddcf152d3a8b9f8ce57348..526504f14efadfb6a439207b57607df887646028 100644 (file)
@@ -116,7 +116,7 @@ struct Midi_note : public Midi_item {
   int pitch_i () const;
   virtual String str () const;
 
-  int const c0_pitch_i_c_ = 60;
+  static int const c0_pitch_i_c_ = 60;
   Byte dynamic_byte_;
 };
 
index b05bc0db19f4e2538de02f691ef5f33c80321bd6..efb2f712ee2681f8a4d38bfaf0d5525aecb93cb8 100644 (file)
@@ -17,8 +17,8 @@
 #include "lily-proto.hh"
 #include "string.hh"
 
-/** 
-  Anything which has length or pitch.
+/** Music is anything that has duration and supports both time compression and
+  transposition.
   
   In Lily, everything that can be thought to have a length and a pitch
   (which has a duration which can be transposed) is considered "music",
 class Music:public Input {
 public:
     
-  /** The kind of iterator needed to walk this music.  This doesn't
+  /** The kind of translation needed for this music.  This doesn't
     make sense for simple (ie non-list) music, but it does no harm
     here. Yes, it did harm Music_sequence: you can forget to copy it.
       
     */
   String translator_type_str_;
 
-  /// what name (or look for this name)
+  /// what identification for the translation unit
   String translator_id_str_;    
 
   virtual Musical_pitch to_relative_octave (Musical_pitch);
-  virtual Moment  duration () const;
+
+  /// The duration of this piece of music
+  virtual Moment duration () const;
 
   virtual ~Music(){}
   void print() const;
-  virtual void transpose (Musical_pitch );
-  virtual void compress (Moment);
+  /// Transpose, with the interval central C to #p#
+  virtual void transpose (Musical_pitch p);
+
+  /// Scale the music in time by #factor#.
+  virtual void compress (Moment factor);
   VIRTUAL_COPY_CONS(Music,Music);
   DECLARE_MY_RUNTIME_TYPEINFO;
   Music();
index 70e6467542857be8aff349dfcb91e1a846a92c5c..2f3c3f599c57f2f6ca630fc0df26fb60b30adb7c 100644 (file)
@@ -16,7 +16,7 @@
 #include "musical-pitch.hh"
 
 /**
-  A request which is coupled to a #Request_chord#
+  A request which is coupled to a note (that has duration).
   Base class only
  */
 class Musical_req  : public virtual Request  {
index 9b8ef622e5ef43bd63930d2cb8ec20a1938a3a3c..2eb9ed025a934d6b8a8e58ffcac6ceaf3a6fad84 100644 (file)
@@ -22,7 +22,7 @@ public:
   virtual Atom afm_find (String s) const;
   virtual Atom* atom_p (String, int, Box) const;
   virtual String character_str (int i) const;
-//  virtual Atom dashed_slur (Array<Offset> controls, Real thick, Real dash) const;
+  virtual Atom dashed_slur (Array<Offset> controls, Real thick, Real dash) const;
   virtual Atom hairpin (Real width, bool decresc, bool continued) const;
   virtual Lookup* lookup_p (Lookup const&) const;
   virtual Lookup* lookup_p (Symtables const&) const;
index c45d5905e13b2f4b6f6db4a3eb4992eb300a6512..7d976a648e5dfe7b015bdb35571ed4ff7481cf6e 100644 (file)
 #define DEFAULTACCESSOR(T)  virtual T *access_ ## T () { return 0; }
 
 
-/**
-   An atom of musical information .
- Hungarian postfix: req
- @see lilygut manpage
+/** An atom of musical information.  This is an abstract class for any
+  piece of music that does not contain other Music.
+  
+  Hungarian postfix: req
+
  */
 class Request : public Music {
 
index 34a5a497168ef1b3cdf5f9dc1fce859cdc9c0fd1..95d69a0d484a2929bdbb6433e15a95a83ad44b92 100644 (file)
   */
 struct Score_element_info {
     Score_element * elem_l_;
-    Graphical_lisp_element * lisp_l_;
     Request*req_l_;
     Array<Engraver*> origin_grav_l_arr_;
 
     Score_element_info (Score_element*, Request*);
-    Score_element_info (Graphical_lisp_element*, Request*);
     Score_element_info();
 };
 
index 2f7883bb418c58102f28504e86331062233c3505..5d59fc06f7d1c399984f88b8c7a105d7a7469f6e 100644 (file)
@@ -53,7 +53,6 @@ protected:
   virtual void announce_element (Score_element_info);
   virtual void do_announces();
   virtual void typeset_element (Score_element*elem_p);
-  virtual void typeset_element (Graphical_lisp_element*elem_p);
   virtual void do_pre_move_processing();
   virtual void do_add_processing ();
 };
index 4b9d598e08d12d9cc872b57c762d6baab651f38e..cdb9839fcc5f3c685b0b4648be8a2e42e0892816 100644 (file)
@@ -22,7 +22,7 @@ public:
 
   virtual Atom afm_find (String s) const;
   virtual String character_str (int i) const;
-//  virtual Atom dashed_slur (Array<Offset> controls, Real thick, Real dash) const;
+  virtual Atom dashed_slur (Array<Offset> controls, Real thick, Real dash) const;
   virtual Atom* atom_p (String, int, Box) const;
   Atom embed (Atom a) const;
   virtual Atom hairpin (Real width, bool decresc, bool continued) const;
index 8de7b806c53b2be89a4ffb1c5c0b94f4d051b102..f9d626524d6cdadee4a26c1cdd88f96069f4172e 100644 (file)
@@ -10,6 +10,9 @@
 #ifndef TRANSLATOR_CHANGE_HH
 #define TRANSLATOR_CHANGE_HH
 
+/** Change the nesting of the current translation.  Uses the type_str_
+  and id_str_ differently.
+  */
 class Translator_change : public Music
 {
   
index faed69f1aab93226e29ea479fd17fce81f024a69..8ba88483f5f080c3bf4fdf17d0a2274863318bf8 100644 (file)
@@ -150,81 +150,6 @@ Lookup::clef (String st) const
   return afm_find (String ("clefs") + String ("-") + st);
 }
 
-Atom
-Lookup::dashed_slur (Array<Offset> controls, Real thick, Real dash) const
-{
-  assert (controls.size () == 8);
-
-  Real dx = controls[3].x () - controls[0].x ();
-  Real dy = controls[3].y () - controls[0].y ();
-
-  Atom a;
-  a.font_ = font_;
-  a.dim_[X_AXIS] = Interval (0, dx);
-  a.dim_[Y_AXIS] = Interval (0 <? dy,  0 >? dy);
-
-#if 0
-
-  for (int i = 1; i < 4; i++)
-    ps += String_convert::double_str (controls[i].x ()) + " "
-      + String_convert::double_str (controls[i].y ()) + " ";
-
-  ps += String_convert::double_str (controls[0].x ()) + " "
-    + String_convert::double_str (controls[0].y ()) + " ";
-
-  ps += String_convert::double_str (thick) + " ";
-  Real on = dash > 1? thick * dash - thick : 0;
-  Real off = 2 * thick;
-  ps += "[" + String_convert::double_str (on) + " ";
-  ps += String_convert::double_str (off) + "] ";
-  ps += String_convert::int_str (0) + " ";
-  ps += "draw_dashed_slur ";
-
-  Atom a;
-  a.str_ = ps;
-  a.font_ = font_;
-  a.dim_[X_AXIS] = Interval (0, dx);
-  a.dim_[Y_AXIS] = Interval (0 <? dy,  0 >? dy);
-
-  a.str_ = ps;
-
-#else
-
-  SCM list_scm = gh_eval_str ("list");
-  // ((0.1 0.2) (1.1 1.2) (2.1 2.2) (3.1 3.2))
-  SCM controls_scm = 
-    gh_cons (gh_call2 (list_scm, gh_double2scm (controls[0].x ()), gh_double2scm (controls[0].y ())),
-    gh_cons (gh_call2 (list_scm, gh_double2scm (controls[1].x ()), gh_double2scm (controls[1].y ())),
-    gh_cons (gh_call2 (list_scm, gh_double2scm (controls[2].x ()), gh_double2scm (controls[2].y ())),
-    gh_cons (gh_call2 (list_scm, gh_double2scm (controls[3].x ()), gh_double2scm (controls[3].y ())),
-    SCM_EOL))));
-
-  gh_newline ();
-  gh_display (controls_scm);
-  gh_newline ();
-
-  SCM append_scm = gh_eval_str ("append");
-
-  // (dashed-slur o ((0.1 0.2) (1.1 1.2) (2.1 2.2) (3.1 3.2)))
-  SCM dashed_slur_scm = 
-    gh_call1 (gh_eval_str ("list"),
-    gh_call2 (append_scm, 
-             gh_eval_str ("cons '(dashed-slur o)"), 
-             gh_call1 (gh_eval_str ("list"), controls_scm)));
-  gh_display (dashed_slur_scm); 
-  gh_newline ();
-
-  // (lambda (o) dashed-slur o ((0.1 0.2) (1.1 1.2) (2.1 2.2) (3.1 3.2)))
-  a.lambda_ =
-    gh_call2 (append_scm, gh_eval_str ("'(lambda (o))"), dashed_slur_scm);
-  gh_display (a.lambda_);
-  gh_newline ();
-
-#endif
-
-  return a;
-}
-
 Atom
 Lookup::dots () const
 {
index 767e106f235ae296e07c54947743dc4c238addcb..87af66cfe98a04db6f1ca30bc3cdc02ce891e352 100644 (file)
@@ -10,8 +10,6 @@
 #include <iostream.h>
 #include <assert.h>
 #include <locale.h>
-#include "lily-guile.hh"
-
 #include "proto.hh"
 #include "dimensions.hh"
 #include "plist.hh"
@@ -25,7 +23,7 @@
 #include "debug.hh"
 #include "ps-lookup.hh"
 #include "tex-lookup.hh"
-
+#include "lily-guile.hh"
 
 #if HAVE_GETTEXT
 #include <libintl.h>
@@ -188,19 +186,19 @@ identify ()
   *mlog << get_version_str () << endl;
 }
 
-#if 0
-void
+void 
 guile_init ()
 {
+#ifdef   HAVE_LIBGUILE
    gh_eval_str ("(define (add-column p) (display \"adding column (in guile): \") (display p) (newline))");
-}
 #endif
+}
 
-void
+int
 main_prog (int argc, char **argv)
 {
-  //guile_init ();
-
+  guile_init ();
+  
   // facilitate binary distributions
   char const *env_lily = getenv ("LILYPONDPREFIX");
   String prefix_directory;
@@ -239,9 +237,8 @@ main_prog (int argc, char **argv)
       global_path.add (prefix_directory + "/share/lilypond");
     }
 
-  global_path.add (String (DIR_DATADIR) + "/init/");
-
-  global_path.push (DIR_DATADIR);
+  global_path.add (String (DIR_DATADIR) + "/ly/");
+  global_path.add (String (DIR_DATADIR) + "/afm/");  
 
   Getopt_long oparser (argc, argv,theopts);
   String init_str;
@@ -340,13 +337,6 @@ main_prog (int argc, char **argv)
       do_one_file (i, default_outname_base_global);
     }
 
-//  return exit_status_i_;
-}
-
-int
-main (int argc, char **argv)
-{
-  gh_enter (argc, argv, (void(*)())main_prog);
   return exit_status_i_;
 }
 
@@ -387,3 +377,19 @@ distill_inname_str (String name_str, String& ext_r)
   return str;
 }
 
+
+#ifdef HAVE_LIBGUILE
+int
+main (int argc, char **argv)
+{
+  gh_enter (argc, argv, (void(*)())main_prog);
+  return exit_status_i_;
+}
+
+#else
+int main (int argc, char **argv)
+{
+  return main_prog (argc, argv);
+}
+
+#endif
index 525140102e0b249acc857720dc0f226cb9217bab..53f36d6a1ef9aa0aff0d1889ba03ee5e6af36f9a 100644 (file)
@@ -153,9 +153,9 @@ char const* const instrument_name_sz_a_[ ] = {
          /* 19 */ "rock organ",
          /* 20 */ "church organ",
          /* 21 */ "reed organ",
-         /* 22 */ "accoridan",
+         /* 22 */ "accordion",
          /* 23 */ "harmonica",
-         /* 24 */ "tango accordian",
+         /* 24 */ "concertina",
 
          /* (25-32 guitar) */
          /* 25 */ "acoustic guitar (nylon)",
@@ -164,7 +164,7 @@ char const* const instrument_name_sz_a_[ ] = {
          /* 28 */ "electric guitar (clean)",
          /* 29 */ "electric guitar (muted)",
          /* 30 */ "overdriven guitar",
-         /* 31 */ "distortion guitar",
+         /* 31 */ "distorted guitar",
          /* 32 */ "guitar harmonics",
 
          /* (33-40 bass) */
index 4c7d05a9a22ca8b6b561a2eb8965319592e72f29..82948a3067447e6fe31c043f95d8257895575015 100644 (file)
@@ -55,7 +55,6 @@ static Keyword_ent the_key_tab[]={
   {"pt", PT_T},
   {"relative", RELATIVE},
   {"remove", REMOVE},
-  {"scm", SCHEME},
   {"score", SCORE},
   {"script", SCRIPT},
   {"shape", SHAPE},
index 1085a3c071d3b1e12ce47367f599d9f697278d3b..8f700129e5b30f5e36f2c04d016227ad74fbc59b 100644 (file)
@@ -38,9 +38,15 @@ Interval_t<int>
 Note_column::head_positions_interval() const
 {
   ((Note_column*)this)->sort();
-  return Interval_t<int> (head_l_arr_[0]->position_i_, 
-                         head_l_arr_.top()->position_i_);
+ Interval_t<int>  iv;
+
+ iv.set_empty ();
 
+ if (head_l_arr_.size ())
+   iv = Interval_t<int>(head_l_arr_[0]->position_i_, 
+                         head_l_arr_.top()->position_i_);
+  
+  return iv;
 }
 
 Interval 
index 55655080a320dfe6ab0d95f6c9698751ea96d806..428fff3c373f0611941608fd4249e2dd61eb881e 100644 (file)
@@ -10,7 +10,6 @@
 */
 
 #include <iostream.h>
-#include "lily-guile.hh"
 #include "notename-table.hh"
 #include "scalar.hh"
 #include "translation-property.hh"
@@ -196,7 +195,6 @@ yylex (YYSTYPE *s,  void * v_l)
 %token PT_T
 %token RELATIVE
 %token REMOVE
-%token SCHEME /* token vs typedef;  can't be named SCM */
 %token SCORE
 %token SCRIPT
 %token SHAPE
@@ -323,16 +321,8 @@ toplevel_expression:
                        Midi_def_identifier ($1, MIDI_IDENTIFIER);
                THIS->lexer_p_->set_identifier ("$defaultmidi", id)
        }
-       | embedded_scm { 
-       }
        ;
 
-embedded_scm:
-       SCHEME STRING ';' {
-               gh_eval_str ($2->ch_C ());
-               delete $2;
-       };
-
 check_version:
        VERSION STRING ';'              {
                Mudela_version ver (*$2);
index 3d4333c098dc6bb2da1ed2cd46eb52495a518a26..8d160b1f88a50e98a77d873d832413bc73d9b61b 100644 (file)
@@ -62,7 +62,6 @@ Ps_lookup::character_str (int i) const
   return to_str (i, "(\\%03o)");
 }
 
-#if 0
 Atom
 Ps_lookup::dashed_slur (Array<Offset> controls, Real thick, Real dash) const
 {
@@ -96,7 +95,6 @@ Ps_lookup::dashed_slur (Array<Offset> controls, Real thick, Real dash) const
   a.font_ = font_;
   return a;
 }
-#endif
 
 Atom
 Ps_lookup::hairpin (Real width, bool decresc, bool continued) const
index 06597cda87e7adcdf7304b3251834d7ef988e885..d0ad70ef39045c954d357af0b5a73dc3328238b2 100644 (file)
@@ -14,8 +14,6 @@
 #include "array.hh"
 #include "string-convert.hh"
 #include "debug.hh"
-#include "lookup.hh"
-#include "main.hh"
 
 Ps_outputter::Ps_outputter (Paper_stream *s)
   :Paper_outputter (s)
@@ -64,39 +62,7 @@ Ps_outputter::output_molecule (Molecule const*m, Offset o, char const *nm)
   if (check_debug)
     *outstream_l_ << String ("\n%start: ") << nm << "\n";
 
-#if 0
   Paper_outputter::output_molecule (m, o, nm, "% % {%}placebox \n");
-#else
-  String s = "% % {%}placebox \n";
-
-  if (check_debug)
-    *outstream_l_ << String ("\n%start: ") << nm << "\n";
-
-  for (PCursor <Atom*> i (m->atoms_); i.ok (); i++)
-    {
-      Offset a_off = i->offset ();
-      a_off += o;
-
-      switch_to_font (i->font_);
-
-      Array<String> a;
-      String r;
-  
-      a.push (global_lookup_l->print_dimen (a_off.y()));
-      a.push (global_lookup_l->print_dimen (a_off.x()));
-      if (i->lambda_)
-        {
-         gh_call1 (i->lambda_, gh_eval_str ("'ps"));
-         // char* c = gh_scm2newstr (gh_call1 (i->lambda_, gh_eval_str ("'ps")), NULL);
-         // a.push (String (c));
-         // free (c);
-       }
-      else
-       a.push (i->str_);
-      r += global_lookup_l->substitute_args (s, a);
-      *outstream_l_ << r;
-    }
-#endif
 }
 
 void
index 8288c16cc1ee1bde71f30e32c6f93ec1fb8fe93b..a0c6f68e8552a8047866cc42351ec8da649d5f2b 100644 (file)
 Score_element_info::Score_element_info (Score_element*s_l, Request*r_l)
 {
   elem_l_ = s_l;
-  lisp_l_ = 0;
-  req_l_ = r_l;
-}
-
-Score_element_info::Score_element_info (Graphical_lisp_element*g_l, Request*r_l)
-{
-  elem_l_ = 0;
-  lisp_l_ = g_l;
   req_l_ = r_l;
 }
 
 Score_element_info::Score_element_info()
 {
   elem_l_ = 0;
-  lisp_l_ = 0;
   req_l_ = 0;
 }
 
index 1c43b8c59e9b0b39810090572a2ff09be0793026..1b30731fd710d69d6e5f80516fb1e6adf5433d2d 100644 (file)
@@ -16,7 +16,6 @@
 #include "score-column.hh"
 #include "command-request.hh"
 #include "paper-def.hh"
-#include "graphical-lisp-element.hh"
 
 
 Score_engraver::Score_engraver()
@@ -118,14 +117,7 @@ Score_engraver::do_announces()
 void
 Score_engraver::typeset_element (Score_element *elem_p)
 {
-  elem_p_arr_.push (elem_p);
-}
-
-void
-Score_engraver::typeset_element (Graphical_lisp_element* elem_p)
-{
-  *mlog << "not typesetting: " << elem_p->static_name () << "\n";
-  delete elem_p;
+  elem_p_arr_.push(elem_p);
 }
 
 void
@@ -139,7 +131,9 @@ Score_engraver::typeset_all()
          Spanner *s = elem_p->access_Spanner ();
          pscore_p_->typeset_unbroken_spanner (s);
 
-           /*
+
+
+                 /*
            do something sensible if spanner not 
            spanned on 2 items.
           */
@@ -234,6 +228,7 @@ Score_engraver::get_staff_info() const
 }
 
 
+
 Music_output*
 Score_engraver::get_output_p ()
 {
index 5ccf0386f6ea9b5a70fc84307930f69a4dcb8145..768d8c42b1ab936de68a0dd5294e6ab6733afc27 100644 (file)
@@ -98,12 +98,12 @@ Slur_engraver::do_pre_move_processing()
 {
   Scalar dir (get_property ("slurydirection"));
   Scalar dir2 (get_property ("ydirection"));
-  if (!dir.length_i () && dir2.length_i ())
+  if (dir.length_i ())
     {
-        dir_ = (Direction) int(dir2);
+      dir_ = (Direction) sign (int(dir));
     }
-  else if (dir.length_i ())
-    dir_ = (Direction) int (dir);
+  else if (dir2.length_i ())
+    dir_ = (Direction) sign (int (dir2));
   
   for (int i = 0; i < end_slur_l_arr_.size(); i++)
     {
index 14edd7b3e2146d21354fd5955bbfe51fc554a32c..28bd21fa6e3ce40faf11e5907e36d674a1b12061 100644 (file)
@@ -38,6 +38,8 @@ Slur::Slur ()
 void
 Slur::add_column (Note_column*n)
 {
+  if (!n->head_l_arr_.size ())
+    warning (_ ("Putting slur over rest."));
   encompass_arr_.push (n);
   add_dependency (n);
 }
@@ -144,7 +146,8 @@ Slur::do_post_processing ()
       /*
         normal slur
        */
-      else if (extrema[d]->stem_l_ && !extrema[d]->stem_l_->transparent_b_) 
+      else if (extrema[d]->stem_l_ && !extrema[d]->stem_l_->transparent_b_ 
+              && extrema[d]->head_l_arr_.size ()) 
         {
          Real notewidth_f = extrema[d]->width ().length ();
          dy_f_drul_[d] = (int)rint (extrema[d]->stem_l_->height ()[dir_]);
@@ -157,17 +160,17 @@ Slur::do_post_processing ()
                dx_f_drul_[d] += 0.25 * (dir_ * d) * d * notewidth_f;
            }
        }
-      else 
-        {
-         Real notewidth_f = extrema[d]->width ().length ();
-         dy_f_drul_[d] = (int)rint (extrema[d]->head_positions_interval ()
-           [dir_]) * internote_f;
-         dx_f_drul_[d] += 0.5 * notewidth_f - d * gap_f;
+       else 
+         {
+           Real notewidth_f = extrema[d]->width ().length ();
+           dy_f_drul_[d] = (int)rint (extrema[d]->head_positions_interval ()
+                                      [dir_]) * internote_f;
+           dx_f_drul_[d] += 0.5 * notewidth_f - d * gap_f;
        }
-      dy_f_drul_[d] += dir_ * interline_f;
-      if (extrema[d]->stem_l_ && (dir_ == extrema[d]->stem_l_->dir_))
-       dy_f_drul_[d] -= dir_ * internote_f;
-    }
+       dy_f_drul_[d] += dir_ * interline_f;
+       if (extrema[d]->stem_l_ && (dir_ == extrema[d]->stem_l_->dir_))
+         dy_f_drul_[d] -= dir_ * internote_f;
+      }
   while (flip(&d) != LEFT);
 
   // now that both are set, do dependent
index 7ca6b43ac730ffe01a2173de223b1760d792f7ac..4f10886e117fb6b6564d5ea1618df7e1a0cc76fa 100644 (file)
@@ -63,13 +63,11 @@ Tex_lookup::character_str (int i) const
   return Lookup::character_str (i);
 }
 
-#if 0
 Atom
 Tex_lookup::dashed_slur (Array<Offset> controls, Real thick, Real dash) const
 {
   return embed (Ps_lookup::dashed_slur (controls, thick, dash));
 }
-#endif
 
 Atom
 Tex_lookup::embed (Atom a) const
@@ -110,7 +108,7 @@ header_to_tex_string (Scope *head)
   String s;
   String lily_id_str = "Lily was here, " +
     String (lily_version_number_sz ());
-  s+= "\\def\\LilyIdString{"  + lily_id_str + "}";
+  s+= "\\def\\LilyIdString{"  + lily_id_str + "}\n";
   
   for (Dictionary_iter<Identifier*> i(*head); i.ok (); i++)
     {
index 8f9aa3977717437dc89fdfcf97acdf8c71786af7..54e604d572542904ab742f8a38f288b6ec819f47 100644 (file)
@@ -103,7 +103,16 @@ Ties_engraver::do_pre_move_processing()
 
   for (int i =0; i < end_tie_p_arr_.size (); i++)
     {
-      typeset_element (end_tie_p_arr_[i]);
+      Scalar tie_dir (get_property ("tieYDirection"));
+      Scalar y_dir (get_property ("ydirection"));      
+      Direction dir;
+       if (tie_dir.length_i ())
+         dir = (Direction) sign (int(tie_dir));
+       else if (y_dir.length_i ())
+         dir = (Direction) sign (int (y_dir));
+  
+       end_tie_p_arr_[i]->dir_ = dir;
+       typeset_element (end_tie_p_arr_[i]);
     }
 
   end_tie_p_arr_ = tie_p_arr_;
index abf88bfd169f1b609f228571b9ddc1329531614f..010ed0a6f9f41dede4e7456fd1dd31c32c040e0e 100644 (file)
 1.0.14
 1.0.14.hwn1
 1.0.15
-1.0.15.jcn1
-1.0.15.jcn2
-1.0.15.jcn3
+1.0.15.uu1
+1.0.16
index 188f492941d87ff060a9eb76f19c50fd1b51ee7d..b8ac5e2f64abafa95e9ec6ce3cf448c3edbbe80f 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Titel: LilyPond
-Versie: 1.0.15
-Inschrijf datum: 12OCT98
+Versie: 1.0.16
+Inschrijf datum: 14OCT98
 Beschrijving: @FLAPTEKST@
 Trefwoorden: muziek typezetten midi notatie
 Auteur: hanwen@stack.nl (Han-Wen Nienhuys)
        janneke@gnu.org (Jan Nieuwenhuizen)
 Onderhouden door: hanwen@cs.ruu.nl (Han-Wen Nienhuys)
 Voornaamste plek: sunsite.unc.edu /pub/Linux/apps
-       770k lilypond-1.0.15.tar.gz 
+       770k lilypond-1.0.16.tar.gz 
 Oorspronkelijke plek: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       770k lilypond-1.0.15.tar.gz 
+       770k lilypond-1.0.16.tar.gz 
 Copi-eer voorwaarden: GPL
 End
index 35e54ee5dc55de4d14e86e919b2a7e2341df8396..a3e081c918063c4d2a28c81ed018327c9a045eda 100644 (file)
@@ -1,7 +1,7 @@
 Begin3
 Title: LilyPond
-Version: 1.0.15
-Entered-date: 12OCT98
+Version: 1.0.16
+Entered-date: 14OCT98
 Description: 
 LilyPond is the GNU Project music typesetter.  This program can print
 beautiful sheet music from a music definition file.  It can also play
@@ -14,8 +14,8 @@ Author: hanwen@cs.ruu.nl (Han-Wen Nienhuys)
        janneke@gnu.org (Jan Nieuwenhuizen)
 Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
 Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
-       770k lilypond-1.0.15.tar.gz 
+       770k lilypond-1.0.16.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       770k lilypond-1.0.15.tar.gz 
+       770k lilypond-1.0.16.tar.gz 
 Copying-policy: GPL
 End
index bf545ca81f42cf824173898fb1e0921180f6ca18..47350734603e0824786f6aebfc7d30c5fccca4c9 100644 (file)
@@ -1,9 +1,9 @@
 Name: lilypond
-Version: 1.0.15
+Version: 1.0.16
 Release: 1
 Copyright: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.0.15.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.0.16.tar.gz
 Summary: A program for printing sheet music.
 URL: http://www.cs.uu.nl/~hanwen/lilypond
 Packager: Han-Wen Nienhuys <hanwen@cs.uu.nl>
index 99f7a0ad84cc1d9dba81e20e765a79e5fef894fb..d41d58a40539ea7f17bf6cd14fcb6bfb4afd5a30 100644 (file)
@@ -9,7 +9,8 @@ depth = .
 # descent order into subdirectories:
 #
 SUBDIRS = scripts buildscripts  flower lib lily mf mi2mu po debian \
-       Documentation init input tex make mutopia test intl stepmake
+       Documentation init input tex make mutopia test intl stepmake\
+       ps
 #
 
 SCRIPTS = configure aclocal.m4
index 97dacd591df9479793eb69967ab0928482ba8690..e0d35b837dd1d35ff8fad219f133365c2ab7faaf 100644 (file)
@@ -9,7 +9,7 @@ But merging melodic and scripts doen't work too well yet (see viola_scripts).
 
 n = { \slurnormal }
 d = { \slurdotted }
-comma = "\\sethuge\\ \\ ,";
+comma = "\\sethuge\\ \\ ,"
 
 allemande_a = \notes \relative c {
        \voiceone a'16 | 
index 8434573408fc0fcf12ca85f7e4fc553388ec4bd4..d5702db6658208e39299b11656c593b98704b01a 100644 (file)
@@ -2,6 +2,6 @@
 instrument="Cello";
 }
 
-instrument="cello";
+instrument="cello"
 \include "solo-cello-suite-ii.ly"
 
index b6db279eecc2c7ac5bcab638764c5f1a7373a8fb..2e65093260008ef22063a368e390b3e3e3326827 100644 (file)
@@ -2,6 +2,6 @@
 instrument="Alto";
 }
 
-instrument="viola";
+instrument="viola"
 \include "solo-cello-suite-ii.ly"
 
index da308e05bce01cfc46f339d004ab77455f6f94c4..1896249d91a4de75f02940bc9725f2bff8b248d5 100644 (file)
@@ -10,16 +10,16 @@ composer =   "Johann Sebastian Bach (1685-1750)";
 
 % \include "prelude-" + \instrument + ".ly";
 
-i = "prelude-" + \instrument + ".ly";
-ii = "allemande-" + \instrument + ".ly";
-iii = "courante-" + \instrument + ".ly";
-iv = "sarabande-" + \instrument + ".ly";
-v = "menuetto-" + \instrument + ".ly";
-vi = "gigue-" + \instrument + ".ly";
+i = "prelude-" + \instrument + ".ly"
+ii = "allemande-" + \instrument + ".ly"
+iii = "courante-" + \instrument + ".ly"
+iv = "sarabande-" + \instrument + ".ly"
+v = "menuetto-" + \instrument + ".ly"
+vi = "gigue-" + \instrument + ".ly"
 
-\include \i;
-\include \ii;
-\include \iii;
-\include \iv;
-\include \v;
-\include \vi;
+\include \i
+\include \ii
+\include \iii
+\include \iv
+\include \v
+\include \vi
diff --git a/ps/GNUmakefile b/ps/GNUmakefile
new file mode 100644 (file)
index 0000000..d435325
--- /dev/null
@@ -0,0 +1,15 @@
+# tex/Makefile
+
+depth = ..
+
+
+PS_FILES = $(wildcard *.ps)
+
+EXTRA_DIST_FILES =  $(PS_FILES) 
+
+INSTALLATION_DIR=$(datadir)/ps/
+INSTALLATION_FILES=$(PS_FILES)
+
+include $(depth)/make/stepmake.make
+include $(stepdir)/installfiles.make
+
index 8e5937ac3543fae0098e438a6132f547f4f9deb0..13f46dff9081ee499d8b8a313abf555c109ba68a 100755 (executable)
@@ -1029,6 +1029,7 @@ echo "configure:1008: checking language" >&5
 # AC_STEPMAKE_MAN
 # AC_STEPMAKE_MSGFMT
 # AC_STEPMAKE_TEXMF
+# AC_STEPMAKE_TEXMF_DIRS
 
     if test "x$YODL" = "x"; then 
        for ac_prog in striproff
@@ -1036,7 +1037,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1040: checking for $ac_word" >&5
+echo "configure:1041: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_STRIPROFF'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1070,7 +1071,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1074: checking for $ac_word" >&5
+echo "configure:1075: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1104,7 +1105,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1108: checking for $ac_word" >&5
+echo "configure:1109: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL2HTML'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1138,7 +1139,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1142: checking for $ac_word" >&5
+echo "configure:1143: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL2LATEX'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1171,7 +1172,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1175: checking for $ac_word" >&5
+echo "configure:1176: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL2MAN'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1205,7 +1206,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1209: checking for $ac_word" >&5
+echo "configure:1210: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL2MSLESS'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1239,7 +1240,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1243: checking for $ac_word" >&5
+echo "configure:1244: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL2TEXINFO'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1273,7 +1274,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1277: checking for $ac_word" >&5
+echo "configure:1278: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL2TXT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1329,7 +1330,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1333: checking for $ac_word" >&5
+echo "configure:1334: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
index ee26dee12a42a21fa2ae8913acc138d7f849505d..c5f611a824e4555d4e3ae456434b0eb259068ad2 100644 (file)
@@ -1,7 +1,7 @@
 Begin3
 Title: StepMake
 Version: 0.1.56
-Entered-date: 09OCT98
+Entered-date: 14OCT98
 Description: 
 Keywords: music notation typesetting midi fonts engraving
 Author: janneke@gnu.org (Jan Nieuwenhuizen)
index 7b0b9820db4ab43206a9df28389e61ad8e9b6570..fa98675682aaca8208f24a7131517e66d89615fa 100644 (file)
@@ -6,9 +6,9 @@ $(outdir)/%.dvi: $(outdir)/%.tex
 $(outdir)/%.dvi: $(outdir)/%.latex
        (cd $(outdir)&& \
          latex \\nonstopmode \\input $(<F)&&\
-         (bibtex $(basename $(<F))&&\
+         (bibtex $(basename $(<F) || true)&&\
          latex \\nonstopmode \\input $(<F)&&\
-         latex \\nonstopmode \\input $(<F) ) || true)
+         latex \\nonstopmode \\input $(<F) ))
 
 $(outdir)/%.ps: $(outdir)/%.dvi
        dvips -ta4 -o $@ $<