From 6b6a34e929bf1d5a8859fe77e66396c3c15ef37c Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Mon, 3 Apr 2000 10:19:38 +0200 Subject: [PATCH] release: 1.3.42 =========== * Lots of fixes to windows distribution scripts. * Added configuration features --program-prefix, --program suffix. * lily/my-lily-parser.cc (get_chord): Bugfix, don't use deleted pitch. This fixes inversions c/g and bass additions d/+c on chords. 1.3.41. --- CHANGES | 68 ++----- Documentation/faq.texi | 2 +- Documentation/user/invoking.itexi | 6 +- Documentation/user/lilypond.tely | 2 +- Documentation/user/ly2dvi.texi | 33 ++-- Documentation/user/mudela-book.tely | 39 ++-- Documentation/user/properties.itely | 34 ++-- Documentation/user/refman.itely | 20 +- Documentation/user/tutorial.itely | 186 ++++++++++++------ VERSION | 4 +- aclocal.m4 | 2 + buildscripts/make-cygwin-cross.sh | 3 + configure | 176 +++++++++-------- debian/changelog | 17 ++ debian/control | 7 +- debian/copyright | 4 +- debian/out/control | 7 +- debian/postinst | 4 +- debian/rules | 13 +- input/test/staff-margin.ly | 6 +- input/test/standchen-as5.ly | 4 +- input/test/tchaikovsky.ly | 4 +- input/tutorial/galuppi.ly | 4 +- lily/align-interface.cc | 15 ++ lily/axis-group-interface.cc | 32 ++- lily/bar-engraver.cc | 2 +- lily/bar.cc | 82 +------- lily/base-span-bar-engraver.cc | 95 --------- lily/break-align-engraver.cc | 31 ++- lily/break-align-item.cc | 27 ++- lily/breathing-sign-engraver.cc | 3 +- lily/clef-engraver.cc | 2 +- lily/include/align-interface.hh | 1 + lily/include/axis-group-interface.hh | 2 + lily/include/bar.hh | 2 - lily/include/base-span-bar-engraver.hh | 46 ----- lily/include/break-align-item.hh | 13 +- lily/include/span-bar.hh | 1 - lily/include/system-start-delimiter.hh | 31 +++ lily/include/translator-group.hh | 2 +- lily/instrument-name-engraver.cc | 89 +++++++++ lily/key-engraver.cc | 4 +- lily/new-span-bar-engraver.cc | 1 + lily/side-position-interface.cc | 2 + lily/spacing-spanner.cc | 3 +- lily/span-bar-engraver.cc | 94 ++++++++- lily/span-bar.cc | 56 ++---- lily/span-score-bar-engraver.cc | 76 ------- lily/staff-margin-engraver.cc | 33 ++-- lily/system-start-delimiter-engraver.cc | 97 +++++++++ lily/system-start-delimiter.cc | 119 +++++++++++ lily/time-signature-engraver.cc | 2 +- lily/timing-engraver.cc | 17 ++ lily/translator-group.cc | 12 ++ ly/engraver.ly | 42 ++-- make/out/lilypond.lsm | 8 +- make/out/lilypond.spec | 18 +- mutopia/Coriolan/clarinetti.ly | 2 +- mutopia/F.Schubert/standchen.ly | 2 +- mutopia/Hymns/maccabaeus.ly | 2 +- mutopia/Hymns/ode.ly | 2 +- mutopia/Hymns/stille.ly | 2 +- mutopia/J.S.Bach/Duette/global-i.ly | 2 +- .../J.S.Bach/Petites-Preludes/preludes-4.ly | 2 +- .../J.S.Bach/Petites-Preludes/preludes-5.ly | 2 +- .../J.S.Bach/Petites-Preludes/preludes-6.ly | 2 +- scm/lily.scm | 70 ++++--- stepmake/configure | 38 ++-- 68 files changed, 1044 insertions(+), 787 deletions(-) delete mode 100644 lily/base-span-bar-engraver.cc delete mode 100644 lily/include/base-span-bar-engraver.hh create mode 100644 lily/include/system-start-delimiter.hh create mode 100644 lily/instrument-name-engraver.cc create mode 100644 lily/new-span-bar-engraver.cc create mode 100644 lily/system-start-delimiter-engraver.cc create mode 100644 lily/system-start-delimiter.cc diff --git a/CHANGES b/CHANGES index 136a684c8d..32c8738711 100644 --- a/CHANGES +++ b/CHANGES @@ -1,40 +1,7 @@ ---- ../lilypond-1.3.41.jcn3/CHANGES Sat Apr 1 16:51:17 2000 -++ b/CHANGES Mon Apr 3 10:06:40 2000 -@@ -1,3 +1,8 @@ -1.3.41.jcn4 -=========== - -* Windows distribution does not longer require Cygnus' usertools. - - 1.3.41.jcn3 - =========== - --- ../lilypond-1.3.41/CHANGES Thu Mar 30 11:05:01 2000 -++ b/CHANGES Sat Apr 1 20:35:51 2000 -@@ -1,3 +1,8 @@ -1.3.41.mb1 -* Avoid that xxxXXXVerticalExtent is used for empty HaraKiriStaff - lines. - - 1.3.40.jcn3 - =========== - --- ../lilypond-1.3.41.jcn2/CHANGES Sat Apr 1 13:09:18 2000 -++ b/CHANGES Sat Apr 1 16:51:17 2000 -@@ -1,3 +1,9 @@ 1.3.41.jcn3 =========== -* chord.cc (to_chord): Forgot to remove early chord bugfix, introducing -a new bug. - - 1.3.41.jcn2 - =========== - --- ../lilypond-1.3.41.jcn1/CHANGES Thu Mar 30 17:50:26 2000 -++ b/CHANGES Sat Apr 1 13:09:18 2000 -@@ -1,3 +1,13 @@ -1.3.41.jcn2 -=========== - * Lots of fixes to windows distribution scripts. * Added configuration features --program-prefix, --program suffix. @@ -42,25 +9,30 @@ a new bug. * lily/my-lily-parser.cc (get_chord): Bugfix, don't use deleted pitch. This fixes inversions c/g and bass additions d/+c on chords. - 1.3.41.jcn1 - =========== - --- ../lilypond-1.3.41/CHANGES Thu Mar 30 04:05:01 2000 -++ b/CHANGES Fri Mar 31 00:30:53 2000 -@@ -1,3 +1,10 @@ -1.3.41.mwd1 +1.3.41.mb1 +========== + +* Avoid that xxxXXXVerticalExtent is used for empty HaraKiriStaff + lines. + +1.3.41.hwn1 =========== -* Fixed extra dots on repeat span-bars. +* Debian patches (thanks Anthony!) -* Changed the look of :|: repeat bars. +* Use symbols for prefatory matter spacing. Do not use the typename +for looking up item pairs in the table, but read element property +break-align-symbol - 1.3.40.jcn3 - =========== - 1.3.41.jcn1 -=========== +* Instrument_name_engraver, uses break alignment instead of +side-position. + +* System_start_delimiter_engraver, System_start_delimiter, uses a +spanner for the braces/brackets at the left of the system. Remove all +old Span_score_bar engravers. -* More windows distribution changes: distribute minimal .zip too, and -fixes to setup scripts. +* Removed Base_span_bar_engraver::use_prority_b_, and moved +Base_span_bar_engraver into Span_bar_engraver. 1.3.40.jcn3 =========== @@ -69,7 +41,7 @@ fixes to setup scripts. * input/test: Removed stale AutoStaffSwitch examples. -* mutopia/E.Saite: Fixed gnossiene-4, doing \autochange. Removed +* mutopia/E.Satie: Fixed gnossiene-4, doing \autochange. Removed stale copy of gnossiene-4. * buildscripts/make-cygwin-cross.sh: Made some small .zip package fixes. diff --git a/Documentation/faq.texi b/Documentation/faq.texi index 6953ff89b7..03b04ab6e9 100644 --- a/Documentation/faq.texi +++ b/Documentation/faq.texi @@ -120,7 +120,7 @@ be used by LilyPond, not by any other programs. @node Documentation, Language- mudela, Installing, FAQ - GNU LilyPond FAQs @section Documentation -@subsubsection What a sober website/manual you have there! +@subsubsection What a sober website/manual you have there! LilyPond development is moving quite fast, documentation will often lag a bit behind. But don't hesitate to point out inaccuracies. Whip up diff --git a/Documentation/user/invoking.itexi b/Documentation/user/invoking.itexi index c8c6775965..7471539356 100644 --- a/Documentation/user/invoking.itexi +++ b/Documentation/user/invoking.itexi @@ -12,12 +12,12 @@ @table @samp @item -f,--format= - Output format for sheet music. Choices are tex (for TeX + Output format for sheet music. Choices are tex (for @TeX{} output), ps (for PostScript) and scm (for GUILE) @item -I,--include= add @file{FILE} to the search path for input files. @item -m,--midi - Disable TeX output. If you have a \midi definition, it will do the + Disable @TeX{} output. If you have a \midi definition, it will do the midi output only. @item -M,--dependencies Also output rules to be included in Makefile. @@ -26,7 +26,7 @@ which lists what functions and classes may produce copious debugging output. @item -s,--safe - Disallow untrusted @code{\include} directives, backslashes in TeX + Disallow untrusted @code{\include} directives, backslashes in @TeX{} code and named output. @item -t,--test Switch on any experimental features. Not for general public use. diff --git a/Documentation/user/lilypond.tely b/Documentation/user/lilypond.tely index 987e40be36..b4bbf8a654 100644 --- a/Documentation/user/lilypond.tely +++ b/Documentation/user/lilypond.tely @@ -9,7 +9,7 @@ @subtitle The GNU Project Typesetter @author Han-Wen Nienhuys, Jan Nieuwenhuizen and Adrian Mariano - Copyright @copyright 1999 by the authors + Copyright @copyright{} 1999 by the authors @vskip 0pt plus 1filll diff --git a/Documentation/user/ly2dvi.texi b/Documentation/user/ly2dvi.texi index d7cf664d12..89793cf696 100644 --- a/Documentation/user/ly2dvi.texi +++ b/Documentation/user/ly2dvi.texi @@ -5,13 +5,13 @@ @chapter Ly2dvi @section DESCRIPTION -ly2dvi is a Python script which creates input file for LaTeX, +ly2dvi is a Python script which creates input file for La@TeX{}, based on information from the output files from LilyPond. The script handles multiple files. If a mudela file name is -specified LilyPond is run to make an output (TeX) file. +specified LilyPond is run to make an output (@TeX{}) file. -One or more LaTeX files are created, based on information found -in the output (TeX) files, and latex is finally run to create +One or more La@TeX{} files are created, based on information found +in the output (@TeX{}) files, and latex is finally run to create one or more DVI files. The majority of this utility came from a bourne script written by Jan @@ -30,10 +30,10 @@ Arne Fagertun name @file{ly2dvi}. info is written, in level two the command @strong{set -x} is run, which echoes every command in the ly2dvi script. @item -F,--headers= - Name of additional LaTeX headers file. This is included in the + Name of additional La@TeX{} headers file. This is included in the tex file at the end of the headers, last line before @code{\begin@{document@}} @item -H,--Heigth= - Set paper heigth (points). Used together with width and LaTeX name of + Set paper heigth (points). Used together with width and La@TeX{} name of papersize in case of papersize unknown to ly2dvi. @item -K,--keeplilypond Keep LilyPond output after the run. @@ -47,16 +47,16 @@ Arne Fagertun name @file{ly2dvi}. @item -P,--postscript In addition to the DVI file, also Generate a postsript file. @item -W,--Width= - Set paper width (points). Used together with heigth and LaTeX name of + Set paper width (points). Used together with heigth and La@TeX{} name of papersize in case of papersize unknown to ly2dvi. @item -d,--dependencies Tell lilypond to make dependencies file. @item -h,--help Print help. @item -k,--keeply2dvi - Keep the LaTeX file after the run. + Keep the La@TeX{} file after the run. @item -l,--language= - Specify LaTeX language. + Specify La@TeX{} language. (@strong{-l norsk} produces @code{\usepackage[norsk]@{babel@}}). @item -o,--output= Set output directory. @@ -64,7 +64,7 @@ Arne Fagertun name @file{ly2dvi}. Specify papersize. (@strong{-p a4} produces @code{\usepackage[a4paper]@{article@}}) @item -s,--separate - Normally all output files are included into one LaTeX file. + Normally all output files are included into one La@TeX{} file. With this switch all files are run separately, to produce one DVI file for each. @end table @@ -77,9 +77,9 @@ file. They are overridden by corresponding command line options. @table @samp @item language=""; - Specify LaTeX language + Specify La@TeX{} language @item latexheaders=""; - Specify additional LaTeX headers file + Specify additional La@TeX{} headers file @item orientation=""; Set orientation. @item paperlinewidth=""; @@ -156,9 +156,9 @@ This turns off (default) or on the ability to keep the temporary files that are generated by the ly2dvi job. Possible values are 0 (off) and 1 (on) @item LANGUAGE=value -Specify LaTeX language. Possible value is a valid LaTeX language. +Specify La@TeX{} language. Possible value is a valid La@TeX{} language. @item LATEXHF=value -Specify additional LaTeX headers file. Possible value is a file +Specify additional La@TeX{} headers file. Possible value is a file specification. @item LILYINCLUDE=value Additional directories for input files. Possible value is a delimited @@ -237,7 +237,7 @@ If you have found a bug, you should send a bugreport. @section Remarks Many papersizes are now supported. Information on other sizes -(LaTeX names, horizontal and vertical sizes) should be mailed to +(La@TeX{} names, horizontal and vertical sizes) should be mailed to the author or to the mailing list. Supported papersizes are: @@ -255,6 +255,3 @@ Original bourne shell version author: @email{Jan.A.Fagertun@@energy.sintef.no, Jan Arne Fagertun}, @uref{http://www.termo.unit.no/mtf/people/janaf/} - - - diff --git a/Documentation/user/mudela-book.tely b/Documentation/user/mudela-book.tely index 8b8509d582..e9953bcbce 100644 --- a/Documentation/user/mudela-book.tely +++ b/Documentation/user/mudela-book.tely @@ -5,10 +5,10 @@ @titlepage @title mudela-book Manual -@subtitle Integrating mudela with LateX and TeXinfo +@subtitle Integrating mudela with La@TeX{} and TeXinfo @author Tom Cato Amundsen and Han-Wen Nienhuys - Copyright @copyright 1999 by the authors + Copyright @copyright{} 1999 by the authors @vskip 0pt plus 1filll @@ -78,19 +78,19 @@ translation approved by the Free Software Foundation. [TODO: THIS MANUAL IS OUTDATED. FIXME.] -Mudela-book is a script that process your \LaTeX file and with great +Mudela-book is a script that process your La@TeX{} file and with great help from GNU LilyPond it translates blocks of mudela code it finds inside @code{mudela} environments to tex or eps graphics. It then -creates a new file that can be sent through \LaTeX to create a +creates a new file that can be sent through La@TeX{} to create a @file{.dvi} file with lines of music integrated with text. Mudela-book will do its best to try to align the music to the left and right margins. Currently the most used papersizes and one- and twocolumn mode is supported, but if you use the geometry-package from -LaTeX or change the margins things will break. +La@TeX{} or change the margins things will break. This document assumes you have basic knowledge of GNU LilyPond and -LaTeX. +La@TeX{}. So what does this look like? Well, here is an example: @mudela[veryverbatim, intertext="produces this music:"] @@ -105,8 +105,8 @@ So what does this look like? Well, here is an example: } @end mudela If you are lucky, the above example show a nice feature of LilyPond -and LaTeX. Since LilyPond can output the music as \TeX graphics, -LaTeX can insert pagebreaks between the lines of music. +and La@TeX{}. Since LilyPond can output the music as @TeX{} graphics, +La@TeX{} can insert pagebreaks between the lines of music. Notice that there is no @code{\paper} statement in the example above. Mudela-book will insert some code for you that defines the @@ -186,7 +186,7 @@ was created with this code: @end mudela @end example -To avoid that LaTeX places the music on a line of its one, there should +To avoid that La@TeX{} places the music on a line of its one, there should be no empty lines between the normal text and the mudela environment. @@ -266,7 +266,7 @@ if you need this one of these options. This was all options to @code{\begin}. The rest of the mudela document will show some ways you can use mudela in -LaTeX documents. It will also act as a simple test-suite for +La@TeX{} documents. It will also act as a simple test-suite for mudela-book. You can place @code{eps} mudela in and marginspars just as any other included eps graphics. @@ -315,8 +315,8 @@ Mudela-book does know about @code{\onecolumn} and @code{\twocolumn}. So the music will be adjusted to the new linewith: Verbatim environments will also ignore the page margins. That is -a feature of LaTeX. (But you usually put things inside a verbatim -environment when you don't want LaTeX to do any linebreaking) +a feature of La@TeX{}. (But you usually put things inside a verbatim +environment when you don't want La@TeX{} to do any linebreaking) @section Texinfo behavior @@ -326,9 +326,9 @@ environment when you don't want LaTeX to do any linebreaking) @section Invocation @file{mudela-book} is a script that helps integrating mudela and -LaTeX. mudela-book runs LilyPond on fragments of mudela in your +La@TeX{}. mudela-book runs LilyPond on fragments of mudela in your source file, and includes the results into document that can be -processed with LaTeX. The result is a text document with formatted +processed with La@TeX{}. The result is a text document with formatted music integrated. Lilypond will by default create all output files in directory @file{out}. @@ -382,7 +382,7 @@ to whatever he wants. Force all mudela to use this fontsize, overriding options given to \begin@{mudela@} @item --outname=FILE - The name of LaTeX file to output. If this option is not given, + The name of La@TeX{} file to output. If this option is not given, the output name derived from the input name. @item --out-www=DIRECTORY The name of the directory to output lilypond output and input to. @@ -406,9 +406,9 @@ the output name derived from the input name. @section Bugs -The LaTeX \includeonly@{...@} command is ignored. +The La@TeX{} \includeonly@{...@} command is ignored. -Ignores almost all LaTeX commands that changes margins and linewidths. +Ignores almost all La@TeX{} commands that changes margins and linewidths. @section Authors @@ -419,8 +419,3 @@ Ignores almost all LaTeX commands that changes margins and linewidths. @bye - - - - - diff --git a/Documentation/user/properties.itely b/Documentation/user/properties.itely index 3804e11ab8..15418e5a66 100644 --- a/Documentation/user/properties.itely +++ b/Documentation/user/properties.itely @@ -8,22 +8,21 @@ property is listed in parentheses after the property name. @end macro @table @samp - @item @code{Generic_property_list} Defines names and types for -generic properties. These are properties than can be plugged into the -backend directly. See the init file @file{generic-property.scm} for -details. For internal use only. + @item @code{Generic_property_list} + Defines names and types for generic properties. These are properties + than can be plugged into the backend directly. See the init file + @file{generic-property.scm} for details. For internal use only. - -@item @code{XXXVerticalExtent}@indexcode{groupVerticalExtent} -@propertytype{Interval: a cons of numbers} - - Hard code the size of the vertical group in context XXX, example + @item @code{XXXVerticalExtent}@indexcode{groupVerticalExtent} @propertytype{Interval: a cons of numbers} + Hard code the size of the vertical group in context XXX, example @example - \property Staff.StaffVerticalExtent = #(-5.0 . 5.0) +\property Staff.StaffVerticalExtent = #(-5.0 . 5.0) @end example - The value is a cons of real numbers, that measure the extent in -staff spaces - + The value is a cons of real numbers, that measure the extent in + staff spaces. +@end table + +@subsubheading Lyrics properties @cindex properties!Lyrics @@ -39,6 +38,7 @@ staff spaces dot. @end table +@subsubheading Thread properties @cindex properties!Thread @@ -377,7 +377,10 @@ Normally a tuplet bracket is as wide as the property, you can make brackets last shorter. Example @mudela[verbatim,fragment] -\context Voice \times 2/3 { \property Voice.tupletSpannerDuration = #(make-moment 1 4) [c8 c c] [c c c] } +\context Voice \times 2/3 { + \property Voice.tupletSpannerDuration = #(make-moment 1 4) + [c8 c c] [c c c] +} @end mudela @end table @@ -572,6 +575,7 @@ no clef is printed upon creation. the music given in an @code{\alternative}. @end table +@subsubheading GrandStaff properties @cindex properties!GrandStaff @@ -583,6 +587,7 @@ no clef is printed upon creation. Set the minimum vertical distance between staffs. @end table +@subsubheading Score properties @cindex properties!Score @@ -618,6 +623,7 @@ r1 r1*3 R1*3\property Score.skipBars=1 r1*3 R1*3 @end example @end table +@subsubheading ChordNamesVoice properties @cindex properties!ChordNamesVoice diff --git a/Documentation/user/refman.itely b/Documentation/user/refman.itely index 2827b4b0f8..eb8dc396e1 100644 --- a/Documentation/user/refman.itely +++ b/Documentation/user/refman.itely @@ -312,8 +312,6 @@ Simply include the language specific init file. For example: `@code{\include "english.ly"}'. The available language files and the names they define are: -@quotation - @example Note Names sharp flat nederlands.ly c d e f g a bes b -is -es @@ -325,8 +323,6 @@ italiano.ly do re mi fa sol la sid si -d -b catalan.ly do re mi fa sol la sid si -d/-s -b @end example -@end quotation - Pitch names can be redefined using the @code{\notenames}@keyindex{notenames} command, see subsection XREF-notenames [FIXME]. @@ -394,7 +390,7 @@ different modes have different rules for deciding what is a word. over 127, or a two-character combination of a backslash followed by one of `@code{`}', `@code{'}', `@code{"}', or `@code{^}'.@footnote{The purpose of Lyrics mode is that you can - enter lyrics in TeX format or a standard encoding without + enter lyrics in @TeX{} format or a standard encoding without needing quotes. The precise definition of this mode indeed is ludicrous. This will remain so until the authors of LilyPond acquire a deeper understanding of character encoding, or someone @@ -410,10 +406,7 @@ different modes have different rules for deciding what is a word. spaces into words without using quotes. Quoted words can also be used in Lyrics mode to specify words that cannot be written with the above rules. Here are some examples. Not all of these words - are printable by TeX. - - - @quotation + are printable by @TeX{}. @example Ah! % a word @@ -422,8 +415,6 @@ Ah! % a word _ _ _ _ % 4 words, each one a space @end example - @end quotation - Since combinations of numbers and dots are used for indicating durations, you can not enter real numbers in this mode. @end table @@ -1136,7 +1127,7 @@ name of the corresponding symbol appearing underneath. @end mudela In addition, it is possible to place arbitrary strings of text or -TeX above or below notes by using a string instead of an +@TeX{} above or below notes by using a string instead of an identifier: `@code{c^"text"}'. Fingerings @cindex fingering can be @@ -2837,8 +2828,7 @@ instrument name should be chosen from the following list. If the selected string does not exactly match, then LilyPond uses the default piano. - -@quotation +@c @quotation @example "acoustic grand" "contrabass" "lead 7 (fifths)" @@ -2886,7 +2876,7 @@ piano. "cello" "lead 6 (voice)" @end example -@end quotation +@c @end quotation @cindex MIDI types and performers diff --git a/Documentation/user/tutorial.itely b/Documentation/user/tutorial.itely index cbaa5f041b..9bd5e9e28e 100644 --- a/Documentation/user/tutorial.itely +++ b/Documentation/user/tutorial.itely @@ -73,7 +73,7 @@ Enter it (or copy it, the filename is @file{menuet.ly}), compile it with LilyPond and view the output. Details of this procedure may vary from system to system. To create the output, one would issue the command `@code{ly2dvi menuet}'. @file{ly2dvi} is a program that does -the job of running LilyPond and TeX, handling of titles and +the job of running LilyPond and @TeX{}, handling of titles and adjusting of page margins. If all goes well, the file @file{menuet.dvi} will be created. @@ -113,7 +113,8 @@ By default, LilyPond will use definitions for a 20 point@footnote{A point is the standard measure of length for printing. One point is 1/72.27 inch.} high staff. We want smaller output (16 point staff height), so we must import the settings for -that size, which is done.@example +that size, which is done. +@example \score @{ @@ -146,28 +147,32 @@ as close as possible (graphically, on the staff) to the the preceding note. If you add a high-quote an extra octave is added. The lowered quote (a comma) will subtract an extra octave. Because the first note has no predecessor, you have to give the (absolute) pitch of the note -to start with.@example +to start with. +@example \sequential @{ @end example What follows is sequential music, i.e., -notes that are to be played and printed after each other.@example +notes that are to be played and printed after each other. +@example \time 3/4; @end example This command changes the time signature of the current piece: a 3/4 sign is printed. This command is also used to generate bar lines in -the right spots.@example +the right spots. +@example \key g; @end example - This command changes the current key to G-major. Although this + This command changes the current key to G-major. Although this command comes after the @code{\time} command, in the output, the key signature comes before the time signature: LilyPond knows about music -typesetting conventions. @example +typesetting conventions. +@example \repeat "volta" 2 @@ -182,7 +187,8 @@ alternatives---if there were any. @end example The subject of the repeat is again sequential music. Since @code{\sequential} is such a common construct, a shorthand is provided: -just leave off @code{\sequential}, and the result is the same. @example +just leave off @code{\sequential}, and the result is the same. +@example d4 @@ -190,14 +196,16 @@ just leave off @code{\sequential}, and the result is the same. @example This is a note with pitch @code{d} (determined up to octaves). The relative music was started with a @code{c''}, so the real pitch of this note is @code{d''}. The @code{4} designates the duration of the note -(it is a quarter note). @example +(it is a quarter note). +@example a b @end example These are notes with pitch @code{a} and @code{b}. Because their duration is the same as the @code{g}, there is no need to enter the -duration (You may enter it anyway, eg. @code{a4 b4}) @example +duration (You may enter it anyway, e.g. @code{a4 b4}) +@example d4 g, g | @@ -227,32 +235,37 @@ In this case, a beam over 4 eighths is added. the beginning and ending note of the slur is marked with an opening and closing parenthesis respectively. In the line shown above this is done for two slurs. Slur markers (parentheses) are between -the notes.@example +the notes. +@example a4 [b8 a] [g fis] @end example Automatic beaming can be overridden by inserting beam marks -(brackets). Brackets are put around notes you want beamed.@example +(brackets). Brackets are put around notes you want beamed. +@example g2. | @end example A duration with augmentation dot is notated -with the duration number followed by a period.@example +with the duration number followed by a period. +@example @} @end example This ends the sequential music to be repeated. LilyPond will typeset -a repeat bar. @example +a repeat bar. +@example cis'4 b8 cis a4 | @end example This line shows that Lily will print an accidental if that is needed: the first C sharp will be printed with an accidental, the -second one without. @example +second one without. +@example a8-. b-. cis-. d-. e-. fis-. @@ -260,7 +273,8 @@ second one without. @example You can enter articulation signs either in a verbose form using a shorthand. Here we demonstrate the shorthand: it is formed by a dash and the the character for the articulation to use, e.g. `@code{-.}' for -staccato as shown above. @example +staccato as shown above. +@example fis a, r8 cis8 @@ -277,7 +291,8 @@ an invisible rest by using the special notename `@code{s}'. command `@code{\fermata}' is not part of the core of the language (most of the other discussed elements are), but it is a shorthand for a more complicated description of a fermata. @code{\fermata} names that -description and is therefore called an @emph{identifier}. @example +description and is therefore called an @emph{identifier}. +@example @} @@ -417,7 +432,8 @@ accompaniment =\chords { } @end mudela -Again, we will dissect the file line by line.@example +Again, we will dissect the file line by line. +@example \header @{ @@ -436,12 +452,14 @@ with a string. (which is unquoted, in this case). Then comes the equal sign `@code{=}'. After the equal sign comes the expression you want to store. In this case, you want to put in strings. The information has to be quoted here, because it contains spaces. The -assignment is finished with a semicolon.@example +assignment is finished with a semicolon. +@example \include "paper16.ly" @end example -Smaller size for inclusion in a book.@example +Smaller size for inclusion in a book. +@example melody = \notes \relative c' @{ @@ -461,7 +479,6 @@ The piece starts with an anacrusis of one eighth. @end example The key is C minor: we have three flats. - @example c4 c8 d [es () d] c4 | f4 f8 g [es() d] c g | @@ -469,14 +486,17 @@ The key is C minor: we have three flats. \bar "|."; @end example + We use explicit beaming. Since this is a song, we will turn automatic -beams off, and use explicit beaming where needed.@example +beams off, and use explicit beaming where needed. +@example @} @end example This ends the definition of @code{melody}. Note that there are no -semicolons after assignments at top level.@example +semicolons after assignments at top level. +@example text = \lyrics @{ @@ -485,11 +505,12 @@ Another identifier assignment. This one is for the lyrics. Lyrics are formed by syllables that have duration, and not by notes. To make LilyPond parse words as syllables, switch it into lyrics mode with @code{\lyrics}. Again, the brace after @code{\lyrics} -is a shorthand for @code{\sequential @{}. @example +is a shorthand for @code{\sequential @{}. +@example - The4 ri -- ver is flo- __ wing, flo -- wing and gro -- wing, the - ri- ver is flo- __ wing down to the sea. - @} + The4 ri -- ver is flo- __ wing, flo -- wing and gro -- wing, the + ri- ver is flo- __ wing down to the sea. +@} @end example The syllables themselves are separated by spaces. You can get syllable @@ -510,7 +531,8 @@ of the chords you want, instead of the notes comprising the chord. r8 @end example -There is no accompaniment during the anacrusis.@example +There is no accompaniment during the anacrusis. +@example c2:3- f:3-.7 @@ -520,13 +542,15 @@ first one lasts a half note. An unadorned note creates a major triad, while a minor triad is wanted. @code{3-} modifies the third to be small. @code{7} modifies (adds) a seventh, which is small by default to create the @code{f a c es} chord. Multiple modifiers must be -separated by a dot.@example +separated by a dot. +@example d:min es4 c8:min r8 @end example Some modifiers have predefined names, eg. @code{min} is the same as -@code{3-}, so @code{d-min} is a minor @code{d} chord.@example +@code{3-}, so @code{d-min} is a minor @code{d} chord. +@example c2:min f:min7 g:7^3.5 c:min @} @@ -535,7 +559,8 @@ A named modifier @code{min} and a normal modifier @code{7} do not have to be separated by a dot. Tones from a chord are removed with chord subtractions. Subtractions are started with a caret, and they are also separated by dots. In this example, @code{g:7^3.5} produces a -minor seventh. The brace ends the sequential music. @example +minor seventh. The brace ends the sequential music. +@example \score @{ \simultaneous @{ @@ -543,7 +568,8 @@ minor seventh. The brace ends the sequential music. @example @end example We assemble the music in the @code{\score} block. Melody, lyrics and accompaniment have to sound at the same time, so they should be -@code{\simultaneous}.@example +@code{\simultaneous}. +@example %\accompaniment @@ -551,7 +577,8 @@ accompaniment have to sound at the same time, so they should be Chord mode generates notes grouped in @code{\simultaneous} music. If you remove the comment sign, you can see the chords in normal notation: they will be printed as note heads on a separate -staff. @example +staff. +@example \context ChordNames \accompaniment @@ -575,7 +602,8 @@ two arguments. The first is the name of a interpretation context. The name is a string, it can be quoted with double quotes). The second argument is the music that should be interpreted in this context. For the previous line, we could have written @code{\context -Staff \accompaniment}, and get the same effect.@example +Staff \accompaniment}, and get the same effect. +@example \addlyrics @@ -586,7 +614,8 @@ pieces of music (usually a melody and lyrics, in that order) and aligns the syllables of the second piece under the notes of the first piece. If you would reverse the order, the notes would be aligned on the lyrics, which is not very useful. (Besides, it looks -silly.)@example +silly.) +@example \context Staff = mel @{ @@ -596,7 +625,8 @@ This is the argument of @code{\addlyrics}. We instantiate a before the ``note heads'' version of the accompaniment, the accompaniment will be on a nameless staff. The melody has to be on a different staff as the accompaniment. This is accomplished by giving -the melody staff a different name.@example +the melody staff a different name. +@example \property Staff.noAutoBeaming = "1" @@ -604,14 +634,16 @@ the melody staff a different name.@example An interpretation context has variables that tune its behaviour. One of the variables is @code{noAutoBeaming}. If set and non-zero (i.e., true) LilyPond will not try to put automatic beaming on the current -staff.@example +staff. +@example \property Staff.automaticMelismata = "1" @end example Similarly, we don't want to print a syllable when there is a slur. This sets up the Staff context to signal slurs while -@code{\addlyrics} is processed. @example +@code{\addlyrics} is processed. +@example \melody @} @@ -620,7 +652,8 @@ a slur. This sets up the Staff context to signal slurs while Finally, we put the melody on the current staff. Note that the @code{\property} directives and @code{\melody} are grouped in sequential music, so the property settings are done before the melody is -processed. @example +processed. +@example \context Lyrics \text @@ -628,12 +661,14 @@ processed. @example The second argument of @code{\addlyrics} is the text. The text also should not land on a Staff, but on a interpretation context for syllables, extenders, hyphens etc. This context is called -Lyrics.@example +Lyrics. +@example @} @end example -This ends @code{\simultaneous}.@example +This ends @code{\simultaneous}. +@example \midi @{ @} @@ -642,13 +677,15 @@ This makes the music go to a MIDI file. MIDI is great for checking music you enter. You listen to the MIDI file: if you hear something unexpected, it's probably a typing error. @code{\midi} is an `output definition', a declaration that specifies how to output music -analogous to @code{\paper @{ @}}.@example +analogous to @code{\paper @{ @}}. +@example \paper @{ linewidth = 10.0\cm; @} @end example We also want notation output. The linewidth is short so the piece -will be set in two lines. @example +will be set in two lines. +@example @} @@ -725,7 +762,8 @@ bassvoices = \notes \relative c' { If it looks like incomprehensible gibberish to you@dots{} Then you are right. The author has doctored this example to have as many quirks in -one system as possible.@example +one system as possible. +@example viola = \notes \relative c' \context Voice = viola @{ @end example In this example, you can see multiple parts on a staff. Each part is @@ -734,12 +772,14 @@ stems and dynamics (among others). The name of this context is @code{Voice}. For each part we have to make sure that there is precisely one Voice context@footnote{If @code{\context} would not have been specified explicitly, three @code{Voice} contexts would be -created: one for each note in the first chord.}.@example +created: one for each note in the first chord.}. +@example @end example @code{<} and @code{>} are short hands for @code{\simultaneous @{} and @code{@}}. So the expression enclosed in @code{<} and @code{>} is a -chord. @code{\f} places a forte symbol under the chord.@example +chord. @code{\f} places a forte symbol under the chord. +@example \property Voice.verticalDirection = \down @end example @code{verticalDirection} is a property of the voice context. It @@ -747,7 +787,8 @@ controls the directions of stems, articulations marks and other symbols. If @code{verticalDirection} is set to @code{\down} (identifier for the integer -1) the stems go down, -@code{\up} (identifier for the integer 1) makes the stems go up.@example +@code{\up} (identifier for the integer 1) makes the stems go up. +@example g'8. b,16 @end example Relative octaves work a little differently with chords. The starting @@ -759,13 +800,15 @@ note of the previous chord (the central C). s1 s2. r4 @end example @code{s} is a `spacer' rest. It does not print anything, but it does -have the duration of a rest. @example +have the duration of a rest. +@example oboes = \notes \relative c'' \context Voice = oboe @{ @end example Now comes a part for two oboes. They play homophonically, so we print the notes as one voice that makes chords. Again, we insure that these notes are indeed processed by precisely one context with -@code{\context}.@example +@code{\context}. +@example \stemup s4 g8. b,16 c8 r @end example @code{\stemup} is an identifier reference. It is shorthand for @@ -786,35 +829,41 @@ Tuplets are made with the @code{\times} keyword. It takes two arguments: a fraction and a piece of music. The duration of the second argument is multiplied by the first argument. Triplets make notes occupy 2/3 of their notated duration, so in this case the -fraction is 2/3. @example +fraction is 2/3. +@example @{ @} @end example The piece of music to be `tripletted' is sequential music containing three notes. On the first chord (the @code{d}), a crescendo is started -with @code{\<}.@example +with @code{\<}. +@example < @end example At this point, the homophonic music splits into two rhythmically different parts. We can't use a sequence of chords to enter this, so we make a `chord' of sequences to do it. We start with the upper -voice, which continues with upward stems: @example +voice, which continues with upward stems: +@example @{ \times 2/3 @{ a8 g c @} \! c2 @} @end example The crescendo is ended at the half note by the escaped exclamation -mark `@code{\!}'. @example +mark `@code{\!}'. +@example \context Voice = oboeTwo @{ \stemdown @end example We can't share stems with the other voice, so we have to create a new @code{Voice} context. We give it the name @code{oboeTwo} to distinguish -it from the other context. Stems go down in this voice. @example +it from the other context. Stems go down in this voice. +@example \grace @{ @end example When a grace section is processed, a @code{Grace} context is created. This context acts like a miniature score of its own. It has its own time bookkeeping, and you can make notes, beams, slurs etc. Here fiddle with a property and make a beam. The argument of -@code{\grace} is sequential music.@example +@code{\grace} is sequential music. +@example \property Grace.verticalDirection = \down [f,16 g] @} @end example @@ -829,7 +878,8 @@ the @code{f}. f8 e e2 @} > @end example -This ends the two-part section. @example +This ends the two-part section. +@example \stemboth \grace <)b8. d8.-\trill> | @end example @@ -837,7 +887,8 @@ This ends the two-part section. @example positioned as if it were single part music. The bass has a little hoom-pah melody to demonstrate parts switching -between staffs. Since it is repetitive, we use identifiers:@example +between staffs. Since it is repetitive, we use identifiers: +@example hoomPah = \notes \transpose c' @{ @end example Transposing can be done with @code{\transpose}. It takes two @@ -852,7 +903,8 @@ mode will leave the contents of @code{\hoomPah} alone. We can use it without having to worry about getting the motive in a wrong octave@footnote{@code{hoomPah = \relative @dots{}} would be more intuitive to use, but that would not let me plug @code{\transpose} -:-).}.@example +:-).}. +@example c8 \translator Staff = top \stemdown @end example We assume that the first note will be put in the lower staff. After @@ -860,11 +912,13 @@ that note we switch to the upper staff with @code{\translator}. To be precise, this @code{\translator} entry switches the current voice to a @code{Staff} named @code{top}. So we have to name the upper staff `@code{top}'. Stem directions are set to avoid interfering with the -oboe voices. @example +oboe voices. +@example c'8 \translator Staff = bottom \stemup @} @end example Then a note is put on the upper staff, and we switch again. We have -to name the lower staff `@code{bottom}'. @example +to name the lower staff `@code{bottom}'. +@example hoomPahHoomPah = @{ [\hoomPah \hoomPah] @} @end example Put two of these fragments in sequence, and beam them.@example @@ -874,17 +928,21 @@ c4 g8. b,16 \hoomPahHoomPah @end example Entering the bass part is easy: the hoomPahHoomPah variable is -referenced four times.@example +referenced four times. +@example \context Voice = reallyLow @{\stemdown g2 ~ | g4 c8 @} > @end example -After skipping some lines, we see @code{~}. This mark makes ties.@example +After skipping some lines, we see @code{~}. This mark makes ties. +@example \context PianoStaff @end example For piano music, a special context is needed to get cross staff -beaming right. It is called @code{PianoStaff}.@example +beaming right. It is called @code{PianoStaff}. +@example \context Staff = bottom < \time 2/2; \clef bass; @end example -The bottom staff must have a different clef.@example +The bottom staff must have a different clef. +@example indent = 0.0; @end example To make some more room on the line, the first (in this case the only) diff --git a/VERSION b/VERSION index 059be63c20..11e6788b01 100644 --- a/VERSION +++ b/VERSION @@ -1,8 +1,8 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=3 -PATCH_LEVEL=41 -MY_PATCH_LEVEL=jcn4 +PATCH_LEVEL=42 +MY_PATCH_LEVEL= # use the above to send patches: MY_PATCH_LEVEL is always empty for a # released version. diff --git a/aclocal.m4 b/aclocal.m4 index 3e488a8f4f..00a23fdb19 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,3 +1,5 @@ +dnl WARNING WARNING WARNING WARNING +dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4 dnl aclocal.m4 -*-shell-script-*- dnl StepMake subroutines for configure.in diff --git a/buildscripts/make-cygwin-cross.sh b/buildscripts/make-cygwin-cross.sh index 936bb54a6f..73a1a40990 100644 --- a/buildscripts/make-cygwin-cross.sh +++ b/buildscripts/make-cygwin-cross.sh @@ -677,3 +677,6 @@ gzip -f rpm gzip -f bash gzip -f cygpath + + + diff --git a/configure b/configure index 9a27b70761..a2f17f4bb3 100755 --- a/configure +++ b/configure @@ -618,8 +618,16 @@ fi fi stepmake=`echo ${stepmake} | sed "s!\\\${prefix}!$presome!"` + # urg, how is this supposed to work? + if test "$program_prefix" = "NONE"; then + program_prefix= + fi + if test "$program_suffix" = "NONE"; then + program_suffix= + fi + echo $ac_n "checking Package""... $ac_c" 1>&6 -echo "configure:623: checking Package" >&5 +echo "configure:631: checking Package" >&5 if test "x$PACKAGE" = "xSTEPMAKE"; then echo "$ac_t""Stepmake package!" 1>&6 @@ -671,7 +679,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. fi echo $ac_n "checking for stepmake""... $ac_c" 1>&6 -echo "configure:675: checking for stepmake" >&5 +echo "configure:683: checking for stepmake" >&5 # Check for installed stepmake if test -d $stepmake; then echo "$ac_t""$stepmake" 1>&6 @@ -793,7 +801,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:797: checking host system type" >&5 +echo "configure:805: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -818,7 +826,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:822: checking for $ac_word" >&5 +echo "configure:830: 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 @@ -853,7 +861,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:857: checking for $ac_word" >&5 +echo "configure:865: 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 @@ -890,7 +898,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:894: checking for $ac_word" >&5 +echo "configure:902: 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 @@ -925,7 +933,7 @@ test -n "$TAR" || TAR="error" # Extract the first word of "bash", so it can be a program name with args. set dummy bash; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:929: checking for $ac_word" >&5 +echo "configure:937: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -965,7 +973,7 @@ fi # Extract the first word of "bash", so it can be a program name with args. set dummy bash; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:969: checking for $ac_word" >&5 +echo "configure:977: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_SHELL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1002,7 +1010,7 @@ fi # Extract the first word of "bash", so it can be a program name with args. set dummy bash; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1006: checking for $ac_word" >&5 +echo "configure:1014: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1043,7 +1051,7 @@ fi # 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:1047: checking for $ac_word" >&5 +echo "configure:1055: 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 @@ -1103,7 +1111,7 @@ fi LN=cp # hard link does not work under cygnus-nt LN_S='cp -r' # symbolic link does not work for native nt ZIP="zip -r -9" # - DOTEXE=.exe + program_suffix=.exe # urg # DIRSEP='\\' # PATHSEP=';' @@ -1143,6 +1151,7 @@ fi + cat >> confdefs.h <&6 -echo "configure:1271: checking for $ac_word" >&5 +echo "configure:1280: 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 @@ -1297,7 +1306,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:1301: checking for $ac_word" >&5 +echo "configure:1310: 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 @@ -1348,7 +1357,7 @@ fi # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1352: checking for $ac_word" >&5 +echo "configure:1361: 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 @@ -1380,7 +1389,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1384: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:1393: 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. @@ -1391,12 +1400,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 1395 "configure" +#line 1404 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:1400: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1409: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; 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 @@ -1422,12 +1431,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:1426: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1435: 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:1431: checking whether we are using GNU C" >&5 +echo "configure:1440: 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 @@ -1436,7 +1445,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1440: \"$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:1449: \"$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 @@ -1455,7 +1464,7 @@ ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:1459: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1468: 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 @@ -1527,7 +1536,7 @@ EOF fi echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6 -echo "configure:1531: checking how to run the C++ preprocessor" >&5 +echo "configure:1540: 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 @@ -1540,12 +1549,12 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross CXXCPP="${CXX-g++} -E" cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1549: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1558: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1582,7 +1591,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:1586: checking for $ac_word" >&5 +echo "configure:1595: 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 @@ -1614,7 +1623,7 @@ test -n "$CXX" || CXX="gcc" echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1618: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 +echo "configure:1627: 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. @@ -1625,12 +1634,12 @@ cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext << EOF -#line 1629 "configure" +#line 1638 "configure" #include "confdefs.h" int main(){return(0);} EOF -if { (eval echo configure:1634: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1643: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; 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 @@ -1656,12 +1665,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:1660: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1669: 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:1665: checking whether we are using GNU C++" >&5 +echo "configure:1674: 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 @@ -1670,7 +1679,7 @@ else yes; #endif EOF -if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1674: \"$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:1683: \"$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 @@ -1689,7 +1698,7 @@ ac_test_CXXFLAGS="${CXXFLAGS+set}" ac_save_CXXFLAGS="$CXXFLAGS" CXXFLAGS= echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 -echo "configure:1693: checking whether ${CXX-g++} accepts -g" >&5 +echo "configure:1702: 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 @@ -1723,17 +1732,17 @@ fi ac_safe=`echo "FlexLexer.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for FlexLexer.h""... $ac_c" 1>&6 -echo "configure:1727: checking for FlexLexer.h" >&5 +echo "configure:1736: 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 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1737: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1746: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -1784,12 +1793,12 @@ fi echo $ac_n "checking whether explicit instantiation is needed""... $ac_c" 1>&6 -echo "configure:1788: checking whether explicit instantiation is needed" >&5 +echo "configure:1797: 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 < struct foo { static int baz; }; @@ -1799,7 +1808,7 @@ int main() { return foo::baz; ; return 0; } EOF -if { (eval echo configure:1803: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1812: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* lily_cv_need_explicit_instantiation=no else @@ -1826,7 +1835,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:1830: checking for $ac_word" >&5 +echo "configure:1839: 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 @@ -1869,7 +1878,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:1873: checking for $ac_word" >&5 +echo "configure:1882: 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 @@ -1904,7 +1913,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:1908: checking for $ac_word" >&5 +echo "configure:1917: 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 @@ -1972,7 +1981,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:1976: checking for $ac_word" >&5 +echo "configure:1985: 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 @@ -2005,7 +2014,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:2009: checking for $ac_word" >&5 +echo "configure:2018: 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 @@ -2061,7 +2070,7 @@ fi echo $ac_n "checking language""... $ac_c" 1>&6 -echo "configure:2065: checking language" >&5 +echo "configure:2074: checking language" >&5 case "$language" in En* | en* | Am* | am* | US* | us*) lang=English;; @@ -2097,7 +2106,7 @@ EOF echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6 -echo "configure:2101: checking for gettext in -lintl" >&5 +echo "configure:2110: 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 @@ -2105,7 +2114,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lintl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2132: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2149,12 +2158,12 @@ fi for ac_func in gettext do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2153: checking for $ac_func" >&5 +echo "configure:2162: 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 <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2193: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2212,7 +2221,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:2216: checking for $ac_word" >&5 +echo "configure:2225: 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 @@ -2243,7 +2252,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:2247: checking whether msgfmt accepts -o" >&5 +echo "configure:2256: 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 @@ -2271,7 +2280,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:2275: checking for $ac_word" >&5 +echo "configure:2284: 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 @@ -2307,7 +2316,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:2311: checking for $ac_word" >&5 +echo "configure:2320: 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 @@ -2345,7 +2354,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:2349: checking for $ac_word" >&5 +echo "configure:2358: 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 @@ -2381,7 +2390,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:2385: checking for $ac_word" >&5 +echo "configure:2394: 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 @@ -2420,7 +2429,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:2424: checking for $ac_word" >&5 +echo "configure:2433: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_INIMETAFONT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2456,7 +2465,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:2460: checking for $ac_word" >&5 +echo "configure:2469: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_INIMFONT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2494,7 +2503,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:2498: checking for $ac_word" >&5 +echo "configure:2507: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_INIMETAPOST'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2530,7 +2539,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:2534: checking for $ac_word" >&5 +echo "configure:2543: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_INIMPOST'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2564,7 +2573,7 @@ test -n "$INIMPOST" || INIMPOST="-echo no inimp or inimpost" fi echo $ac_n "checking for working metafont mode""... $ac_c" 1>&6 -echo "configure:2568: checking for working metafont mode" >&5 +echo "configure:2577: checking for working metafont mode" >&5 modelist='ljfour lj4 lj3 lj2 ljet laserjet' for MFMODE in $modelist; do $METAFONT "\mode:=$MFMODE; mode_setup; end." > /dev/null 2>&1 @@ -2610,7 +2619,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:2614: checking for $ac_word" >&5 +echo "configure:2623: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_KPSEWHICH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2641,7 +2650,7 @@ done test -n "$KPSEWHICH" || KPSEWHICH="no" echo $ac_n "checking for TeX TFM directory""... $ac_c" 1>&6 -echo "configure:2645: checking for TeX TFM directory" >&5 +echo "configure:2654: checking for TeX TFM directory" >&5 if test "x$TFMDIR" = xauto ; then if test "x$TEX_TFMDIR" = "x" ; then if test "x$KPSEWHICH" != "xno" ; then @@ -2662,13 +2671,13 @@ echo "configure:2645: checking for TeX TFM directory" >&5 ## First, let's just see if we can find Guile at all. echo $ac_n "checking "for guile-config"""... $ac_c" 1>&6 -echo "configure:2666: checking "for guile-config"" >&5 +echo "configure:2675: checking "for guile-config"" >&5 for guile_config in guile-config $target-guile-config $build-guile-config; do echo "$ac_t"""$guile_config"" 1>&6 if ! $guile_config --version > /dev/null 2>&1 ; then echo "configure: warning: "cannot execute $guile_config"" 1>&2 echo $ac_n "checking "if we are cross compiling"""... $ac_c" 1>&6 -echo "configure:2672: checking "if we are cross compiling"" >&5 +echo "configure:2681: checking "if we are cross compiling"" >&5 guile_config=error else break @@ -2679,7 +2688,7 @@ echo "configure:2672: checking "if we are cross compiling"" >&5 exit 1 fi echo $ac_n "checking "Guile version"""... $ac_c" 1>&6 -echo "configure:2683: checking "Guile version"" >&5 +echo "configure:2692: checking "Guile version"" >&5 need_guile_version="1.3.4" guile_version=`expr "\`$guile_config --version 2>&1\`" : ".*\($need_guile_version\).*"` echo "$ac_t"""$guile_version"" 1>&6 @@ -2692,7 +2701,7 @@ echo "configure:2683: checking "Guile version"" >&5 ## The GUILE_FLAGS macro. echo $ac_n "checking for Guile""... $ac_c" 1>&6 -echo "configure:2696: checking for Guile" >&5 +echo "configure:2705: checking for Guile" >&5 if ! $guile_config link > /dev/null ; then echo "$ac_t"""cannot execute $guile_config"" 1>&6 { echo "configure: error: "cannot find guile-config; is Guile installed?"" 1>&2; exit 1; } @@ -2707,7 +2716,7 @@ echo "configure:2696: checking for Guile" >&5 # Extract the first word of "guile", so it can be a program name with args. set dummy guile; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2711: checking for $ac_word" >&5 +echo "configure:2720: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GUILE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2745,7 +2754,7 @@ fi echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6 -echo "configure:2749: checking for 8-bit clean memcmp" >&5 +echo "configure:2758: 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 @@ -2753,7 +2762,7 @@ else ac_cv_func_memcmp_clean=no else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2779: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_memcmp_clean=yes else @@ -2784,12 +2793,12 @@ echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6 test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}" echo $ac_n "checking for vprintf""... $ac_c" 1>&6 -echo "configure:2788: checking for vprintf" >&5 +echo "configure:2797: 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 <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2828: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_vprintf=yes" else @@ -2839,12 +2848,12 @@ fi if test "$ac_cv_func_vprintf" != yes; then echo $ac_n "checking for _doprnt""... $ac_c" 1>&6 -echo "configure:2843: checking for _doprnt" >&5 +echo "configure:2852: 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 <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2883: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func__doprnt=yes" else @@ -2897,12 +2906,12 @@ fi for ac_func in memmem snprintf vsnprintf gettext do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2901: checking for $ac_func" >&5 +echo "configure:2910: 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 <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2941: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2967,7 +2976,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:2971: checking for $ac_word" >&5 +echo "configure:2980: 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 @@ -3000,7 +3009,7 @@ test -n "$MAKEINFO" || MAKEINFO="error" # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3004: checking for $ac_word" >&5 +echo "configure:3013: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3187,7 +3196,8 @@ s%@FIND@%$FIND%g s%@TAR@%$TAR%g s%@BASH@%$BASH%g s%@PYTHON@%$PYTHON%g -s%@DOTEXE@%$DOTEXE%g +s%@program_prefix@%$program_prefix%g +s%@program_suffix@%$program_suffix%g s%@ZIP@%$ZIP%g s%@LN@%$LN%g s%@LN_S@%$LN_S%g diff --git a/debian/changelog b/debian/changelog index 293e0963b9..e2a8301b10 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,20 @@ +lilypond1.3 (1.3.41-1) frozen unstable; urgency=low + + * New upstream development release. + * [debian/postinst]: Fixed the pathname to README.Debian. Thanks to + Olivier Abad for the bug report (closes: Bug#58674). + * [debian/rules]: Now configure with --enable-optimise again. + Yes, it appears that LilyPond and glibc2.1.3 finally get along + nicely even with optimisation turned on. Hurray! :-) + * [Documentation/user/*]: Fixed some formatting bugs in the texinfo files. + * [debian/control]: Modified description to hint that 1.3.41 is better + than 1.2.17. :-) + * [debian/{rules,emacsen-startup}]: Added an Emacs startup file + /etc/emacs/site-start.d/50lilypond1.3.el so that lilypond-mode is + automatically loaded for *.ly files. + + -- Anthony Fok Sat, 1 Apr 2000 03:49:31 -0700 + lilypond1.3 (1.3.24-1) frozen unstable; urgency=low * New upstream development release with lots of bug fixes. :-) diff --git a/debian/control b/debian/control index 12d811e790..9a9f184e8c 100644 --- a/debian/control +++ b/debian/control @@ -3,7 +3,7 @@ Build-Depends: debhelper (>= 2.0.71), python-base (>= 1.5.2-4), libguile6-dev, t Section: tex Priority: optional Maintainer: Anthony Fok -Standards-Version: 3.1.0 +Standards-Version: 3.1.1 Package: lilypond1.3 Architecture: any @@ -17,8 +17,9 @@ Description: A program for printing sheet music. using a high level description file as input. LilyPond is part of the GNU Project. . - This is the unstable 1.3 branch of LilyPond. It is not intended for - use with stable projects! + This is the developmental 1.3 branch of LilyPond. It is not intended for + use with stable projects, although arguably 1.3.41 is less buggy and much + more featureful than then the "stable" 1.2.17. . URLs: http://www.cs.uu.nl/~hanwen/lilypond/ http://www.xs4all.nl/~jantien/lilypond/ diff --git a/debian/copyright b/debian/copyright index 743e63c34d..50a67b39dc 100644 --- a/debian/copyright +++ b/debian/copyright @@ -5,10 +5,10 @@ The development branch, lilypond1.3, is packaged separately on Tue, 9 Nov 1999 22:30:32 -0700 It was downloaded from - ftp://ftp.lilypond.org/pub/LilyPond/v1.3/lilypond-1.3.24.tar.gz + ftp://ftp.lilypond.org/pub/LilyPond/v1.3/lilypond-1.3.41.tar.gz It is also available at: - ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/v1.3/lilypond-1.3.24.tar.gz + ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/v1.3/lilypond-1.3.41.tar.gz For more information about GNU LilyPond, please visit: http://www.cs.uu.nl/~hanwen/lilypond/ diff --git a/debian/out/control b/debian/out/control index 12d811e790..9a9f184e8c 100644 --- a/debian/out/control +++ b/debian/out/control @@ -3,7 +3,7 @@ Build-Depends: debhelper (>= 2.0.71), python-base (>= 1.5.2-4), libguile6-dev, t Section: tex Priority: optional Maintainer: Anthony Fok -Standards-Version: 3.1.0 +Standards-Version: 3.1.1 Package: lilypond1.3 Architecture: any @@ -17,8 +17,9 @@ Description: A program for printing sheet music. using a high level description file as input. LilyPond is part of the GNU Project. . - This is the unstable 1.3 branch of LilyPond. It is not intended for - use with stable projects! + This is the developmental 1.3 branch of LilyPond. It is not intended for + use with stable projects, although arguably 1.3.41 is less buggy and much + more featureful than then the "stable" 1.2.17. . URLs: http://www.cs.uu.nl/~hanwen/lilypond/ http://www.xs4all.nl/~jantien/lilypond/ diff --git a/debian/postinst b/debian/postinst index 8f096b4772..bf2f6503d0 100755 --- a/debian/postinst +++ b/debian/postinst @@ -3,7 +3,7 @@ # postinst script for the Debian GNU/Linux lilypond package # by Anthony Fok # Initial release: Sun, 26 Oct 1997 03:23:00 -0700 -# Last modified: Wed, 7 Jul 1999 19:36:36 -0600 +# Last modified: Sun, 26 Mar 2000 02:18:41 -0700 set -e @@ -26,4 +26,4 @@ install-info --description='LilyPond, the GNU Project music typesetter' \ echo echo " $pkg_name configuration completed." -echo " Please read /usr/doc/$package/README.Debian to get started." +echo " Please read /usr/share/doc/lilypond1.3/README.Debian to get started." diff --git a/debian/rules b/debian/rules index a1f112f953..d024ca3783 100755 --- a/debian/rules +++ b/debian/rules @@ -26,13 +26,12 @@ build-stamp: dh_testdir ./configure --disable-checking --disable-debugging \ - --enable-printing --prefix=/usr --disable-optimise \ + --enable-printing --prefix=/usr --enable-optimise \ --enable-shared \ --infodir='$${prefix}/share/info' \ --mandir='$${prefix}/share/man' $(MAKE) all $(MAKE) -C Documentation -# $(MAKE) -C Documentation/programmer ps $(MAKE) -C Documentation/user ps $(MAKE) -C Documentation/pictures pngs @@ -56,8 +55,8 @@ install: build dh_testroot dh_clean -k dh_installdirs usr/share/doc/texmf \ - usr/share/emacs/site-lisp \ $(d)/examples \ + usr/share/emacs/site-lisp \ usr/share/texmf/tex \ usr/share/texmf/fonts/source/public \ usr/share/texmf/fonts/afm/public \ @@ -78,22 +77,22 @@ binary-indep: build install binary-arch: build install dh_testdir dh_testroot - cp -av lilypond-mode.el $(r)/usr/share/emacs/site-lisp + cp -av lilypond-mode.el $(r)/usr/share/emacs/site-lisp/ dh_installdocs DEDICATION TODO *.txt \ Documentation/pictures/out/*.png \ Documentation/out/*.txt \ Documentation/*/out/[a-z]*.dvi \ Documentation/*/out/*.ps mkdir $(r)/$(d)/bibliography $(r)/$(d)/misc - cp -a Documentation/bibliography/*.bib $(r)/$(d)/bibliography - cp -a Documentation/misc/[ACN]* $(r)/$(d)/misc + cp -a Documentation/bibliography/*.bib $(r)/$(d)/bibliography/ + cp -a Documentation/misc/[ACN]* $(r)/$(d)/misc/ # dh_installexamples input cp -aP `find input mutopia \( -name '*.*ly' -o -name '*.abc' -o -name '*.tex' -o -name 'TODO' \)` \ $(r)/$(d)/examples for i in `find $(r)/$(d)/examples/ -type d -name out`; do \ mv -fv $$i/* $$i/..; rmdir $$i; done # dh_installmenu -# dh_installemacsen + dh_installemacsen # dh_installcron # dh_installmanpages # dh_undocumented diff --git a/input/test/staff-margin.ly b/input/test/staff-margin.ly index 455a2c6e42..1e2ec60b60 100644 --- a/input/test/staff-margin.ly +++ b/input/test/staff-margin.ly @@ -15,7 +15,9 @@ linewidth=-1.0; \translator { \ScoreContext %textVerticalAlignment = #0 } -\translator { \StaffContext \consists "Staff_margin_engraver"; } -\translator { \PianoStaffContext \consists "Staff_margin_engraver"; } +%\translator { \StaffContext \consists "Staff_margin_engraver"; } +%\translator { \PianoStaffContext \consists "Staff_margin_engraver"; } +\translator { \StaffContext \consists "New_staff_margin_engraver"; } +\translator { \PianoStaffContext \consists "New_staff_margin_engraver"; } }} diff --git a/input/test/standchen-as5.ly b/input/test/standchen-as5.ly index df076684cb..c36178ee77 100644 --- a/input/test/standchen-as5.ly +++ b/input/test/standchen-as5.ly @@ -4,14 +4,14 @@ \score { \context StaffGroup < \context Staff=upper \notes\relative c{ - \key F; + \key f; \time 3/4; r8^"Moderato" %\pp | r8 } \context Staff=lower \notes\relative c{ - \key F; + \key f; \time 3/4; \clef "bass"; r4 diff --git a/input/test/tchaikovsky.ly b/input/test/tchaikovsky.ly index 831c12ce21..5a53e73286 100644 --- a/input/test/tchaikovsky.ly +++ b/input/test/tchaikovsky.ly @@ -16,7 +16,7 @@ instrument= "Violoncello"; \notes \relative c{ \clef "bass"; - \key D; + \key d; | ~ r8 r4 | a2\ppp\cr a2\rc\p\decr | ~ r8 r4 | a2\pppp ~ a8 r8 r4 | a2\ppppp ~ a8 r8 r4 | r4 a8_"pizz" @@ -32,7 +32,7 @@ instrument= "Violoncello"; \notes \relative c{ \clef "bass"; - \key C; + \key c; | | ~ ~ | } diff --git a/input/tutorial/galuppi.ly b/input/tutorial/galuppi.ly index 0a74e2feff..64384ec1c2 100644 --- a/input/tutorial/galuppi.ly +++ b/input/tutorial/galuppi.ly @@ -21,10 +21,10 @@ tenor = \notes \relative c' { \score { \context PianoStaff \notes < - \context Staff = top { \key D; \time 4/4; + \context Staff = top { \key d; \time 4/4; \soprano } - \context Staff = bottom < \key D; \time 4/4; \clef bass; + \context Staff = bottom < \key d; \time 4/4; \clef bass; \context Voice = up { \tenor } \context Voice = down { \bass } > diff --git a/lily/align-interface.cc b/lily/align-interface.cc index 6908147504..9d5a00abf5 100644 --- a/lily/align-interface.cc +++ b/lily/align-interface.cc @@ -30,6 +30,21 @@ Align_interface::alignment_callback (Dimension_cache const *c) return 0.0; } + +Real +Align_interface::center_on_element (Dimension_cache const *c) +{ + Score_element *me = c->element_l (); + Score_element *cent = unsmob_element (me->get_elt_property ("group-center-element")); + + if (cent) + { + Real r = cent->relative_coordinate (me, c->axis ()); + return -r; + } + return 0; +} + /* Hairy function to put elements where they should be. Can be tweaked from the outside by setting minimum-space and extra-space in its diff --git a/lily/axis-group-interface.cc b/lily/axis-group-interface.cc index 8cdb9ef67a..c22bbeedb0 100644 --- a/lily/axis-group-interface.cc +++ b/lily/axis-group-interface.cc @@ -48,26 +48,38 @@ Axis_group_interface::axis_b (Axis a )const return elt_l_->dim_cache_[a]->extent_callback_l_ == group_extent_callback; } +Interval +Axis_group_interface::relative_group_extent (Axis a, Score_element *common, SCM elts) +{ + Interval r; + for (SCM s = elts; gh_pair_p (s); s = gh_cdr (s)) + { + Score_element * se = unsmob_element (gh_car (s)); + Interval dims = se->extent (a); + if (!dims.empty_b ()) + r.unite (dims + se->relative_coordinate (common, a)); + } + return r; +} + Interval Axis_group_interface::group_extent_callback (Dimension_cache const *c) { Axis a = c->axis (); Score_element * me = c->element_l (); + Score_element * common = me; - Interval r; for (SCM s = me->get_elt_property ("elements"); gh_pair_p (s); s = gh_cdr (s)) { - SCM e=gh_car (s); - Score_element * se = SMOB_TO_TYPE (Score_element, e); - - Interval dims = se->extent (a); - if (!dims.empty_b ()) - r.unite (dims + se->relative_coordinate (me, a)); + Score_element * se = unsmob_element (gh_car (s)); + common = se->common_refpoint (common, a); } - return r; -} + Real my_coord = me->relative_coordinate (common, a); + Interval r (relative_group_extent (a, common, me->get_elt_property ("elements"))); + return r - my_coord; +} void Axis_group_interface::set_interface () @@ -75,7 +87,7 @@ Axis_group_interface::set_interface () if (!has_interface_b ()) { elt_l_->set_elt_property ("elements", SCM_EOL); - elt_l_->set_elt_property ("transparent", SCM_BOOL_T); + elt_l_->set_elt_property ("transparent", SCM_BOOL_T); // junk this? elt_l_->set_elt_property ("axes" , SCM_EOL); group (elt_l_, "interfaces").add_thing (ly_symbol2scm ("Axis_group")); } diff --git a/lily/bar-engraver.cc b/lily/bar-engraver.cc index c138d6c3c3..c14198a0d2 100644 --- a/lily/bar-engraver.cc +++ b/lily/bar-engraver.cc @@ -29,7 +29,7 @@ Bar_engraver::create_bar () if (!bar_p_) { bar_p_ = new Staff_bar; - bar_p_->set_elt_property ("break-aligned", SCM_BOOL_T); + bar_p_->set_elt_property ("break-align-symbol", ly_symbol2scm ("Staff_bar")); // urg: "" != empty... SCM default_type = get_property ("defaultBarType"); diff --git a/lily/bar.cc b/lily/bar.cc index bdb41250ff..299c5e9b3d 100644 --- a/lily/bar.cc +++ b/lily/bar.cc @@ -39,41 +39,12 @@ Bar::do_brew_molecule () const if (gh_string_p (s)) { String str =ly_scm2string (s); - if (str == "bracket") - return staff_bracket (get_bar_size ()); - else if (str == "brace") - return staff_brace (get_bar_size ()); - else - return compound_barline (str, get_bar_size ()); + return compound_barline (str, get_bar_size ()); } return Molecule (); } -Molecule -Bar::staff_bracket (Real height) const -{ - Paper_def* p= paper_l (); - Real arc_height = p->get_var("bracket_arch_height"); - SCM at = gh_list (ly_symbol2scm ("bracket"), - gh_double2scm (p->get_var("bracket_arch_angle")), - gh_double2scm (p->get_var("bracket_arch_width")), - gh_double2scm (arc_height), - gh_double2scm (p->get_var("bracket_width")), - gh_double2scm (height), - gh_double2scm (p->get_var("bracket_arch_thick")), - gh_double2scm (p->get_var("bracket_thick")), - SCM_UNDEFINED); - - Real staff_space = p->get_var ("interline"); - Real h = height + 2 * arc_height; - Box b (Interval (0, 1.5 * staff_space), Interval (-h/2, h/2)); - Molecule mol (b, at); - - mol.translate_axis (- mol.dim_[X_AXIS].length () / 2, X_AXIS); - return mol; -} - Molecule Bar::compound_barline (String str, Real h) const { @@ -122,21 +93,10 @@ Bar::compound_barline (String str, Real h) const } else if (str == ":|:") { -// m.add_at_edge (X_AXIS, LEFT, thick, thinkern); -// m.add_at_edge (X_AXIS, LEFT, colon, kern); -// m.add_at_edge (X_AXIS, RIGHT, thick, kern); -// m.add_at_edge (X_AXIS, RIGHT, colon, kern); - m.add_at_edge (X_AXIS, RIGHT, thick, 0); - m.add_at_edge (X_AXIS, RIGHT, thin, kern); - m.add_at_edge (X_AXIS, RIGHT, colon, kern); - m.add_at_edge (X_AXIS, LEFT, thin, kern); + m.add_at_edge (X_AXIS, LEFT, thick, thinkern); m.add_at_edge (X_AXIS, LEFT, colon, kern); - } - else if (str == ";|;") - { - m.add_at_edge (X_AXIS, RIGHT, thick, 0); - m.add_at_edge (X_AXIS, RIGHT, thin, kern); - m.add_at_edge (X_AXIS, LEFT, thin, kern); + m.add_at_edge (X_AXIS, RIGHT, thick, kern); + m.add_at_edge (X_AXIS, RIGHT, colon, kern); } else if (str == ".|.") { @@ -152,40 +112,6 @@ Bar::compound_barline (String str, Real h) const return m; } -/* - ugh. Suck me plenty. - */ -Molecule -Bar::staff_brace (Real y) const -{ - Real staffht = paper_l ()->get_var ("staffheight"); - int staff_size = int (rint (staffht )); - - // URG - Real step = 1.0; - int minht = 2 * staff_size; - int maxht = 7 * minht; - int idx = int (((maxht - step) ? 0; - - SCM l = scm_eval (gh_list (ly_symbol2scm ("style-to-cmr"), - ly_str02scm ("brace"), - SCM_UNDEFINED)); - - String nm = "feta-braces"; - if (l != SCM_BOOL_F) - nm = ly_scm2string (gh_cdr (l)); - nm += to_str (staff_size); - SCM e =gh_list (ly_symbol2scm ("char"), gh_int2scm (idx), SCM_UNDEFINED); - SCM at = (e); - - at = fontify_atom (all_fonts_global_p->find_font (nm), at); - - Box b (Interval (0,0), Interval (-y/2, y/2)); - - return Molecule(b, at); -} - Molecule Bar::simple_barline (Real w, Real h) const diff --git a/lily/base-span-bar-engraver.cc b/lily/base-span-bar-engraver.cc deleted file mode 100644 index 3993776b42..0000000000 --- a/lily/base-span-bar-engraver.cc +++ /dev/null @@ -1,95 +0,0 @@ -/* - span-bar-grav.cc -- implement Base_span_bar_engraver - - source file of the GNU LilyPond music typesetter - - (c) 1997--2000 Han-Wen Nienhuys -*/ - -#include "dimension-cache.hh" -#include "lily-guile.hh" -#include "span-bar.hh" -#include "base-span-bar-engraver.hh" - -Base_span_bar_engraver::Base_span_bar_engraver() -{ - spanbar_p_ =0; - use_priority_b_ = true; -} - -Span_bar* -Base_span_bar_engraver::get_span_bar_p() const -{ - return new Span_bar; -} - - -void -Base_span_bar_engraver::acknowledge_element (Score_element_info i) -{ - int depth = i.origin_trans_l_arr (this).size(); - if (depth > 1 - && dynamic_cast (i.elem_l_)) - { - bar_l_arr_.push (dynamic_cast (i.elem_l_)); - - if (bar_l_arr_.size() >= 2 && !spanbar_p_) - /* - hmm, i do want a bracket with one staff some times, but not always - if (bar_l_arr_.size() >= 1 && !spanbar_p_) - - --jcn - */ - - /* - - use a property? get_property ("singleStaffBracket"); ? - - --hwn - */ - { - spanbar_p_ = get_span_bar_p(); - spanbar_p_->set_parent (bar_l_arr_[0], Y_AXIS); - - /* - UGH. UGH UUHGK GUHG G - */ - String visnam = String(name()) + "-visibility"; - - spanbar_p_->set_elt_property ("visibility-lambda", - scm_eval (ly_symbol2scm (visnam.ch_C()))); - - if (use_priority_b_) - { - spanbar_p_->set_elt_property ("break-aligned", SCM_BOOL_T); - } - else - { - spanbar_p_->set_parent (bar_l_arr_[0], X_AXIS); - } - - announce_element (Score_element_info (spanbar_p_,0)); - if (!gh_string_p (spanbar_p_->get_elt_property ("glyph"))) - spanbar_p_-> set_elt_property ("glyph", - bar_l_arr_[0]->get_elt_property ("glyph")); - } - } -} - -void -Base_span_bar_engraver::do_pre_move_processing() -{ - if (spanbar_p_) - { - for (int i=0; i < bar_l_arr_.size() ; i++) - spanbar_p_->add_bar (bar_l_arr_[i]); - typeset_element (spanbar_p_); - spanbar_p_ =0; - } - bar_l_arr_.set_size (0); -} - - - -ADD_THIS_TRANSLATOR(Base_span_bar_engraver); - diff --git a/lily/break-align-engraver.cc b/lily/break-align-engraver.cc index ec8495d9ba..24900b3f81 100644 --- a/lily/break-align-engraver.cc +++ b/lily/break-align-engraver.cc @@ -11,6 +11,7 @@ #include "break-align-item.hh" #include "align-interface.hh" #include "axis-group-interface.hh" +#include "dimension-cache.hh" class Break_align_engraver : public Engraver { @@ -88,20 +89,36 @@ Break_align_engraver::acknowledge_element (Score_element_info inf) if (!breakable) return ; - SCM al = item_l->remove_elt_property ("break-aligned"); - if (!gh_boolean_p (al ) || !gh_scm2bool (al)) + SCM align_name = item_l->remove_elt_property ("break-align-symbol"); + if (!gh_symbol_p (align_name)) return ; - if (!align_l_) { align_l_ = new Break_align_item; align_l_->set_elt_property ("breakable", SCM_BOOL_T); announce_element (Score_element_info (align_l_,0)); + + + Item * edge = new Item; + SCM edge_sym = ly_symbol2scm ("Left_edge_item"); + edge->set_elt_property ("break-align-symbol", edge_sym); + + /* + If the element is empty, it will be ignored in the break + alignment stuff. + + TODO: switch off ignoring empty stuff? + */ + edge->dim_cache_[X_AXIS]->set_extent_callback (Dimension_cache::point_dimension_callback); + + align_l_->set_elt_property ("group-center-element", edge->self_scm_); + + announce_element (Score_element_info(edge, 0)); + column_alist_ = scm_assoc_set_x (column_alist_, edge_sym, edge->self_scm_); } - SCM name = ly_str02scm (inf.elem_l_->name()); - SCM s = scm_assoc (name, column_alist_); + SCM s = scm_assoc (align_name, column_alist_); Item * group = 0; @@ -117,10 +134,10 @@ Break_align_engraver::acknowledge_element (Score_element_info inf) Axis_group_interface (group).set_interface (); Axis_group_interface (group).set_axes (X_AXIS,X_AXIS); - group->set_elt_property ("origin", name); + group->set_elt_property ("break-align-symbol", align_name); group->set_parent (align_l_, Y_AXIS); announce_element (Score_element_info (group, 0)); - column_alist_ = scm_assoc_set_x (column_alist_, name, group->self_scm_); + column_alist_ = scm_assoc_set_x (column_alist_, align_name, group->self_scm_); } Axis_group_interface (group).add_element (item_l); } diff --git a/lily/break-align-item.cc b/lily/break-align-item.cc index ebaf7f3aee..74fc20e399 100644 --- a/lily/break-align-item.cc +++ b/lily/break-align-item.cc @@ -22,12 +22,18 @@ void Break_align_item::before_line_breaking () { - Direction ad = (break_status_dir() == LEFT) ? RIGHT : LEFT; - Real interline= paper_l ()->get_var ("interline"); - - set_elt_property ("self-alignment-X", gh_int2scm (ad)); + if (break_status_dir() == LEFT) + { + set_elt_property ("self-alignment-X", gh_int2scm (RIGHT)); + } + else + { + add_offset_callback (Align_interface::center_on_element, X_AXIS); + } + + Real interline= paper_l ()->get_var ("interline"); Link_array elems; Link_array all_elems = Group_interface__extract_elements (this, (Score_element*)0, @@ -45,7 +51,7 @@ Break_align_item::before_line_breaking () SCM symbol_list = SCM_EOL; Array dists; - SCM current_origin = ly_str02scm (""); + SCM current_origin = ly_symbol2scm ("none"); for (int i=0; i <= elems.size (); i++) { Score_element *next_elt = i < elems.size () @@ -56,18 +62,20 @@ Break_align_item::before_line_breaking () if (next_elt) { - next_origin = next_elt->get_elt_property ("origin"); + next_origin = next_elt->get_elt_property ("break-align-symbol"); next_origin = (next_origin == SCM_UNDEFINED) - ? ly_str02scm ("") + ? ly_symbol2scm ("none") : next_origin; } else - next_origin = ly_str02scm ("begin-of-note"); + next_origin = ly_symbol2scm ("begin-of-note"); SCM extra_space = scm_eval (scm_listify (ly_symbol2scm ("break-align-spacer"), - current_origin, next_origin, SCM_UNDEFINED)); + ly_quote_scm (current_origin), + ly_quote_scm (next_origin), + SCM_UNDEFINED)); SCM symbol = gh_car (extra_space); Real spc = gh_scm2double (SCM_CADR(extra_space)); spc *= interline; @@ -137,7 +145,6 @@ Break_align_item::before_line_breaking () /* Hint the spacing engine how much space to put in. - The pairs are in the format of an interval (ie. CAR < CDR). */ column_l ()->set_elt_property ("extra-space", diff --git a/lily/breathing-sign-engraver.cc b/lily/breathing-sign-engraver.cc index afa950d618..2508bb8390 100644 --- a/lily/breathing-sign-engraver.cc +++ b/lily/breathing-sign-engraver.cc @@ -47,7 +47,8 @@ Breathing_sign_engraver::do_process_music() if(breathing_sign_req_l_) { breathing_sign_p_ = new Breathing_sign; - breathing_sign_p_->set_elt_property ("break-aligned", SCM_BOOL_T); + breathing_sign_p_->set_elt_property ("break-align-symbol", + ly_symbol2scm ("Breathing_sign")); Staff_symbol_referencer_interface st (breathing_sign_p_); st.set_interface (); diff --git a/lily/clef-engraver.cc b/lily/clef-engraver.cc index 041e3410f5..bfd3c54f5a 100644 --- a/lily/clef-engraver.cc +++ b/lily/clef-engraver.cc @@ -164,7 +164,7 @@ Clef_engraver::create_clef() { Clef_item *c= new Clef_item; c->set_elt_property ("breakable", SCM_BOOL_T); - c->set_elt_property ("break-aligned", SCM_BOOL_T); + c->set_elt_property ("break-align-symbol", ly_symbol2scm ("Clef_item")); announce_element (Score_element_info (c, clef_req_l_)); Staff_symbol_referencer_interface si(c); diff --git a/lily/include/align-interface.hh b/lily/include/align-interface.hh index 0809620234..ad9d51f876 100644 --- a/lily/include/align-interface.hh +++ b/lily/include/align-interface.hh @@ -46,6 +46,7 @@ struct Align_interface { int get_count (Score_element*)const; void set_interface (); bool has_interface_b (); + static Real center_on_element (Dimension_cache const *c); }; #endif /* ALIGN_INTERFACE_HH */ diff --git a/lily/include/axis-group-interface.hh b/lily/include/axis-group-interface.hh index f1382da9be..7bacbf8ac3 100644 --- a/lily/include/axis-group-interface.hh +++ b/lily/include/axis-group-interface.hh @@ -32,6 +32,7 @@ struct Axis_group_interface Axis_group_interface (Score_element*); static Interval group_extent_callback (Dimension_cache const*); + static Interval relative_group_extent (Axis, Score_element * common, SCM list); void add_element (Score_element*); void set_axes (Axis,Axis); @@ -39,6 +40,7 @@ struct Axis_group_interface Link_array get_children (); bool has_interface_b (); void set_interface (); + }; #endif /* AXIS_GROUP_INTERFACE_HH */ diff --git a/lily/include/bar.hh b/lily/include/bar.hh index 994f04b500..aa429c89bb 100644 --- a/lily/include/bar.hh +++ b/lily/include/bar.hh @@ -16,8 +16,6 @@ public: VIRTUAL_COPY_CONS(Score_element); Bar(); - Molecule staff_bracket (Real height) const; - Molecule staff_brace (Real height) const; Molecule compound_barline (String, Real height) const; Molecule simple_barline (Real wid, Real height) const; diff --git a/lily/include/base-span-bar-engraver.hh b/lily/include/base-span-bar-engraver.hh deleted file mode 100644 index d3a360db3b..0000000000 --- a/lily/include/base-span-bar-engraver.hh +++ /dev/null @@ -1,46 +0,0 @@ -/* - base-span-bar-engraver.hh -- declare Span_bar_engraver - - source file of the GNU LilyPond music typesetter - - (c) 1997--2000 Han-Wen Nienhuys -*/ - - -#ifndef SPAN_BAR_GRAV_HH -#define SPAN_BAR_GRAV_HH - -#include "engraver.hh" -class Axis_align_spanner; -/** - - Make bars that span multiple "staffs". Catch bars, and span a - Span_bar over them if we find more than 2 bars. Vertical alignment - of staffs changes the appearance of spanbars. It is up to the - aligner (Vertical_align_engraver, in this case, to add extra - dependencies to the spanbars. - - */ -class Base_span_bar_engraver : public Engraver -{ - Span_bar * spanbar_p_; - Array bar_l_arr_; - -public: - VIRTUAL_COPY_CONS(Translator); - - - Base_span_bar_engraver(); -protected: - /** - Do we use break priorities? If true, use break_priority_i_ as - horizontal alignment priority, otherwise, hang the spanbar on the - acknowledged bar. */ - bool use_priority_b_; - - virtual void acknowledge_element (Score_element_info); - virtual void do_pre_move_processing(); - virtual Span_bar* get_span_bar_p() const; -}; - -#endif // SPAN_BAR_GRAV_HH diff --git a/lily/include/break-align-item.hh b/lily/include/break-align-item.hh index c9a5aa1632..49057bde8d 100644 --- a/lily/include/break-align-item.hh +++ b/lily/include/break-align-item.hh @@ -12,7 +12,18 @@ #include "item.hh" -/// align breakable items (clef, bar, etc.) +/** + align breakable items (clef, bar, etc.) + + Properties: + + break-align-symbol -- the index in the spacing table (symbol) of + the to be aligned item. + + + TODO: remove this as a class, and make interface. + */ + class Break_align_item : public Item { protected: diff --git a/lily/include/span-bar.hh b/lily/include/span-bar.hh index 93213fa0b2..796df94a1c 100644 --- a/lily/include/span-bar.hh +++ b/lily/include/span-bar.hh @@ -33,7 +33,6 @@ protected: void evaluate_empty (); static Interval width_callback(Dimension_cache const*) ; - static Interval height_callback(Dimension_cache const*) ; virtual Real get_bar_size () const; virtual void before_line_breaking (); diff --git a/lily/include/system-start-delimiter.hh b/lily/include/system-start-delimiter.hh new file mode 100644 index 0000000000..7d7b5c6977 --- /dev/null +++ b/lily/include/system-start-delimiter.hh @@ -0,0 +1,31 @@ +/* + System-start-delimiter.hh -- declare System_start_delimiter + + source file of the GNU LilyPond music typesetter + + (c) 2000 Han-Wen Nienhuys + + */ + +#ifndef SYSTEM_START_DELIMITER_HH +#define SYSTEM_START_DELIMITER_HH + +#include "spanner.hh" + +/* + Braces/brackets across staffs. + */ +class System_start_delimiter : public Spanner +{ +public: + System_start_delimiter (); + VIRTUAL_COPY_CONS (Score_element); +protected: + virtual Molecule do_brew_molecule () const; + Molecule staff_bracket (Real) const; + Molecule staff_brace (Real) const; + Molecule simple_bar (Real) const; +}; + +#endif /* SYSTEM_START_DELIMITER_HH */ + diff --git a/lily/include/translator-group.hh b/lily/include/translator-group.hh index b2cba74b19..e144a3e8e4 100644 --- a/lily/include/translator-group.hh +++ b/lily/include/translator-group.hh @@ -41,7 +41,7 @@ protected: public: SCM get_property (SCM name_sym) const; void set_property (String var_name, SCM value); - + Translator_group *where_defined (SCM name_sym) const; String id_str_; void add_last_element (String s); diff --git a/lily/instrument-name-engraver.cc b/lily/instrument-name-engraver.cc new file mode 100644 index 0000000000..e16a53c927 --- /dev/null +++ b/lily/instrument-name-engraver.cc @@ -0,0 +1,89 @@ +/* + new-staff-margin-engraver.cc -- implement Instrument_name_engraver + + source file of the GNU LilyPond music typesetter + + (c) 2000 Han-Wen Nienhuys + + */ + +#include "engraver.hh" +#include "text-item.hh" +#include "bar.hh" +#include "span-bar.hh" + +class Instrument_name_engraver : public Engraver +{ + Text_item *text_; + + void create_text (SCM s); +public: + VIRTUAL_COPY_CONS(Translator); + Instrument_name_engraver (); + + virtual void acknowledge_element (Score_element_info); + virtual void do_pre_move_processing (); +}; + +ADD_THIS_TRANSLATOR(Instrument_name_engraver); + +Instrument_name_engraver::Instrument_name_engraver () +{ + text_ = 0; +} + + +void +Instrument_name_engraver::do_pre_move_processing () +{ + if (text_) + { + typeset_element (text_); + text_ = 0; + } +} + +void +Instrument_name_engraver::create_text (SCM txt) +{ + if(!text_) + { + text_ = new Text_item; + text_->set_elt_property ("text", txt); + text_->set_elt_property ("breakable", SCM_BOOL_T); + + /* + TODO: use more lispish names for break-align-symbols + */ + text_->set_elt_property ("break-align-symbol", ly_symbol2scm ("Instrument_name")); + text_->set_elt_property ("visibility-lambda", + scm_eval (ly_symbol2scm ("begin-of-line-visible"))); + + announce_element (Score_element_info (text_,0)); + } +} + +void +Instrument_name_engraver::acknowledge_element (Score_element_info i) +{ + SCM s = get_property ("instrument"); + + if (now_mom () > Moment (0)) + s = get_property ("instr"); + + if (gh_string_p (s)) + { + if (Bar* b= dynamic_cast (i.elem_l_)) + { + create_text (s); + if (Span_bar* s= dynamic_cast (b)) + { + text_->set_parent (s, Y_AXIS); + } + } + } +} + + + + diff --git a/lily/key-engraver.cc b/lily/key-engraver.cc index e81e72c227..ac97736344 100644 --- a/lily/key-engraver.cc +++ b/lily/key-engraver.cc @@ -36,9 +36,9 @@ Key_engraver::create_key () item_p_ = new Key_item; Staff_symbol_referencer_interface st (item_p_); st.set_interface (); + - item_p_->set_elt_property ("break-aligned", SCM_BOOL_T); // ugh - + item_p_->set_elt_property ("break-align-symbol", ly_symbol2scm ("Key_item")); item_p_->set_elt_property ("multi-octave", gh_bool2scm (key_.multi_octave_b_)); diff --git a/lily/new-span-bar-engraver.cc b/lily/new-span-bar-engraver.cc new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/lily/new-span-bar-engraver.cc @@ -0,0 +1 @@ + diff --git a/lily/side-position-interface.cc b/lily/side-position-interface.cc index 2d29cf9e33..f93dd1856f 100644 --- a/lily/side-position-interface.cc +++ b/lily/side-position-interface.cc @@ -145,6 +145,8 @@ Side_position_interface::aligned_on_self (Dimension_cache const *c) return 0.0; } + + Real directed_round (Real f, Direction d) { diff --git a/lily/spacing-spanner.cc b/lily/spacing-spanner.cc index d485c9abfd..edd41f5ae6 100644 --- a/lily/spacing-spanner.cc +++ b/lily/spacing-spanner.cc @@ -143,8 +143,7 @@ Spacing_spanner::do_measure (Link_array cols) const if (rc->musical_b () && to_boolean (rc->get_elt_property ("contains-grace"))) right_dist *= paper_l ()->get_var ("before_grace_spacing_factor"); - - s.distance_f_ = left_distance + right_dist; + s.distance_f_ = left_distance + right_dist; Real stretch_dist = 0.; if (gh_number_p (stretch_hint)) diff --git a/lily/span-bar-engraver.cc b/lily/span-bar-engraver.cc index 135d978c15..e8d771e263 100644 --- a/lily/span-bar-engraver.cc +++ b/lily/span-bar-engraver.cc @@ -1,17 +1,99 @@ -#include "base-span-bar-engraver.hh" +/* + span-bar-grav.cc -- implement Span_bar_engraver + source file of the GNU LilyPond music typesetter -class Span_bar_engraver : public Base_span_bar_engraver + (c) 1997--2000 Han-Wen Nienhuys +*/ + +#include "dimension-cache.hh" +#include "lily-guile.hh" +#include "span-bar.hh" +#include "engraver.hh" + +/** + + Make bars that span multiple "staffs". Catch bars, and span a + Span_bar over them if we find more than 2 bars. Vertical alignment + of staffs changes the appearance of spanbars. It is up to the + aligner (Vertical_align_engraver, in this case, to add extra + dependencies to the spanbars. + + */ +class Span_bar_engraver : public Engraver { + Span_bar * spanbar_p_; + Link_array bar_l_arr_; + public: - Span_bar_engraver (); - VIRTUAL_COPY_CONS (Translator); + VIRTUAL_COPY_CONS(Translator); + Span_bar_engraver(); +protected: + virtual void acknowledge_element (Score_element_info); + virtual void do_pre_move_processing(); + virtual Span_bar* get_span_bar_p() const; }; -Span_bar_engraver::Span_bar_engraver () +Span_bar_engraver::Span_bar_engraver() +{ + spanbar_p_ =0; +} + +Span_bar* +Span_bar_engraver::get_span_bar_p() const +{ + return new Span_bar; +} + + +void +Span_bar_engraver::acknowledge_element (Score_element_info i) { - use_priority_b_ = false; + int depth = i.origin_trans_l_arr (this).size(); + if (depth > 1 + && dynamic_cast (i.elem_l_)) + { + bar_l_arr_.push (dynamic_cast (i.elem_l_)); + + if (bar_l_arr_.size() >= 2 && !spanbar_p_) + { + spanbar_p_ = get_span_bar_p(); + spanbar_p_->set_parent (bar_l_arr_[0], Y_AXIS); + + /* + UGH. UGH UUHGK GUHG G + */ + String visnam = String(name()) + "-visibility"; + + spanbar_p_->set_elt_property ("visibility-lambda", + scm_eval (ly_symbol2scm (visnam.ch_C()))); + + spanbar_p_->set_parent (bar_l_arr_[0], X_AXIS); + announce_element (Score_element_info (spanbar_p_,0)); + if (!gh_string_p (spanbar_p_->get_elt_property ("glyph"))) + spanbar_p_-> set_elt_property ("glyph", + bar_l_arr_[0]->get_elt_property ("glyph")); + } + } +} + +void +Span_bar_engraver::do_pre_move_processing() +{ + if (spanbar_p_) + { + for (int i=0; i < bar_l_arr_.size() ; i++) + spanbar_p_->add_bar (bar_l_arr_[i]); + typeset_element (spanbar_p_); + spanbar_p_ =0; + } + bar_l_arr_.set_size (0); } + + ADD_THIS_TRANSLATOR(Span_bar_engraver); + + + diff --git a/lily/span-bar.cc b/lily/span-bar.cc index 2ed93ad545..494a90b2ff 100644 --- a/lily/span-bar.cc +++ b/lily/span-bar.cc @@ -12,9 +12,9 @@ #include "paper-def.hh" #include "molecule.hh" #include "warn.hh" +#include "axis-group-interface.hh" #include "group-interface.hh" - void Span_bar::add_bar (Score_element*b) { @@ -31,7 +31,8 @@ Span_bar::width_callback (Dimension_cache const * c) Span_bar* s= dynamic_cast (c->element_l ()); String gl = ly_scm2string (s->get_elt_property ("glyph")); - /*urg. + /* + urg. */ Molecule m = s->compound_barline (gl, 40 PT); @@ -41,26 +42,15 @@ Span_bar::width_callback (Dimension_cache const * c) void Span_bar::before_line_breaking () { - evaluate_empty (); - Bar::before_line_breaking (); - // set_empty (false, Y_AXIS); // a hack to make mark scripts work. + evaluate_empty (); } void Span_bar::after_line_breaking () { Bar::after_line_breaking (); - SCM s = get_elt_property ("collapse-height"); - if (gh_number_p (s) - && get_spanned_interval ().length () < gh_scm2double (s)) - { - set_elt_property ("transparent", SCM_BOOL_T); - set_empty (X_AXIS); - set_empty (Y_AXIS); - } - Interval i (get_spanned_interval ()); translate_axis (i.center (), Y_AXIS); } @@ -94,45 +84,21 @@ Span_bar::evaluate_empty () } else if (type_str== ":|:") { - type_str= ";|;"; + type_str= ".|."; } - set_elt_property ("glyph", ly_str02scm (type_str.ch_C ())); } + + /* + uhh. should do something with type_str ?!! + */ } Interval Span_bar::get_spanned_interval () const { - Interval y_int; - - for (SCM s = get_elt_property ("elements"); gh_pair_p (s); s = gh_cdr (s)) - { - Score_element *bar = unsmob_element ( gh_car (s)); - - if (!bar) - continue; - - Score_element*common = common_refpoint (bar, Y_AXIS); - - Interval iv (bar->extent(Y_AXIS)); - if (!iv.empty_b ()) - { - Real y = bar->relative_coordinate (common, Y_AXIS) - - relative_coordinate (common, Y_AXIS); - - y_int.unite (y + iv); - } - } - - return y_int; + return Axis_group_interface::group_extent_callback (dim_cache_[Y_AXIS]); } -Interval -Span_bar::height_callback (Dimension_cache const *c) -{ - Span_bar * s= dynamic_cast (c->element_l ()); - return s->get_spanned_interval (); -} Real Span_bar::get_bar_size () const @@ -150,6 +116,6 @@ Span_bar::Span_bar () { group (this).set_interface (); dim_cache_[X_AXIS]->set_extent_callback (width_callback); - dim_cache_[Y_AXIS]->set_extent_callback (height_callback); + dim_cache_[Y_AXIS]->set_extent_callback (Axis_group_interface::group_extent_callback); } diff --git a/lily/span-score-bar-engraver.cc b/lily/span-score-bar-engraver.cc index dc71a0ea17..8b13789179 100644 --- a/lily/span-score-bar-engraver.cc +++ b/lily/span-score-bar-engraver.cc @@ -1,77 +1 @@ -/* - span-score-bar-engraver.cc -- implement Span_score_bar_engraver, - Piano_bar_engraver and Staff_group_bar_engraver - - source file of the GNU LilyPond music typesetter - - (c) 1997--2000 Han-Wen Nienhuys -*/ - -#include "span-bar.hh" -#include "span-score-bar-engraver.hh" -#include "paper-def.hh" -#include "dimension-cache.hh" - -Span_bar* -Span_score_bar_engraver::get_span_bar_p () const -{ - Span_bar*s = new Span_bar; - s->set_elt_property ("glyph", gh_str02scm ("scorebar")); - s->set_elt_property ("break-aligned",SCM_BOOL_T); - - return s; -} - - -Span_score_bar_engraver::Span_score_bar_engraver () -{ - use_priority_b_ = true; -} - -Span_bar* -Piano_bar_engraver::get_span_bar_p () const -{ - Span_bar *s= new Span_bar; - s->set_empty (X_AXIS); - s->set_elt_property ("glyph", gh_str02scm ("brace")); - return s; -} - -Span_bar* -Staff_group_bar_engraver::get_span_bar_p () const -{ - Span_bar *s= new Span_bar; - s->set_empty (X_AXIS); - s->set_elt_property ("glyph", gh_str02scm ("bracket")); - - SCM collapse = get_property ("bracketCollapseHeight"); - if (gh_number_p (collapse)) - s->set_elt_property ("collapse-height", collapse); - else - s->set_elt_property ("collapse-height", gh_double2scm (1)); - - return s; -} - -void -Staff_group_bar_engraver::acknowledge_element (Score_element_info i) -{ - Base_span_bar_engraver::acknowledge_element (i); - - /* - UGH. This has to go into the backend. - */ - if (Span_bar * b = dynamic_cast (i.elem_l_)) - { - SCM gl = b->get_elt_property ("glyph"); - if (gh_string_p (gl) && ly_scm2string (gl) == "brace") - b->translate_axis ( -paper_l ()->get_var ("interline"), - X_AXIS); // ugh - } -} - -ADD_THIS_TRANSLATOR (Piano_bar_engraver); -ADD_THIS_TRANSLATOR (Staff_group_bar_engraver); -ADD_THIS_TRANSLATOR (Span_score_bar_engraver); - diff --git a/lily/staff-margin-engraver.cc b/lily/staff-margin-engraver.cc index f0887d650a..d200746bed 100644 --- a/lily/staff-margin-engraver.cc +++ b/lily/staff-margin-engraver.cc @@ -27,14 +27,6 @@ * merge with/derive from/add functionality to Bar_script_engraver */ -/** - Hang on left edge of staff to provide suppor for simple items. - */ -class Left_edge_item : public Item -{ -public: - VIRTUAL_COPY_CONS (Score_element); -}; /** put (instrument) text to left of line @@ -52,7 +44,7 @@ protected: private: String type_; Text_item* text_p_; - Left_edge_item* left_edge_p_; + Item* left_edge_p_; void create_text (SCM); }; @@ -81,7 +73,6 @@ Staff_margin_engraver::acknowledge_element (Score_element_info info) create_text (s); if (Span_bar* s= dynamic_cast (b)) { - assert (text_p_); text_p_->set_parent (s, Y_AXIS); } } @@ -94,27 +85,25 @@ Staff_margin_engraver::create_text (SCM text) if (!text_p_) { assert (!left_edge_p_); - Left_edge_item* l = new Left_edge_item; - - l->set_elt_property ("breakable", SCM_BOOL_T); - l->set_elt_property ("break-aligned", SCM_BOOL_T); + left_edge_p_ = new Item; + left_edge_p_->set_elt_property ("breakable", SCM_BOOL_T); + left_edge_p_->set_elt_property ("break-align-symbol", ly_symbol2scm ("Left_edge_item")); - announce_element (Score_element_info (l, 0)); + announce_element (Score_element_info (left_edge_p_, 0)); - Staff_symbol_referencer_interface sl (l); + Staff_symbol_referencer_interface sl (left_edge_p_); sl.set_interface (); - left_edge_p_ = l; Text_item* t = new Text_item; t->set_elt_property ("self-alignment-Y", gh_int2scm (0)); t->add_offset_callback (Side_position_interface::aligned_on_self, Y_AXIS); - t->set_parent (l, X_AXIS); - t->set_parent (l, Y_AXIS); + t->set_parent (left_edge_p_, X_AXIS); + t->set_parent (left_edge_p_, Y_AXIS); // 'just to be sure': see Clef_item::do_add_processing - l->add_dependency (t); + left_edge_p_->add_dependency (t); /* @@ -158,7 +147,7 @@ Staff_margin_engraver::create_text (SCM text) else { side_position (t).set_axis (X_AXIS); - side_position (t).add_support (l); + side_position (t).add_support (left_edge_p_); Direction d; if (isdir_b (s)) @@ -200,7 +189,7 @@ Staff_margin_engraver::do_pre_move_processing () scm_eval (ly_symbol2scm ("begin-of-line-visible"))); typeset_element (text_p_); text_p_ = 0; - assert (left_edge_p_); + typeset_element (left_edge_p_); left_edge_p_ = 0; } diff --git a/lily/system-start-delimiter-engraver.cc b/lily/system-start-delimiter-engraver.cc new file mode 100644 index 0000000000..d8ec2aed2f --- /dev/null +++ b/lily/system-start-delimiter-engraver.cc @@ -0,0 +1,97 @@ +/* + system-start-delimiter-engraver.cc -- implement System_start_delimiter_engraver + + source file of the GNU LilyPond music typesetter + + (c) 2000 Han-Wen Nienhuys + + */ + + +#include "system-start-delimiter.hh" +#include "engraver.hh" +#include "staff-symbol.hh" +#include "group-interface.hh" +#include "paper-column.hh" +#include "paper-def.hh" + +/* + TODO: rename this to system-open-engraver (or whatever.) + + */ +class System_start_delimiter_engraver : public Engraver +{ +public: + VIRTUAL_COPY_CONS(Translator); + System_start_delimiter_engraver(); + + Spanner * spanbar_; +protected: + + virtual void acknowledge_element (Score_element_info); + virtual void do_creation_processing (); + virtual void do_removal_processing (); +}; + +ADD_THIS_TRANSLATOR(System_start_delimiter_engraver); + + +void +System_start_delimiter_engraver::acknowledge_element (Score_element_info inf) +{ + if (dynamic_cast (inf.elem_l_)) + { + /* + don't add as Axis_group_interface (spanbar_).add_element (), + because that would set the parent as well */ + + Group_interface (spanbar_).add_element (inf.elem_l_); + } + else if (System_start_delimiter * b = dynamic_cast (inf.elem_l_)) + { + SCM gl = b->get_elt_property ("glyph"); + SCM my_gl = get_property ("spanBarGlyph"); + + /* + UGH UGH + */ + if (gh_symbol_p (gl) && gl == ly_symbol2scm ("brace") + && gh_symbol_p (my_gl) && my_gl == ly_symbol2scm ("bracket")) + b->translate_axis ( -paper_l ()->get_var ("interline"), X_AXIS); // ugh + } + +} + +System_start_delimiter_engraver::System_start_delimiter_engraver() +{ + spanbar_ = 0; +} + +void +System_start_delimiter_engraver::do_creation_processing() +{ + spanbar_ = new System_start_delimiter; + spanbar_->set_bound (LEFT, get_staff_info ().command_pcol_l ()); + announce_element (Score_element_info (spanbar_,0)); +} + +void +System_start_delimiter_engraver::do_removal_processing () +{ + SCM s = get_property ("systemStartDelimiterGlyph"); + if (gh_symbol_p (s)) + { + spanbar_->set_elt_property ("glyph", s); + } + + // ugh, should have naming without bracket + SCM collapse = get_property ("bracketCollapseHeight"); + if (gh_number_p (collapse)) + spanbar_->set_elt_property ("collapse-height", collapse); + else + spanbar_->set_elt_property ("collapse-height", gh_double2scm (1)); + + spanbar_->set_bound (RIGHT, get_staff_info ().command_pcol_l ()); + typeset_element (spanbar_); +} + diff --git a/lily/system-start-delimiter.cc b/lily/system-start-delimiter.cc new file mode 100644 index 0000000000..bc94277443 --- /dev/null +++ b/lily/system-start-delimiter.cc @@ -0,0 +1,119 @@ +/* + system-start-delimiter.cc -- implement System_start_delimiter + + source file of the GNU LilyPond music typesetter + + (c) 2000 Han-Wen Nienhuys + + */ +#include + +#include "system-start-delimiter.hh" +#include "paper-def.hh" +#include "molecule.hh" +#include "axis-group-interface.hh" +#include "lookup.hh" +#include "all-font-metrics.hh" + +Molecule +System_start_delimiter::staff_bracket (Real height) const +{ + Paper_def* p= paper_l (); + Real arc_height = p->get_var("bracket_arch_height"); + SCM at = gh_list (ly_symbol2scm ("bracket"), + gh_double2scm (p->get_var("bracket_arch_angle")), + gh_double2scm (p->get_var("bracket_arch_width")), + gh_double2scm (arc_height), + gh_double2scm (p->get_var("bracket_width")), + gh_double2scm (height), + gh_double2scm (p->get_var("bracket_arch_thick")), + gh_double2scm (p->get_var("bracket_thick")), + SCM_UNDEFINED); + + Real staff_space = p->get_var ("interline"); + Real h = height + 2 * arc_height; + Box b (Interval (0, 1.5 * staff_space), Interval (-h/2, h/2)); + Molecule mol (b, at); + + mol.translate_axis (- mol.dim_[X_AXIS].length () / 2, X_AXIS); + return mol; +} + +System_start_delimiter::System_start_delimiter () +{ + set_empty (Y_AXIS); +} + +Molecule +System_start_delimiter::simple_bar (Real h) const +{ + Real w = paper_l ()->get_var ("barthick_score"); + return lookup_l ()->filledbox (Box (Interval(0,w), Interval(-h/2, h/2))); +} + + +Molecule +System_start_delimiter::do_brew_molecule ()const +{ + Interval ext = Axis_group_interface::group_extent_callback (dim_cache_[Y_AXIS]); + Real l = ext.length (); + Molecule m; + + SCM s = get_elt_property ("collapse-height"); + if (gh_number_p (s) && l < gh_scm2double (s)) + { + System_start_delimiter * me = (System_start_delimiter*)this; + me->set_elt_property ("transparent", SCM_BOOL_T); + me->set_empty (X_AXIS); + me->set_empty (Y_AXIS); + return m; + } + + + s = get_elt_property ("glyph"); + if (gh_symbol_p (s) && s == ly_symbol2scm ("bracket")) + m = staff_bracket (l); + else if (gh_symbol_p (s) && s == ly_symbol2scm ("brace")) + m = staff_brace (l); + else + m = simple_bar (l); + + + m.translate_axis (ext.center (), Y_AXIS); + return m; +} + +/* + ugh. Suck me plenty. + */ +Molecule +System_start_delimiter::staff_brace (Real y) const +{ + Real staffht = paper_l ()->get_var ("staffheight"); + int staff_size = int (rint (staffht )); + + // URG + Real step = 1.0; + int minht = 2 * staff_size; + int maxht = 7 * minht; + int idx = int (((maxht - step) ? 0; + + SCM l = scm_eval (gh_list (ly_symbol2scm ("style-to-cmr"), + ly_str02scm ("brace"), + SCM_UNDEFINED)); + + String nm = "feta-braces"; + if (l != SCM_BOOL_F) + nm = ly_scm2string (gh_cdr (l)); + nm += to_str (staff_size); + SCM e =gh_list (ly_symbol2scm ("char"), gh_int2scm (idx), SCM_UNDEFINED); + SCM at = (e); + + at = fontify_atom (find_font (nm), at); + + Box b (Interval (0,0), Interval (-y/2, y/2)); + + return Molecule(b, at); +} + diff --git a/lily/time-signature-engraver.cc b/lily/time-signature-engraver.cc index 547d4c2ef4..6a4a1deed7 100644 --- a/lily/time-signature-engraver.cc +++ b/lily/time-signature-engraver.cc @@ -39,7 +39,7 @@ Time_signature_engraver::do_process_music() time_signature_p_->set_elt_property ("fraction", gh_cons (gh_int2scm (req->beats_i_), gh_int2scm (req->one_beat_i_))); - time_signature_p_->set_elt_property ("break-aligned", SCM_BOOL_T); + time_signature_p_->set_elt_property ("break-align-symbol", ly_symbol2scm( "Time_signature")); } diff --git a/lily/timing-engraver.cc b/lily/timing-engraver.cc index c88e521412..e64182a3a8 100644 --- a/lily/timing-engraver.cc +++ b/lily/timing-engraver.cc @@ -19,6 +19,7 @@ Timing_engraver::do_post_move_processing( ) { bar_req_l_ = 0; Timing_translator::do_post_move_processing (); + } bool @@ -35,6 +36,22 @@ Timing_engraver::do_try_music (Music*m) return Timing_translator::do_try_music (m); } +#if 0 +String +Timing_engraver::do_process_music () +{ + if (gh_string_p (get_property ("barType"))) + ; + else if (!now_mom ()) + { + daddy_trans_l_->set_property ("barType", ly_str02scm ("|")); + } + else + + { + } +} +#endif String diff --git a/lily/translator-group.cc b/lily/translator-group.cc index 2a071f2e9a..d4ac8ff528 100644 --- a/lily/translator-group.cc +++ b/lily/translator-group.cc @@ -428,6 +428,17 @@ Translator_group::do_add_processing () } } +Translator_group* +Translator_group::where_defined (SCM sym) const +{ + if (properties_dict_.elem_b (sym)) + { + return (Translator_group*)this; + } + + return (daddy_trans_l_) ? daddy_trans_l_->where_defined (sym) : 0; +} + SCM Translator_group::get_property (SCM sym) const { @@ -448,3 +459,4 @@ Translator_group::set_property (String id, SCM val) { properties_dict_.set (ly_symbol2scm (id.ch_C()), val); } + diff --git a/ly/engraver.ly b/ly/engraver.ly index 8e6f1f58b3..e9a17f134f 100644 --- a/ly/engraver.ly +++ b/ly/engraver.ly @@ -55,12 +55,12 @@ StaffContext=\translator { %{ - The Staff_margin_engraver puts the name of the instrument + The Instrument_name_engraver puts the name of the instrument (\property Staff.instrument; Staff.instr for subsequent lines) to the left of a staff. Usually, you only want this in the full score, not in the parts. - \consists "Staff_margin_engraver"; + \consists "Instrument_name_engraver"; %} defaultClef = #"treble" @@ -75,8 +75,10 @@ StaffContext=\translator { \translator { \type "Engraver_group_engraver"; \name ChoirStaff; - alignmentReference = \center; - \consists "Staff_group_bar_engraver"; + alignmentReference = \center; + \consists "System_start_delimiter_engraver"; + systemStartDelimiterGlyph = #'bracket + \accepts "Staff"; @@ -201,7 +203,9 @@ GrandStaffContext=\translator{ \type "Engraver_group_engraver"; \name GrandStaff; \consists "Span_bar_engraver"; - \consists "Piano_bar_engraver"; + \consists "System_start_delimiter_engraver"; + systemStartDelimiterGlyph = #'brace + \consists "Property_engraver"; Generic_property_list = #generic-grand-staff-properties \accepts "Staff"; @@ -224,7 +228,12 @@ StaffGroupContext= \translator { \type "Engraver_group_engraver"; \consists "Span_bar_engraver"; \consists "Output_property_engraver"; - \consists "Staff_group_bar_engraver"; + \consists "System_start_delimiter_engraver"; + systemStartDelimiterGlyph = #'bracket + + + \consistsend "Axis_group_engraver" ; + \name StaffGroup; \accepts "Staff"; @@ -310,7 +319,7 @@ HaraKiriStaffContext = \translator { \StaffContext \remove "Axis_group_engraver"; \consistsend "Hara_kiri_engraver"; - \consists "Staff_margin_engraver"; + \consists "Instrument_name_engraver"; \accepts "Voice"; }; %{ @@ -336,17 +345,19 @@ ScoreContext = \translator { \consists "Output_property_engraver"; %bracketCollapseHeight = #10 % \pt - \consists "Span_score_bar_engraver"; + \consists "System_start_delimiter_engraver"; + % \consists "Score_priority_engraver"; \consists "Break_align_engraver"; breakAlignOrder = #'( - "Left_edge_item" - "Span_bar" - "Breathing_sign" - "Clef_item" - "Key_item" - "Staff_bar" - "Time_signature" + Instrument_name + Left_edge_item + Span_bar + Breathing_sign + Clef_item + Key_item + Staff_bar + Time_signature ) \consists "Spacing_engraver"; \consists "Vertical_align_engraver"; @@ -365,7 +376,6 @@ ScoreContext = \translator { markVisibilityFunction = #end-of-line-invisible barNumberVisibilityFunction = #begin-of-line-visible - marginVisibilityFunction = #begin-of-line-visible }; \translator { \ScoreContext } diff --git a/make/out/lilypond.lsm b/make/out/lilypond.lsm index 910db32fad..033effbf00 100644 --- a/make/out/lilypond.lsm +++ b/make/out/lilypond.lsm @@ -1,15 +1,15 @@ Begin3 Title: LilyPond -Version: 1.3.41 -Entered-date: 30MAR00 +Version: 1.3.42 +Entered-date: 03APR00 Description: Keywords: music notation typesetting midi fonts engraving Author: hanwen@cs.uu.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 - 1000k lilypond-1.3.41.tar.gz + 1000k lilypond-1.3.42.tar.gz Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/ - 1000k lilypond-1.3.41.tar.gz + 1000k lilypond-1.3.42.tar.gz Copying-policy: GPL End diff --git a/make/out/lilypond.spec b/make/out/lilypond.spec index 996e225846..25644c795f 100644 --- a/make/out/lilypond.spec +++ b/make/out/lilypond.spec @@ -1,9 +1,9 @@ Name: lilypond -Version: 1.3.41 +Version: 1.3.42 Release: 1 Copyright: GPL Group: Applications/Publishing -Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.41.tar.gz +Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.42.tar.gz Summary: A program for printing sheet music. URL: http://www.cs.uu.nl/~hanwen/lilypond # Icon: lilypond-icon.gif @@ -28,10 +28,13 @@ The documentation of LilyPond, both in HTML and PostScript. %prep %setup + %build -#./configure --disable-checking --disable-debugging --enable-printing --prefix=/usr --disable-optimise --enable-shared + %{configure} --disable-checking --disable-debugging --enable-printing --prefix=%{_prefix} --disable-optimise --enable-shared + make all + ln -s %{_prefix}/share/texmf/fonts/tfm/public/cm/ tfm # urg @@ -63,6 +66,10 @@ tar -C htmldocs -xzf out/htmldoc.tar.gz || true mkdir -p out/examples/ tar -cf - input/ | tar -C out/examples/ -xf- || true +%ifos cygwin +%{fix_suffixes} +%endif + %post touch /tmp/.lilypond-install @@ -79,12 +86,17 @@ fi # hairy to hook it in (possibly non-existing) emacs %doc mudela-mode.el +%ifnos cygwin %{_prefix}/bin/abc2ly %{_prefix}/bin/convert-mudela %{_prefix}/bin/mudela-book %{_prefix}/bin/ly2dvi %{_prefix}/bin/lilypond %{_prefix}/bin/midi2ly +%else +%{_prefix}/bin +%endif + %{_prefix}/man/man1/midi2ly.1 %{_prefix}/man/man1/lilypond.1 %{_prefix}/man/man1/mudela-book.1 diff --git a/mutopia/Coriolan/clarinetti.ly b/mutopia/Coriolan/clarinetti.ly index 06535c7893..6b7a39c243 100644 --- a/mutopia/Coriolan/clarinetti.ly +++ b/mutopia/Coriolan/clarinetti.ly @@ -24,7 +24,7 @@ $clarinetti_staff = \context Staff = clarinetti < %\notes \context Voice=clarinetti < \notes \context Staff=clarinetti < \time 4/4; - \key F; + \key f; \skip 1*341; \bar "|."; \context VoiceOne=clarinettoi \$clarinetto1 diff --git a/mutopia/F.Schubert/standchen.ly b/mutopia/F.Schubert/standchen.ly index e37947d68b..ebf68cfbf4 100644 --- a/mutopia/F.Schubert/standchen.ly +++ b/mutopia/F.Schubert/standchen.ly @@ -38,7 +38,7 @@ ouraged - copy this music and share it!"; %{ Tested Features: multivoice accents lyrics chords piano music multiple \paper{}s in one \score -Note: Original key F. +Note: Original key f. %} \version "1.3.4"; diff --git a/mutopia/Hymns/maccabaeus.ly b/mutopia/Hymns/maccabaeus.ly index f4d4356afd..364f3ec108 100644 --- a/mutopia/Hymns/maccabaeus.ly +++ b/mutopia/Hymns/maccabaeus.ly @@ -78,7 +78,7 @@ bass=\notes \relative c { global = \notes { \time 2/2; \property Staff.timeSignatureStyle = "C" - \key E; + \key e; } $upper_staff = \context Staff = upper { diff --git a/mutopia/Hymns/ode.ly b/mutopia/Hymns/ode.ly index 42e6b9ff81..693a4caf3e 100644 --- a/mutopia/Hymns/ode.ly +++ b/mutopia/Hymns/ode.ly @@ -41,7 +41,7 @@ bass= \notes \relative c' { global=\notes{ \time 4/4; \property Staff.timeSignatureStyle="C" - \key G; + \key g; \skip 1*4; \bar "||"; \skip 1*4; \bar "||"; \skip 1*4; \bar "||"; diff --git a/mutopia/Hymns/stille.ly b/mutopia/Hymns/stille.ly index be80e22543..0341e3484b 100644 --- a/mutopia/Hymns/stille.ly +++ b/mutopia/Hymns/stille.ly @@ -18,7 +18,7 @@ global=\notes { \time 6/4; - \key Bes; + \key bes; \skip 1.*12; \bar "|."; } diff --git a/mutopia/J.S.Bach/Duette/global-i.ly b/mutopia/J.S.Bach/Duette/global-i.ly index fb540fccc8..db61c1a7f1 100644 --- a/mutopia/J.S.Bach/Duette/global-i.ly +++ b/mutopia/J.S.Bach/Duette/global-i.ly @@ -2,5 +2,5 @@ $global_i = \notes{ \time 12/8; - \key G; + \key g; } diff --git a/mutopia/J.S.Bach/Petites-Preludes/preludes-4.ly b/mutopia/J.S.Bach/Petites-Preludes/preludes-4.ly index baf9b553fd..db8edfecae 100644 --- a/mutopia/J.S.Bach/Petites-Preludes/preludes-4.ly +++ b/mutopia/J.S.Bach/Petites-Preludes/preludes-4.ly @@ -209,7 +209,7 @@ four = \context Staff \notes\relative c{ global = \notes{ \time 4/4; - \key D; + \key d; } \score{ diff --git a/mutopia/J.S.Bach/Petites-Preludes/preludes-5.ly b/mutopia/J.S.Bach/Petites-Preludes/preludes-5.ly index fe8a8cb76f..bdc0b6e3c1 100644 --- a/mutopia/J.S.Bach/Petites-Preludes/preludes-5.ly +++ b/mutopia/J.S.Bach/Petites-Preludes/preludes-5.ly @@ -201,7 +201,7 @@ lower = \context Staff \notes\relative c{ global = \notes{ \time 3/4; - \key F; + \key f; } \score{ diff --git a/mutopia/J.S.Bach/Petites-Preludes/preludes-6.ly b/mutopia/J.S.Bach/Petites-Preludes/preludes-6.ly index 643c959711..f807964bd8 100644 --- a/mutopia/J.S.Bach/Petites-Preludes/preludes-6.ly +++ b/mutopia/J.S.Bach/Petites-Preludes/preludes-6.ly @@ -124,7 +124,7 @@ four = \context Staff \notes\relative c{ global = \notes{ \time 4/4; - \key F; + \key f; } \score{ diff --git a/scm/lily.scm b/scm/lily.scm index c8655ddd09..df8e73a607 100644 --- a/scm/lily.scm +++ b/scm/lily.scm @@ -92,11 +92,7 @@ ;; Score_span_bars are only visible at start of line ;; i.e. if break_dir == RIGHT == 1 (define Span_bar_engraver-visibility begin-of-line-invisible) -(define Base_span_bar_engraver-visibility begin-of-line-invisible) (define mark-visibility end-of-line-invisible) -(define Span_score_bar_engraver-visibility begin-of-line-visible) -(define Piano_bar_engraver-visibility begin-of-line-visible) -(define Staff_group_bar_engraver-visibility begin-of-line-visible) ;; Spacing constants for prefatory matter. ;; @@ -107,40 +103,42 @@ ;; (Measured in staff space) (define space-alist '( - (("" "Left_edge_item") . (extra-space -15.0)) - (("" "Clef_item") . (minimum-space 1.0)) - (("" "Staff_bar") . (minimum-space 0.0)) - (("" "Clef_item") . (minimum-space 1.0)) - (("" "Key_item") . (minimum-space 0.5)) - (("" "Span_bar") . (extra-space 0.0)) - (("" "Time_signature") . (extra-space 0.0)) - (("" "begin-of-note") . (minimum-space 1.5)) - (("Clef_item" "Key_item") . (minimum-space 4.0)) - (("Key_item" "Time_signature") . (extra-space 1.0)) - (("Clef_item" "Time_signature") . (minimum-space 3.5)) - (("Staff_bar" "Clef_item") . (minimum-space 1.0)) - (("Clef_item" "Staff_bar") . (minimum-space 3.7)) - (("Time_signature" "Staff_bar") . (minimum-space 2.0)) - (("Key_item" "Staff_bar") . (extra-space 1.0)) - (("Span_bar" "Clef_item") . (extra-space 1.0)) - (("Clef_item" "Span_bar") . (minimum-space 3.7)) - (("Time_signature" "Span_bar") . (minimum-space 2.0)) - (("Key_item" "Span_bar") . (minimum-space 2.5)) - (("Staff_bar" "Time_signature") . (minimum-space 1.5)) ;double check this. - (("Time_signature" "begin-of-note") . (extra-space 2.0)) ;double check this. - (("Key_item" "begin-of-note") . (extra-space 2.5)) - (("Staff_bar" "begin-of-note") . (extra-space 1.0)) - (("Clef_item" "begin-of-note") . (minimum-space 5.0)) - (("" "Breathing_sign") . (minimum-space 0.0)) - (("Breathing_sign" "Key_item") . (minimum-space 1.5)) - (("Breathing_sign" "begin-of-note") . (minimum-space 1.0)) - (("Breathing_sign" "Staff_bar") . (minimum-space 1.5)) - (("Breathing_sign" "Clef_item") . (minimum-space 2.0)) + ((none Instrument_name) . (extra-space 1.0)) + ((Instrument_name Left_edge_item) . (extra-space 1.0)) + ((Left_edge_item Clef_item) . (extra-space 1.0)) + ((none Left_edge_item) . (extra-space 0.0)) + ((Left_edge_item Staff_bar) . (extra-space 0.0)) +; ((none Left_edge_item) . (extra-space -15.0)) +; ((none Left_edge_item) . (extra-space -15.0)) + ((none Clef_item) . (minimum-space 1.0)) + ((none Staff_bar) . (minimum-space 0.0)) + ((none Clef_item) . (minimum-space 1.0)) + ((none Key_item) . (minimum-space 0.5)) + ((none Time_signature) . (extra-space 0.0)) + ((none begin-of-note) . (minimum-space 1.5)) + ((Clef_item Key_item) . (minimum-space 4.0)) + ((Key_item Time_signature) . (extra-space 1.0)) + ((Clef_item Time_signature) . (minimum-space 3.5)) + ((Staff_bar Clef_item) . (minimum-space 1.0)) + ((Clef_item Staff_bar) . (minimum-space 3.7)) + ((Time_signature Staff_bar) . (minimum-space 2.0)) + ((Key_item Staff_bar) . (extra-space 1.0)) + ((Staff_bar Time_signature) . (minimum-space 1.5)) ;double check this. + ((Time_signature begin-of-note) . (extra-space 2.0)) ;double check this. + ((Key_item begin-of-note) . (extra-space 2.5)) + ((Staff_bar begin-of-note) . (extra-space 1.0)) + ((Clef_item begin-of-note) . (minimum-space 5.0)) + ((none Breathing_sign) . (minimum-space 0.0)) + ((Breathing_sign Key_item) . (minimum-space 1.5)) + ((Breathing_sign begin-of-note) . (minimum-space 1.0)) + ((Breathing_sign Staff_bar) . (minimum-space 1.5)) + ((Breathing_sign Clef_item) . (minimum-space 2.0)) ) ) - + +;; (define (ly-warn s) (error s)) (define (break-align-spacer this next) - (let ((entry (assoc `(,this ,next) space-alist))) + (let ((entry (assoc (list this next) space-alist))) (if entry (cdr entry) (begin (ly-warn (string-append "Unknown spacing pair `" this "', `" next "'")) @@ -962,11 +960,9 @@ (define (break-barline glyph dir) (let ((result (assoc glyph '((":|:" . (":|" . "|:")) - (";|;" . ("|." . ".|")) ("|" . ("|" . "")) ("|s" . (nil . "|")) ("|:" . ("|" . "|:")) - (".|" . ("|" . ".|")) ("|." . ("|." . nil)) (":|" . (":|" . nil)) ("||" . ("||" . nil)) diff --git a/stepmake/configure b/stepmake/configure index 2d4d9d1eaa..8af41ada79 100755 --- a/stepmake/configure +++ b/stepmake/configure @@ -604,8 +604,16 @@ fi fi stepmake=`echo ${stepmake} | sed "s!\\\${prefix}!$presome!"` + # urg, how is this supposed to work? + if test "$program_prefix" = "NONE"; then + program_prefix= + fi + if test "$program_suffix" = "NONE"; then + program_suffix= + fi + echo $ac_n "checking Package""... $ac_c" 1>&6 -echo "configure:609: checking Package" >&5 +echo "configure:617: checking Package" >&5 if test "x$PACKAGE" = "xSTEPMAKE"; then echo "$ac_t""Stepmake package!" 1>&6 @@ -657,7 +665,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. fi echo $ac_n "checking for stepmake""... $ac_c" 1>&6 -echo "configure:661: checking for stepmake" >&5 +echo "configure:669: checking for stepmake" >&5 # Check for installed stepmake if test -d $stepmake; then echo "$ac_t""$stepmake" 1>&6 @@ -779,7 +787,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:783: checking host system type" >&5 +echo "configure:791: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -804,7 +812,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:808: checking for $ac_word" >&5 +echo "configure:816: 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 @@ -839,7 +847,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:843: checking for $ac_word" >&5 +echo "configure:851: 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 @@ -876,7 +884,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:880: checking for $ac_word" >&5 +echo "configure:888: 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 @@ -911,7 +919,7 @@ test -n "$TAR" || TAR="error" # Extract the first word of "bash", so it can be a program name with args. set dummy bash; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:915: checking for $ac_word" >&5 +echo "configure:923: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -951,7 +959,7 @@ fi # Extract the first word of "bash", so it can be a program name with args. set dummy bash; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:955: checking for $ac_word" >&5 +echo "configure:963: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_SHELL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -988,7 +996,7 @@ fi # Extract the first word of "bash", so it can be a program name with args. set dummy bash; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:992: checking for $ac_word" >&5 +echo "configure:1000: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1029,7 +1037,7 @@ fi # 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:1033: checking for $ac_word" >&5 +echo "configure:1041: 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 @@ -1089,7 +1097,7 @@ fi LN=cp # hard link does not work under cygnus-nt LN_S='cp -r' # symbolic link does not work for native nt ZIP="zip -r -9" # - DOTEXE=.exe + program_suffix=.exe # urg # DIRSEP='\\' # PATHSEP=';' @@ -1129,6 +1137,7 @@ fi + cat >> confdefs.h <&6 -echo "configure:1199: checking language" >&5 +echo "configure:1208: checking language" >&5 case "$language" in En* | en* | Am* | am* | US* | us*) lang=English;; @@ -1230,7 +1239,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:1234: checking for $ac_word" >&5 +echo "configure:1243: 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 @@ -1413,7 +1422,8 @@ s%@FIND@%$FIND%g s%@TAR@%$TAR%g s%@BASH@%$BASH%g s%@PYTHON@%$PYTHON%g -s%@DOTEXE@%$DOTEXE%g +s%@program_prefix@%$program_prefix%g +s%@program_suffix@%$program_suffix%g s%@ZIP@%$ZIP%g s%@LN@%$LN%g s%@LN_S@%$LN_S%g -- 2.39.2