From f005b7a630d88cab3b4a727cca9c8fa676d146de Mon Sep 17 00:00:00 2001 From: fred Date: Tue, 26 Mar 2002 21:44:28 +0000 Subject: [PATCH] lilypond-1.1.6 --- Documentation/COPERTINA.in | 10 +- Documentation/topdocs/index.yo | 78 +- TODO | 24 +- buildscripts/lilypond-profile.sh | 3 +- buildscripts/set-lily.sh | 4 +- configure | 3604 ----------------- configure.in | 2 + flower/include/array.hh | 2 +- flower/include/pointer.hh | 56 +- flower/include/pointer.tcc | 4 +- flower/include/virtual-methods.hh | 87 +- flower/rtti.cc | 23 + init/engraver.ly | 8 +- init/lily.scm | 414 +- init/part-paper.ly | 22 +- init/table16.ly | 1 + init/table20.ly | 1 + input/GNUmakefile | 2 +- input/star-spangled-banner.ly | 118 + input/test/GNUmakefile | 2 +- input/test/extender.ly | 6 + input/test/hara-kiri.ly | 6 +- input/test/mark.ly | 2 +- input/test/tup.ly | 2 +- lily/abbreviation-beam-engraver.cc | 4 +- lily/abbreviation-beam.cc | 2 +- lily/align-element.cc | 4 +- lily/audio-column.cc | 2 +- lily/audio-element.cc | 4 +- lily/audio-item.cc | 14 +- lily/audio-staff.cc | 2 +- lily/axis-group-element.cc | 2 +- lily/axis-group-item.cc | 2 +- lily/axis-group-spanner.cc | 2 +- lily/bar-column-engraver.cc | 2 +- lily/bar-column.cc | 2 +- lily/bar-engraver.cc | 6 +- lily/bar-number-engraver.cc | 2 +- lily/bar.cc | 2 +- lily/beam-engraver.cc | 4 +- lily/beam-swallow-trans.cc | 3 +- lily/beam.cc | 11 +- lily/bow.cc | 2 +- lily/break-align-item.cc | 2 +- lily/change-iterator.cc | 2 +- lily/change-translator.cc | 2 +- lily/chord-iterator.cc | 2 +- lily/clef-engraver.cc | 4 +- lily/clef-item.cc | 2 +- lily/collision-engraver.cc | 2 +- lily/collision.cc | 2 +- lily/command-request.cc | 30 +- lily/compressed-music-iterator.cc | 11 +- lily/compressed-music.cc | 2 +- lily/crescendo.cc | 2 +- lily/directional-spanner.cc | 8 + lily/dot-column-engraver.cc | 2 +- lily/dot-column.cc | 2 +- lily/dots.cc | 2 +- lily/dynamic-engraver.cc | 4 +- lily/engraver-group.cc | 2 +- lily/engraver.cc | 2 +- lily/extender-engraver.cc | 95 + lily/extender-spanner.cc | 127 + lily/font-size-engraver.cc | 2 +- lily/general-script-def.cc | 7 +- lily/global-translator.cc | 2 +- lily/graphical-axis-group.cc | 4 +- lily/graphical-element.cc | 2 +- lily/hara-kiri-line-group-engraver.cc | 2 +- lily/hara-kiri-vertical-group-spanner.cc | 2 +- lily/heads-engraver.cc | 4 +- lily/horizontal-align-item.cc | 2 +- lily/horizontal-group-element.cc | 2 +- lily/horizontal-group-item.cc | 2 +- lily/horizontal-vertical-group-element.cc | 2 +- lily/horizontal-vertical-group-item.cc | 2 +- lily/identifier.cc | 3 +- lily/include/abbreviation-beam-engraver.hh | 6 +- lily/include/abbreviation-beam.hh | 4 +- lily/include/align-element.hh | 2 +- lily/include/audio-element.hh | 2 +- lily/include/audio-item.hh | 14 +- lily/include/audio-staff.hh | 2 +- lily/include/axis-group-element.hh | 2 +- lily/include/axis-group-item.hh | 2 +- lily/include/axis-group-spanner.hh | 2 +- lily/include/bar-column-engraver.hh | 4 +- lily/include/bar-column.hh | 4 +- lily/include/bar-engraver.hh | 6 +- lily/include/bar-number-engraver.hh | 4 +- lily/include/bar.hh | 4 +- lily/include/beam-engraver.hh | 6 +- lily/include/beam.hh | 4 +- lily/include/bow.hh | 2 +- lily/include/break-align-item.hh | 4 +- lily/include/change-iterator.hh | 2 +- lily/include/change-translator.hh | 4 +- lily/include/chord-iterator.hh | 2 +- lily/include/clef-engraver.hh | 6 +- lily/include/clef-item.hh | 4 +- lily/include/collision-engraver.hh | 4 +- lily/include/collision.hh | 2 +- lily/include/compressed-music-iterator.hh | 2 +- lily/include/compressed-music.hh | 4 +- lily/include/crescendo.hh | 4 +- lily/include/directional-spanner.hh | 2 +- lily/include/dot-column-engraver.hh | 4 +- lily/include/dot-column.hh | 2 +- lily/include/dots.hh | 2 +- lily/include/dynamic-engraver.hh | 6 +- lily/include/engraver-group.hh | 4 +- lily/include/engraver.hh | 4 +- lily/include/extender-engraver.hh | 39 + lily/include/extender-spanner.hh | 58 + lily/include/font-size-engraver.hh | 4 +- lily/include/general-script-def.hh | 4 +- lily/include/global-translator.hh | 4 +- lily/include/graphical-axis-group.hh | 2 +- lily/include/graphical-element.hh | 2 +- lily/include/graphical-lisp-element.hh | 2 +- lily/include/hara-kiri-line-group-engraver.hh | 3 +- .../hara-kiri-vertical-group-spanner.hh | 4 +- lily/include/heads-engraver.hh | 6 +- lily/include/horizontal-align-item.hh | 4 +- lily/include/horizontal-group-element.hh | 2 +- lily/include/horizontal-group-item.hh | 4 +- .../horizontal-vertical-group-element.hh | 2 +- .../include/horizontal-vertical-group-item.hh | 4 +- lily/include/identifier.hh | 8 +- lily/include/item.hh | 2 +- lily/include/key-engraver.hh | 6 +- lily/include/key-item.hh | 4 +- lily/include/key-performer.hh | 6 +- lily/include/lily-proto.hh | 2 + lily/include/line-group-group-engraver.hh | 4 +- lily/include/line-of-score.hh | 4 +- lily/include/local-key-engraver.hh | 4 +- lily/include/local-key-item.hh | 2 +- lily/include/lookup.hh | 1 + lily/include/lyric-engraver.hh | 18 +- lily/include/lyric-performer.hh | 6 +- lily/include/mark-engraver.hh | 6 +- lily/include/midi-def.hh | 4 +- lily/include/midi-item.hh | 24 +- lily/include/multi-measure-rest-engraver.hh | 6 +- lily/include/multi-measure-rest.hh | 2 +- lily/include/music-iterator.hh | 2 +- lily/include/music-list.hh | 16 +- lily/include/music-output-def.hh | 4 +- lily/include/music-wrapper-iterator.hh | 2 +- lily/include/music-wrapper.hh | 4 +- lily/include/music.hh | 4 +- lily/include/musical-request.hh | 9 +- lily/include/my-lily-parser.hh | 1 + lily/include/note-column.hh | 2 +- lily/include/note-head.hh | 2 +- lily/include/note-performer.hh | 6 +- lily/include/p-col.hh | 4 +- lily/include/paper-def.hh | 4 +- lily/include/performer-group-performer.hh | 4 +- lily/include/performer.hh | 4 +- lily/include/piano-brace.hh | 4 +- lily/include/pitch-squash-engraver.hh | 4 +- lily/include/plet-engraver.hh | 6 +- lily/include/plet-swallow-engraver.hh | 6 +- lily/include/priority-halign-engraver.hh | 4 +- lily/include/property-iterator.hh | 2 +- lily/include/relative-music.hh | 4 +- lily/include/request-iterator.hh | 2 +- lily/include/request.hh | 8 +- lily/include/rest-collision-engraver.hh | 4 +- lily/include/rest-collision.hh | 2 +- lily/include/rest-engraver.hh | 6 +- lily/include/rest.hh | 2 +- lily/include/rhythmic-column-engraver.hh | 4 +- lily/include/rhythmic-head.hh | 2 +- lily/include/score-bar.hh | 4 +- lily/include/score-column.hh | 4 +- lily/include/score-element-info.hh | 6 +- lily/include/score-element.hh | 5 +- lily/include/score-engraver.hh | 6 +- lily/include/score-performer.hh | 4 +- lily/include/score-priority-engraver.hh | 4 +- lily/include/script-column.hh | 2 +- lily/include/script-def.hh | 4 +- lily/include/script-engraver.hh | 6 +- lily/include/script.hh | 4 +- lily/include/separating-group-spanner.hh | 4 +- .../include/separating-line-group-engraver.hh | 4 +- lily/include/single-malt-grouping-item.hh | 4 +- lily/include/slur-engraver.hh | 6 +- lily/include/slur.hh | 4 +- lily/include/span-bar-engraver.hh | 4 +- lily/include/span-bar.hh | 4 +- lily/include/span-score-bar-engraver.hh | 12 +- lily/include/span-score-bar.hh | 4 +- lily/include/spanner.hh | 4 +- lily/include/staff-bracket.hh | 4 +- lily/include/staff-margin-engraver.hh | 4 +- lily/include/staff-performer.hh | 4 +- lily/include/staff-side.hh | 2 +- lily/include/staff-sym-engraver.hh | 4 +- lily/include/staff-sym.hh | 4 +- lily/include/stem-engraver.hh | 6 +- lily/include/stem.hh | 2 +- lily/include/super-element.hh | 2 +- lily/include/swallow-engraver.hh | 6 +- lily/include/swallow-perf.hh | 6 +- lily/include/text-def.hh | 3 +- lily/include/text-item.hh | 2 +- lily/include/text-spanner.hh | 4 +- lily/include/tie.hh | 4 +- lily/include/ties-engraver.hh | 6 +- lily/include/time-signature-engraver.hh | 4 +- lily/include/time-signature-performer.hh | 6 +- lily/include/time-signature.hh | 4 +- lily/include/timing-engraver.hh | 4 +- lily/include/timing-translator.hh | 6 +- lily/include/translation-property.hh | 4 +- lily/include/translator-group.hh | 8 +- lily/include/translator.hh | 13 +- lily/include/transposed-music.hh | 4 +- lily/include/tuplet-engraver.hh | 37 + lily/include/tuplet-spanner.hh | 37 + lily/include/type-swallow-trans.hh | 11 +- lily/include/vertical-align-engraver.hh | 4 +- lily/include/vertical-align-spanner.hh | 4 +- lily/include/vertical-group-element.hh | 2 +- lily/include/vertical-group-spanner.hh | 4 +- lily/include/voice-iterator.hh | 2 +- lily/item.cc | 2 +- lily/key-engraver.cc | 4 +- lily/key-item.cc | 2 +- lily/key-performer.cc | 4 +- lily/lexer.ll | 5 + lily/line-group-group-engraver.cc | 2 +- lily/line-of-score.cc | 2 +- lily/local-key-engraver.cc | 4 +- lily/local-key-item.cc | 2 +- lily/lookup.cc | 41 +- lily/lyric-engraver.cc | 4 +- lily/lyric-performer.cc | 4 +- lily/main.cc | 11 +- lily/mark-engraver.cc | 4 +- lily/midi-def.cc | 2 +- lily/midi-item.cc | 24 +- lily/multi-measure-rest-engraver.cc | 6 +- lily/multi-measure-rest.cc | 2 +- lily/music-iterator.cc | 6 +- lily/music-list.cc | 6 +- lily/music-output-def.cc | 2 +- lily/music-sequence.cc | 2 +- lily/music-wrapper-iterator.cc | 2 +- lily/music-wrapper.cc | 2 +- lily/music.cc | 4 +- lily/my-lily-lexer.cc | 1 + lily/my-lily-parser.cc | 1 + lily/note-column.cc | 2 +- lily/note-head.cc | 2 +- lily/note-performer.cc | 4 +- lily/p-col.cc | 2 +- lily/paper-def.cc | 2 +- lily/parser.yy | 27 +- lily/performer-group-performer.cc | 2 +- lily/performer.cc | 2 +- lily/piano-brace.cc | 2 +- lily/pitch-squash-engraver.cc | 2 +- lily/plet-engraver.cc | 8 +- lily/plet-swallow-engraver.cc | 4 +- lily/priority-halign-engraver.cc | 2 +- lily/property-iterator.cc | 2 +- lily/relative-octave-music.cc | 2 +- lily/request-iterator.cc | 9 +- lily/request.cc | 2 +- lily/rest-collision-engraver.cc | 2 +- lily/rest-collision.cc | 2 +- lily/rest-engraver.cc | 4 +- lily/rest.cc | 2 +- lily/rhythmic-column-engraver.cc | 2 +- lily/rhythmic-head.cc | 2 +- lily/score-bar.cc | 2 +- lily/score-column.cc | 2 +- lily/score-element-info.cc | 2 +- lily/score-element.cc | 6 +- lily/score-engraver.cc | 8 +- lily/score-performer.cc | 2 +- lily/score-priority-engraver.cc | 2 +- lily/script-column.cc | 2 +- lily/script-def.cc | 2 +- lily/script-engraver.cc | 24 +- lily/script.cc | 2 +- lily/separating-group-spanner.cc | 2 +- lily/separating-line-group-engraver.cc | 2 +- lily/single-malt-grouping-item.cc | 4 +- lily/slur-engraver.cc | 4 +- lily/slur.cc | 2 +- lily/span-bar-engraver.cc | 2 +- lily/span-bar.cc | 2 +- lily/span-score-bar-engraver.cc | 6 +- lily/span-score-bar.cc | 2 +- lily/spanner.cc | 10 +- lily/staff-bracket.cc | 2 +- lily/staff-margin-engraver.cc | 2 +- lily/staff-performer.cc | 2 +- lily/staff-side.cc | 2 +- lily/staff-sym-engraver.cc | 2 +- lily/staff-sym.cc | 2 +- lily/stem-engraver.cc | 4 +- lily/stem.cc | 2 +- lily/super-element.cc | 2 +- lily/swallow-engraver.cc | 4 +- lily/swallow-perf.cc | 2 +- lily/text-def.cc | 2 +- lily/text-item.cc | 2 +- lily/text-spanner.cc | 2 +- lily/tie.cc | 2 +- lily/ties-engraver.cc | 4 +- lily/time-signature-engraver.cc | 4 +- lily/time-signature-performer.cc | 4 +- lily/time-signature.cc | 2 +- lily/timing-engraver.cc | 2 +- lily/timing-translator.cc | 6 +- lily/translation-property.cc | 2 +- lily/translator-ctors.cc | 2 +- lily/translator-group.cc | 14 +- lily/translator.cc | 12 +- lily/transposed-music.cc | 2 +- lily/tuplet-engraver.cc | 81 + lily/tuplet-spanner.cc | 98 + lily/type-swallow-trans.cc | 4 +- lily/vertical-align-engraver.cc | 2 +- lily/vertical-align-spanner.cc | 2 +- lily/vertical-group-elem.cc | 2 +- lily/vertical-group-spanner.cc | 2 +- lily/voice-iterator.cc | 2 +- mutopia/Coriolan/coriolan-part-paper.ly | 11 +- mutopia/Coriolan/coriolan.ly | 1 + mutopia/standchen.ly | 18 +- ps/lily.ps | 176 + ps/lilyponddefs.ps | 9 + tex/lily-ps-defs.tex | 2 +- tex/lilyponddefs.tex | 4 +- 343 files changed, 1959 insertions(+), 4601 deletions(-) create mode 100644 flower/rtti.cc create mode 100644 input/star-spangled-banner.ly create mode 100644 input/test/extender.ly create mode 100644 lily/extender-engraver.cc create mode 100644 lily/extender-spanner.cc create mode 100644 lily/include/extender-engraver.hh create mode 100644 lily/include/extender-spanner.hh create mode 100644 lily/include/tuplet-engraver.hh create mode 100644 lily/include/tuplet-spanner.hh create mode 100644 lily/tuplet-engraver.cc create mode 100644 lily/tuplet-spanner.cc create mode 100644 ps/lily.ps diff --git a/Documentation/COPERTINA.in b/Documentation/COPERTINA.in index 5344413eca..546352483b 100644 --- a/Documentation/COPERTINA.in +++ b/Documentation/COPERTINA.in @@ -1,8 +1,8 @@ -LilyPond è il tipografo musicale del progetto GNU. Questo programma -puo' stampare delle belle partiture a partire da un documento di -definizioni musicali. Puo' anche creare meccaniche rappresentazioni -della partitura in un documento in formato MIDI. Le caratteristiche del +LilyPond è il tipografo musicale del progetto GNU. Questo programma +può stampare delle belle partiture a partire da un documento di +definizioni musicali. Può anche creare meccaniche rappresentazioni +della partitura in un documento in formato MIDI. Le caratteristiche del programma includono pentagrammi multipli, segni di divisione, chiavi, tasti, parole, versatile linguaggio di definizione, cadenze, legature, acciaccature, terzine, segni di formattazione, estrazione delle -parte. è compresa una seria completa di caratteri musicali. +parte. È compresa una seria completa di caratteri musicali. diff --git a/Documentation/topdocs/index.yo b/Documentation/topdocs/index.yo index 18b5a8c053..bf386aa4b4 100644 --- a/Documentation/topdocs/index.yo +++ b/Documentation/topdocs/index.yo @@ -3,8 +3,12 @@ DEFINEMACRO(docdir)(0)(Documentation) DEFINEMACRO(pic)(1)(url(ARG1)(DOEXPAND(docdir)/pictures/DOEXPAND(outdir)/ARG1.png )) +DEFINEMACRO(beginbold)(0)(whenhtml(htmlcommand())) +DEFINEMACRO(endbold)(0)(whenhtml(htmlcommand())) +redef(htmlnewfile)(0)() +setchapterstring() -nsect(LilyPond -- The GNU Project Music Typesetter) +nchapter(LilyPond -- The GNU Project Music Typesetter) includefile(../BLURB.in)(url(italiano)(DOEXPAND(docdir)/DOEXPAND(outdir)/COPERTINA.html))(url(nederlands)(DOEXPAND(docdir)/DOEXPAND(outdir)/FLAPTEKST.html)) nl() @@ -14,20 +18,17 @@ center(mudela(fragment)( \relative c'' { \key es; r8 [c16 b] [c8 g] [as c16 b] [c8 d] | g,4 } )) -nsubsect() + +nsect() Hmm, this is what it said yesterday too. I just want to know url(What's new)(DOEXPAND(docdir)/DOEXPAND(outdir)/NEWS.html) today and -then COMMENT( -url(Download)(ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/development/lilypond-@TOPLEVEL_VERSION@.tar.gz) -LilyPond. perhaps lily/VERSION, i.e. without my-patch-level would be -best... -)url(Download)(ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/development/lilypond-@TOPLEVEL_VERSION@.tar.gz) +then url(Download)(ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/development/lilypond-@TOPLEVEL_VERSION@.tar.gz) LilyPond. +nl() Or get the latest url(patch)(DOEXPAND(depth)/DOEXPAND(outdir)/lilypond-@TOPLEVEL_VERSION@.diff.gz). -nsubsect(Introduction) - +nsubsect(Webmaster's Disclaimer) These pages were entirely created from the LilyPond package-sources. Sorry for poor look they have: we want to be hacking at LilyPond, and @@ -37,44 +38,61 @@ Note: These pages are created from the latest bf(development snapshots) of LilyPond, specifically, this page was made from LilyPond @TOPLEVEL_VERSION@.tar.gz -nsect(Sites) -description( -dit(lurl(http://www.cs.uu.nl/people/hanwen/lilypond/))Han-Wen's site. -dit(lurl(http://www.xs4all.nl/~jantien/lilypond/))Jan's site. -dit(lurl(http://www.realtime.net/~daboys/lilypond/))Jeff's Windows NT Distribution site. +nsect(Preview) + +itemize( +beginbold() +it()url(Examples)(DOEXPAND(depth)/input/DOEXPAND(outdir)/index.html): +endbold() + simple pieces, tests and bugs. MIDI, PNG (gif replacement), PostScript, and Source. +beginbold() +it()url(Music in Mutopia)(DOEXPAND(depth)/mutopia/DOEXPAND(outdir)/index.html): +endbold() + LilyPond handling real music. MIDI, view PNG (gif replacement), PostScript, and Source. ) +nsect(Documentation) -nsubsubsect(Mirrors) -description( -dit(lurl(http://sca.uwaterloo.ca/lilypond/)) - Eric Praetzel was kind enough to provide a mirror of both the website - and the ftp site. +itemize( +it()url(Tutorial)(DOEXPAND(docdir)/tex/DOEXPAND(outdir)/tutorial.html) +it()url(FAQ)(DOEXPAND(docdir)/DOEXPAND(outdir)/faq.html) +it()url(Reference Manual)(DOEXPAND(docdir)/tex/DOEXPAND(outdir)/refman.html) +it()url(Mailing Lists)(DOEXPAND(docdir)/DOEXPAND(outdir)/mail.html) +it()url(All of the LilyPond documentation)(DOEXPAND(docdir)/DOEXPAND(outdir)/index.html) +it()url(The DOC++ documentation of the C++ sources.)(DOEXPAND(depth)/docxx/index.html) ) -nsubsect(Examples) +nsect(Sites) itemize( -it()url(short examples of what LilyPond can do: MIDI, PS, .png and input.) -(DOEXPAND(depth)/input/DOEXPAND(outdir)/index.html) -it()url(examples of what LilyPond can do with real music: MIDI, PS, .png and input)(DOEXPAND(depth)/mutopia/DOEXPAND(outdir)/index.html) +it()lurl(http://www.cs.uu.nl/people/hanwen/lilypond/) Han-Wen's site +it()lurl(http://www.xs4all.nl/~jantien/lilypond/) Jan's site +it()lurl(http://www.realtime.net/~daboys/lilypond/) Jeff's Windows NT Distribution site ) -nsubsect(NEWS) +nsubsect(Mirrors) +description( +dit(lurl(http://sca.uwaterloo.ca/lilypond/)) + Eric Praetzel was kind enough to provide a mirror of both the website + and the ftp site. +) + +nsect(NEWS) This is what the latest version brings: verb( top_of_NEWS ) -Go get it at lurl(ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/development/) - -nsubsect(Documentation) - +beginbold() +Go get it at itemize( -it()url(All of the LilyPond documentation.)(DOEXPAND(docdir)/DOEXPAND(outdir)/index.html) -it()url(The DOC++ documentation of the C++ sources.)(DOEXPAND(depth)/docxx/index.html) +it()lurl(ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/development/) +endbold() +it()lurl(ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/RedHat/RPMS/) RedHat binary +it()lurl(ftp://ftp.debian.org/pub/debian/dists/unstable/main/binary-i386/tex) Debian binary +it()lurl(http://www.realtime.net/~daboys/lilypond/) Windows NT binary ) @COUNTER_REF@ diff --git a/TODO b/TODO index 6b8dc778be..52d614df1a 100644 --- a/TODO +++ b/TODO @@ -8,14 +8,11 @@ grep for TODO and ugh/ugr/urg BUGS: + * gallina barlines. * latex bla.tex broken (titles / \lilyfooter stuff?) - * acc placement: \score { \notes \key G; \transpose\notes { a b c } } - - * --safe: disallow backslashes, disallow \include. - * msgfmt -o check? * \breathmark TeX macro @@ -69,6 +66,12 @@ BUGS: portato= \script { "portato" 0 -1 0 1 0 } +STUFF + + * move option processing out of gh_enter + + * check out GCC signatures? + * Align_element::padding ? * uniformise property names. @@ -79,6 +82,8 @@ BUGS: * make engraver hacking robust. + * --safe: disallow backslashes, disallow \include. + * use streambufs and iostream to provide IO handling for TeX stream, mudela stream, data-file. @@ -88,8 +93,6 @@ BUGS: * zip target for binary windows dist (JBR) - * text continuations - * revise documentation * abbrev -> tremolo @@ -108,8 +111,6 @@ BUGS: - junk _ for lyrics. - abstract grammar. - * install TeX stuff into tex/generic directory. - * percussion note heads * mi2mu empty staffs. @@ -569,8 +570,6 @@ SMALLISH PROJECTS * Flower types: - A decent scalar type - - String hash - - Pointer hash * binsearch/hash for identifiers @@ -602,7 +601,6 @@ SMALLISH PROJECTS IDEAS - * Output data structures of Mudela in XML/SGML. * create libmudela, or liblily_frontend @@ -610,7 +608,7 @@ IDEAS * move MIDI stuff (including Quantization) to a ANSI C libmidi library. * use an embedded language: Python, Scheme - for: + for: - Score_elems - Translators @@ -620,8 +618,6 @@ IDEAS * caching breakpoints - * breath marks - * used fixedpoint arithmetic for min. energy. * move towards incremental algorithms. diff --git a/buildscripts/lilypond-profile.sh b/buildscripts/lilypond-profile.sh index 44bbfd0ec2..40e778f75a 100644 --- a/buildscripts/lilypond-profile.sh +++ b/buildscripts/lilypond-profile.sh @@ -8,7 +8,8 @@ LILYINCLUDE="@datadir@/ly:@datadir@/afm" # include an empty path component for the system wide includes. MFINPUTS="@datadir@/mf:"${MFINPUTS:=":"} -TEXINPUTS="@datadir@/tex:"${TEXINPUTS:=":"} +TEXINPUTS="@datadir@/tex:@datadir@/ps:"${TEXINPUTS:=":"} + GUILE_LOAD_PATH="@datadir@/scm:$GUILE_LOAD_PATH" export GUILE_LOAD_PATH LILYINCLUDE MFINPUTS TEXINPUTS GS_LIB GS_FONTPATH diff --git a/buildscripts/set-lily.sh b/buildscripts/set-lily.sh index c1db5b8408..c4ce395546 100644 --- a/buildscripts/set-lily.sh +++ b/buildscripts/set-lily.sh @@ -25,7 +25,7 @@ if [ "x$LILYINCLUDE" = "x" ]; then fi LILYINCLUDE=$LILYPOND_SOURCEDIR/init:$LILYPOND_SOURCEDIR/input:$LILYPOND_SOURCEDIR/mf/out MFINPUTS=$MFINPUTS:$LILYPOND_SOURCEDIR/mf - TEXINPUTS=$TEXINPUTS:$LILYPOND_SOURCEDIR/mf/out + TEXINPUTS=$TEXINPUTS:$LILYPOND_SOURCEDIR/mf/out:$LILYPOND_SOURCEDIR/ps:$LILYPOND_SOURCEDIR/tex export LILYINCLUDE MFINPUTS TEXINPUTS GS_LIB=$HOME/usr/src/lilypond/ps GS_FONTPATH=$HOME/usr/src/lilypond/mf/out @@ -34,7 +34,7 @@ if [ "x$LILYINCLUDE" = "x" ]; then cat <&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - eval "enable_${ac_feature}=no" ;; - - -enable-* | --enable-*) - ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "enable_${ac_feature}='$ac_optarg'" ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix="$ac_optarg" ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he) - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat << EOF -Usage: configure [options] [host] -Options: [defaults in brackets after descriptions] -Configuration: - --cache-file=FILE cache test results in FILE - --help print this message - --no-create do not create output files - --quiet, --silent do not print \`checking...' messages - --version print the version of autoconf that created configure -Directory and file names: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [same as prefix] - --bindir=DIR user executables in DIR [EPREFIX/bin] - --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] - --libexecdir=DIR program executables in DIR [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data in DIR - [PREFIX/share] - --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data in DIR - [PREFIX/com] - --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] - --libdir=DIR object code libraries in DIR [EPREFIX/lib] - --includedir=DIR C header files in DIR [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] - --infodir=DIR info documentation in DIR [PREFIX/info] - --mandir=DIR man documentation in DIR [PREFIX/man] - --srcdir=DIR find the sources in DIR [configure dir or ..] - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM - run sed PROGRAM on installed program names -EOF - cat << EOF -Host type: - --build=BUILD configure for building on BUILD [BUILD=HOST] - --host=HOST configure for HOST [guessed] - --target=TARGET configure for TARGET [TARGET=HOST] -Features and packages: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --x-includes=DIR X include files are in DIR - --x-libraries=DIR X library files are in DIR -EOF - if test -n "$ac_help"; then - echo "--enable and --with options recognized:$ac_help" - fi - exit 0 ;; - - -host | --host | --hos | --ho) - ac_prev=host ;; - -host=* | --host=* | --hos=* | --ho=*) - host="$ac_optarg" ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir="$ac_optarg" ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir="$ac_optarg" ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir="$ac_optarg" ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir="$ac_optarg" ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - localstatedir="$ac_optarg" ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir="$ac_optarg" ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir="$ac_optarg" ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix="$ac_optarg" ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix="$ac_optarg" ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix="$ac_optarg" ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name="$ac_optarg" ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir="$ac_optarg" ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir="$ac_optarg" ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site="$ac_optarg" ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir="$ac_optarg" ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir="$ac_optarg" ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target="$ac_optarg" ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers) - echo "configure generated by autoconf version 2.12" - exit 0 ;; - - -with-* | --with-*) - ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "with_${ac_package}='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`echo $ac_option|sed -e 's/-*without-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - eval "with_${ac_package}=no" ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes="$ac_optarg" ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries="$ac_optarg" ;; - - -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } - ;; - - *) - if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then - echo "configure: warning: $ac_option: invalid host type" 1>&2 - fi - if test "x$nonopt" != xNONE; then - { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } - fi - nonopt="$ac_option" - ;; - - esac -done - -if test -n "$ac_prev"; then - { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } -fi - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -# File descriptor usage: -# 0 standard input -# 1 file creation -# 2 errors and warnings -# 3 some systems may open it to /dev/tty -# 4 used on the Kubota Titan -# 6 checking for... messages and results -# 5 compiler messages saved in config.log -if test "$silent" = yes; then - exec 6>/dev/null -else - exec 6>&1 -fi -exec 5>./config.log - -echo "\ -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. -" 1>&5 - -# Strip out --no-create and --no-recursion so they do not pile up. -# Also quote any args containing shell metacharacters. -ac_configure_args= -for ac_arg -do - case "$ac_arg" in - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) ;; - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) - ac_configure_args="$ac_configure_args '$ac_arg'" ;; - *) ac_configure_args="$ac_configure_args $ac_arg" ;; - esac -done - -# NLS nuisances. -# Only set these to C if already set. These must not be set unconditionally -# because not all systems understand e.g. LANG=C (notably SCO). -# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! -# Non-C LC_CTYPE values break the ctype check. -if test "${LANG+set}" = set; then LANG=C; export LANG; fi -if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi -if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi -if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo > confdefs.h - -# A filename unique to this package, relative to the directory that -# configure is in, which we can look for to find out if srcdir is correct. -ac_unique_file=make/lilypond.lsm.in - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_prog=$0 - ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` - test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. - srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } - else - { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } - fi -fi -srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` - -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - echo "loading site script $ac_site_file" - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - echo "loading cache $cache_file" - . $cache_file -else - echo "creating cache $cache_file" - > $cache_file -fi - -ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cc_cross - -if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then - # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. - if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then - ac_n= ac_c=' -' ac_t=' ' - else - ac_n=-n ac_c= ac_t= - fi -else - ac_n= ac_c='\c' ac_t= -fi - - - - -# Bootstrap StepMake configure - - - . $srcdir/VERSION - FULL_VERSION=$MAJOR_VERSION.$MINOR_VERSION.$PATCH_LEVEL - if test x$MY_PATCH_LEVEL != x; then - FULL_VERSION=$FULL_VERSION.$MY_PATCH_LEVEL - fi - - # urg: don't "fix" this: irix doesn't know about [:lower:] and [:upper:] - PACKAGE=`echo $PACKAGE_NAME | tr '[a-z]' '[A-Z]'` - package=`echo $PACKAGE_NAME | tr '[A-Z]' '[a-z]'` - - # No versioning on directory names of sub-packages - # urg, urg - stepmake=${datadir}/stepmake - presome=${prefix} - if test "$prefix" = "NONE"; then - presome=${ac_default_prefix} - fi - stepmake=`echo ${stepmake} | sed "s!\\\${prefix}!$presome!"` - - if test "x$PACKAGE" = "xSTEPMAKE"; then - echo Stepmake package! - (cd stepmake; rm -f stepmake; ln -s ../stepmake .) - (cd stepmake; rm -f bin; ln -s ../bin .) - ac_aux_dir= -for ac_dir in bin $srcdir/bin; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { echo "configure: error: can not find install-sh or install.sh in bin $srcdir/bin" 1>&2; exit 1; } -fi -ac_config_guess=$ac_aux_dir/config.guess -ac_config_sub=$ac_aux_dir/config.sub -ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. - - stepmake=stepmake - else - echo Package: $PACKAGE - # Check for installed stepmake - if test -d $stepmake; then - echo Using installed stepmake: $stepmake - else - stepmake='$(depth)'/stepmake - echo Using local stepmake: $datadir/stepmake not found - fi - ac_aux_dir= -for ac_dir in \ - $HOME/usr/local/share/stepmake/bin\ - $HOME/usr/local/lib/stepmake/bin\ - $HOME/usr/share/stepmake/bin\ - $HOME/usr/lib/stepmake/bin\ - /usr/local/share/stepmake/bin\ - /usr/local/lib/stepmake/bin\ - /usr/share/stepmake/bin\ - /usr/lib/stepmake/bin\ - stepmake/bin\ - $srcdir/\ - $HOME/usr/local/share/stepmake/bin\ - $HOME/usr/local/lib/stepmake/bin\ - $HOME/usr/share/stepmake/bin\ - $HOME/usr/lib/stepmake/bin\ - /usr/local/share/stepmake/bin\ - /usr/local/lib/stepmake/bin\ - /usr/share/stepmake/bin\ - /usr/lib/stepmake/bin\ - stepmake/bin\ - ; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { echo "configure: error: can not find install-sh or install.sh in \ - $HOME/usr/local/share/stepmake/bin\ - $HOME/usr/local/lib/stepmake/bin\ - $HOME/usr/share/stepmake/bin\ - $HOME/usr/lib/stepmake/bin\ - /usr/local/share/stepmake/bin\ - /usr/local/lib/stepmake/bin\ - /usr/share/stepmake/bin\ - /usr/lib/stepmake/bin\ - stepmake/bin\ - $srcdir/\ - $HOME/usr/local/share/stepmake/bin\ - $HOME/usr/local/lib/stepmake/bin\ - $HOME/usr/share/stepmake/bin\ - $HOME/usr/lib/stepmake/bin\ - /usr/local/share/stepmake/bin\ - /usr/local/lib/stepmake/bin\ - /usr/share/stepmake/bin\ - /usr/lib/stepmake/bin\ - stepmake/bin\ - " 1>&2; exit 1; } -fi -ac_config_guess=$ac_aux_dir/config.guess -ac_config_sub=$ac_aux_dir/config.sub -ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. - - fi - - - - - - cat >> confdefs.h <> confdefs.h </dev/null` - if test "x$STATE_VECTOR" != "x"; then - STATE_VECTOR="\$(depth)/$STATE_VECTOR" - fi - - - CONFIGSUFFIX= - # Check whether --enable-config or --disable-config was given. -if test "${enable_config+set}" = set; then - enableval="$enable_config" - CONFIGSUFFIX=$enableval -fi - - - if test "$CONFIGSUFFIX" != "" ; then - CONFIGFILE=config-$CONFIGSUFFIX - else - CONFIGFILE=config - fi - - - -# Make sure we can run config.sub. -if $ac_config_sub sun4 >/dev/null 2>&1; then : -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:761: checking host system type" >&5 - -host_alias=$host -case "$host_alias" in -NONE) - case $nonopt in - NONE) - if host_alias=`$ac_config_guess`; then : - else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } - fi ;; - *) host_alias=$nonopt ;; - esac ;; -esac - -host=`$ac_config_sub $host_alias` -host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$host" 1>&6 - - for ac_prog in make -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:786: 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 - if test -n "$MAKE"; then - ac_cv_prog_MAKE="$MAKE" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_MAKE="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -MAKE="$ac_cv_prog_MAKE" -if test -n "$MAKE"; then - echo "$ac_t""$MAKE" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -test -n "$MAKE" && break -done -test -n "$MAKE" || MAKE="error" - - for ac_prog in find -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:820: 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 - if test -n "$FIND"; then - ac_cv_prog_FIND="$FIND" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_FIND="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -FIND="$ac_cv_prog_FIND" -if test -n "$FIND"; then - echo "$ac_t""$FIND" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -test -n "$FIND" && break -done -test -n "$FIND" || FIND="error" - - - - - for ac_prog in tar -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 -if eval "test \"`echo '$''{'ac_cv_prog_TAR'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$TAR"; then - ac_cv_prog_TAR="$TAR" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_TAR="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -TAR="$ac_cv_prog_TAR" -if test -n "$TAR"; then - echo "$ac_t""$TAR" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -test -n "$TAR" && break -done -test -n "$TAR" || TAR="error" - - for ac_prog in bash -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:891: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_BASH'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$BASH"; then - ac_cv_prog_BASH="$BASH" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_BASH="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -BASH="$ac_cv_prog_BASH" -if test -n "$BASH"; then - echo "$ac_t""$BASH" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -test -n "$BASH" && break -done -test -n "$BASH" || BASH="/bin/sh" - - - # Extract the first word of "${PYTHON:-python}", so it can be a program name with args. -set dummy ${PYTHON:-python}; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:924: 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 - case "$PYTHON" in - /*) - ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_path_PYTHON="$ac_dir/$ac_word" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_path_PYTHON" && ac_cv_path_PYTHON="-echo no python" - ;; -esac -fi -PYTHON="$ac_cv_path_PYTHON" -if test -n "$PYTHON"; then - echo "$ac_t""$PYTHON" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - - - - - result="`echo \"$MAKE\" | grep echo`" - if test "x$MAKE" = "xerror" -o "x$result" != "x"; then - - echo "configure: warning: can\'t find GNU make. You should install GNU make" 1>&2 - warn_b=yes - - fi - - if test $MAKE != "error" ; then - $MAKE -v| grep GNU > /dev/null - if test "$?" = 1 - then - - echo "configure: warning: Please install *GNU* make" 1>&2 - warn_b=yes - - fi - fi - - - result="`echo \"$PYTHON\" | grep echo`" - if test "x$PYTHON" = "xerror" -o "x$result" != "x"; then - - echo "configure: warning: can\'t find python. You should install Python" 1>&2 - warn_b=yes - - fi - - - if test "x$OSTYPE" = "xcygwin32" || test "x$OSTYPE" = "xWindows_NT"; then - LN=cp # hard link does not work under cygnus-nt - LN_S=cp # symbolic link does not work for native nt - ZIP="zip -r -9" # - DOTEXE=.exe - DIRSEP='\\' - PATHSEP=';' - INSTALL="\$(SHELL) \$(stepdir)/../bin/install-dot-exe.sh -c" - else - DIRSEP='/' - PATHSEP=':' - LN=ln - LN_S='ln -s' - ZIP="zip -r -9" - INSTALL="\$(SHELL) \$(stepdir)/../bin/install-sh -c" - fi - - - - - - cat >> confdefs.h <> confdefs.h <> confdefs.h <> confdefs.h <<\EOF -#define NPRINT 1 -EOF - - DEFINES="$DEFINES -DNPRINT" - fi - - if test "$checking_b" = no; then - # ugh - cat >> confdefs.h <<\EOF -#define NDEBUG 1 -EOF - - DEFINES="$DEFINES -DNDEBUG" - fi - - if test "$optimise_b" = yes; then - OPTIMIZE="-O2 -finline-functions" - fi - - if test "$optimise_b" = no; then - OPTIMIZE="" - fi - - if test $profile_b = yes; then - EXTRA_LIBES="-pg" - OPTIMIZE="$OPTIMIZE -pg" - fi - - if test $debug_b = yes; then - OPTIMIZE="$OPTIMIZE -g" - fi - - # however, C++ support in mingw32 v 0.1.4 is still flaky - if test x$MINGWPREFIX != xno; then - ICFLAGS="-I$MINGWPREFIX/include" - ILDFLAGS="-$MINGWPREFIX/lib" - fi - - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1140: 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 - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="gcc" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -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:1169: 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 - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - ac_prog_rejected=no - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - break - fi - done - IFS="$ac_save_ifs" -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# -gt 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - set dummy "$ac_dir/$ac_word" "$@" - shift - ac_cv_prog_CC="$@" - fi -fi -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } -fi - -echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1217: 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. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cc_cross - -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then - ac_cv_prog_cc_works=yes - # If we can't run a trivial program, we are probably using a cross compiler. - if (./conftest; exit) 2>/dev/null; then - ac_cv_prog_cc_cross=no - else - ac_cv_prog_cc_cross=yes - fi -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_cv_prog_cc_works=no -fi -rm -fr conftest* - -echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 -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:1251: 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:1256: 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 - cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then - ac_cv_prog_gcc=yes -else - ac_cv_prog_gcc=no -fi -fi - -echo "$ac_t""$ac_cv_prog_gcc" 1>&6 - -if test $ac_cv_prog_gcc = yes; then - GCC=yes - 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:1280: 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 - echo 'void f(){}' > conftest.c -if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then - ac_cv_prog_cc_g=yes -else - ac_cv_prog_cc_g=no -fi -rm -f conftest* - -fi - -echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 - if test "$ac_test_CFLAGS" = set; then - CFLAGS="$ac_save_CFLAGS" - elif test $ac_cv_prog_cc_g = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-O2" - fi -else - GCC= - test "${CFLAGS+set}" = set || CFLAGS="-g" -fi - - LD='$(CC)' - - - CPPFLAGS=${CPPFLAGS:-""} - - - - - - - -# AC_HAVE_HEADERS(limits.h malloc.h string.h unistd.h values.h) - -printing_b=no -# Check whether --enable-printing or --disable-printing was given. -if test "${enable_printing+set}" = set; then - enableval="$enable_printing" - printing_b=$enableval -fi - - -if test "$optimise_b" = yes; then - DEFINES="$DEFINES -DSTRING_UTILS_INLINED" - cat >> confdefs.h <<\EOF -#define STRINGS_UTILS_INLINED 1 -EOF - -fi - -echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6 -echo "configure:1337: 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 -else - ac_ext=C -# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -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:1355: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out` -if test -z "$ac_err"; then - : -else - echo "$ac_err" >&5 - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - CXXCPP=/lib/cpp -fi -rm -f conftest* - ac_cv_prog_CXXCPP="$CXXCPP" -fi -fi -CXXCPP="$ac_cv_prog_CXXCPP" -echo "$ac_t""$CXXCPP" 1>&6 - - - ac_ext=C -# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cxx_cross - - for ac_prog in $CCC c++ g++ gcc CC cxx cc++ -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:1386: 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 - if test -n "$CXX"; then - ac_cv_prog_CXX="$CXX" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CXX="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -CXX="$ac_cv_prog_CXX" -if test -n "$CXX"; then - echo "$ac_t""$CXX" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -test -n "$CXX" && break -done -test -n "$CXX" || CXX="gcc" - - -echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1417: 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. -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cxx_cross - -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then - ac_cv_prog_cxx_works=yes - # If we can't run a trivial program, we are probably using a cross compiler. - if (./conftest; exit) 2>/dev/null; then - ac_cv_prog_cxx_cross=no - else - ac_cv_prog_cxx_cross=yes - fi -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_cv_prog_cxx_works=no -fi -rm -fr conftest* - -echo "$ac_t""$ac_cv_prog_cxx_works" 1>&6 -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:1451: 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:1456: 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 - cat > conftest.C <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then - ac_cv_prog_gxx=yes -else - ac_cv_prog_gxx=no -fi -fi - -echo "$ac_t""$ac_cv_prog_gxx" 1>&6 - -if test $ac_cv_prog_gxx = yes; then - GXX=yes - 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:1480: 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 - echo 'void f(){}' > conftest.cc -if test -z "`${CXX-g++} -g -c conftest.cc 2>&1`"; then - ac_cv_prog_cxx_g=yes -else - ac_cv_prog_cxx_g=no -fi -rm -f conftest* - -fi - -echo "$ac_t""$ac_cv_prog_cxx_g" 1>&6 - if test "$ac_test_CXXFLAGS" = set; then - CXXFLAGS="$ac_save_CXXFLAGS" - elif test $ac_cv_prog_cxx_g = yes; then - CXXFLAGS="-g -O2" - else - CXXFLAGS="-O2" - fi -else - GXX= - test "${CXXFLAGS+set}" = set || CXXFLAGS="-g" -fi - - - ac_safe=`echo "FlexLexer.h" | sed 'y%./+-%__p_%'` -echo $ac_n "checking for FlexLexer.h""... $ac_c" 1>&6 -echo "configure:1510: 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:1520: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out` -if test -z "$ac_err"; then - rm -rf conftest* - eval "ac_cv_header_$ac_safe=yes" -else - echo "$ac_err" >&5 - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_header_$ac_safe=no" -fi -rm -f conftest* -fi -if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then - echo "$ac_t""yes" 1>&6 - true -else - echo "$ac_t""no" 1>&6 - - echo "configure: warning: can"\'"t find flex header. Please install Flex headers correctly" 1>&2 - warn_b=yes - -fi - - - CPPFLAGS="$CPPFLAGS $DEFINES" - CXXFLAGS="$CXXFLAGS $OPTIMIZE" - LDFLAGS=$EXTRA_LIBES - - - - LD='$(CXX)' - - - - # ugh autoconf - if $CXX --version | grep '2\.[78]' > /dev/null || - $CXX --version | grep 'egcs' > /dev/null - then - true - else - - echo "configure: warning: can\'t find g++ 2.7" 1>&2 - warn_b=yes - - fi - - - echo $ac_n "checking whether explicit instantiation is needed""... $ac_c" 1>&6 -echo "configure:1570: 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; }; - template int foo::baz = 1; - -int main() { - return foo::baz; -; return 0; } -EOF -if { (eval echo configure:1585: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then - rm -rf conftest* - lily_cv_need_explicit_instantiation=no -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - lily_cv_need_explicit_instantiation=yes -fi -rm -f conftest* -fi - -echo "$ac_t""$lily_cv_need_explicit_instantiation" 1>&6 - if test x"$lily_cv_need_explicit_instantiation"x = x"yes"x; then - cat >> confdefs.h <<\EOF -#define NEED_EXPLICIT_INSTANTIATION 1 -EOF - - fi - - - # ugh, automake: we want (and check for) bison - for ac_prog in 'bison -y' byacc -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:1612: 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 - if test -n "$YACC"; then - ac_cv_prog_YACC="$YACC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_YACC="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -YACC="$ac_cv_prog_YACC" -if test -n "$YACC"; then - echo "$ac_t""$YACC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -test -n "$YACC" && break -done -test -n "$YACC" || YACC="yacc" - - # ugh, automake: we want (and check for) flex - # AC_PROG_LEX - # urg: automake 1.3: hope this doesn't break 1.2 ac_cv_pro_lex_root hack... - - # AC_DECL_YYTEXT - # ugh, ugh - ac_cv_prog_lex_root=lex.yy - - for ac_prog in bison -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:1654: 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 - if test -n "$BISON"; then - ac_cv_prog_BISON="$BISON" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_BISON="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -BISON="$ac_cv_prog_BISON" -if test -n "$BISON"; then - echo "$ac_t""$BISON" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -test -n "$BISON" && break -done -test -n "$BISON" || BISON="error" - - for ac_prog in flex -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:1688: 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 - if test -n "$FLEX"; then - ac_cv_prog_FLEX="$FLEX" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_FLEX="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -FLEX="$ac_cv_prog_FLEX" -if test -n "$FLEX"; then - echo "$ac_t""$FLEX" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -test -n "$FLEX" && break -done -test -n "$FLEX" || FLEX="error" - - - result="`echo \"$BISON\" | grep echo`" - if test "x$BISON" = "xerror" -o "x$result" != "x"; then - - echo "configure: warning: can\'t find bison. Please install Bison" 1>&2 - warn_b=yes - - fi - - - result="`echo \"$FLEX\" | grep echo`" - if test "x$FLEX" = "xerror" -o "x$result" != "x"; then - - echo "configure: warning: can\'t find flex. Please install Flex" 1>&2 - warn_b=yes - - fi - - - if test $BISON != "error"; then - bison_version=`$BISON --version| sed 's/^.*version 1.//g' ` - if test $bison_version -lt 25; then - - echo "configure: warning: Your bison is a bit old (1.$bison_version). You might have to install 1.25" 1>&2 - warn_b=yes - - fi - fi - - - - - - for ac_prog in ar -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:1755: 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 - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_AR="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -AR="$ac_cv_prog_AR" -if test -n "$AR"; then - echo "$ac_t""$AR" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -test -n "$AR" && break -done -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:1787: 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 - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_RANLIB="ranlib" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" -fi -fi -RANLIB="$ac_cv_prog_RANLIB" -if test -n "$RANLIB"; then - echo "$ac_t""$RANLIB" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - - - - -# AC_STEPMAKE_LIBTOOL - - lang=English - ALL_LINGUAS="en nl" - - # with/enable ?? - # Check whether --with-localedir or --without-localedir was given. -if test "${with_localedir+set}" = set; then - withval="$with_localedir" - localedir=$with_localedir -else - localedir='${prefix}/share/locale' -fi - - - # Check whether --with-lang or --without-lang was given. -if test "${with_lang+set}" = set; then - withval="$with_lang" - language=$with_lang -else - language=English -fi - - - echo $ac_n "checking language""... $ac_c" 1>&6 -echo "configure:1842: checking language" >&5 - case "$language" in - En* | en* | Am* | am* | US* | us*) - lang=English;; - NL | nl | Du* | du* | Ned* | ned*) - lang=Dutch;; - "") - lang=English;; - *) - lang=unknown;; - esac - echo "$ac_t""$lang" 1>&6 - - if test "$lang" = "unknown" ; then - - echo "configure: warning: $language not supported; available are: $ALL_LINGUAS" 1>&2 - warn_b=yes - - fi - - - - DIR_LOCALEDIR=${localedir} - presome=${prefix} - if test "$prefix" = "NONE"; then - presome=${ac_default_prefix} - fi - DIR_LOCALEDIR=`echo ${DIR_LOCALEDIR} | sed "s!\\\${prefix}!$presome!"` - - - cat >> confdefs.h <&6 -echo "configure:1878: 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 -else - ac_save_LIBS="$LIBS" -LIBS="-lintl $LIBS" -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_lib=HAVE_LIB`echo intl | sed -e 's/[^a-zA-Z0-9_]/_/g' \ - -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` - cat >> confdefs.h <&6 -fi - - for ac_func in gettext -do -echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:1930: 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 < -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func(); - -int main() { - -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -$ac_func(); -#endif - -; return 0; } -EOF -if { (eval echo configure:1961: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then - rm -rf conftest* - eval "ac_cv_func_$ac_func=yes" -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_func_$ac_func=no" -fi -rm -f conftest* -fi - -if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` - cat >> confdefs.h <&6 -fi -done - - - - # AC_CHECK_PROGS(MSGFMT, msgfmt, -echo no msgfmt) - for ac_prog in msgfmt -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:1993: 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 - if test -n "$MSGFMT"; then - ac_cv_prog_MSGFMT="$MSGFMT" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_MSGFMT="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -MSGFMT="$ac_cv_prog_MSGFMT" -if test -n "$MSGFMT"; then - echo "$ac_t""$MSGFMT" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -test -n "$MSGFMT" && break -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:2023: 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 - else - # urg - MSGFMT="\$(SHELL) \$(step-bindir)/fake-msgfmt.sh" - echo "$ac_t""no" 1>&6 - - echo "configure: warning: please install msgfmt from GNU gettext" 1>&2 - warn_b=yes - - fi - if test ! -n "$MSGFMT"; then - - echo "configure: warning: please install msgfmt from GNU gettext" 1>&2 - warn_b=yes - - fi - - - # urg, never know what names these teTeX guys will think up - for ac_prog in mf -do -# Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2050: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_METAFONT'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$METAFONT"; then - ac_cv_prog_METAFONT="$METAFONT" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_METAFONT="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -METAFONT="$ac_cv_prog_METAFONT" -if test -n "$METAFONT"; then - echo "$ac_t""$METAFONT" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -test -n "$METAFONT" && break -done -test -n "$METAFONT" || METAFONT="no" - - if test "x$METAFONT" = "xno"; then - for ac_prog in mfont -do -# Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2085: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_MFONT'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$MFONT"; then - ac_cv_prog_MFONT="$MFONT" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_MFONT="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -MFONT="$ac_cv_prog_MFONT" -if test -n "$MFONT"; then - echo "$ac_t""$MFONT" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -test -n "$MFONT" && break -done -test -n "$MFONT" || MFONT="-echo no mf or mfont" - - METAFONT=$MFONT - fi - - for ac_prog in mp -do -# Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2122: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_METAPOST'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$METAPOST"; then - ac_cv_prog_METAPOST="$METAPOST" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_METAPOST="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -METAPOST="$ac_cv_prog_METAPOST" -if test -n "$METAPOST"; then - echo "$ac_t""$METAPOST" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -test -n "$METAPOST" && break -done -test -n "$METAPOST" || METAPOST="no" - - if test "x$METAPOST" = "xno"; then - for ac_prog in mpost -do -# Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2157: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_MPOST'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$MPOST"; then - ac_cv_prog_MPOST="$MPOST" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_MPOST="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -MPOST="$ac_cv_prog_MPOST" -if test -n "$MPOST"; then - echo "$ac_t""$MPOST" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -test -n "$MPOST" && break -done -test -n "$MPOST" || MPOST="-echo no mp or mpost" - - METAPOST=$MPOST - fi - - - - -# AC_STEPMAKE_TEXMF_DIRS - - if test "x$YODL" = "x"; then - for ac_prog in striproff -do -# Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2200: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_STRIPROFF'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$STRIPROFF"; then - ac_cv_prog_STRIPROFF="$STRIPROFF" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_STRIPROFF="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -STRIPROFF="$ac_cv_prog_STRIPROFF" -if test -n "$STRIPROFF"; then - echo "$ac_t""$STRIPROFF" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -test -n "$STRIPROFF" && break -done -test -n "$STRIPROFF" || STRIPROFF="-echo no striproff" - - for ac_prog in yodl -do -# Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2234: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_YODL'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$YODL"; then - ac_cv_prog_YODL="$YODL" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_YODL="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -YODL="$ac_cv_prog_YODL" -if test -n "$YODL"; then - echo "$ac_t""$YODL" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -test -n "$YODL" && break -done -test -n "$YODL" || YODL="-echo no yodl" - - for ac_prog in yodl2html -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:2268: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_YODL2HTML'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$YODL2HTML"; then - ac_cv_prog_YODL2HTML="$YODL2HTML" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_YODL2HTML="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -YODL2HTML="$ac_cv_prog_YODL2HTML" -if test -n "$YODL2HTML"; then - echo "$ac_t""$YODL2HTML" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -test -n "$YODL2HTML" && break -done -test -n "$YODL2HTML" || YODL2HTML="-echo no yodl" - - for ac_prog in yodl2latex -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:2302: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_YODL2LATEX'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$YODL2LATEX"; then - ac_cv_prog_YODL2LATEX="$YODL2LATEX" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_YODL2LATEX="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -YODL2LATEX="$ac_cv_prog_YODL2LATEX" -if test -n "$YODL2LATEX"; then - echo "$ac_t""$YODL2LATEX" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -test -n "$YODL2LATEX" && break -done - - for ac_prog in yodl2man -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:2335: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_YODL2MAN'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$YODL2MAN"; then - ac_cv_prog_YODL2MAN="$YODL2MAN" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_YODL2MAN="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -YODL2MAN="$ac_cv_prog_YODL2MAN" -if test -n "$YODL2MAN"; then - echo "$ac_t""$YODL2MAN" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -test -n "$YODL2MAN" && break -done -test -n "$YODL2MAN" || YODL2MAN="-echo no yodl" - - for ac_prog in yodl2msless -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:2369: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_YODL2MSLESS'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$YODL2MSLESS"; then - ac_cv_prog_YODL2MSLESS="$YODL2MSLESS" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_YODL2MSLESS="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -YODL2MSLESS="$ac_cv_prog_YODL2MSLESS" -if test -n "$YODL2MSLESS"; then - echo "$ac_t""$YODL2MSLESS" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -test -n "$YODL2MSLESS" && break -done -test -n "$YODL2MSLESS" || YODL2MSLESS="-echo no yodl" - - for ac_prog in yodl2texinfo -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:2403: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_YODL2TEXINFO'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$YODL2TEXINFO"; then - ac_cv_prog_YODL2TEXINFO="$YODL2TEXINFO" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_YODL2TEXINFO="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -YODL2TEXINFO="$ac_cv_prog_YODL2TEXINFO" -if test -n "$YODL2TEXINFO"; then - echo "$ac_t""$YODL2TEXINFO" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -test -n "$YODL2TEXINFO" && break -done -test -n "$YODL2TEXINFO" || YODL2TEXINFO="-echo no yodl" - - for ac_prog in yodl2txt -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:2437: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_YODL2TXT'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$YODL2TXT"; then - ac_cv_prog_YODL2TXT="$YODL2TXT" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_YODL2TXT="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -YODL2TXT="$ac_cv_prog_YODL2TXT" -if test -n "$YODL2TXT"; then - echo "$ac_t""$YODL2TXT" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -test -n "$YODL2TXT" && break -done -test -n "$YODL2TXT" || YODL2TXT="-echo no yodl" - - YODL2LESS_DIR='$(bindir)/' - else - - - - - - - - - - export STRIPROFF YODL YODL2HTML YODL2LATEX YODL2MAN YODL2MSLESS YODL2TEXINFO YODL2TXT - fi - if test "x$YODL" = "-echo no yodl"; then - - echo "configure: warning: Did not find YODL (Yodl is Yet Oneother Document Language, see http://www.cs.uu.nl/~hanwen/yodl)" 1>&2 - warn_b=yes - - fi - - - # urg, must check for different functions in libguile - # to force new check iso reading from cache - echo $ac_n "checking for scm_shell in -lguile""... $ac_c" 1>&6 -echo "configure:2490: checking for scm_shell in -lguile" >&5 -ac_lib_var=`echo guile'_'scm_shell | sed 'y%./+-%__p_%'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_save_LIBS="$LIBS" -LIBS="-lguile $LIBS" -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - \ - LIBS="-lguile $LIBS" cat >> confdefs.h <<\EOF -#define HAVE_LIBGUILE 1 -EOF - -else - echo "$ac_t""no" 1>&6 -\ - echo $ac_n "checking for readline in -lreadline""... $ac_c" 1>&6 -echo "configure:2536: checking for readline in -lreadline" >&5 -ac_lib_var=`echo readline'_'readline | sed 'y%./+-%__p_%'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_save_LIBS="$LIBS" -LIBS="-lreadline $LIBS" -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_lib=HAVE_LIB`echo readline | sed -e 's/^a-zA-Z0-9_/_/g' \ - -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` - cat >> confdefs.h <&6 -fi - \ - echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 -echo "configure:2586: checking for dlopen in -ldl" >&5 -ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_save_LIBS="$LIBS" -LIBS="-ldl $LIBS" -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_lib=HAVE_LIB`echo dl | sed -e 's/^a-zA-Z0-9_/_/g' \ - -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` - cat >> confdefs.h <&6 -fi - \ - echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6 -echo "configure:2636: checking for socket in -lsocket" >&5 -ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_save_LIBS="$LIBS" -LIBS="-lsocket $LIBS" -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_lib=HAVE_LIB`echo socket | sed -e 's/^a-zA-Z0-9_/_/g' \ - -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` - cat >> confdefs.h <&6 -fi -\ - echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6 -echo "configure:2686: checking for tgetent in -ltermcap" >&5 -ac_lib_var=`echo termcap'_'tgetent | sed 'y%./+-%__p_%'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_save_LIBS="$LIBS" -LIBS="-ltermcap $LIBS" -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_lib=HAVE_LIB`echo termcap | sed -e 's/^a-zA-Z0-9_/_/g' \ - -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` - cat >> confdefs.h <&6 -fi -\ - echo $ac_n "checking for fabs in -lm""... $ac_c" 1>&6 -echo "configure:2736: checking for fabs in -lm" >&5 -ac_lib_var=`echo m'_'fabs | sed 'y%./+-%__p_%'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_save_LIBS="$LIBS" -LIBS="-lm $LIBS" -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_lib=HAVE_LIB`echo m | sed -e 's/^a-zA-Z0-9_/_/g' \ - -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` - cat >> confdefs.h <&6 -fi -\ - echo $ac_n "checking for scm_boot_guile in -lguile""... $ac_c" 1>&6 -echo "configure:2786: checking for scm_boot_guile in -lguile" >&5 -ac_lib_var=`echo guile'_'scm_boot_guile | sed 'y%./+-%__p_%'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_save_LIBS="$LIBS" -LIBS="-lguile $LIBS" -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_lib=HAVE_LIB`echo guile | sed -e 's/^a-zA-Z0-9_/_/g' \ - -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` - cat >> confdefs.h <&6 -fi -\ - -fi - - - - -echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6 -echo "configure:2842: 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 - if test "$cross_compiling" = yes; then - ac_cv_func_memcmp_clean=no -else - cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null -then - ac_cv_func_memcmp_clean=yes -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -fr conftest* - ac_cv_func_memcmp_clean=no -fi -rm -fr conftest* -fi - -fi - -echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6 -test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.o" - -echo $ac_n "checking for vprintf""... $ac_c" 1>&6 -echo "configure:2881: 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 < -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char vprintf(); - -int main() { - -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_vprintf) || defined (__stub___vprintf) -choke me -#else -vprintf(); -#endif - -; return 0; } -EOF -if { (eval echo configure:2912: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then - rm -rf conftest* - eval "ac_cv_func_vprintf=yes" -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_func_vprintf=no" -fi -rm -f conftest* -fi - -if eval "test \"`echo '$ac_cv_func_'vprintf`\" = yes"; then - echo "$ac_t""yes" 1>&6 - cat >> confdefs.h <<\EOF -#define HAVE_VPRINTF 1 -EOF - -else - echo "$ac_t""no" 1>&6 -fi - -if test "$ac_cv_func_vprintf" != yes; then -echo $ac_n "checking for _doprnt""... $ac_c" 1>&6 -echo "configure:2936: 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 < -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char _doprnt(); - -int main() { - -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub__doprnt) || defined (__stub____doprnt) -choke me -#else -_doprnt(); -#endif - -; return 0; } -EOF -if { (eval echo configure:2967: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then - rm -rf conftest* - eval "ac_cv_func__doprnt=yes" -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_func__doprnt=no" -fi -rm -f conftest* -fi - -if eval "test \"`echo '$ac_cv_func_'_doprnt`\" = yes"; then - echo "$ac_t""yes" 1>&6 - cat >> confdefs.h <<\EOF -#define HAVE_DOPRNT 1 -EOF - -else - echo "$ac_t""no" 1>&6 -fi - -fi - -for ac_func in memmem snprintf vsnprintf gettext -do -echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2994: 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 < -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func(); - -int main() { - -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -$ac_func(); -#endif - -; return 0; } -EOF -if { (eval echo configure:3025: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then - rm -rf conftest* - eval "ac_cv_func_$ac_func=yes" -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_func_$ac_func=no" -fi -rm -f conftest* -fi - -if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` - cat >> confdefs.h <&6 -fi -done - - -cat >> confdefs.h <> confdefs.h <&6 -echo "configure:3064: 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 - if test -n "$MAKEINFO"; then - ac_cv_prog_MAKEINFO="$MAKEINFO" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_MAKEINFO="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -MAKEINFO="$ac_cv_prog_MAKEINFO" -if test -n "$MAKEINFO"; then - echo "$ac_t""$MAKEINFO" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -test -n "$MAKEINFO" && break -done -test -n "$MAKEINFO" || MAKEINFO="error" - - - result="`echo \"$YODL2TEXINFO\" | grep echo`" - if test "x$YODL2TEXINFO" = "xerror" -o "x$result" != "x"; then - - echo "configure: warning: can\'t find yodl. You should install Yodl 1.30.2 or better" 1>&2 - warn_b=yes - - fi - - - - trap '' 1 2 15 -cat > confcache <<\EOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs. It is not useful on other systems. -# If it contains results you don't want to keep, you may remove or edit it. -# -# By default, configure uses ./config.cache as the cache file, -# creating it if it does not exist already. You can give configure -# the --cache-file=FILE option to use a different cache file; that is -# what configure does when it calls configure scripts in -# subdirectories, so they share the cache. -# Giving --cache-file=/dev/null disables caching, for debugging configure. -# config.status only pays attention to the cache file if you give it the -# --recheck option to rerun configure. -# -EOF -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -(set) 2>&1 | - case `(ac_space=' '; set) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote substitution - # turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - -e "s/'/'\\\\''/g" \ - -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' - ;; - esac >> confcache -if cmp -s $cache_file confcache; then - : -else - if test -w $cache_file; then - echo "updating cache $cache_file" - cat confcache > $cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# Any assignment to VPATH causes Sun make to only execute -# the first set of double-colon rules, so remove it if not needed. -# If there is a colon in the path, we need to keep it. -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' -fi - -trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 - -DEFS=-DHAVE_CONFIG_H - -# Without the "./", some shells look in PATH for config.status. -: ${CONFIG_STATUS=./config.status} - -echo creating $CONFIG_STATUS -rm -f $CONFIG_STATUS -cat > $CONFIG_STATUS </dev/null | sed 1q`: -# -# $0 $ac_configure_args -# -# Compiler output produced by configure, useful for debugging -# configure, is in ./config.log if it exists. - -ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" -for ac_option -do - case "\$ac_option" in - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" - exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; - -version | --version | --versio | --versi | --vers | --ver | --ve | --v) - echo "$CONFIG_STATUS generated by autoconf version 2.12" - exit 0 ;; - -help | --help | --hel | --he | --h) - echo "\$ac_cs_usage"; exit 0 ;; - *) echo "\$ac_cs_usage"; exit 1 ;; - esac -done - -ac_given_srcdir=$srcdir - -trap 'rm -fr `echo "$CONFIGFILE.make:config.make.in $CONFIGFILE.h:config.hh.in" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 -EOF -cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF -$ac_vpsub -$extrasub -s%@CFLAGS@%$CFLAGS%g -s%@CPPFLAGS@%$CPPFLAGS%g -s%@CXXFLAGS@%$CXXFLAGS%g -s%@DEFS@%$DEFS%g -s%@LDFLAGS@%$LDFLAGS%g -s%@LIBS@%$LIBS%g -s%@exec_prefix@%$exec_prefix%g -s%@prefix@%$prefix%g -s%@program_transform_name@%$program_transform_name%g -s%@bindir@%$bindir%g -s%@sbindir@%$sbindir%g -s%@libexecdir@%$libexecdir%g -s%@datadir@%$datadir%g -s%@sysconfdir@%$sysconfdir%g -s%@sharedstatedir@%$sharedstatedir%g -s%@localstatedir@%$localstatedir%g -s%@libdir@%$libdir%g -s%@includedir@%$includedir%g -s%@oldincludedir@%$oldincludedir%g -s%@infodir@%$infodir%g -s%@mandir@%$mandir%g -s%@stepmake@%$stepmake%g -s%@package@%$package%g -s%@PACKAGE@%$PACKAGE%g -s%@PACKAGE_NAME@%$PACKAGE_NAME%g -s%@package_depth@%$package_depth%g -s%@AUTOGENERATE@%$AUTOGENERATE%g -s%@absolute_builddir@%$absolute_builddir%g -s%@STATE_VECTOR@%$STATE_VECTOR%g -s%@CONFIGSUFFIX@%$CONFIGSUFFIX%g -s%@host@%$host%g -s%@host_alias@%$host_alias%g -s%@host_cpu@%$host_cpu%g -s%@host_vendor@%$host_vendor%g -s%@host_os@%$host_os%g -s%@MAKE@%$MAKE%g -s%@FIND@%$FIND%g -s%@TAR@%$TAR%g -s%@BASH@%$BASH%g -s%@PYTHON@%$PYTHON%g -s%@DOTEXE@%$DOTEXE%g -s%@ZIP@%$ZIP%g -s%@LN@%$LN%g -s%@LN_S@%$LN_S%g -s%@INSTALL@%$INSTALL%g -s%@PATHSEP@%$PATHSEP%g -s%@DIRSEP@%$DIRSEP%g -s%@DIR_DATADIR@%$DIR_DATADIR%g -s%@subdirs@%$subdirs%g -s%@CC@%$CC%g -s%@LD@%$LD%g -s%@ICFLAGS@%$ICFLAGS%g -s%@ILDFLAGS@%$ILDFLAGS%g -s%@DEFINES@%$DEFINES%g -s%@EXTRA_LIBES@%$EXTRA_LIBES%g -s%@CXX@%$CXX%g -s%@CXXCPP@%$CXXCPP%g -s%@YACC@%$YACC%g -s%@BISON@%$BISON%g -s%@FLEX@%$FLEX%g -s%@AR@%$AR%g -s%@RANLIB@%$RANLIB%g -s%@localedir@%$localedir%g -s%@DIR_LOCALEDIR@%$DIR_LOCALEDIR%g -s%@MSGFMT@%$MSGFMT%g -s%@METAFONT@%$METAFONT%g -s%@MFONT@%$MFONT%g -s%@METAPOST@%$METAPOST%g -s%@MPOST@%$MPOST%g -s%@STRIPROFF@%$STRIPROFF%g -s%@YODL@%$YODL%g -s%@YODL2HTML@%$YODL2HTML%g -s%@YODL2LATEX@%$YODL2LATEX%g -s%@YODL2MAN@%$YODL2MAN%g -s%@YODL2MSLESS@%$YODL2MSLESS%g -s%@YODL2TEXINFO@%$YODL2TEXINFO%g -s%@YODL2TXT@%$YODL2TXT%g -s%@YODL2LESS_DIR@%$YODL2LESS_DIR%g -s%@LIBOBJS@%$LIBOBJS%g -s%@MAKEINFO@%$MAKEINFO%g - -CEOF -EOF - -cat >> $CONFIG_STATUS <<\EOF - -# Split the substitutions into bite-sized pieces for seds with -# small command number limits, like on Digital OSF/1 and HP-UX. -ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. -ac_file=1 # Number of current file. -ac_beg=1 # First line for current file. -ac_end=$ac_max_sed_cmds # Line after last line for current file. -ac_more_lines=: -ac_sed_cmds="" -while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file - else - sed "${ac_end}q" conftest.subs > conftest.s$ac_file - fi - if test ! -s conftest.s$ac_file; then - ac_more_lines=false - rm -f conftest.s$ac_file - else - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f conftest.s$ac_file" - else - ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" - fi - ac_file=`expr $ac_file + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_cmds` - fi -done -if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat -fi -EOF - -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF -for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case "$ac_file" in - *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` - ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - *) ac_file_in="${ac_file}.in" ;; - esac - - # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. - - # Remove last slash and all that follows it. Not all systems have dirname. - ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - # The file is in a subdirectory. - test ! -d "$ac_dir" && mkdir "$ac_dir" - ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" - # A "../" for each directory in $ac_dir_suffix. - ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` - else - ac_dir_suffix= ac_dots= - fi - - case "$ac_given_srcdir" in - .) srcdir=. - if test -z "$ac_dots"; then top_srcdir=. - else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; - /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; - *) # Relative path. - srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" - top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - - - echo creating "$ac_file" - rm -f "$ac_file" - configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." - case "$ac_file" in - *Makefile*) ac_comsub="1i\\ -# $configure_input" ;; - *) ac_comsub= ;; - esac - - ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` - sed -e "$ac_comsub -s%@configure_input@%$configure_input%g -s%@srcdir@%$srcdir%g -s%@top_srcdir@%$top_srcdir%g -" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file -fi; done -rm -f conftest.s* - -# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where -# NAME is the cpp macro being defined and VALUE is the value it is being given. -# -# ac_d sets the value in "#define NAME VALUE" lines. -ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)' -ac_dB='\([ ][ ]*\)[^ ]*%\1#\2' -ac_dC='\3' -ac_dD='%g' -# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE". -ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' -ac_uB='\([ ]\)%\1#\2define\3' -ac_uC=' ' -ac_uD='\4%g' -# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE". -ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' -ac_eB='$%\1#\2define\3' -ac_eC=' ' -ac_eD='%g' - -if test "${CONFIG_HEADERS+set}" != set; then -EOF -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF -fi -for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case "$ac_file" in - *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` - ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - *) ac_file_in="${ac_file}.in" ;; - esac - - echo creating $ac_file - - rm -f conftest.frag conftest.in conftest.out - ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` - cat $ac_file_inputs > conftest.in - -EOF - -# Transform confdefs.h into a sed script conftest.vals that substitutes -# the proper values into config.h.in to produce config.h. And first: -# Protect against being on the right side of a sed subst in config.status. -# Protect against being in an unquoted here document in config.status. -rm -f conftest.vals -cat > conftest.hdr <<\EOF -s/[\\&%]/\\&/g -s%[\\$`]%\\&%g -s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp -s%ac_d%ac_u%gp -s%ac_u%ac_e%gp -EOF -sed -n -f conftest.hdr confdefs.h > conftest.vals -rm -f conftest.hdr - -# This sed command replaces #undef with comments. This is necessary, for -# example, in the case of _POSIX_SOURCE, which is predefined and required -# on some systems where configure will not decide to define it. -cat >> conftest.vals <<\EOF -s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */% -EOF - -# Break up conftest.vals because some shells have a limit on -# the size of here documents, and old seds have small limits too. - -rm -f conftest.tail -while : -do - ac_lines=`grep -c . conftest.vals` - # grep -c gives empty output for an empty file on some AIX systems. - if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi - # Write a limited-size here document to conftest.frag. - echo ' cat > conftest.frag <> $CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS - echo 'CEOF - sed -f conftest.frag conftest.in > conftest.out - rm -f conftest.in - mv conftest.out conftest.in -' >> $CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail - rm -f conftest.vals - mv conftest.tail conftest.vals -done -rm -f conftest.vals - -cat >> $CONFIG_STATUS <<\EOF - rm -f conftest.frag conftest.h - echo "/* $ac_file. Generated automatically by configure. */" > conftest.h - cat conftest.in >> conftest.h - rm -f conftest.in - if cmp -s $ac_file conftest.h 2>/dev/null; then - echo "$ac_file is unchanged" - rm -f conftest.h - else - # Remove last slash and all that follows it. Not all systems have dirname. - ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - # The file is in a subdirectory. - test ! -d "$ac_dir" && mkdir "$ac_dir" - fi - rm -f $ac_file - mv conftest.h $ac_file - fi -fi; done - -EOF -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF - -exit 0 -EOF -chmod +x $CONFIG_STATUS -rm -fr confdefs* $ac_clean_files -test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 - -if test "$no_recursion" != yes; then - - # Remove --cache-file and --srcdir arguments so they do not pile up. - ac_sub_configure_args= - ac_prev= - for ac_arg in $ac_configure_args; do - if test -n "$ac_prev"; then - ac_prev= - continue - fi - case "$ac_arg" in - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - ;; - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - ;; - *) ac_sub_configure_args="$ac_sub_configure_args $ac_arg" ;; - esac - done - - for ac_config_dir in stepmake; do - - # Do not complain, so a configure script can configure whichever - # parts of a large source tree are present. - if test ! -d $srcdir/$ac_config_dir; then - continue - fi - - echo configuring in $ac_config_dir - - case "$srcdir" in - .) ;; - *) - if test -d ./$ac_config_dir || mkdir ./$ac_config_dir; then :; - else - { echo "configure: error: can not create `pwd`/$ac_config_dir" 1>&2; exit 1; } - fi - ;; - esac - - ac_popdir=`pwd` - cd $ac_config_dir - - # A "../" for each directory in /$ac_config_dir. - ac_dots=`echo $ac_config_dir|sed -e 's%^\./%%' -e 's%[^/]$%&/%' -e 's%[^/]*/%../%g'` - - case "$srcdir" in - .) # No --srcdir option. We are building in place. - ac_sub_srcdir=$srcdir ;; - /*) # Absolute path. - ac_sub_srcdir=$srcdir/$ac_config_dir ;; - *) # Relative path. - ac_sub_srcdir=$ac_dots$srcdir/$ac_config_dir ;; - esac - - # Check for guested configure; otherwise get Cygnus style configure. - if test -f $ac_sub_srcdir/configure; then - ac_sub_configure=$ac_sub_srcdir/configure - elif test -f $ac_sub_srcdir/configure.in; then - ac_sub_configure=$ac_configure - else - echo "configure: warning: no configuration information is in $ac_config_dir" 1>&2 - ac_sub_configure= - fi - - # The recursion is here. - if test -n "$ac_sub_configure"; then - - # Make the cache file name correct relative to the subdirectory. - case "$cache_file" in - /*) ac_sub_cache_file=$cache_file ;; - *) # Relative path. - ac_sub_cache_file="$ac_dots$cache_file" ;; - esac - - echo "running ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir" - # The eval makes quoting arguments work. - if eval ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir - then : - else - { echo "configure: error: $ac_sub_configure failed for $ac_config_dir" 1>&2; exit 1; } - fi - fi - - cd $ac_popdir - done -fi - - - rm -f GNUmakefile - cp make/toplevel.make.in ./GNUmakefile - chmod 444 GNUmakefile - - diff --git a/configure.in b/configure.in index b0277039b6..044e0d5e6a 100644 --- a/configure.in +++ b/configure.in @@ -39,6 +39,8 @@ AC_STEPMAKE_TEXMF AC_STEPMAKE_YODL AC_STEPMAKE_GUILE +CXXFLAGS="$CXXFLAGS -fhandle-signatures" + dnl should check out -print dnl huh? dnl AC_CHECK_SEARCH_RESULT($FIND, find, Please use --enable-tex-dir) diff --git a/flower/include/array.hh b/flower/include/array.hh index c9c146e9f1..cc489fdf10 100644 --- a/flower/include/array.hh +++ b/flower/include/array.hh @@ -99,7 +99,7 @@ public: Warning: contents are unspecified */ void set_size (int s) { - if (s >= max_) remax (s); + if (s > max_) remax (s); size_ = s; } diff --git a/flower/include/pointer.hh b/flower/include/pointer.hh index 48a86e118a..f066cdf8d2 100644 --- a/flower/include/pointer.hh +++ b/flower/include/pointer.hh @@ -20,54 +20,54 @@ Sorry for the silly naming */ template class P { - /** - Set contents to a copy of #t_l# - */ - void copy (T const*t_l); - T* t_p; + /** + Set contents to a copy of #t_l# + */ + void copy (T const*t_l); + T* t_p; /** junk contents and set to 0 */ - void junk(); + void junk(); public: - P(P const &src); - /** + P(P const &src); + /** Remove the pointer, and return it. */ - T *get_p() { T*p = t_p; t_p=0; return p; } - /** + T *get_p() { T*p = t_p; t_p=0; return p; } + /** return the pointer */ - T *get_l() { return t_p; } + T *get_l() { return t_p; } - T const *get_C() const { return t_p; } - /** + T const *get_C() const { return t_p; } + /** copy the contents of pointer, and return it */ - T *copy_p() const; - /** + T *copy_p() const; + /** swallow new_p, and set contents t new_p */ - void set_p (T *new_p); - /** + void set_p (T *new_p); + /** junk contents, and copy contents of t_l */ - void set_l (T const *t_C); + void set_l (T const *t_C); - P &operator =(P const &); - ~P(); - P() { t_p = 0; } - //P(T *p) { t_p = p; } + P &operator =(P const &); + ~P(); + P() { t_p = 0; } + //P(T *p) { t_p = p; } - T *operator ->() { return t_p; } - operator T *() { return t_p; } - const T *operator ->() const { return t_p ; } - T &operator *() { return *t_p; } - T const &operator *() const { return *t_p; } - operator const T *() const { return t_p; } + T *operator ->() { return t_p; } + operator T *() { return t_p; } + const T *operator ->() const { return t_p ; } + T &operator *() { return *t_p; } + T const &operator *() const { return *t_p; } + operator const T *() const { return t_p; } }; #endif // POINTER_HH diff --git a/flower/include/pointer.tcc b/flower/include/pointer.tcc index 9829d5399c..645e26635c 100644 --- a/flower/include/pointer.tcc +++ b/flower/include/pointer.tcc @@ -64,7 +64,7 @@ void P::set_p (T * np) { if (np == t_p) - return; + return; delete t_p; t_p = np; @@ -77,7 +77,7 @@ void P::set_l (T const * l_C) { if (t_p == l_C) - return; + return; junk(); copy (l_C); diff --git a/flower/include/virtual-methods.hh b/flower/include/virtual-methods.hh index 909267165b..a5c80e1281 100644 --- a/flower/include/virtual-methods.hh +++ b/flower/include/virtual-methods.hh @@ -13,84 +13,21 @@ #include #include "stdlib.h" // size_t -/** Declare the classes name as a static and virtual function. - The static_name() can *not* be inlined (this might have the effect that - s->name() != S::static_name (). Overlapping strings need not be merged in C++ - */ -#define DECLARE_MY_RUNTIME_TYPEINFO \ -virtual char const *name() const{ return static_name (); }\ -static char const *static_name() - - -#if 0 - /* - oops. before() has nothing to do with inheritance - */ -inline bool operator > (type_info const &a1, type_info const &a2) -{ - return a2.before (a1); -} - -inline bool operator < (type_info const &a1, type_info const &a2) -{ - return a1.before (a2); -} - -inline bool operator <= (type_info const &a1, type_info const &a2) -{ - return a1 == a2 || a1 < a2; -} - -inline bool operator >= (type_info const &a1, type_info const &a2) -{ - return a1 == a2 || a1 > a2; -} -#endif - -#define IMPLEMENT_STATIC_NAME(c)\ - char const *c::static_name() { return #c; } - - /* - size_t c::static_class_size () { return sizeof (c); } - */ - -#define VIRTUAL_COPY_CONS(T, R)\ - virtual R *clone() const { return new T(*this); } +#define classname(class_ptr) demangle_classname(typeid(*(class_ptr)).name()) -#define DECLARE_VIRTUAL_COPY_CONS(T, R)\ - virtual R *clone() const +const char * +demangle_classname (const char*); -#define IMPLEMENT_VIRTUAL_COPY_CONS(T, R)\ - R *T::clone() const { return new T(*this); }\ +/** - -#define IMPLEMENT_IS_TYPE_B(D)\ - IMPLEMENT_STATIC_NAME(D) + Virtual copy constructor. Make up for C++'s lack of a standard + clone() function. Uses a typeof hack. Usage: -/* - bool D::static_is_type_b (const char *s)\ -{\ - return s == static_name();\ -}*/ - -#define IMPLEMENT_IS_TYPE_B1(D, B)\ - IMPLEMENT_STATIC_NAME(D) -/* - bool D::static_is_type_b (const char *s)\ -{\ - return s == static_name() || B::static_is_type_b (s);\ -} -*/ - -#define IMPLEMENT_IS_TYPE_B2(D, BA, BB)\ - IMPLEMENT_STATIC_NAME(D) - -/* - - bool D::static_is_type_b (const char *s)\ -{\ - return s == static_name() || BA::static_is_type_b (s) || BB::static_is_type_b (s);\ -} -*/ + class Foo : Baseclass { + VIRTUAL_COPY_CONS(Baseclass); + }; + + */ +#define VIRTUAL_COPY_CONS(base) virtual base *clone () const { return new typeof(*this) (*this); } #endif diff --git a/flower/rtti.cc b/flower/rtti.cc new file mode 100644 index 0000000000..911e191515 --- /dev/null +++ b/flower/rtti.cc @@ -0,0 +1,23 @@ + + + +/*#include + +signature S +{ + int foo (); + int bar (int); +}; +*/ + +#include +#include "virtual-methods.hh" + + +const char * +demangle_classname (char const *s) +{ + while (isdigit (*s)) + s++; + return s; +} diff --git a/init/engraver.ly b/init/engraver.ly index aa3a5382be..48c0145b5b 100644 --- a/init/engraver.ly +++ b/init/engraver.ly @@ -89,7 +89,7 @@ VoiceContext = \translator { \consists "Rest_engraver"; \consists "Dot_column_engraver"; \consists "Stem_engraver"; - \consists "Plet_engraver"; +% \consists "Plet_engraver"; \consists "Beam_engraver"; \consists "Abbreviation_beam_engraver"; \consists "Multi_measure_rest_engraver"; @@ -135,6 +135,7 @@ GrandStaffContext=\translator{ \name LyricVoice ; \consists "Separating_line_group_engraver"; \consists "Lyric_engraver"; + \consists "Extender_engraver"; \consists "Beam_req_swallow_translator"; \consists "Plet_swallow_engraver"; } @@ -217,8 +218,10 @@ HaraKiriStaffContext = \translator { \accepts "Voice"; }; +% huh, Score should do HaraKiri, not Part yes? OrchestralPartStaffContext = \translator { - \HaraKiriStaffContext +% \HaraKiriStaffContext + \StaffContext barColumnPriority = "0"; marginBreakPriority = "-4"; \consists "Mark_engraver"; @@ -226,6 +229,7 @@ OrchestralPartStaffContext = \translator { \consists "Bar_number_engraver"; }; +% where to put HaraKiri here? OrchestralScoreContext= \translator { \type Score_engraver; \name Score; diff --git a/init/lily.scm b/init/lily.scm index 8cd3f0eabe..e045426a26 100644 --- a/init/lily.scm +++ b/init/lily.scm @@ -10,6 +10,11 @@ ; all preparations from ps,tex to scm ;;; library funtions +(define + (xnumbers->string l) + (string-append + (map (lambda (n) (string-append (number->string n ) " ")) l))) + (define (numbers->string l) (apply string-append @@ -30,10 +35,6 @@ (let ((n (inexact->exact x))) (number->string n radix))) -(define - (number->dim-tex x) - (string-append - (number->string (chop-decimal x)) "pt ")) (define (control->string c) @@ -41,24 +42,76 @@ (string-append (number->string (car c)) " ") (string-append (number->string (cadr c)) " "))) +;;;;;;;; TeX +; (define (tex action) + +(define + (beam-tex width slope thick) + (embedded-ps-tex (beam-ps width slope thick))) + +(define + (bracket-tex h) + (embedded-ps-tex (bracket-ps h))) + +(define + (dashed-slur-tex thick dash l) + (embedded-ps-tex (dashed-slur-ps thick dash l))) + +(define + (crescendo-tex w h cont) + (embedded-ps-tex (crescendo-ps w h cont))) + +(define + (decrescendo-tex w h cont) + (embedded-ps-tex (decrescendo-ps w h cont))) + (define (embedded-ps-tex s) (string-append "\\embeddedps{" s "}")) + (define - (invoke-char-ps s i) - (string-append - "(\\" (inexact->string i 8) ") " s " " )) + (end-output-tex) + "\n\\EndLilyPondOutput") (define - (invoke-char-tex s i) + (empty-tex) + "%\n\\empty%\n") + +(define + (experimental-on-tex) "\\turnOnExperimentalFeatures") + +(define + (extender o h) + ((invoke-output o "invoke-dim1") "extender" h)) + +(define + (font-switch-tex i) + (string-append + "\\" (font i) "\n")) + +(define + (font-def-tex i s) + (string-append + "\\font" (font-switch-tex i) "=" s "\n")) + +(define + (generalmeter-tex num den) (string-append - "\n\\" s "{" (inexact->string i 10) "}" )) + "\\generalmeter{" (number->string (inexact->exact num)) "}{" (number->string (inexact->exact den)) "}")) + +(define + (header-end-tex) "\\turnOnPostScript") (define - (invoke-dim1-ps s d) + (header-tex creator generate) (string-append - (number->string d) " " s )) + "%created by: " creator generate "\n")) + +(define + (invoke-char-tex s i) + (string-append + "\n\\" s "{" (inexact->string i 10) "}" )) (define (invoke-dim1-tex s d) @@ -66,43 +119,74 @@ "\n\\" s "{" (number->dim-tex d) "}")) (define - (invoke-output o s) - (eval-string (string-append s "-" o))) + (lily-def-tex key val) + (string-append + "\\def\\" key "{" val "}\n")) -;;; output definitions +(define + (number->dim-tex x) + (string-append + (number->string (chop-decimal x)) "pt ")) (define - (beam o width slope thick) - ((invoke-output o "beam") width slope thick)) + (placebox-tex x y s) + (string-append + "\\placebox{" + (number->dim-tex y) "}{" (number->dim-tex x) "}{" s "}")) (define - (beam-ps width slope thick) - (string-append - (numbers->string (list width slope thick)) " draw_beam " )) + (rulesym-tex h w) + (string-append + "\\vrule height " (number->dim-tex (/ h 2)) + " depth " (number->dim-tex (/ h 2)) + " width " (number->dim-tex w) + ) + ) (define - (beam-tex width slope thick) - (embedded-ps-tex (beam-ps width slope thick))) + (slur-tex l) + (embedded-ps-tex (slur-ps l))) (define - (bracket o h) - ((invoke-output o "bracket") h)) + (start-line-tex) + (string-append + "\\hbox{%\n") + ) (define - (bracket-ps h) - (invoke-dim1-ps "draw_bracket" h)) + (stem-tex kern width height depth) + (string-append + "\\kern" (number->dim-tex kern) + "\\vrule width " (number->dim-tex width) + "depth " (number->dim-tex depth) + "height " (number->dim-tex height) " ")) (define - (bracket-tex h) - (embedded-ps-tex (bracket-ps h))) + (stop-line-tex) + "}\\interscoreline") + +(define + (text-tex f s) + (string-append "\\set" f "{" s "}")) + + + +;;;;;;;;;;;; PS (define - (char o n) - ((invoke-output o "invoke-char") "show" n)) + (beam-ps width slope thick) + (string-append + (numbers->string (list width slope thick)) " draw_beam " )) (define - (dashed-slur o thick dash l) - ((invoke-output o "dashed-slur") thick dash l)) + (bracket-ps h) + (invoke-dim1-ps "draw_bracket" h)) + +(define + (crescendo-ps w h cont) + (string-append + (numbers->string (list w h (inexact->exact cont))) + "draw_crescendo")) (define (dashed-slur-ps thick dash l) @@ -115,49 +199,140 @@ " ] 0 draw_dashed_slur")) (define - (dashed-slur-tex thick dash l) - (embedded-ps-tex (dashed-slur-ps thick dash l))) + (decrescendo-ps w h cont) + (string-append + (numbers->string (list w h (inexact->exact cont))) + "draw_decrescendo")) (define - (doublebar o h) - ((invoke-output o "invoke-dim1") "doublebar" h)) + (empty-ps) + "\n empty\n") (define - (empty o) - ((invoke-output o "empty"))) + (end-output-ps) + "\nshowpage\n") + +(define + (experimental-on-ps) "") (define - (empty-ps) - "\n empty\n") + (font-def-ps i s) + (string-append + "\n/" (font i) " {/" + (substring s 0 (- (string-length s) 4)) + " findfont 12 scalefont setfont} bind def\n")) (define - (empty-tex) - "%\n\\empty%\n") + (font-switch-ps i) + (string-append (font i) " ")) (define - (emptybar o h) (empty o)) + (generalmeter-ps num den) + (string-append (number->string (inexact->exact num)) " " (number->string (inexact->exact den)) " generalmeter ")) + +(define + (header-end-ps) "") +(define + (lily-def-ps key val) + (string-append + "/" key " {" val "} bind def\n")) (define - (end-output o) - ((invoke-output o "end-output"))) + (header-ps creator generate) + (string-append + "%!PS-Adobe-3.0\n" + "%%Creator: " creator generate "\n")) (define - (end-output-ps) - "\nshowpage\n") + (invoke-char-ps s i) + (string-append + "(\\" (inexact->string i 8) ") " s " " )) (define - (end-output-tex) - "\n\\EndLilyPondOutput") + (invoke-dim1-ps s d) + (string-append + (number->string d) " " s )) (define - (experimental-on o) - ((invoke-output o "experimental-on"))) + (placebox-ps x y s) + (string-append + (number->string x) " " (number->string y) " {" s "} placebox ")) -(define - (experimental-on-ps) "") +(define + (rulesym-ps x y) + (string-append + (number->string x) " " + (number->string y) " " + "rulesym")) + +(define + (slur-ps l) + (string-append + (apply string-append (map control->string l)) + " draw_slur")) + +(define + (start-line-ps) + "\nstart_line {\n") + +(define + (stem-ps kern width height depth) + (string-append (numbers->string (list kern width height depth)) + "draw_stem" )) + +(define + (stop-line-ps) + "}\nstop_line\n") (define - (experimental-on-tex) "\\turnOnExperimentalFeatures") + (text-ps f s) + (string-append "(" s ") set" f " ")) + + +;;; output definitions + +(define + (beam o width slope thick) + ((invoke-output o "beam") width slope thick)) + +(define + (bracket o h) + ((invoke-output o "bracket") h)) + +(define + (char o n) + ((invoke-output o "invoke-char") "show" n)) + +(define + (crescendo o w h cont) + ((invoke-output o "crescendo") w h cont)) + +(define + (dashed-slur o thick dash l) + ((invoke-output o "dashed-slur") thick dash l)) + +(define + (decrescendo o w h cont) + ((invoke-output o "decrescendo") w h cont)) + +(define + (doublebar o h) + ((invoke-output o "invoke-dim1") "doublebar" h)) + +(define + (empty o) + ((invoke-output o "empty"))) + +(define + (emptybar o h) (empty o)) + +(define + (end-output o) + ((invoke-output o "end-output"))) + +(define + (experimental-on o) + ((invoke-output o "experimental-on"))) (define (fatdoublebar o h) @@ -178,83 +353,30 @@ (font-def o i s) ((invoke-output o "font-def") i s)) -(define - (font-def-ps i s) - (string-append - "\n/" (font i) " {/" - (substring s 0 (- (string-length s) 4)) - " findfont 12 scalefont setfont} bind def\n")) - -(define - (font-def-tex i s) - (string-append - "\\font" (font-switch-tex i) "=" s "\n")) - (define (font-switch o i) ((invoke-output o "font-switch") i)) -(define - (font-switch-ps i) - (string-append (font i) " ")) - -(define - (font-switch-tex i) - (string-append - "\\" (font i) "\n")) - (define (generalmeter o num den) ((invoke-output o "generalmeter") num den)) -(define - (generalmeter-ps num den) - (string-append (number->string (inexact->exact num)) " " (number->string (inexact->exact den)) " generalmeter ")) - -(define - (generalmeter-tex num den) - (string-append - "\\generalmeter{" (number->string (inexact->exact num)) "}{" (number->string (inexact->exact den)) "}")) - (define (header o creator generate) ((invoke-output o "header") creator generate)) -(define - (header-ps creator generate) - (string-append - "%!PS-Adobe-3.0\n" - "%%Creator: " creator generate "\n")) - -(define - (header-tex creator generate) - (string-append - "%created by: " creator generate "\n")) - (define (header-end o) ((invoke-output o "header-end"))) (define - (header-end-ps) "") - -(define - (header-end-tex) "\\turnOnPostScript") + (invoke-output o s) + (eval-string (string-append s "-" o))) (define (lily-def o key val) ((invoke-output o "lily-def") key val)) -(define - (lily-def-ps key val) - (string-append - "/" key " {" val "} bind def\n")) - -(define - (lily-def-tex key val) - (string-append - "\\def\\" key "{" val "}\n")) - (define (maatstreep o h) ((invoke-output o "invoke-dim1") "maatstreep" h)) @@ -267,17 +389,6 @@ (placebox o x y b) ((invoke-output o "placebox") x y (b o))) -(define - (placebox-ps x y s) - (string-append - (number->string x) " " (number->string y) " {" s "} placebox ")) - -(define - (placebox-tex x y s) - (string-append - "\\placebox{" - (number->dim-tex y) "}{" (number->dim-tex x) "}{" s "}")) - (define (repeatbar o h) ((invoke-output o "invoke-dim1") "repeatbar" h)) @@ -290,18 +401,6 @@ (rulesym o x y) ((invoke-output o "rulesym") x y)) -(define - (rulesym-ps x y) - (string-append - (number->string x) " " - (number->string y) " " - "rulesym")) - -(define - (rulesym-tex x y) - (string-append - "\\rulesym{" (number->dim-tex x) "}{" (number->dim-tex y) "}")) - (define (setbold o s) ((invoke-output o "text") "bold" s)) @@ -346,47 +445,29 @@ ((invoke-output o "slur") l)) (define - (slur-ps l) + (tuplet o dx dy dir) + ((invoke-output o "tuplet") dx dy dir)) + +(define + (tuplet-ps dx dy dir) (string-append - (apply string-append (map control->string l)) - " draw_slur")) + (numbers->string (list dx dy (inexact->exact dir))) + "draw_tuplet")) (define - (slur-tex l) - (embedded-ps-tex (slur-ps l))) + (tuplet-tex dx dy dir) + (embedded-ps-tex (tuplet-ps dx dy dir))) (define (stem o kern width height depth) ((invoke-output o "stem") kern width height depth)) -(define - (stem-ps kern width height depth) - (string-append (numbers->string (list kern width height depth)) - "draw_stem" )) -(define - (stem-tex kern width height depth) - (string-append - "\\kern" (number->dim-tex kern) - "\\vrule width " (number->dim-tex width) - "depth " (number->dim-tex depth) - "height " (number->dim-tex height) " ")) (define (start-line o) ((invoke-output o "start-line"))) -(define - (start-line-ps) - "\nstart_line {\n") - -(define - (start-line-tex) - (string-append - "\\hbox{%\n") - ) - - (define (startbar o h) ((invoke-output o "invoke-dim1") "startbar" h)) @@ -395,29 +476,14 @@ (startrepeat o h) ((invoke-output o "invoke-dim1") "startrepeat" h)) + (define (stop-line o) ((invoke-output o "stop-line"))) -(define - (stop-line-ps) - "}\nstop_line\n") - -(define - (stop-line-tex) - "}\\interscoreline") (define (stoprepeat o h) ((invoke-output o "invoke-dim1") "stoprepeat" h)) -(define - (text-ps f s) - (string-append "(" s ") set" f " ")) - -(define - (text-tex f s) - (string-append "\\set" f "{" s "}")) - - diff --git a/init/part-paper.ly b/init/part-paper.ly index 94e0351107..162984e5b3 100644 --- a/init/part-paper.ly +++ b/init/part-paper.ly @@ -1,27 +1,9 @@ %part-paper.ly \paper { + \translator { \OrchestralPartStaffContext } + \translator { \ScoreContext skipBars = 1; } % for simple testing only! % castingalgorithm = \Wordwrap; % lots faster on my 486 -- jcn -Score = \translator { - \type Score_engraver; - - \consists "Timing_engraver"; - \consists "Bar_column_engraver"; - \consists "Bar_number_engraver"; - \consists "Mark_engraver"; - \consists "Span_score_bar_engraver"; - \consists "Score_priority_engraver"; - \consists "Priority_horizontal_align_engraver"; - \consists "Vertical_align_engraver"; - - \accepts "StaffGroup"; - \accepts "Staff"; - \accepts "RhythmicStaff"; - \accepts "Lyrics"; - \accepts "GrandStaff"; - SkipBars = "1"; -} - \include "bar-numbering.ly"; } diff --git a/init/table16.ly b/init/table16.ly index df5ae32e8c..d535ebcc10 100644 --- a/init/table16.ly +++ b/init/table16.ly @@ -64,6 +64,7 @@ table_sixteen= "param" = \table { "brace" "pianobrace" 1 0.0\pt 0.0\pt 32.0\pt 80.0\pt "bracket" "staffbracket" 1 0.0\pt 4.0\pt 16.0\pt 128.0\pt + "extender" "extender" 1 0.0\pt 0.0\pt 1.0\pt 160.0\pt "time_signature" "generalmeter" 2 0.0\pt 10.0\pt -8.0\pt 8.0\pt "rule" "rulesym" 2 "stem" "stem" 2 diff --git a/init/table20.ly b/init/table20.ly index 2ba7508064..001fce9429 100644 --- a/init/table20.ly +++ b/init/table20.ly @@ -67,6 +67,7 @@ table_twenty = % dims ignored for this table "param" = \table { "bracket" "staffbracket" 1 0.0\pt 0.0\pt 20.0\pt 160.0\pt + "extender" "extender" 1 0.0\pt 0.0\pt 1.0\pt 160.0\pt "rule" "rulesym" 2 "brace" "pianobrace" 1 0.0\pt 0.0\pt 40.0\pt 100.0\pt "time_signature" "generalmeter" 2 0.0\pt 10.0\pt -5.0\pt 5.0\pt diff --git a/input/GNUmakefile b/input/GNUmakefile index 16b785ec2d..716a611a01 100644 --- a/input/GNUmakefile +++ b/input/GNUmakefile @@ -4,7 +4,7 @@ depth = .. SUBDIRS=test bugs -examples=example-3 twinkle-pop praeludium-fuga-E twinkle +examples=example-3 twinkle-pop praeludium-fuga-E twinkle star-spangled-banner flexamples=example-1 example-2 LOCALSTEPMAKE_TEMPLATES=mutopia diff --git a/input/star-spangled-banner.ly b/input/star-spangled-banner.ly new file mode 100644 index 0000000000..54fed0b456 --- /dev/null +++ b/input/star-spangled-banner.ly @@ -0,0 +1,118 @@ +%{ +Converted from star.mup with the aid of mup-to-ly.py +http://www.Arkkra.com/doc/star.html +http://www.Arkkra.com/doc/star.ps +%} +\header{ +title="The Star Spangled Banner"; +subtitle="(United States of America's National Anthem)"; +poet="Text by Francis Scott Key"; +composer="J. S. Smith"; +arranger="Arranged by William J. Krauss"; +enteredby="jcn"; +copyright="public domain"; +} + +$staff1_voice_1 = \notes { + [a8.()fis16] d4 fis4 a4 d'2 [fis'8. e'16] d'4 fis4 gis4 a2 [a8 a8] + fis'4. e'8 d'4 cis'2 [b8. cis'16] d'4 d'4 a4 fis4 d4 [a8. fis16] + fis4 d4 [fis'8. fis'16] fis'4 g'4 a'4 a'2 [g'8 fis'8] e'4 fis'4 + g'4 g'2 g'4 fis'4. e'8 d'4 cis'2 [b8. cis'16] d'4 fis4 gis4 a2 a4 + d'4 d'4 [d'8()cis'8] b4 b4 b4 e'4 [g'8 ()fis'8] [e'8()d'8] + d'4~cis'4 [a8. a16] d'4.~e'8 [fis'8 g'8] a'2 [d'8 e'8] fis'4. g'8 + e'4 d'2 s4 +} + +$staff1_voice_2 = \notes { + [a8.()fis16] a,4 d4 e4 d4~fis4 [fis8. fis16] fis4 d4 d4 cis2 [e8 + e8] a4. a8 a4 a2 [a8. a16] a4 a4 a4 fis4 d4 [a8. fis16] fis4 d4 r4 + a4 a4 d'4 d'2 [a8 a8] cis'4 cis'4 cis'4 cis'2 a4 a4. a8 a4 a2 [a8. + a16] d4 d4 d4 cis2 e4 fis4 e4 d4 d4 d4 dis4 g4 [g8()dis8] e4 e2 + [e8. e16] d4.~a8 [a8 a8] a2 [g8 g8] a4. a8 g4 fis2 s4 +} + +$staff2_voice_1 = \notes { + r4 fis4 a4 a4 b2 [cis'8. cis'16] b4 b4 b4 a2 [cis'8 cis'8] d'4. + cis'8 d'4 e'2 [e'8. e'16] d'4 d'4 a4 fis4 d4 r4 fis4 d4 r4 d4 e4 + fis4 fis'2 [e'8 d'8] e'4 e'4 e'4 e'2 cis'4 d'4. cis'8 d'4 e'2 + [e'8. e'16] a4 a4 e4 e2 cis'4 a4 a4 a4 g4 g4 b4 b4 b4 b4 a2 + [cis'8. cis'16] a4.~cis'8 [d'8 d'8] d'2 [d'8 d'8] d'4. d'8 cis'4 + a2 s4 +} + +$staff2_voice_2 = \notes { + r4 d4 d4 cis4 b,2 [ais,8. ais,16] b,4 b,4 e4 a,2 [a8 a8] d4. e8 + [fis8 g8] a2 [g8. g16] fis4 fis4 a4 fis4 d4 r4 fis4 d4 r4 d4 d4 d4 + d2 [d8 d8] a4 a4 a4 a2 a,4 d4. e8 [fis8 g8] a2 [g8. g16] fis4 d4 + e4 a,2 a4 d4 e4 fis4 g4 g4 fis4 e4 [e8()fis8] [g8()gis8] a2 [g8. + g16] fis4.~a,8 [d8 e8] fis2 [b8 b8] a4. a8 a,4 d2 s4 +} + +$text1 = \lyrics{ + Oh4 __ say. can you see,2 by8. the16 dawn's4 ear- ly light2 What8 + so8 proud-4. ly8 we4 hailed,2 At8. the16 twi-4 light's last gleam- + ing. Whose8. broad16 +} + +$text2 = \lyrics{ + _4 stripes and bright stars,2 through8 the8 per-4 il- ous fight,2 + O'er8 the8 ram-4. parts8 we4 watched,2 were8. so16 gal-4 lant- ly + _ _ _ +} + +$text3 = \lyrics{ + stream-4 ing. And8. the16 rock-4 ets' red glare,2 the8 bombs8 + burst-4 ing in air,2 gave4 proof4. through8 the4 night2 that8. + our16 flag4 was still there,2 Oh4 say, does that star- span- + gled ban- ner yet wave,2 __ O'er8. the16 land2 __ of8 the8 free2 + and8 the8 home4. of8 the4 brave.2 +} + +global = \notes { + \time 3/4; + \key D; + \partial 4; + \skip 4; + \bar "|:"; + \skip 2.*8; + \bar ":|"; + \skip 2.*16; + \skip 2.; + \bar "|."; + } + +\include "paper16.ly"; + +\score{ + \type GrandStaff < + \type Staff=staffA < + \global + \notes \transpose c'' {\voiceone \$staff1_voice_1 } + \notes \transpose c'' {\voicetwo \$staff1_voice_2 } + > + \type Lyrics = one \lyrics < +% urg, too much distance between two texts; fixme first +% \$text1 +% { \$text2 \$text3 } + { \$text1 \$text3 } + > + \type Staff=staffB < + \global + \clef bass; + {\voiceone \$staff2_voice_1 } + {\voicetwo \$staff2_voice_2 } + > + > + \paper{ + \paper_sixteen; + textheight = 230.\mm; + linewidth= 180.\mm; + \translator { + \GrandStaffContext + \accepts "Lyrics"; + } + \translator { + \BarNumberingStaffContext + } + } +} diff --git a/input/test/GNUmakefile b/input/test/GNUmakefile index 5af2ecfc95..39f71e418c 100644 --- a/input/test/GNUmakefile +++ b/input/test/GNUmakefile @@ -1,7 +1,7 @@ # input/test/Makefile depth = ../.. -examples=font20 hara-kiri grace mark denneboom stars-and-stripes +examples=font20 hara-kiri grace mark denneboom sleur LOCALSTEPMAKE_TEMPLATES=mutopia include $(depth)/make/stepmake.make diff --git a/input/test/extender.ly b/input/test/extender.ly new file mode 100644 index 0000000000..ed33ea2913 --- /dev/null +++ b/input/test/extender.ly @@ -0,0 +1,6 @@ +\score{ + < + \type Staff \notes { c () c () c c } + \type Lyrics \lyrics { bla __ alb xxx __ yyy } + > +} diff --git a/input/test/hara-kiri.ly b/input/test/hara-kiri.ly index 49af9b64fd..8d38bc7271 100644 --- a/input/test/hara-kiri.ly +++ b/input/test/hara-kiri.ly @@ -62,8 +62,6 @@ zoger = \type Staff = zoger \notes \relative c { \skip 1*1; } - \include "score-paper.ly"; - zagers = \type GrandStaff < \zager \zoger @@ -79,6 +77,10 @@ zagers = \type GrandStaff < > > \paper{ + \translator { \HaraKiriStaffContext } +%uh? +% \translator { \OrchestralScoreContext } +% \translator { \OrchestralPartStaffContext } linewidth = 40.0\mm; } } diff --git a/input/test/mark.ly b/input/test/mark.ly index f5e9deb060..e730c90c0a 100644 --- a/input/test/mark.ly +++ b/input/test/mark.ly @@ -20,6 +20,6 @@ two = \notes\relative c{ \score{ < \global \one \two > \paper { - \include "score-bar-numbering.ly"; + \translator { \OrchestralPartStaffContext } } } diff --git a/input/test/tup.ly b/input/test/tup.ly index 010e77ffe8..8f5b674979 100644 --- a/input/test/tup.ly +++ b/input/test/tup.ly @@ -1,3 +1,3 @@ \score{ - \notes \type Staff \times 2/3 { a b c } + \notes \type Staff \times 2/3 { \times 2/3 { a8 b c} c } } diff --git a/lily/abbreviation-beam-engraver.cc b/lily/abbreviation-beam-engraver.cc index 145ab50bcb..5f2b7f4b80 100644 --- a/lily/abbreviation-beam-engraver.cc +++ b/lily/abbreviation-beam-engraver.cc @@ -15,7 +15,7 @@ #include "musical-request.hh" #include "misc.hh" -IMPLEMENT_IS_TYPE_B1(Abbreviation_beam_engraver, Engraver); + ADD_THIS_TRANSLATOR(Abbreviation_beam_engraver); Abbreviation_beam_engraver::Abbreviation_beam_engraver () @@ -25,7 +25,7 @@ Abbreviation_beam_engraver::Abbreviation_beam_engraver () } bool -Abbreviation_beam_engraver::do_try_request (Request*r) +Abbreviation_beam_engraver::do_try_music (Music*r) { Abbreviation_beam_req * b = dynamic_cast (r); diff --git a/lily/abbreviation-beam.cc b/lily/abbreviation-beam.cc index 05464b9670..341a0e8d82 100644 --- a/lily/abbreviation-beam.cc +++ b/lily/abbreviation-beam.cc @@ -22,7 +22,7 @@ #include "stem-info.hh" -IMPLEMENT_IS_TYPE_B1 (Abbreviation_beam, Spanner); + Abbreviation_beam::Abbreviation_beam () : Beam () diff --git a/lily/align-element.cc b/lily/align-element.cc index 4f80841a66..0e9dac2a4f 100644 --- a/lily/align-element.cc +++ b/lily/align-element.cc @@ -156,7 +156,7 @@ Align_element::contains_b (Score_element const *e) const } -IMPLEMENT_IS_TYPE_B1(Align_element, Score_element); + void Align_element::sort_elements () @@ -182,6 +182,6 @@ Align_element::do_print () const #if 0 DOUT << "contains: "; for (int i=0 ; i < item_l_arr_.size(); i++) - DOUT << item_l_arr_[i]->name () << ", "; + DOUT << classname (item_l_arr_[i]) << ", "; #endif } diff --git a/lily/audio-column.cc b/lily/audio-column.cc index 5b6717c015..61513c1e20 100644 --- a/lily/audio-column.cc +++ b/lily/audio-column.cc @@ -38,7 +38,7 @@ Audio_column::print() const DOUT << "Audio_column {"; DOUT << "at: " << at_mom_ << ". Contains:"; for (PCursor i (audio_item_l_list_.top ()); i.ok (); i++) - DOUT << i->name () << ", "; + DOUT << classname (i.ptr ()) << ", "; DOUT << "\n}\n"; #endif } diff --git a/lily/audio-element.cc b/lily/audio-element.cc index bffe351af4..109a639eb1 100644 --- a/lily/audio-element.cc +++ b/lily/audio-element.cc @@ -9,7 +9,7 @@ #include "audio-element.hh" #include "debug.hh" -IMPLEMENT_IS_TYPE_B(Audio_element); + Audio_element::~Audio_element() { @@ -19,7 +19,7 @@ void Audio_element::print () const { #ifndef NPRINT - DOUT << name () << "{ "; + DOUT << classname (this) << "{ "; do_print (); DOUT << "}"; #endif diff --git a/lily/audio-item.cc b/lily/audio-item.cc index 2ec7736a40..409c4196b3 100644 --- a/lily/audio-item.cc +++ b/lily/audio-item.cc @@ -22,7 +22,7 @@ Audio_instrument::midi_item_p() { return str_.length_i() ? new Midi_instrument(0, str_) : 0; } -IMPLEMENT_IS_TYPE_B1(Audio_instrument, Audio_item); + Audio_item::Audio_item (Request* req_l) { @@ -40,7 +40,7 @@ Audio_key::midi_item_p() { return new Midi_key (this); } -IMPLEMENT_IS_TYPE_B1 (Audio_key, Audio_item); + Audio_note::Audio_note (Request* req_l, int transposing_i) : Audio_item (req_l) @@ -54,7 +54,7 @@ Audio_note::midi_item_p() return new Midi_note (this); } -IMPLEMENT_IS_TYPE_B1(Audio_note, Audio_item); + Audio_tempo::Audio_tempo (int per_minute_4_i) : Audio_item (0) @@ -68,7 +68,7 @@ Audio_tempo::midi_item_p() return new Midi_tempo (this); } -IMPLEMENT_IS_TYPE_B1(Audio_tempo, Audio_item); + Audio_time_signature::Audio_time_signature (Request* req_l) : Audio_item (req_l) @@ -81,7 +81,7 @@ Audio_time_signature::midi_item_p() return new Midi_time_signature (this); } -IMPLEMENT_IS_TYPE_B1(Audio_time_signature, Audio_item); + Audio_text::Audio_text (Audio_text::Type type, String text_str) : Audio_item (0) @@ -96,8 +96,8 @@ Audio_text::midi_item_p() return text_str_.length_i() ? new Midi_text(this) : 0; } -IMPLEMENT_IS_TYPE_B1(Audio_text, Audio_item); -IMPLEMENT_IS_TYPE_B1(Audio_item, Audio_element); + + void Audio_item::do_print () const diff --git a/lily/audio-staff.cc b/lily/audio-staff.cc index 235de874de..16fac90a30 100644 --- a/lily/audio-staff.cc +++ b/lily/audio-staff.cc @@ -28,4 +28,4 @@ Audio_staff::output (Midi_stream& midi_stream_r, int track_i) midi_stream_r << midi_track; } -IMPLEMENT_IS_TYPE_B1(Audio_staff, Audio_element); + diff --git a/lily/axis-group-element.cc b/lily/axis-group-element.cc index a19d26c6c3..8732470baf 100644 --- a/lily/axis-group-element.cc +++ b/lily/axis-group-element.cc @@ -77,4 +77,4 @@ Axis_group_element::Axis_group_element () } -IMPLEMENT_IS_TYPE_B2(Axis_group_element, Score_element, Graphical_axis_group); + diff --git a/lily/axis-group-item.cc b/lily/axis-group-item.cc index 6eabab3a58..c6f38c9632 100644 --- a/lily/axis-group-item.cc +++ b/lily/axis-group-item.cc @@ -8,7 +8,7 @@ #include "axis-group-item.hh" #include "p-col.hh" -IMPLEMENT_IS_TYPE_B2(Axis_group_item, Axis_group_element, Item); + void Axis_group_item::OK() const diff --git a/lily/axis-group-spanner.cc b/lily/axis-group-spanner.cc index fdd2969b5e..3d78df9341 100644 --- a/lily/axis-group-spanner.cc +++ b/lily/axis-group-spanner.cc @@ -133,4 +133,4 @@ Axis_group_spanner::do_print() const -IMPLEMENT_IS_TYPE_B2(Axis_group_spanner, Spanner, Axis_group_element); + diff --git a/lily/bar-column-engraver.cc b/lily/bar-column-engraver.cc index 230a0f3ea2..96dee1b25c 100644 --- a/lily/bar-column-engraver.cc +++ b/lily/bar-column-engraver.cc @@ -102,5 +102,5 @@ Bar_column_engraver::do_post_move_processing() bar_l_ =0; } -IMPLEMENT_IS_TYPE_B1(Bar_column_engraver, Engraver); + ADD_THIS_TRANSLATOR(Bar_column_engraver); diff --git a/lily/bar-column.cc b/lily/bar-column.cc index 5f1a40d93f..625b2da895 100644 --- a/lily/bar-column.cc +++ b/lily/bar-column.cc @@ -32,5 +32,5 @@ Bar_column::do_substitute_dependency (Score_element*o,Score_element*n) } } -IMPLEMENT_IS_TYPE_B1(Bar_column, Script_column); + diff --git a/lily/bar-engraver.cc b/lily/bar-engraver.cc index 456a13cf40..b9896b4ad3 100644 --- a/lily/bar-engraver.cc +++ b/lily/bar-engraver.cc @@ -21,7 +21,7 @@ Bar_engraver::Bar_engraver() } bool -Bar_engraver::do_try_request (Request*r_l) +Bar_engraver::do_try_music (Music*r_l) { if (Bar_req * b= dynamic_cast (r_l)) { @@ -95,7 +95,7 @@ Bar_engraver::do_process_requests() { Break_req r; r.penalty_i_ = Break_req::DISALLOW; - daddy_grav_l ()->try_request (&r); + daddy_grav_l ()->try_music (&r); } } @@ -117,7 +117,7 @@ Bar_engraver::do_post_move_processing() } -IMPLEMENT_IS_TYPE_B1(Bar_engraver,Engraver); + ADD_THIS_TRANSLATOR(Bar_engraver); diff --git a/lily/bar-number-engraver.cc b/lily/bar-number-engraver.cc index 455690e516..67e4dc2fc4 100644 --- a/lily/bar-number-engraver.cc +++ b/lily/bar-number-engraver.cc @@ -77,5 +77,5 @@ Bar_number_engraver::do_pre_move_processing() } } -IMPLEMENT_IS_TYPE_B1(Bar_number_engraver,Engraver); + ADD_THIS_TRANSLATOR(Bar_number_engraver); diff --git a/lily/bar.cc b/lily/bar.cc index 32120fa1bf..7e49b7088f 100644 --- a/lily/bar.cc +++ b/lily/bar.cc @@ -13,7 +13,7 @@ #include "lookup.hh" #include "debug.hh" -IMPLEMENT_IS_TYPE_B1 (Bar,Item); + Bar::Bar () { diff --git a/lily/beam-engraver.cc b/lily/beam-engraver.cc index b8eb55903b..b1ec28d01d 100644 --- a/lily/beam-engraver.cc +++ b/lily/beam-engraver.cc @@ -23,7 +23,7 @@ Beam_engraver::Beam_engraver() } bool -Beam_engraver::do_try_request(Request*r) +Beam_engraver::do_try_music (Music*r) { Beam_req* b = dynamic_cast (r); if (!b) @@ -131,5 +131,5 @@ Beam_engraver::acknowledge_element (Score_element_info i) beam_p_->add_stem (s); } } -IMPLEMENT_IS_TYPE_B1(Beam_engraver, Engraver); + ADD_THIS_TRANSLATOR(Beam_engraver); diff --git a/lily/beam-swallow-trans.cc b/lily/beam-swallow-trans.cc index f6a4194ca7..cf7b4d1ef6 100644 --- a/lily/beam-swallow-trans.cc +++ b/lily/beam-swallow-trans.cc @@ -10,6 +10,5 @@ #include "type-swallow-trans.hh" #include "musical-request.hh" - - DECLARE_REQUEST_SWALLOWER(Beam_req); + diff --git a/lily/beam.cc b/lily/beam.cc index 4982dd3937..31c0b34af2 100644 --- a/lily/beam.cc +++ b/lily/beam.cc @@ -36,7 +36,7 @@ #include "stem-info.hh" -IMPLEMENT_IS_TYPE_B1 (Beam, Spanner); + Beam::Beam () { @@ -641,6 +641,9 @@ Beam::stem_beams (Stem *here, Stem *next, Stem *prev) const Molecule leftbeams; Molecule rightbeams; + // UGH + Real nw_f = paper ()->note_width () * 0.8; + /* half beams extending to the left. */ if (prev) { @@ -651,7 +654,7 @@ Beam::stem_beams (Stem *here, Stem *next, Stem *prev) const but let's make sure two half-beams never touch */ Real w = here->hpos_f () - prev->hpos_f (); - w = w/2 note_width (); + w = w/2 beam (sl, w, beam_f); @@ -684,7 +687,7 @@ Beam::stem_beams (Stem *here, Stem *next, Stem *prev) const rightbeams.add_atom (b); } // TODO: notehead widths differ for different types - gap_f = paper ()->note_width () / 2; + gap_f = nw_f / 2; w -= 2 * gap_f; a = lookup_l ()->beam (sl, w + stemdx, beam_f); } @@ -696,7 +699,7 @@ Beam::stem_beams (Stem *here, Stem *next, Stem *prev) const rightbeams.add_atom (b); } - w = w/2 note_width (); + w = w/2 beam (sl, w, beam_f); diff --git a/lily/bow.cc b/lily/bow.cc index 04a09d7bc9..51463e2c50 100644 --- a/lily/bow.cc +++ b/lily/bow.cc @@ -15,7 +15,7 @@ #include "bezier.hh" #include "main.hh" -IMPLEMENT_IS_TYPE_B1(Bow,Directional_spanner); + Bow::Bow () { diff --git a/lily/break-align-item.cc b/lily/break-align-item.cc index 05644f0261..53f81fe3e3 100644 --- a/lily/break-align-item.cc +++ b/lily/break-align-item.cc @@ -18,4 +18,4 @@ Break_align_item::do_pre_processing() Horizontal_align_item::do_pre_processing(); } -IMPLEMENT_IS_TYPE_B1(Break_align_item, Horizontal_align_item); + diff --git a/lily/change-iterator.cc b/lily/change-iterator.cc index b319c72089..81352999e6 100644 --- a/lily/change-iterator.cc +++ b/lily/change-iterator.cc @@ -79,4 +79,4 @@ Change_iterator::do_process_and_next (Moment m) Music_iterator::do_process_and_next (m); } -IMPLEMENT_IS_TYPE_B1 (Change_iterator, Music_iterator); + diff --git a/lily/change-translator.cc b/lily/change-translator.cc index 771e8d43b1..10a5c61d44 100644 --- a/lily/change-translator.cc +++ b/lily/change-translator.cc @@ -9,7 +9,7 @@ #include "change-translator.hh" #include "debug.hh" -IMPLEMENT_IS_TYPE_B1(Change_translator,Music); + void Change_translator::do_print () const diff --git a/lily/chord-iterator.cc b/lily/chord-iterator.cc index 8b691619ee..1f61364c2b 100644 --- a/lily/chord-iterator.cc +++ b/lily/chord-iterator.cc @@ -62,7 +62,7 @@ Simultaneous_music_iterator::do_process_and_next (Moment until) } -IMPLEMENT_IS_TYPE_B1(Simultaneous_music_iterator,Music_iterator); + Moment Simultaneous_music_iterator::next_moment() const diff --git a/lily/clef-engraver.cc b/lily/clef-engraver.cc index b7dac5052b..775a1885f3 100644 --- a/lily/clef-engraver.cc +++ b/lily/clef-engraver.cc @@ -180,7 +180,7 @@ Clef_engraver::do_creation_processing() } bool -Clef_engraver::do_try_request (Request * r_l) +Clef_engraver::do_try_music (Music * r_l) { if (Clef_change_req *cl = dynamic_cast (r_l)) { @@ -267,5 +267,5 @@ Clef_engraver::do_removal_processing() } -IMPLEMENT_IS_TYPE_B1(Clef_engraver,Engraver); + ADD_THIS_TRANSLATOR(Clef_engraver); diff --git a/lily/clef-item.cc b/lily/clef-item.cc index fd6e971b42..d860b494f2 100644 --- a/lily/clef-item.cc +++ b/lily/clef-item.cc @@ -72,7 +72,7 @@ Clef_item::brew_molecule_p() const } -IMPLEMENT_IS_TYPE_B1(Clef_item,Item); + #include "pointer.tcc" template class P; // ugh diff --git a/lily/collision-engraver.cc b/lily/collision-engraver.cc index a0d5dc1006..9094147cf4 100644 --- a/lily/collision-engraver.cc +++ b/lily/collision-engraver.cc @@ -54,5 +54,5 @@ Collision_engraver::Collision_engraver() } -IMPLEMENT_IS_TYPE_B1(Collision_engraver,Engraver); + ADD_THIS_TRANSLATOR(Collision_engraver); diff --git a/lily/collision.cc b/lily/collision.cc index a9971951b9..149e39fc23 100644 --- a/lily/collision.cc +++ b/lily/collision.cc @@ -161,7 +161,7 @@ Collision::do_pre_processing() } -IMPLEMENT_IS_TYPE_B1(Collision, Item); + void Collision::do_substitute_dependency (Score_element*o_l,Score_element*n_l) diff --git a/lily/command-request.cc b/lily/command-request.cc index cddf6c89fd..1ab0353bc5 100644 --- a/lily/command-request.cc +++ b/lily/command-request.cc @@ -16,10 +16,10 @@ Command_script_req::do_print() const Command_script_req::Command_script_req(){} Command_script_req::~Command_script_req(){} -IMPLEMENT_IS_TYPE_B1(Command_script_req,Command_req); -IMPLEMENT_IS_TYPE_B1(Cadenza_req, Timing_req); + + void Cadenza_req::do_print() const @@ -51,9 +51,9 @@ Bar_req::do_equal_b (Request*r) const } -IMPLEMENT_IS_TYPE_B1(Bar_req,Command_req); -IMPLEMENT_IS_TYPE_B2(Bracket_req, Command_req, Span_req); + + void Bar_req::do_print() const @@ -86,18 +86,18 @@ Partial_measure_req::do_equal_b (Request* r) const } -IMPLEMENT_IS_TYPE_B1(Timing_req,Command_req); + void Timing_req::do_print() const{} -IMPLEMENT_IS_TYPE_B1(Command_req,Request); + void Command_req::do_print() const{} -IMPLEMENT_IS_TYPE_B1(Barcheck_req,Timing_req); + void Barcheck_req::do_print() const{} @@ -110,7 +110,7 @@ Barcheck_req::do_equal_b (Request*r) const } -IMPLEMENT_IS_TYPE_B1(Clef_change_req,Command_req); + void Clef_change_req::do_print() const @@ -128,7 +128,7 @@ Clef_change_req::Clef_change_req (String s) -IMPLEMENT_IS_TYPE_B1(Partial_measure_req,Timing_req); + void Partial_measure_req::do_print() const @@ -137,7 +137,7 @@ Partial_measure_req::do_print() const } -IMPLEMENT_IS_TYPE_B1(Time_signature_change_req,Timing_req); + void Time_signature_change_req::do_print() const @@ -174,7 +174,7 @@ Tempo_req::do_print() const { DOUT << dur_.str() << " = " << metronome_i_; } -IMPLEMENT_IS_TYPE_B1(Tempo_req, Timing_req); + bool Tempo_req::do_equal_b (Request *r) const @@ -187,7 +187,7 @@ Tempo_req::do_equal_b (Request *r) const -IMPLEMENT_IS_TYPE_B1(Measure_grouping_req,Timing_req); + void Measure_grouping_req::do_print() const @@ -299,7 +299,7 @@ Key_change_req::transpose (Musical_pitch d) } } -IMPLEMENT_IS_TYPE_B1(Key_change_req,Command_req); + void Key_change_req::squash_octaves() { @@ -326,7 +326,7 @@ Key_change_req::Key_change_req() ordinary_key_b_= false; } -IMPLEMENT_IS_TYPE_B1(Break_req, Command_req); + Break_req::Break_req () { @@ -338,7 +338,7 @@ Break_req::do_print () const { } -IMPLEMENT_IS_TYPE_B1 (Mark_req, Command_req); + Mark_req::Mark_req (String s) { diff --git a/lily/compressed-music-iterator.cc b/lily/compressed-music-iterator.cc index c5c60acc78..c6393d5ecf 100644 --- a/lily/compressed-music-iterator.cc +++ b/lily/compressed-music-iterator.cc @@ -13,7 +13,7 @@ #include "translator-group.hh" #include "command-request.hh" -IMPLEMENT_IS_TYPE_B1(Compressed_music_iterator, Music_wrapper_iterator); + Compressed_music_iterator::Compressed_music_iterator () { @@ -52,17 +52,10 @@ Compressed_music_iterator::do_process_and_next (Moment m) { if (first_b_) { - bool success = report_to_l ()->try_request (start_req_p_); + bool success = report_to_l ()->try_music (compressed_l ()); if (!success) music_l_->warning ( _("No one to print a tuplet start bracket")); } Music_wrapper_iterator::do_process_and_next (m); - - if (!ok ()) - { - bool success = report_to_l ()->try_request (stop_req_p_); - if (!success) - music_l_->warning ( _("No one to print a tuplet stop bracket")); - } } diff --git a/lily/compressed-music.cc b/lily/compressed-music.cc index 5c03ef1649..5133cb5752 100644 --- a/lily/compressed-music.cc +++ b/lily/compressed-music.cc @@ -18,6 +18,6 @@ Compressed_music::Compressed_music (int n, int d,Music *mp) element_p_->compress (Moment (num_i_,den_i_)); } -IMPLEMENT_IS_TYPE_B1(Compressed_music, Music_wrapper); + diff --git a/lily/crescendo.cc b/lily/crescendo.cc index 4af8ceadcd..1e9b804a1f 100644 --- a/lily/crescendo.cc +++ b/lily/crescendo.cc @@ -76,4 +76,4 @@ Crescendo::brew_molecule_p() const } -IMPLEMENT_IS_TYPE_B1(Crescendo,Spanner); + diff --git a/lily/directional-spanner.cc b/lily/directional-spanner.cc index c21d4a274b..bd4954920b 100644 --- a/lily/directional-spanner.cc +++ b/lily/directional-spanner.cc @@ -17,3 +17,11 @@ Directional_spanner::Directional_spanner() { dir_ = CENTER; } + +Offset +Directional_spanner::center () const +{ + Real w= width ().length (); + Offset o (w/2, 0); + return o; +} diff --git a/lily/dot-column-engraver.cc b/lily/dot-column-engraver.cc index 771963e348..59c73f2f6f 100644 --- a/lily/dot-column-engraver.cc +++ b/lily/dot-column-engraver.cc @@ -48,4 +48,4 @@ Dot_column_engraver::acknowledge_element (Score_element_info info) ADD_THIS_TRANSLATOR(Dot_column_engraver); -IMPLEMENT_IS_TYPE_B1(Dot_column_engraver,Engraver); + diff --git a/lily/dot-column.cc b/lily/dot-column.cc index 284b746cc9..97afd43bf2 100644 --- a/lily/dot-column.cc +++ b/lily/dot-column.cc @@ -53,4 +53,4 @@ Dot_column::do_pre_processing () translate_axis (w[RIGHT] - width() [LEFT],X_AXIS); } -IMPLEMENT_IS_TYPE_B1(Dot_column, Horizontal_group_item); + diff --git a/lily/dots.cc b/lily/dots.cc index 370ea3dbe7..8b39c3e566 100644 --- a/lily/dots.cc +++ b/lily/dots.cc @@ -51,4 +51,4 @@ Dots::brew_molecule_p () const return out; } -IMPLEMENT_IS_TYPE_B1(Dots, Item); + diff --git a/lily/dynamic-engraver.cc b/lily/dynamic-engraver.cc index e0f2680748..becdf9b76b 100644 --- a/lily/dynamic-engraver.cc +++ b/lily/dynamic-engraver.cc @@ -32,7 +32,7 @@ Dynamic_engraver::do_post_move_processing() } bool -Dynamic_engraver::do_try_request (Request * r) +Dynamic_engraver::do_try_music (Music * r) { if(Dynamic_req * d = dynamic_cast (r)) { @@ -151,7 +151,7 @@ Dynamic_engraver::do_pre_move_processing() } -IMPLEMENT_IS_TYPE_B1(Dynamic_engraver,Engraver); + ADD_THIS_TRANSLATOR(Dynamic_engraver); void diff --git a/lily/engraver-group.cc b/lily/engraver-group.cc index 2c1b3d2d86..a255c4c5cd 100644 --- a/lily/engraver-group.cc +++ b/lily/engraver-group.cc @@ -14,7 +14,7 @@ #include "p-score.hh" #include "score-element.hh" -IMPLEMENT_IS_TYPE_B2(Engraver_group_engraver,Engraver, Translator_group); + ADD_THIS_TRANSLATOR(Engraver_group_engraver); void diff --git a/lily/engraver.cc b/lily/engraver.cc index 8fccb6a84d..762d800ed4 100644 --- a/lily/engraver.cc +++ b/lily/engraver.cc @@ -50,7 +50,7 @@ Engraver::get_staff_info() const } -IMPLEMENT_IS_TYPE_B1(Engraver, Translator); + Engraver_group_engraver* diff --git a/lily/extender-engraver.cc b/lily/extender-engraver.cc new file mode 100644 index 0000000000..32c3e5787f --- /dev/null +++ b/lily/extender-engraver.cc @@ -0,0 +1,95 @@ +/* + extender-engraver.cc -- implement Extender_engraver + + (c) 1998 Jan Nieuwenhuizen +*/ + +#include "proto.hh" +#include "musical-request.hh" +#include "extender-engraver.hh" +#include "extender-spanner.hh" +#include "text-def.hh" +#include "score-column.hh" +#include "text-item.hh" + +ADD_THIS_TRANSLATOR (Extender_engraver); + +Extender_engraver::Extender_engraver () +{ + extender_spanner_p_ = 0; + span_reqs_drul_[RIGHT] = span_reqs_drul_[LEFT] = 0; +} + +void +Extender_engraver::acknowledge_element (Score_element_info i) +{ + Text_item* t = (dynamic_cast (i.elem_l_)); + if (!t) + return; + if (!extender_spanner_p_) + return; + if (!span_reqs_drul_[LEFT]) + return; + + if (!extender_spanner_p_->textitem_l_drul_[LEFT]) + extender_spanner_p_->set_textitem (LEFT, t); + else + if (span_reqs_drul_[RIGHT] && !extender_spanner_p_->textitem_l_drul_[RIGHT]) + extender_spanner_p_->set_textitem (RIGHT, t); +} + +bool +Extender_engraver::do_try_music (Music* req_l) +{ + if (Extender_req* p = dynamic_cast (req_l)) + { + if (bool (extender_spanner_p_) == bool (p->spantype == Span_req::START)) + return false; + + Direction d = (!extender_spanner_p_) ? LEFT : RIGHT; + if (span_reqs_drul_[d] && !span_reqs_drul_[d]->equal_b (p)) + return false; + + span_reqs_drul_[d] = p; + span_mom_drul_[d] = get_staff_info ().musical_l ()->when (); + return true; + } + return false; +} + +void +Extender_engraver::do_removal_processing () +{ + if (extender_spanner_p_) + { + span_reqs_drul_[LEFT]->warning (_ ("unterminated extender")); + extender_spanner_p_->unlink (); + delete extender_spanner_p_; + extender_spanner_p_ = 0; + span_reqs_drul_[RIGHT] = span_reqs_drul_[LEFT] = 0; + } +} + +void +Extender_engraver::do_process_requests () +{ + if (extender_spanner_p_ || !span_reqs_drul_[LEFT]) + return; + + extender_spanner_p_ = new Extender_spanner; + + announce_element (Score_element_info (extender_spanner_p_, span_reqs_drul_[LEFT])); +} + +void +Extender_engraver::do_pre_move_processing () +{ + if (!extender_spanner_p_ || !span_reqs_drul_[RIGHT]) + return; + + typeset_element (extender_spanner_p_); + + extender_spanner_p_ = 0; + span_reqs_drul_[RIGHT] = span_reqs_drul_[LEFT] = 0; +} + diff --git a/lily/extender-spanner.cc b/lily/extender-spanner.cc new file mode 100644 index 0000000000..98190d6748 --- /dev/null +++ b/lily/extender-spanner.cc @@ -0,0 +1,127 @@ +/* + extender-spanner.cc -- implement Extender_spanner + + source file of the GNU LilyPond music typesetter + + (c) 1998 Jan Nieuwenhuizen +*/ + +#include "atom.hh" +#include "box.hh" +#include "debug.hh" +#include "lookup.hh" +#include "molecule.hh" +#include "p-col.hh" +#include "paper-def.hh" +#include "extender-spanner.hh" +#include "text-item.hh" +#include "text-def.hh" + +Extender_spanner::Extender_spanner () + : Directional_spanner () +{ + textitem_l_drul_[LEFT] = textitem_l_drul_[RIGHT] = 0; + dy_f_drul_[LEFT] = dy_f_drul_[RIGHT] = 0.0; + dx_f_drul_[LEFT] = dx_f_drul_[RIGHT] = 0.0; +} + +Extender_spanner::Extender_spanner (Extender_spanner const& c) + : Directional_spanner (c) +{ + textitem_l_drul_ = c.textitem_l_drul_; + dy_f_drul_ = c.dy_f_drul_; + dx_f_drul_ = c.dx_f_drul_; +} + +Extender_spanner::~Extender_spanner () +{ +} + +Offset +Extender_spanner::center () const +{ + Real dx = width ().length (); + + return Offset (dx / 2, 0); +} + +Molecule* +Extender_spanner::brew_molecule_p () const +{ + Molecule* mol_p = new Molecule; + + Real w = width ().length (); + + w += (dx_f_drul_[RIGHT] - dx_f_drul_[LEFT]); + + Atom a = lookup_l ()->extender (w); + + a.translate (Offset (dx_f_drul_[LEFT], dy_f_drul_[LEFT])); + + mol_p->add_atom (a); + + return mol_p; +} + +void +Extender_spanner::do_add_processing () +{ + Direction d = LEFT; + Drul_array new_textitem_drul = textitem_l_drul_; + do { + if (!textitem_l_drul_[d]) + new_textitem_drul[d] = textitem_l_drul_[(Direction)-d]; + } while (flip(&d) != LEFT); + textitem_l_drul_ = new_textitem_drul; +} + +Interval +Extender_spanner::do_height () const +{ + return Interval (0,0); +} + +void +Extender_spanner::do_post_processing () +{ + assert (textitem_l_drul_[LEFT] || textitem_l_drul_[RIGHT]); + + // UGH + Real nw_f = paper ()->note_width () * 0.8; + + Direction d = LEFT; + do + { + Text_item* t = textitem_l_drul_[d] ? textitem_l_drul_[d] : textitem_l_drul_[(Direction)-d]; + + dy_f_drul_[d] += t->height ().length () / 2; + if (d == LEFT) + dx_f_drul_[d] += t->width ().length (); + else + dx_f_drul_[d] -= d * nw_f / 2; + +// dx_f_drul_[d] -= d * nw_f / 4; + } + while (flip(&d) != LEFT); +} + +void +Extender_spanner::do_substitute_dependency (Score_element* o, Score_element* n) +{ + Text_item* new_l = n ? dynamic_cast (n) : 0; + if (dynamic_cast (o) == textitem_l_drul_[LEFT]) + textitem_l_drul_[LEFT] = new_l; + else if (dynamic_cast (o) == textitem_l_drul_[RIGHT]) + textitem_l_drul_[RIGHT] = new_l; +} + +void +Extender_spanner::set_textitem (Direction d, Text_item* textitem_l) +{ + assert (!textitem_l_drul_[d]); + textitem_l_drul_[d] = textitem_l; + set_bounds (d, textitem_l); + + add_dependency (textitem_l); +} + diff --git a/lily/font-size-engraver.cc b/lily/font-size-engraver.cc index 6689e91eac..e67c90a287 100644 --- a/lily/font-size-engraver.cc +++ b/lily/font-size-engraver.cc @@ -33,4 +33,4 @@ Font_size_engraver::acknowledge_element (Score_element_info e) } ADD_THIS_TRANSLATOR (Font_size_engraver); -IMPLEMENT_IS_TYPE_B1(Font_size_engraver,Engraver); + diff --git a/lily/general-script-def.cc b/lily/general-script-def.cc index ba7da733e2..3ce45fbf5c 100644 --- a/lily/general-script-def.cc +++ b/lily/general-script-def.cc @@ -37,9 +37,6 @@ General_script_def::inside_b() const bool General_script_def::equal_b (General_script_def const&g) const { - if (name() != g.name ()) - return false; - return do_equal_b (&g); } @@ -53,7 +50,7 @@ General_script_def::do_equal_b (General_script_def const*) const void General_script_def::print() const { - DOUT << name() << "{"; + DOUT << classname(this) << "{"; do_print(); DOUT << "}"; } @@ -70,7 +67,7 @@ General_script_def::get_atom (Paper_def*, Direction) const return Atom (s); } -IMPLEMENT_IS_TYPE_B(General_script_def); + Interval diff --git a/lily/global-translator.cc b/lily/global-translator.cc index 1c8179441f..d6785e6d05 100644 --- a/lily/global-translator.cc +++ b/lily/global-translator.cc @@ -52,7 +52,7 @@ Global_translator::now_moment () const return now_mom_; } -IMPLEMENT_IS_TYPE_B1(Global_translator, Translator_group); + Music_output* Global_translator::get_output_p() diff --git a/lily/graphical-axis-group.cc b/lily/graphical-axis-group.cc index b0aab89df0..0912244897 100644 --- a/lily/graphical-axis-group.cc +++ b/lily/graphical-axis-group.cc @@ -77,7 +77,7 @@ Graphical_axis_group::do_print() const { #ifndef NPRINT for (int i=0; i < elem_l_arr_.size(); i++) - DOUT << elem_l_arr_[i]->name () << " "; + DOUT << classname(elem_l_arr_[i]) << " "; #endif } @@ -87,4 +87,4 @@ Graphical_axis_group::Graphical_axis_group (Axis a1, Axis a2) axis2_ = a2; } -IMPLEMENT_IS_TYPE_B1(Graphical_axis_group, Graphical_element); + diff --git a/lily/graphical-element.cc b/lily/graphical-element.cc index d604fba9c3..de60a0b584 100644 --- a/lily/graphical-element.cc +++ b/lily/graphical-element.cc @@ -185,5 +185,5 @@ Graphical_element::do_print () const #endif } -IMPLEMENT_IS_TYPE_B(Graphical_element); + diff --git a/lily/hara-kiri-line-group-engraver.cc b/lily/hara-kiri-line-group-engraver.cc index 16619f83c8..fac0a81ecf 100644 --- a/lily/hara-kiri-line-group-engraver.cc +++ b/lily/hara-kiri-line-group-engraver.cc @@ -12,7 +12,7 @@ #include "hara-kiri-vertical-group-spanner.hh" #include "hara-kiri-line-group-engraver.hh" -IMPLEMENT_IS_TYPE_B1 (Hara_kiri_line_group_engraver,Line_group_engraver_group); + ADD_THIS_TRANSLATOR (Hara_kiri_line_group_engraver); void diff --git a/lily/hara-kiri-vertical-group-spanner.cc b/lily/hara-kiri-vertical-group-spanner.cc index 9a31e52bca..c0628ad21a 100644 --- a/lily/hara-kiri-vertical-group-spanner.cc +++ b/lily/hara-kiri-vertical-group-spanner.cc @@ -12,7 +12,7 @@ #include "note-head.hh" #include "bar.hh" -IMPLEMENT_IS_TYPE_B1 (Hara_kiri_vertical_group_spanner, Vertical_group_spanner); + Hara_kiri_vertical_group_spanner::Hara_kiri_vertical_group_spanner() { diff --git a/lily/heads-engraver.cc b/lily/heads-engraver.cc index 1fc2627102..b60f7f2b45 100644 --- a/lily/heads-engraver.cc +++ b/lily/heads-engraver.cc @@ -16,7 +16,7 @@ Note_heads_engraver::Note_heads_engraver() } bool -Note_heads_engraver::do_try_request (Request *req_l) +Note_heads_engraver::do_try_music (Music *req_l) { if (Note_req * n =dynamic_cast (req_l)) { @@ -79,5 +79,5 @@ Note_heads_engraver::do_post_move_processing() } -IMPLEMENT_IS_TYPE_B1(Note_heads_engraver,Engraver); + ADD_THIS_TRANSLATOR(Note_heads_engraver); diff --git a/lily/horizontal-align-item.cc b/lily/horizontal-align-item.cc index a22f30eb5e..25b9ab8e94 100644 --- a/lily/horizontal-align-item.cc +++ b/lily/horizontal-align-item.cc @@ -9,7 +9,7 @@ #include "horizontal-align-item.hh" #include "debug.hh" -IMPLEMENT_IS_TYPE_B2(Horizontal_align_item,Align_element,Item); + void Horizontal_align_item::add_item (Item *i,int p) diff --git a/lily/horizontal-group-element.cc b/lily/horizontal-group-element.cc index 804dd6d9b3..6801861409 100644 --- a/lily/horizontal-group-element.cc +++ b/lily/horizontal-group-element.cc @@ -4,7 +4,7 @@ #include "debug.hh" -IMPLEMENT_IS_TYPE_B1(Horizontal_group_element, Axis_group_element); + Horizontal_group_element::Horizontal_group_element () : Axis_group_element (X_AXIS,X_AXIS) diff --git a/lily/horizontal-group-item.cc b/lily/horizontal-group-item.cc index 4e4d559495..46b06131e3 100644 --- a/lily/horizontal-group-item.cc +++ b/lily/horizontal-group-item.cc @@ -9,7 +9,7 @@ #include "p-col.hh" #include "horizontal-group-item.hh" -IMPLEMENT_IS_TYPE_B2(Horizontal_group_item, Horizontal_group_element, Axis_group_item); + void Horizontal_group_item::do_print() const diff --git a/lily/horizontal-vertical-group-element.cc b/lily/horizontal-vertical-group-element.cc index 9021d88da6..6a47d82966 100644 --- a/lily/horizontal-vertical-group-element.cc +++ b/lily/horizontal-vertical-group-element.cc @@ -12,4 +12,4 @@ Horizontal_vertical_group_element::Horizontal_vertical_group_element() -IMPLEMENT_IS_TYPE_B2(Horizontal_vertical_group_element, Horizontal_group_element, Vertical_group_element); + diff --git a/lily/horizontal-vertical-group-item.cc b/lily/horizontal-vertical-group-item.cc index cf1917228c..c3f4c03d9e 100644 --- a/lily/horizontal-vertical-group-item.cc +++ b/lily/horizontal-vertical-group-item.cc @@ -16,7 +16,7 @@ Horizontal_vertical_group_item::do_print() const Horizontal_vertical_group_element::do_print(); } -IMPLEMENT_IS_TYPE_B2(Horizontal_vertical_group_item,Horizontal_vertical_group_element,Item); + Horizontal_vertical_group_item::Horizontal_vertical_group_item () { diff --git a/lily/identifier.cc b/lily/identifier.cc index d09749daed..b9e422a366 100644 --- a/lily/identifier.cc +++ b/lily/identifier.cc @@ -19,7 +19,7 @@ #include "translator.hh" #include "notename-table.hh" -IMPLEMENT_IS_TYPE_B(Identifier); + Identifier::Identifier (int code) { @@ -156,7 +156,6 @@ Class ## _identifier::access_content_ ## Class (bool copy_b) const{\ } #define IMPLEMENT_ID_CLASS(Class) \ - IMPLEMENT_IS_TYPE_B1(Class ## _identifier,Identifier)\ Class ## _identifier::~Class ## _identifier() { delete data_p_; }\ Class ## _identifier::Class ## _identifier (Class*st, int code) \ :Identifier (code)\ diff --git a/lily/include/abbreviation-beam-engraver.hh b/lily/include/abbreviation-beam-engraver.hh index 2a25c89d44..6c82a841cf 100644 --- a/lily/include/abbreviation-beam-engraver.hh +++ b/lily/include/abbreviation-beam-engraver.hh @@ -20,15 +20,15 @@ class Abbreviation_beam_engraver : public Engraver { public: - TRANSLATOR_CLONE(Abbreviation_beam_engraver); - DECLARE_MY_RUNTIME_TYPEINFO; + VIRTUAL_COPY_CONS(Translator); + Abbreviation_beam_engraver(); protected: virtual void do_removal_processing(); virtual void do_process_requests(); - virtual bool do_try_request (Request*); + virtual bool do_try_music (Music*); virtual void acknowledge_element (Score_element_info); virtual void do_pre_move_processing(); diff --git a/lily/include/abbreviation-beam.hh b/lily/include/abbreviation-beam.hh index 629fb0286e..cdb7b1d96c 100644 --- a/lily/include/abbreviation-beam.hh +++ b/lily/include/abbreviation-beam.hh @@ -17,11 +17,11 @@ direction */ class Abbreviation_beam : public Beam { public: - DECLARE_MY_RUNTIME_TYPEINFO; + Abbreviation_beam(); - SCORE_ELEMENT_CLONE(Abbreviation_beam); + VIRTUAL_COPY_CONS(Score_element); protected: virtual void do_print() const; diff --git a/lily/include/align-element.hh b/lily/include/align-element.hh index 0b18f18f54..cf639c2d8f 100644 --- a/lily/include/align-element.hh +++ b/lily/include/align-element.hh @@ -47,7 +47,7 @@ public: void add_element (Score_element*); void add_element_priority (Score_element*, int); bool contains_b (Score_element const*) const; - DECLARE_MY_RUNTIME_TYPEINFO; + protected: virtual void do_print() const; virtual void do_substitute_dependency (Score_element*,Score_element*); diff --git a/lily/include/audio-element.hh b/lily/include/audio-element.hh index db7e4097d3..43d716748d 100644 --- a/lily/include/audio-element.hh +++ b/lily/include/audio-element.hh @@ -16,7 +16,7 @@ struct Audio_element { void print ()const; virtual ~Audio_element(); - DECLARE_MY_RUNTIME_TYPEINFO; + protected: virtual void do_print () const; }; diff --git a/lily/include/audio-item.hh b/lily/include/audio-item.hh index b745c5b931..f5159c0daf 100644 --- a/lily/include/audio-item.hh +++ b/lily/include/audio-item.hh @@ -34,7 +34,7 @@ struct Audio_item : public Audio_element { */ Request* req_l_; - DECLARE_MY_RUNTIME_TYPEINFO; + protected: virtual void do_print () const; @@ -45,7 +45,7 @@ private: struct Audio_key : public Audio_item { Audio_key (Request* req_l); - DECLARE_MY_RUNTIME_TYPEINFO; + virtual Midi_item* midi_item_p(); }; @@ -53,11 +53,11 @@ struct Audio_instrument : public Audio_item { Audio_instrument (String instrument_str); virtual Midi_item* midi_item_p(); String str_; - DECLARE_MY_RUNTIME_TYPEINFO; + }; struct Audio_note : public Audio_item { - DECLARE_MY_RUNTIME_TYPEINFO; + Audio_note (Request* req_l, int transposing_i = 0); virtual Midi_item* midi_item_p(); int transposing_i_; @@ -68,7 +68,7 @@ struct Audio_text : Audio_item { TEXT = 1, COPYRIGHT, TRACK_NAME, INSTRUMENT_NAME, LYRIC, MARKER, CUE_POINT }; - DECLARE_MY_RUNTIME_TYPEINFO; + Audio_text (Audio_text::Type type, String text_str); virtual Midi_item* midi_item_p(); @@ -79,14 +79,14 @@ struct Audio_text : Audio_item { struct Audio_tempo : Audio_item { Audio_tempo (int per_minute_4_i); virtual Midi_item* midi_item_p(); - DECLARE_MY_RUNTIME_TYPEINFO; + int per_minute_4_i_; }; struct Audio_time_signature : Audio_item { Audio_time_signature (Request* req_l); virtual Midi_item* midi_item_p(); - DECLARE_MY_RUNTIME_TYPEINFO; + }; #endif // AUDIO_ITEM_HH diff --git a/lily/include/audio-staff.hh b/lily/include/audio-staff.hh index 3d13b28d61..b49c4596e3 100644 --- a/lily/include/audio-staff.hh +++ b/lily/include/audio-staff.hh @@ -17,7 +17,7 @@ struct Audio_staff : public Audio_element { void output (Midi_stream& midi_stream_r, int track_i); Link_list audio_item_l_list_; - DECLARE_MY_RUNTIME_TYPEINFO; + }; #endif // AUDIO_STAFF_HH diff --git a/lily/include/axis-group-element.hh b/lily/include/axis-group-element.hh index f753b9015f..a871d8e3df 100644 --- a/lily/include/axis-group-element.hh +++ b/lily/include/axis-group-element.hh @@ -31,7 +31,7 @@ public: Axis_group_element(); virtual Link_array get_children (); - DECLARE_MY_RUNTIME_TYPEINFO; + }; #endif // AXIS_GROUP_ELEMENT_HH diff --git a/lily/include/axis-group-item.hh b/lily/include/axis-group-item.hh index be1a78b6ca..fcd5c6de4c 100644 --- a/lily/include/axis-group-item.hh +++ b/lily/include/axis-group-item.hh @@ -31,7 +31,7 @@ protected: Axis_group_element::do_unlink(); } public: - DECLARE_MY_RUNTIME_TYPEINFO; + }; #endif // AXIS_ITEM_HH diff --git a/lily/include/axis-group-spanner.hh b/lily/include/axis-group-spanner.hh index 15022e2d80..42cdf2d4c9 100644 --- a/lily/include/axis-group-spanner.hh +++ b/lily/include/axis-group-spanner.hh @@ -31,7 +31,7 @@ protected: virtual void do_print() const; public: - DECLARE_MY_RUNTIME_TYPEINFO; + }; #endif // SPAN_AXIS_GROUP_HH diff --git a/lily/include/bar-column-engraver.hh b/lily/include/bar-column-engraver.hh index 1c186b6385..2cb233b295 100644 --- a/lily/include/bar-column-engraver.hh +++ b/lily/include/bar-column-engraver.hh @@ -29,9 +29,9 @@ protected: virtual void do_process_requests (); virtual void do_post_move_processing(); public: - TRANSLATOR_CLONE(Bar_column_engraver); + VIRTUAL_COPY_CONS(Translator); Bar_column_engraver(); - DECLARE_MY_RUNTIME_TYPEINFO; + }; #endif // BAR_COLUMN_GRAV_HH diff --git a/lily/include/bar-column.hh b/lily/include/bar-column.hh index 2db6cbe264..8e9219c2a0 100644 --- a/lily/include/bar-column.hh +++ b/lily/include/bar-column.hh @@ -22,9 +22,9 @@ public: Bar_column(); void set_bar (Bar*); protected: - SCORE_ELEMENT_CLONE(Bar_column); + VIRTUAL_COPY_CONS(Score_element); void do_substitute_dependency (Score_element*,Score_element*); - DECLARE_MY_RUNTIME_TYPEINFO; + }; #endif // BAR_COLUMN_HH diff --git a/lily/include/bar-engraver.hh b/lily/include/bar-engraver.hh index 151adf2926..755692397e 100644 --- a/lily/include/bar-engraver.hh +++ b/lily/include/bar-engraver.hh @@ -20,15 +20,15 @@ class Bar_engraver : public Engraver { void create_bar (); public: - TRANSLATOR_CLONE(Bar_engraver); + VIRTUAL_COPY_CONS(Translator); Bar_engraver(); - DECLARE_MY_RUNTIME_TYPEINFO; + protected: virtual void do_creation_processing (); virtual void do_removal_processing (); - virtual bool do_try_request (Request *req_l); + virtual bool do_try_music (Music *req_l); virtual void do_process_requests(); virtual void do_pre_move_processing(); virtual void do_post_move_processing(); diff --git a/lily/include/bar-number-engraver.hh b/lily/include/bar-number-engraver.hh index 69caa55095..0497ff76d0 100644 --- a/lily/include/bar-number-engraver.hh +++ b/lily/include/bar-number-engraver.hh @@ -22,8 +22,8 @@ protected: void acknowledge_element (Score_element_info); void do_pre_move_processing(); public: - TRANSLATOR_CLONE(Bar_number_engraver); + VIRTUAL_COPY_CONS(Translator); Bar_number_engraver(); - DECLARE_MY_RUNTIME_TYPEINFO; + }; #endif // BAR_NUMBER_GRAV_HH diff --git a/lily/include/bar.hh b/lily/include/bar.hh index c00677cc0f..a221be0fd5 100644 --- a/lily/include/bar.hh +++ b/lily/include/bar.hh @@ -16,8 +16,8 @@ class Bar:public Item { public: String type_str_; - DECLARE_MY_RUNTIME_TYPEINFO; - SCORE_ELEMENT_CLONE (Bar); + + VIRTUAL_COPY_CONS(Score_element); Bar (); protected: diff --git a/lily/include/beam-engraver.hh b/lily/include/beam-engraver.hh index ccb96d15bf..bab1e82f8a 100644 --- a/lily/include/beam-engraver.hh +++ b/lily/include/beam-engraver.hh @@ -23,13 +23,13 @@ class Beam_engraver : public Engraver Rhythmic_grouping *current_grouping_p_; public: - TRANSLATOR_CLONE(Beam_engraver); - DECLARE_MY_RUNTIME_TYPEINFO; + VIRTUAL_COPY_CONS(Translator); + Beam_engraver(); protected: virtual void do_removal_processing(); virtual void do_process_requests(); - virtual bool do_try_request (Request*); + virtual bool do_try_music (Music*); virtual void acknowledge_element (Score_element_info); virtual void do_pre_move_processing(); }; diff --git a/lily/include/beam.hh b/lily/include/beam.hh index f6f59c8c9e..1e69dd7398 100644 --- a/lily/include/beam.hh +++ b/lily/include/beam.hh @@ -39,13 +39,13 @@ public: int multiple_i_; - DECLARE_MY_RUNTIME_TYPEINFO; + Beam(); void add_stem (Stem*); void set_grouping (Rhythmic_grouping def, Rhythmic_grouping current); void set_stemlens (); - SCORE_ELEMENT_CLONE (Beam); + VIRTUAL_COPY_CONS(Score_element); protected: virtual Interval do_width () const; diff --git a/lily/include/bow.hh b/lily/include/bow.hh index 107cff0789..6398942b98 100644 --- a/lily/include/bow.hh +++ b/lily/include/bow.hh @@ -23,7 +23,7 @@ public: Bow (); Offset center () const; - DECLARE_MY_RUNTIME_TYPEINFO; + int dash_i_; diff --git a/lily/include/break-align-item.hh b/lily/include/break-align-item.hh index 6b5a1e4014..04ab073f86 100644 --- a/lily/include/break-align-item.hh +++ b/lily/include/break-align-item.hh @@ -18,8 +18,8 @@ class Break_align_item : public Horizontal_align_item { protected: virtual void do_pre_processing(); public: - DECLARE_MY_RUNTIME_TYPEINFO; - SCORE_ELEMENT_CLONE(Break_align_item); + + VIRTUAL_COPY_CONS(Score_element); }; #endif // BREAK_ALIGN_ITEM_HH diff --git a/lily/include/change-iterator.hh b/lily/include/change-iterator.hh index 409b3a648d..18c0a5cc9a 100644 --- a/lily/include/change-iterator.hh +++ b/lily/include/change-iterator.hh @@ -19,7 +19,7 @@ class Change_iterator : public Music_iterator void error (String); public: - DECLARE_MY_RUNTIME_TYPEINFO; + protected: virtual void do_process_and_next (Moment); }; diff --git a/lily/include/change-translator.hh b/lily/include/change-translator.hh index b369462ca2..a531f55e5e 100644 --- a/lily/include/change-translator.hh +++ b/lily/include/change-translator.hh @@ -17,9 +17,9 @@ class Change_translator : public Music public: String change_to_type_str_; String change_to_id_str_; - DECLARE_MY_RUNTIME_TYPEINFO; + protected: - VIRTUAL_COPY_CONS(Change_translator, Music); + VIRTUAL_COPY_CONS(Music); void do_print () const; }; diff --git a/lily/include/chord-iterator.hh b/lily/include/chord-iterator.hh index 0ce4d63a32..b66e4e8c06 100644 --- a/lily/include/chord-iterator.hh +++ b/lily/include/chord-iterator.hh @@ -19,7 +19,7 @@ class Simultaneous_music_iterator : public Music_iterator Simultaneous_music *simultaneous_music_l() const; Pointer_list children_p_list_; public: - DECLARE_MY_RUNTIME_TYPEINFO; + protected: virtual void do_print() const; virtual void construct_children(); diff --git a/lily/include/clef-engraver.hh b/lily/include/clef-engraver.hh index ca827b1583..1e877683a2 100644 --- a/lily/include/clef-engraver.hh +++ b/lily/include/clef-engraver.hh @@ -28,10 +28,10 @@ protected: virtual void do_removal_processing(); virtual void do_creation_processing(); virtual void do_post_move_processing(); - virtual bool do_try_request (Request*); + virtual bool do_try_music (Music*); virtual void acknowledge_element (Score_element_info); public: - TRANSLATOR_CLONE(Clef_engraver); + VIRTUAL_COPY_CONS(Translator); int c0_position_i_; int clef_position_i_; Direction octave_dir_; @@ -39,7 +39,7 @@ public: Clef_engraver(); - DECLARE_MY_RUNTIME_TYPEINFO; + }; #endif diff --git a/lily/include/clef-item.hh b/lily/include/clef-item.hh index 10a3f21409..d9fa6fbdf8 100644 --- a/lily/include/clef-item.hh +++ b/lily/include/clef-item.hh @@ -35,8 +35,8 @@ public: /// text def to put above/below clef? P octave_marker_td_p_; - DECLARE_MY_RUNTIME_TYPEINFO; - SCORE_ELEMENT_CLONE(Clef_item); + + VIRTUAL_COPY_CONS(Score_element); Clef_item(); }; diff --git a/lily/include/collision-engraver.hh b/lily/include/collision-engraver.hh index d4a674f04e..0f26cf9e15 100644 --- a/lily/include/collision-engraver.hh +++ b/lily/include/collision-engraver.hh @@ -21,8 +21,8 @@ protected: virtual void process_acknowledged (); virtual void do_pre_move_processing(); public: - TRANSLATOR_CLONE(Collision_engraver); + VIRTUAL_COPY_CONS(Translator); Collision_engraver(); - DECLARE_MY_RUNTIME_TYPEINFO; + }; #endif // COLLISION_GRAV_HH diff --git a/lily/include/collision.hh b/lily/include/collision.hh index 9a7505163b..2ae0c93e82 100644 --- a/lily/include/collision.hh +++ b/lily/include/collision.hh @@ -26,7 +26,7 @@ protected: virtual void do_pre_processing(); public: Link_array clash_l_arr_; - DECLARE_MY_RUNTIME_TYPEINFO; + void add_column (Note_column*ncol_l); Collision(); }; diff --git a/lily/include/compressed-music-iterator.hh b/lily/include/compressed-music-iterator.hh index 84b92abe3d..0616345e87 100644 --- a/lily/include/compressed-music-iterator.hh +++ b/lily/include/compressed-music-iterator.hh @@ -17,7 +17,7 @@ class Compressed_music_iterator : public Music_wrapper_iterator public: Bracket_req* start_req_p_; Bracket_req* stop_req_p_; - DECLARE_MY_RUNTIME_TYPEINFO; + Compressed_music_iterator(); ~Compressed_music_iterator (); virtual void do_process_and_next (Moment); diff --git a/lily/include/compressed-music.hh b/lily/include/compressed-music.hh index f234b7497b..56b51010fc 100644 --- a/lily/include/compressed-music.hh +++ b/lily/include/compressed-music.hh @@ -21,8 +21,8 @@ public: int den_i_; Compressed_music (int, int, Music *); - DECLARE_MY_RUNTIME_TYPEINFO; - VIRTUAL_COPY_CONS (Compressed_music, Music); + + VIRTUAL_COPY_CONS(Music); }; #endif /* COMPRESSED_MUSIC_HH */ diff --git a/lily/include/crescendo.hh b/lily/include/crescendo.hh index 02a311c60e..28f42dbb61 100644 --- a/lily/include/crescendo.hh +++ b/lily/include/crescendo.hh @@ -24,10 +24,10 @@ public: Crescendo(); protected: - SCORE_ELEMENT_CLONE(Crescendo); + VIRTUAL_COPY_CONS(Score_element); virtual Molecule*brew_molecule_p() const; virtual Interval symbol_height() const; - DECLARE_MY_RUNTIME_TYPEINFO; + private: Atom get_symbol() const; diff --git a/lily/include/directional-spanner.hh b/lily/include/directional-spanner.hh index 99594b12ce..c53d198e0f 100644 --- a/lily/include/directional-spanner.hh +++ b/lily/include/directional-spanner.hh @@ -18,7 +18,7 @@ public: Directional_spanner(); /// offset of "center" relative to left-column/0-pos of staff - virtual Offset center() const=0; + virtual Offset center() const; virtual void set_default_dir(); protected: virtual void do_pre_processing(); diff --git a/lily/include/dot-column-engraver.hh b/lily/include/dot-column-engraver.hh index 0454e41fec..67b1251985 100644 --- a/lily/include/dot-column-engraver.hh +++ b/lily/include/dot-column-engraver.hh @@ -17,9 +17,9 @@ class Dot_column_engraver : public Engraver Dot_column *dotcol_p_ ; Link_array head_l_arr_; public: - TRANSLATOR_CLONE(Dot_column_engraver); + VIRTUAL_COPY_CONS(Translator); Dot_column_engraver(); - DECLARE_MY_RUNTIME_TYPEINFO; + protected: virtual void acknowledge_element (Score_element_info); virtual void do_pre_move_processing (); diff --git a/lily/include/dot-column.hh b/lily/include/dot-column.hh index aa197cd7a3..a2f49afba8 100644 --- a/lily/include/dot-column.hh +++ b/lily/include/dot-column.hh @@ -21,7 +21,7 @@ class Dot_column : public Horizontal_group_item Link_array dot_l_arr_; public: - DECLARE_MY_RUNTIME_TYPEINFO; + void add_head (Rhythmic_head*); void add_dots (Dots*); diff --git a/lily/include/dots.hh b/lily/include/dots.hh index 4c17ab42c1..bb7ab8489f 100644 --- a/lily/include/dots.hh +++ b/lily/include/dots.hh @@ -25,7 +25,7 @@ public: int no_dots_i_; int position_i_; - DECLARE_MY_RUNTIME_TYPEINFO; + Dots (); }; diff --git a/lily/include/dynamic-engraver.hh b/lily/include/dynamic-engraver.hh index d4add06755..c23020436b 100644 --- a/lily/include/dynamic-engraver.hh +++ b/lily/include/dynamic-engraver.hh @@ -20,13 +20,13 @@ class Dynamic_engraver : public Engraver { Span_dynamic_req * cresc_req_l_; Array dynamic_req_l_arr_; public: - TRANSLATOR_CLONE(Dynamic_engraver); + VIRTUAL_COPY_CONS(Translator); Dynamic_engraver(); - DECLARE_MY_RUNTIME_TYPEINFO; + protected: virtual void do_removal_processing (); virtual void acknowledge_element (Score_element_info); - virtual bool do_try_request (Request *req_l); + virtual bool do_try_music (Music *req_l); virtual void do_process_requests(); virtual void do_pre_move_processing(); virtual void do_post_move_processing(); diff --git a/lily/include/engraver-group.hh b/lily/include/engraver-group.hh index 636842ce77..1846b15a25 100644 --- a/lily/include/engraver-group.hh +++ b/lily/include/engraver-group.hh @@ -28,11 +28,11 @@ class Engraver_group_engraver : public Engraver, protected: Array announce_info_arr_; public: - TRANSLATOR_CLONE(Engraver_group_engraver); + VIRTUAL_COPY_CONS(Translator); Engraver_group_engraver(); ~Engraver_group_engraver(); - DECLARE_MY_RUNTIME_TYPEINFO; + virtual Staff_info get_staff_info() const; virtual void do_announces(); diff --git a/lily/include/engraver.hh b/lily/include/engraver.hh index 1b73406b84..220b079832 100644 --- a/lily/include/engraver.hh +++ b/lily/include/engraver.hh @@ -63,14 +63,14 @@ protected: virtual void fill_staff_info (Staff_info&); public: - TRANSLATOR_CLONE(Engraver); + VIRTUAL_COPY_CONS(Translator); Engraver_group_engraver * daddy_grav_l() const; /** override other ctor */ Engraver () {} - DECLARE_MY_RUNTIME_TYPEINFO; + }; diff --git a/lily/include/extender-engraver.hh b/lily/include/extender-engraver.hh new file mode 100644 index 0000000000..26484f65c2 --- /dev/null +++ b/lily/include/extender-engraver.hh @@ -0,0 +1,39 @@ +/* + extender-engraver.hh -- declare Extender_engraver + + source file of the GNU LilyPond music typesetter + + (c) 1998 Jan Nieuwenhuizen +*/ + +#ifndef EXTENDER_ENGRAVER_HH +#define EXTENDER_ENGRAVER_HH + +#include "engraver.hh" +#include "drul-array.hh" +#include "extender-spanner.hh" + +/** + Generate an extender. + Should make an Extender_spanner that typesets a nice extender line. + */ +class Extender_engraver : public Engraver +{ +public: + Extender_engraver (); + VIRTUAL_COPY_CONS (Translator); + +protected: + virtual void acknowledge_element (Score_element_info); + virtual void do_removal_processing(); + virtual void do_process_requests(); + virtual bool do_try_music (Music*); + virtual void do_pre_move_processing(); + +private: + Drul_array span_reqs_drul_; + Drul_array span_mom_drul_; + Extender_spanner* extender_spanner_p_; +}; + +#endif // EXTENDER_ENGRAVER_HH diff --git a/lily/include/extender-spanner.hh b/lily/include/extender-spanner.hh new file mode 100644 index 0000000000..19947342be --- /dev/null +++ b/lily/include/extender-spanner.hh @@ -0,0 +1,58 @@ +/* + extender-spanner.hh -- part of GNU LilyPond + + (c) 1998 Jan Nieuwenhuizen +*/ + +#ifndef EXTENDER_SPANNER_HH +#define EXTENDER_SPANNER_HH + +#include "directional-spanner.hh" + +/** + simple extender line + + The extender is a simple line at the baseline of the lyric + that helps show the length of a melissima (tied/slurred note). + + Extenders must be entered manually for now. + + Although it would be possible for Lily to determine where to + put extender lines, it's quite a tricky thing to do. Also, + this would demand quite strict lyrics entries. + + Note: the extender is only used for one-syllable words, or + for on a word's last syllable. The extender should be aligned + with the left side of the last note of the melissima, and not + extend beond, lasting the whole duration of the melissima + (as in MUP, urg). + */ + +class Extender_spanner : public Directional_spanner +{ +public: + Extender_spanner (); + virtual ~Extender_spanner (); + + Offset center () const; + void set_textitem (Direction, Text_item*); + + Drul_array textitem_l_drul_; + +protected: + virtual Molecule* brew_molecule_p () const; + void do_add_processing (); + Interval do_height () const; + void do_substitute_dependency (Score_element* o, Score_element* n); + void do_post_processing (); + + VIRTUAL_COPY_CONS (Score_element); + + Extender_spanner (Extender_spanner const&); + + Drul_array dy_f_drul_; + Drul_array dx_f_drul_; +}; + +#endif // EXTENDER_SPANNER_HH + diff --git a/lily/include/font-size-engraver.hh b/lily/include/font-size-engraver.hh index a108408bb5..77414aa936 100644 --- a/lily/include/font-size-engraver.hh +++ b/lily/include/font-size-engraver.hh @@ -19,8 +19,8 @@ protected: virtual void do_process_requests (); public: Font_size_engraver (); - DECLARE_MY_RUNTIME_TYPEINFO; - TRANSLATOR_CLONE (Font_size_engraver); + + VIRTUAL_COPY_CONS (Translator); }; #endif /* FONT_SIZE_GRAV_HH */ diff --git a/lily/include/general-script-def.hh b/lily/include/general-script-def.hh index cc6b1e6adc..2cd36becb6 100644 --- a/lily/include/general-script-def.hh +++ b/lily/include/general-script-def.hh @@ -20,8 +20,8 @@ */ class General_script_def : public Input { public: - VIRTUAL_COPY_CONS(General_script_def,General_script_def); - DECLARE_MY_RUNTIME_TYPEINFO; + VIRTUAL_COPY_CONS(General_script_def); + virtual Direction staff_dir() const; void print() const; virtual Direction rel_stem_dir() const; diff --git a/lily/include/global-translator.hh b/lily/include/global-translator.hh index b4381eb703..0e12f150fd 100644 --- a/lily/include/global-translator.hh +++ b/lily/include/global-translator.hh @@ -17,7 +17,7 @@ class Global_translator : public virtual Translator_group{ PQueue extra_mom_pq_; public: - TRANSLATOR_CLONE(Global_translator); + VIRTUAL_COPY_CONS(Translator); Moment last_mom_; Moment now_mom_; Global_translator(); @@ -32,7 +32,7 @@ public: virtual void finish() {} virtual void start() {} - DECLARE_MY_RUNTIME_TYPEINFO; + protected: virtual Moment now_moment () const; virtual Global_translator *global_l() { return this; } diff --git a/lily/include/graphical-axis-group.hh b/lily/include/graphical-axis-group.hh index 17ac4b9481..f9df7df3e8 100644 --- a/lily/include/graphical-axis-group.hh +++ b/lily/include/graphical-axis-group.hh @@ -34,7 +34,7 @@ public: bool contains_b (Graphical_element const *) const; void add_element (Graphical_element*); void remove_element (Graphical_element*); - DECLARE_MY_RUNTIME_TYPEINFO; + }; #endif // Graphical_axis_group_HH diff --git a/lily/include/graphical-element.hh b/lily/include/graphical-element.hh index d6bd8babe6..b74fe14535 100644 --- a/lily/include/graphical-element.hh +++ b/lily/include/graphical-element.hh @@ -36,7 +36,7 @@ public: bool empty_b () const; - DECLARE_MY_RUNTIME_TYPEINFO; + Graphical_axis_group * axis_group_l_a_[NO_AXES]; diff --git a/lily/include/graphical-lisp-element.hh b/lily/include/graphical-lisp-element.hh index 531322bf72..33dc70d80f 100644 --- a/lily/include/graphical-lisp-element.hh +++ b/lily/include/graphical-lisp-element.hh @@ -21,7 +21,7 @@ class Graphical_lisp_element { public: - DECLARE_MY_RUNTIME_TYPEINFO; + Graphical_lisp_element (String); diff --git a/lily/include/hara-kiri-line-group-engraver.hh b/lily/include/hara-kiri-line-group-engraver.hh index e1d21bcdc1..f894439e9d 100644 --- a/lily/include/hara-kiri-line-group-engraver.hh +++ b/lily/include/hara-kiri-line-group-engraver.hh @@ -19,8 +19,7 @@ class Hara_kiri_line_group_engraver : public Line_group_engraver_group { public: - TRANSLATOR_CLONE (Hara_kiri_line_group_engraver); - DECLARE_MY_RUNTIME_TYPEINFO; + VIRTUAL_COPY_CONS (Translator); protected: virtual void create_line_spanner (); diff --git a/lily/include/hara-kiri-vertical-group-spanner.hh b/lily/include/hara-kiri-vertical-group-spanner.hh index 8492d976f6..15ad5d0405 100644 --- a/lily/include/hara-kiri-vertical-group-spanner.hh +++ b/lily/include/hara-kiri-vertical-group-spanner.hh @@ -18,14 +18,14 @@ class Hara_kiri_vertical_group_spanner : public Vertical_group_spanner { public: - DECLARE_MY_RUNTIME_TYPEINFO; + Hara_kiri_vertical_group_spanner (); virtual void do_post_processing (); void add_note (Note_head* n); protected: - SCORE_ELEMENT_CLONE (Hara_kiri_vertical_group_spanner); + VIRTUAL_COPY_CONS(Score_element); virtual void do_substitute_dependency (Score_element*, Score_element*); virtual void do_print ()const; diff --git a/lily/include/heads-engraver.hh b/lily/include/heads-engraver.hh index c00d46f330..dd8f7081c6 100644 --- a/lily/include/heads-engraver.hh +++ b/lily/include/heads-engraver.hh @@ -18,11 +18,11 @@ class Note_heads_engraver : public Engraver { Link_array note_req_l_arr_; public: - TRANSLATOR_CLONE(Note_heads_engraver); + VIRTUAL_COPY_CONS(Translator); Note_heads_engraver(); - DECLARE_MY_RUNTIME_TYPEINFO; + protected: - virtual bool do_try_request (Request *req_l) ; + virtual bool do_try_music (Music *req_l) ; virtual void do_process_requests(); virtual void do_pre_move_processing(); virtual void do_post_move_processing(); diff --git a/lily/include/horizontal-align-item.hh b/lily/include/horizontal-align-item.hh index 20ef3a4336..c671bf50e6 100644 --- a/lily/include/horizontal-align-item.hh +++ b/lily/include/horizontal-align-item.hh @@ -20,8 +20,8 @@ */ class Horizontal_align_item : public Item , public Align_element { public: - DECLARE_MY_RUNTIME_TYPEINFO; - SCORE_ELEMENT_CLONE(Horizontal_align_item); + + VIRTUAL_COPY_CONS(Score_element); void add_item (Item*, int p); Horizontal_align_item(); virtual void do_print() const; diff --git a/lily/include/horizontal-group-element.hh b/lily/include/horizontal-group-element.hh index f3c5d586ae..7dd99e8577 100644 --- a/lily/include/horizontal-group-element.hh +++ b/lily/include/horizontal-group-element.hh @@ -22,7 +22,7 @@ protected: public: Horizontal_group_element (); - DECLARE_MY_RUNTIME_TYPEINFO; + }; diff --git a/lily/include/horizontal-group-item.hh b/lily/include/horizontal-group-item.hh index 8c6f9ea7b9..89ab8b5fcb 100644 --- a/lily/include/horizontal-group-item.hh +++ b/lily/include/horizontal-group-item.hh @@ -27,8 +27,8 @@ protected: virtual void do_print() const; public: Horizontal_group_item (); - DECLARE_MY_RUNTIME_TYPEINFO; - SCORE_ELEMENT_CLONE(Horizontal_group_item); + + VIRTUAL_COPY_CONS(Score_element); }; #endif // HORIZONTAL_GROUP_ITEM_HH diff --git a/lily/include/horizontal-vertical-group-element.hh b/lily/include/horizontal-vertical-group-element.hh index 520170beae..8de40e721a 100644 --- a/lily/include/horizontal-vertical-group-element.hh +++ b/lily/include/horizontal-vertical-group-element.hh @@ -24,7 +24,7 @@ protected: public: Horizontal_vertical_group_element (); - DECLARE_MY_RUNTIME_TYPEINFO; + }; diff --git a/lily/include/horizontal-vertical-group-item.hh b/lily/include/horizontal-vertical-group-item.hh index 181d88ee4f..4b6ad7edca 100644 --- a/lily/include/horizontal-vertical-group-item.hh +++ b/lily/include/horizontal-vertical-group-item.hh @@ -23,11 +23,11 @@ protected: virtual void do_unlink () { Axis_group_item::do_unlink (); } - SCORE_ELEMENT_CLONE(Horizontal_vertical_group_item); + VIRTUAL_COPY_CONS(Score_element); public: Horizontal_vertical_group_item (); - DECLARE_MY_RUNTIME_TYPEINFO; + }; #endif // HORIZONTAL_VERTICAL_GROUP_ITEM_HH diff --git a/lily/include/identifier.hh b/lily/include/identifier.hh index 66644eeef3..4ba4d10aef 100644 --- a/lily/include/identifier.hh +++ b/lily/include/identifier.hh @@ -48,7 +48,7 @@ struct Identifier : public Input { void print() const; - DECLARE_MY_RUNTIME_TYPEINFO; + void error (String) const; String str () const; IDACCESSOR(Translator) @@ -64,7 +64,7 @@ struct Identifier : public Input { IDACCESSOR(Score) IDACCESSOR(int) IDACCESSOR(Duration) - VIRTUAL_COPY_CONS (Identifier, Identifier); + VIRTUAL_COPY_CONS(Identifier); protected: virtual void do_print () const; @@ -74,10 +74,10 @@ protected: #define DECLARE_ID_CLASS(Class) \ struct Class ## _identifier : Identifier {\ Class *data_p_; \ - DECLARE_MY_RUNTIME_TYPEINFO; \ + \ Class ## _identifier (Class ## _identifier const&);\ Class ## _identifier (Class*st, int code);\ - VIRTUAL_COPY_CONS (Class ## _identifier, Identifier);\ + VIRTUAL_COPY_CONS(Identifier);\ virtual Class* access_content_ ## Class (bool copy_b) const;\ ~Class ## _identifier();\ virtual void do_print () const; \ diff --git a/lily/include/item.hh b/lily/include/item.hh index ec0e1ae098..80b39df71c 100644 --- a/lily/include/item.hh +++ b/lily/include/item.hh @@ -42,7 +42,7 @@ public: Item(); Real hpos_f() const; - DECLARE_MY_RUNTIME_TYPEINFO; + virtual Line_of_score * line_l() const; virtual Paper_column * column_l () const; diff --git a/lily/include/key-engraver.hh b/lily/include/key-engraver.hh index ce154b12da..ed7e241100 100644 --- a/lily/include/key-engraver.hh +++ b/lily/include/key-engraver.hh @@ -23,8 +23,8 @@ class Key_engraver : public Engraver { public: Key_engraver(); - DECLARE_MY_RUNTIME_TYPEINFO; - TRANSLATOR_CLONE(Key_engraver); + + VIRTUAL_COPY_CONS(Translator); Key key_; Key_change_req * keyreq_l_; Key_item * kit_p_; @@ -34,7 +34,7 @@ public: bool change_key_b_; protected: - virtual bool do_try_request (Request *req_l); + virtual bool do_try_music (Music *req_l); virtual void do_process_requests(); virtual void do_pre_move_processing(); virtual void do_post_move_processing(); diff --git a/lily/include/key-item.hh b/lily/include/key-item.hh index e259c145e7..b6d72f83b1 100644 --- a/lily/include/key-item.hh +++ b/lily/include/key-item.hh @@ -25,8 +25,8 @@ struct Key_item : Item { bool default_b_; bool multi_octave_b_; - DECLARE_MY_RUNTIME_TYPEINFO; - SCORE_ELEMENT_CLONE(Key_item); + + VIRTUAL_COPY_CONS(Score_element); Key_item (); void add (int pitch, int acc); diff --git a/lily/include/key-performer.hh b/lily/include/key-performer.hh index 406ae94aeb..5779b35c04 100644 --- a/lily/include/key-performer.hh +++ b/lily/include/key-performer.hh @@ -14,14 +14,14 @@ class Key_performer : public Performer { public: - TRANSLATOR_CLONE(Key_performer); - DECLARE_MY_RUNTIME_TYPEINFO; + VIRTUAL_COPY_CONS(Translator); + Key_performer(); ~Key_performer(); protected: void do_print() const; - virtual bool do_try_request (Request* req_l); + virtual bool do_try_music (Music* req_l); virtual void do_process_requests(); private: diff --git a/lily/include/lily-proto.hh b/lily/include/lily-proto.hh index 0ac8ebf0cc..52f3674b52 100644 --- a/lily/include/lily-proto.hh +++ b/lily/include/lily-proto.hh @@ -75,6 +75,8 @@ struct Dynamic_req; struct Element_group; struct Element_group_item; struct Engraver_group_engraver; +struct Extender; +struct Extender_req; struct General_script_def; struct Graphical_element; diff --git a/lily/include/line-group-group-engraver.hh b/lily/include/line-group-group-engraver.hh index c31fc755d5..bf6f67f432 100644 --- a/lily/include/line-group-group-engraver.hh +++ b/lily/include/line-group-group-engraver.hh @@ -27,8 +27,8 @@ protected: virtual void do_announces (); public: - TRANSLATOR_CLONE(Line_group_engraver_group); - DECLARE_MY_RUNTIME_TYPEINFO; + VIRTUAL_COPY_CONS(Translator); + Line_group_engraver_group(); }; diff --git a/lily/include/line-of-score.hh b/lily/include/line-of-score.hh index 2d0904f312..ab91f4d1f8 100644 --- a/lily/include/line-of-score.hh +++ b/lily/include/line-of-score.hh @@ -18,7 +18,7 @@ public: Link_array cols; bool error_mark_b_; - DECLARE_MY_RUNTIME_TYPEINFO; + Line_of_score(); void add_element (Score_element *); @@ -37,7 +37,7 @@ protected: virtual Interval do_width() const; virtual void do_print() const; - SCORE_ELEMENT_CLONE(Line_of_score); + VIRTUAL_COPY_CONS(Score_element); }; #endif diff --git a/lily/include/local-key-engraver.hh b/lily/include/local-key-engraver.hh index 7599d08d9a..621daa7860 100644 --- a/lily/include/local-key-engraver.hh +++ b/lily/include/local-key-engraver.hh @@ -15,7 +15,7 @@ struct Local_key_engraver : Engraver { Local_key_item *key_item_p_; protected: - TRANSLATOR_CLONE(Local_key_engraver); + VIRTUAL_COPY_CONS(Translator); virtual void do_process_requests(); virtual void acknowledge_element (Score_element_info); virtual void do_pre_move_processing(); @@ -30,7 +30,7 @@ public: Link_array forced_l_arr_; Link_array tied_l_arr_; Local_key_engraver(); - DECLARE_MY_RUNTIME_TYPEINFO; + }; #endif // LOCALKEYGRAV_HH diff --git a/lily/include/local-key-item.hh b/lily/include/local-key-item.hh index 7da65e532f..5d79466feb 100644 --- a/lily/include/local-key-item.hh +++ b/lily/include/local-key-item.hh @@ -23,7 +23,7 @@ */ class Local_key_item : public Item { public: - DECLARE_MY_RUNTIME_TYPEINFO; + Array accidental_pitch_arr_; Link_array support_items_; int c0_position_i_; diff --git a/lily/include/lookup.hh b/lily/include/lookup.hh index 9b00615622..5b5685a40c 100644 --- a/lily/include/lookup.hh +++ b/lily/include/lookup.hh @@ -40,6 +40,7 @@ public: Atom dashed_slur (Array controls, Real thick, Real dash) const; Atom dots () const; Atom dynamic (String) const; + Atom extender (Real) const; Atom fill (Box b) const; Atom flag (int, Direction) const; Atom hairpin (Real width, bool decresc, bool continued) const; diff --git a/lily/include/lyric-engraver.hh b/lily/include/lyric-engraver.hh index ec85670f73..47a2b58bb1 100644 --- a/lily/include/lyric-engraver.hh +++ b/lily/include/lyric-engraver.hh @@ -15,16 +15,16 @@ #include "lily-proto.hh" class Lyric_engraver : public Engraver { - Lyric_req* lreq_l_; - Text_item *lyric_item_p_; + Lyric_req* lreq_l_; + Text_item *lyric_item_p_; protected: - virtual void do_pre_move_processing(); - virtual bool do_try_request (Request*); - virtual void do_process_requests(); - virtual void do_post_move_processing(); + virtual void do_pre_move_processing(); + virtual bool do_try_music (Music*); + virtual void do_process_requests(); + virtual void do_post_move_processing(); public: - TRANSLATOR_CLONE(Lyric_engraver); - DECLARE_MY_RUNTIME_TYPEINFO; - Lyric_engraver(); + VIRTUAL_COPY_CONS(Translator); + + Lyric_engraver(); }; #endif // LYRIC_ENGRAVER_HH diff --git a/lily/include/lyric-performer.hh b/lily/include/lyric-performer.hh index df77b0f028..4f83376ad4 100644 --- a/lily/include/lyric-performer.hh +++ b/lily/include/lyric-performer.hh @@ -16,12 +16,12 @@ class Lyric_performer : public Performer { public: - TRANSLATOR_CLONE(Lyric_performer); - DECLARE_MY_RUNTIME_TYPEINFO; + VIRTUAL_COPY_CONS(Translator); + protected: void do_print() const; - virtual bool do_try_request (Request* req_l); + virtual bool do_try_music (Music* req_l); virtual void do_process_requests(); private: diff --git a/lily/include/mark-engraver.hh b/lily/include/mark-engraver.hh index b095669341..4f37566fac 100644 --- a/lily/include/mark-engraver.hh +++ b/lily/include/mark-engraver.hh @@ -19,11 +19,11 @@ class Mark_engraver : public Engraver public: Mark_engraver (); - TRANSLATOR_CLONE(Mark_engraver); - DECLARE_MY_RUNTIME_TYPEINFO; + VIRTUAL_COPY_CONS(Translator); + protected: - virtual bool do_try_request (Request *req_l); + virtual bool do_try_music (Music *req_l); virtual void do_process_requests (); virtual void do_pre_move_processing (); diff --git a/lily/include/midi-def.hh b/lily/include/midi-def.hh index fcb608efe3..ef0029b418 100644 --- a/lily/include/midi-def.hh +++ b/lily/include/midi-def.hh @@ -21,9 +21,9 @@ */ class Midi_def : public Music_output_def { static int default_count_i_; + int count_per_minute_i; public: - VIRTUAL_COPY_CONS(Midi_def, Music_output_def); - DECLARE_MY_RUNTIME_TYPEINFO; + VIRTUAL_COPY_CONS(Music_output_def); /// duration of whole note measured in seconds. Moment whole_in_seconds_mom_; diff --git a/lily/include/midi-item.hh b/lily/include/midi-item.hh index 526504f14e..5b3eaf6a1a 100644 --- a/lily/include/midi-item.hh +++ b/lily/include/midi-item.hh @@ -20,7 +20,7 @@ Maybe use base classes for RIFF files? */ struct Midi_item { - DECLARE_MY_RUNTIME_TYPEINFO; + Midi_item (Audio_item* audio_item_l); virtual ~Midi_item (); static String i2varint_str (int i); @@ -50,7 +50,7 @@ struct Midi_event variable sized MIDI data */ struct Midi_chunk : Midi_item { - DECLARE_MY_RUNTIME_TYPEINFO; + Midi_chunk (); void set (String header_str, String data_str, String footer_str); @@ -64,7 +64,7 @@ private: }; struct Midi_duration : public Midi_item { - DECLARE_MY_RUNTIME_TYPEINFO; + Midi_duration (Real seconds_f); virtual String str () const; @@ -72,7 +72,7 @@ struct Midi_duration : public Midi_item { }; struct Midi_header : Midi_chunk { - DECLARE_MY_RUNTIME_TYPEINFO; + Midi_header (int format_i, int tracks_i, int clocks_per_4_i); }; @@ -81,7 +81,7 @@ struct Midi_header : Midi_chunk { Change instrument event */ struct Midi_instrument : public Midi_item { - DECLARE_MY_RUNTIME_TYPEINFO; + Midi_instrument (int channel_i, String instrument_str); virtual String str () const; @@ -90,7 +90,7 @@ struct Midi_instrument : public Midi_item { struct Midi_key : public Midi_item { - DECLARE_MY_RUNTIME_TYPEINFO; + Midi_key (Audio_item* audio_item_l); virtual String str () const; @@ -98,7 +98,7 @@ struct Midi_key : public Midi_item { struct Midi_time_signature : Midi_item { - DECLARE_MY_RUNTIME_TYPEINFO; + Midi_time_signature (Audio_item* audio_item_l); virtual String str () const; @@ -109,7 +109,7 @@ struct Midi_time_signature : Midi_item { Turn a note on (blond). */ struct Midi_note : public Midi_item { - DECLARE_MY_RUNTIME_TYPEINFO; + Midi_note (Audio_item* audio_item_l); Moment duration () const; @@ -124,7 +124,7 @@ struct Midi_note : public Midi_item { Turn a note off (dark). */ struct Midi_note_off : public Midi_item { - DECLARE_MY_RUNTIME_TYPEINFO; + Midi_note_off (Midi_note*); int pitch_i () const; @@ -134,7 +134,7 @@ struct Midi_note_off : public Midi_item { }; struct Midi_text : Midi_item { - DECLARE_MY_RUNTIME_TYPEINFO; + enum Type { TEXT = 1, COPYRIGHT, TRACK_NAME, INSTRUMENT_NAME, LYRIC, @@ -150,7 +150,7 @@ struct Midi_text : Midi_item { }; struct Midi_tempo : Midi_item { - DECLARE_MY_RUNTIME_TYPEINFO; + Midi_tempo (int per_minute_4_i); Midi_tempo (Audio_item* audio_item_l); @@ -160,7 +160,7 @@ struct Midi_tempo : Midi_item { }; struct Midi_track : Midi_chunk { - DECLARE_MY_RUNTIME_TYPEINFO; + int number_i_; Pointer_list event_p_list_; diff --git a/lily/include/multi-measure-rest-engraver.hh b/lily/include/multi-measure-rest-engraver.hh index abb17be6e4..4b54fa417c 100644 --- a/lily/include/multi-measure-rest-engraver.hh +++ b/lily/include/multi-measure-rest-engraver.hh @@ -17,13 +17,13 @@ class Multi_measure_rest_engraver : public Engraver { public: - TRANSLATOR_CLONE(Multi_measure_rest_engraver); - DECLARE_MY_RUNTIME_TYPEINFO; + VIRTUAL_COPY_CONS(Translator); + Multi_measure_rest_engraver (); protected: virtual void do_process_requests (); - virtual bool do_try_request (Request*); + virtual bool do_try_music (Music*); virtual void do_pre_move_processing (); virtual void do_post_move_processing (); private: diff --git a/lily/include/multi-measure-rest.hh b/lily/include/multi-measure-rest.hh index 66cf89d004..01b1c09e23 100644 --- a/lily/include/multi-measure-rest.hh +++ b/lily/include/multi-measure-rest.hh @@ -18,7 +18,7 @@ public: Multi_measure_rest (); int measures_i_; - DECLARE_MY_RUNTIME_TYPEINFO; + protected: virtual void do_print () const; diff --git a/lily/include/music-iterator.hh b/lily/include/music-iterator.hh index e7bda4c554..38dff72bd3 100644 --- a/lily/include/music-iterator.hh +++ b/lily/include/music-iterator.hh @@ -32,7 +32,7 @@ protected: void inherit_info (Music_iterator const *parent); public: Translator_group*report_to_l() const; - DECLARE_MY_RUNTIME_TYPEINFO; + static Music_iterator* static_get_iterator_p (Music const*,Translator_group*); Music_iterator(); diff --git a/lily/include/music-list.hh b/lily/include/music-list.hh index 477ab2465f..a87cb8d4dd 100644 --- a/lily/include/music-list.hh +++ b/lily/include/music-list.hh @@ -34,8 +34,8 @@ public: Music_sequence (Music_sequence const&); Music_sequence (Music_list *l_p); - DECLARE_MY_RUNTIME_TYPEINFO; - VIRTUAL_COPY_CONS(Music_sequence,Music); + + VIRTUAL_COPY_CONS(Music); virtual void transpose (Musical_pitch ); virtual void compress (Moment); @@ -50,8 +50,8 @@ protected: class Simultaneous_music : public Music_sequence { public: - DECLARE_MY_RUNTIME_TYPEINFO; - VIRTUAL_COPY_CONS(Simultaneous_music,Music); + + VIRTUAL_COPY_CONS(Music); Simultaneous_music(Music_list *); virtual Musical_pitch to_relative_octave (Musical_pitch); @@ -65,8 +65,8 @@ public: class Request_chord : public Simultaneous_music { public: - VIRTUAL_COPY_CONS(Request_chord, Music); - DECLARE_MY_RUNTIME_TYPEINFO; + VIRTUAL_COPY_CONS(Music); + virtual Musical_pitch to_relative_octave (Musical_pitch); Request_chord(); }; @@ -76,8 +76,8 @@ public: class Sequential_music : public Music_sequence { public: - DECLARE_MY_RUNTIME_TYPEINFO; - VIRTUAL_COPY_CONS(Sequential_music, Music); + + VIRTUAL_COPY_CONS(Music); virtual Musical_pitch to_relative_octave (Musical_pitch); Sequential_music(Music_list*); diff --git a/lily/include/music-output-def.hh b/lily/include/music-output-def.hh index 5940cc4177..bc83ff39aa 100644 --- a/lily/include/music-output-def.hh +++ b/lily/include/music-output-def.hh @@ -34,8 +34,8 @@ public: Music_output_def (); virtual ~Music_output_def (); - VIRTUAL_COPY_CONS(Music_output_def, Music_output_def); - DECLARE_MY_RUNTIME_TYPEINFO; + VIRTUAL_COPY_CONS(Music_output_def); + virtual void print () const; Global_translator *get_global_translator_p (); diff --git a/lily/include/music-wrapper-iterator.hh b/lily/include/music-wrapper-iterator.hh index 114704e152..02a4e97fa0 100644 --- a/lily/include/music-wrapper-iterator.hh +++ b/lily/include/music-wrapper-iterator.hh @@ -25,7 +25,7 @@ public: virtual void do_process_and_next (Moment) ; virtual Moment next_moment () const; virtual bool ok () const; - DECLARE_MY_RUNTIME_TYPEINFO; + }; #endif /* MUSIC_WRAPPER_ITERATOR_HH */ diff --git a/lily/include/music-wrapper.hh b/lily/include/music-wrapper.hh index 7c60c91dda..afb153e5ca 100644 --- a/lily/include/music-wrapper.hh +++ b/lily/include/music-wrapper.hh @@ -20,8 +20,8 @@ public: Music_wrapper (Music*); virtual void transpose (Musical_pitch); virtual void do_print () const; - DECLARE_MY_RUNTIME_TYPEINFO; - VIRTUAL_COPY_CONS (Music_wrapper, Music); + + VIRTUAL_COPY_CONS(Music); Music_wrapper (Music_wrapper const&); virtual Moment duration () const; virtual ~Music_wrapper (); diff --git a/lily/include/music.hh b/lily/include/music.hh index efb2f712ee..8f30e44698 100644 --- a/lily/include/music.hh +++ b/lily/include/music.hh @@ -53,8 +53,8 @@ public: /// Scale the music in time by #factor#. virtual void compress (Moment factor); - VIRTUAL_COPY_CONS(Music,Music); - DECLARE_MY_RUNTIME_TYPEINFO; + VIRTUAL_COPY_CONS(Music); + Music(); protected: virtual void do_print() const; diff --git a/lily/include/musical-request.hh b/lily/include/musical-request.hh index 1891986303..c88ef382c4 100644 --- a/lily/include/musical-request.hh +++ b/lily/include/musical-request.hh @@ -174,7 +174,7 @@ public: }; -/// a plet (bracket with) number +/// a tuplet (bracket with) number class Plet_req : public Musical_span_req { public: int plet_i_; @@ -183,6 +183,13 @@ public: Plet_req (); }; +/// an extender line +class Extender_req : public Musical_span_req { +public: + REQUESTMETHODS(Extender_req); + Extender_req (); +}; + class Musical_script_req : public Musical_req, public Script_req { public: REQUESTMETHODS(Musical_script_req); diff --git a/lily/include/my-lily-parser.hh b/lily/include/my-lily-parser.hh index 8024bb552e..4e82dc909e 100644 --- a/lily/include/my-lily-parser.hh +++ b/lily/include/my-lily-parser.hh @@ -39,6 +39,7 @@ public: int abbrev_beam_type_i_; int default_abbrev_i_; Duration default_duration_; + Extender_req* extender_req; Plet plet_; Scope *default_header_p_; diff --git a/lily/include/note-column.hh b/lily/include/note-column.hh index 2dd3243355..23aff88156 100644 --- a/lily/include/note-column.hh +++ b/lily/include/note-column.hh @@ -38,7 +38,7 @@ public: void translate_rests(int dy); - DECLARE_MY_RUNTIME_TYPEINFO; + Note_column (); void set_stem (Stem*); void set_dotcol (Dot_column*); diff --git a/lily/include/note-head.hh b/lily/include/note-head.hh index 07d3185a06..173cf33ea6 100644 --- a/lily/include/note-head.hh +++ b/lily/include/note-head.hh @@ -17,7 +17,7 @@ class Note_head : public Rhythmic_head { public: - DECLARE_MY_RUNTIME_TYPEINFO; + int position_i_; diff --git a/lily/include/note-performer.hh b/lily/include/note-performer.hh index 057f61c4e7..1e785b3d83 100644 --- a/lily/include/note-performer.hh +++ b/lily/include/note-performer.hh @@ -15,15 +15,15 @@ class Note_performer : public Performer { public: - TRANSLATOR_CLONE(Note_performer); - DECLARE_MY_RUNTIME_TYPEINFO; + VIRTUAL_COPY_CONS(Translator); + Note_performer(); protected: virtual void do_process_requests(); - virtual bool do_try_request (Request *req_l) ; + virtual bool do_try_music (Music *req_l) ; virtual void do_print() const; private: diff --git a/lily/include/p-col.hh b/lily/include/p-col.hh index a6061778a9..f33c7b0b8d 100644 --- a/lily/include/p-col.hh +++ b/lily/include/p-col.hh @@ -30,8 +30,8 @@ class Paper_column : public Horizontal_group_item { public: - DECLARE_MY_RUNTIME_TYPEINFO; - SCORE_ELEMENT_CLONE(Paper_column); + + VIRTUAL_COPY_CONS(Score_element); Drul_array< Array > minimal_dists_arr_drul_; void preprocess (); diff --git a/lily/include/paper-def.hh b/lily/include/paper-def.hh index 4195ca77f9..67436644c4 100644 --- a/lily/include/paper-def.hh +++ b/lily/include/paper-def.hh @@ -40,11 +40,11 @@ class Paper_def : public Music_output_def static int default_count_i_; protected: - VIRTUAL_COPY_CONS(Paper_def,Music_output_def); + VIRTUAL_COPY_CONS(Music_output_def); public: virtual ~Paper_def (); - DECLARE_MY_RUNTIME_TYPEINFO; + Array shape_int_a_; diff --git a/lily/include/performer-group-performer.hh b/lily/include/performer-group-performer.hh index 8c9c8aa8d8..6917badd17 100644 --- a/lily/include/performer-group-performer.hh +++ b/lily/include/performer-group-performer.hh @@ -20,8 +20,8 @@ class Performer_group_performer : public Performer, public virtual Translator_group { public: - TRANSLATOR_CLONE(Performer_group_performer); - DECLARE_MY_RUNTIME_TYPEINFO; + VIRTUAL_COPY_CONS(Translator); + }; #endif // PERFORMER_GROUP_PERFORMER_HH diff --git a/lily/include/performer.hh b/lily/include/performer.hh index 75fbeccf7e..4badbc608c 100644 --- a/lily/include/performer.hh +++ b/lily/include/performer.hh @@ -21,8 +21,8 @@ */ class Performer : public virtual Translator{ public: - TRANSLATOR_CLONE(Performer); - DECLARE_MY_RUNTIME_TYPEINFO; + VIRTUAL_COPY_CONS(Translator); + Performer_group_performer* daddy_perf_l() const; protected: virtual int get_tempo_i() const; diff --git a/lily/include/piano-brace.hh b/lily/include/piano-brace.hh index 2d094cab11..afc7b43e68 100644 --- a/lily/include/piano-brace.hh +++ b/lily/include/piano-brace.hh @@ -15,8 +15,8 @@ class Piano_brace : public Span_score_bar { public: - DECLARE_MY_RUNTIME_TYPEINFO; - SCORE_ELEMENT_CLONE(Piano_brace); + + VIRTUAL_COPY_CONS(Score_element); /** make room for Staff_bracket. Ugh. Should use some kind of relation thingy. */ diff --git a/lily/include/pitch-squash-engraver.hh b/lily/include/pitch-squash-engraver.hh index dbf432a536..4c2f245434 100644 --- a/lily/include/pitch-squash-engraver.hh +++ b/lily/include/pitch-squash-engraver.hh @@ -14,8 +14,8 @@ class Pitch_squash_engraver : public Engraver { public: - DECLARE_MY_RUNTIME_TYPEINFO; - TRANSLATOR_CLONE (Pitch_squash_engraver); + + VIRTUAL_COPY_CONS (Translator); virtual void acknowledge_element (Score_element_info); }; diff --git a/lily/include/plet-engraver.hh b/lily/include/plet-engraver.hh index 005a475bf6..ee619a92a7 100644 --- a/lily/include/plet-engraver.hh +++ b/lily/include/plet-engraver.hh @@ -20,15 +20,15 @@ class Plet_engraver : public Engraver { public: - TRANSLATOR_CLONE(Plet_engraver); - DECLARE_MY_RUNTIME_TYPEINFO; + VIRTUAL_COPY_CONS(Translator); + Plet_engraver (); protected: virtual void acknowledge_element (Score_element_info); virtual void do_removal_processing(); virtual void do_process_requests(); - virtual bool do_try_request (Request*); + virtual bool do_try_music (Music*); virtual void do_pre_move_processing(); private: diff --git a/lily/include/plet-swallow-engraver.hh b/lily/include/plet-swallow-engraver.hh index 0dbb142774..1458589090 100644 --- a/lily/include/plet-swallow-engraver.hh +++ b/lily/include/plet-swallow-engraver.hh @@ -18,11 +18,11 @@ class Plet_swallow_engraver : public Swallow_engraver { public: - TRANSLATOR_CLONE(Plet_swallow_engraver); - DECLARE_MY_RUNTIME_TYPEINFO; + VIRTUAL_COPY_CONS(Translator); + protected: - virtual bool do_try_request (Request*); + virtual bool do_try_music (Music*); }; #endif // PLET_SWALLOW_ENGRAVER_HH diff --git a/lily/include/priority-halign-engraver.hh b/lily/include/priority-halign-engraver.hh index 5d91ac4e03..6a64118847 100644 --- a/lily/include/priority-halign-engraver.hh +++ b/lily/include/priority-halign-engraver.hh @@ -15,8 +15,8 @@ class Priority_horizontal_align_engraver : public Engraver { Break_align_item * halign_p_; public: - TRANSLATOR_CLONE(Priority_horizontal_align_engraver); - DECLARE_MY_RUNTIME_TYPEINFO; + VIRTUAL_COPY_CONS(Translator); + Priority_horizontal_align_engraver(); protected: virtual void acknowledge_element (Score_element_info); diff --git a/lily/include/property-iterator.hh b/lily/include/property-iterator.hh index ea429a36a4..3dc7898c2b 100644 --- a/lily/include/property-iterator.hh +++ b/lily/include/property-iterator.hh @@ -17,7 +17,7 @@ class Property_iterator : public Music_iterator Translation_property *property_l() const; public: - DECLARE_MY_RUNTIME_TYPEINFO; + protected: virtual void do_process_and_next (Moment); }; diff --git a/lily/include/relative-music.hh b/lily/include/relative-music.hh index 6137260d68..3ed7ad4547 100644 --- a/lily/include/relative-music.hh +++ b/lily/include/relative-music.hh @@ -19,8 +19,8 @@ public: void do_print () const; Relative_octave_music (Music*, Musical_pitch); - DECLARE_MY_RUNTIME_TYPEINFO; - VIRTUAL_COPY_CONS (Relative_octave_music, Music); + + VIRTUAL_COPY_CONS(Music); virtual Musical_pitch to_relative_octave (Musical_pitch); }; diff --git a/lily/include/request-iterator.hh b/lily/include/request-iterator.hh index 6d5cd95baf..d374d5929f 100644 --- a/lily/include/request-iterator.hh +++ b/lily/include/request-iterator.hh @@ -25,7 +25,7 @@ class Request_chord_iterator : public Music_iterator { public: Request_chord_iterator (); - DECLARE_MY_RUNTIME_TYPEINFO; + protected: virtual void do_process_and_next (Moment); diff --git a/lily/include/request.hh b/lily/include/request.hh index 4394fce306..bd90bde2aa 100644 --- a/lily/include/request.hh +++ b/lily/include/request.hh @@ -30,8 +30,8 @@ public: virtual ~Request(){} - DECLARE_MY_RUNTIME_TYPEINFO; - VIRTUAL_COPY_CONS(Request,Music); + + VIRTUAL_COPY_CONS(Music); bool equal_b (Request*) const; protected: @@ -41,8 +41,8 @@ protected: #define REQUESTMETHODS(T) \ -DECLARE_MY_RUNTIME_TYPEINFO;\ -VIRTUAL_COPY_CONS(T, Request);\ +\ +VIRTUAL_COPY_CONS(Request);\ virtual void do_print() const diff --git a/lily/include/rest-collision-engraver.hh b/lily/include/rest-collision-engraver.hh index c62c4e2e3a..a1b3b4198e 100644 --- a/lily/include/rest-collision-engraver.hh +++ b/lily/include/rest-collision-engraver.hh @@ -22,8 +22,8 @@ protected: virtual void process_acknowledged (); virtual void do_pre_move_processing(); public: - TRANSLATOR_CLONE(Rest_collision_engraver); + VIRTUAL_COPY_CONS(Translator); Rest_collision_engraver(); - DECLARE_MY_RUNTIME_TYPEINFO; + }; #endif // REST_COLLISION_GRAV_HH diff --git a/lily/include/rest-collision.hh b/lily/include/rest-collision.hh index cc6bc84db8..cfb1518093 100644 --- a/lily/include/rest-collision.hh +++ b/lily/include/rest-collision.hh @@ -18,7 +18,7 @@ class Rest_collision : public Item { Link_array ncol_l_arr_; public: void add_column (Note_column*); - DECLARE_MY_RUNTIME_TYPEINFO; + Rest_collision(); protected: virtual void do_post_processing(); diff --git a/lily/include/rest-engraver.hh b/lily/include/rest-engraver.hh index 0081454fd7..757e948aad 100644 --- a/lily/include/rest-engraver.hh +++ b/lily/include/rest-engraver.hh @@ -18,13 +18,13 @@ class Rest_engraver : public Engraver Dots * dot_p_; Rest * rest_p_; protected: - virtual bool do_try_request (Request *); + virtual bool do_try_music (Music *); virtual void do_pre_move_processing (); virtual void do_post_move_processing (); virtual void do_process_requests (); public: - DECLARE_MY_RUNTIME_TYPEINFO; - TRANSLATOR_CLONE(Rest_engraver); + + VIRTUAL_COPY_CONS(Translator); Rest_engraver (); }; #endif // REST_GRAV_HH diff --git a/lily/include/rest.hh b/lily/include/rest.hh index 493472c0e7..2e0b3938c1 100644 --- a/lily/include/rest.hh +++ b/lily/include/rest.hh @@ -15,7 +15,7 @@ class Rest : public Rhythmic_head { public: - DECLARE_MY_RUNTIME_TYPEINFO; + int position_i_; Rest (); diff --git a/lily/include/rhythmic-column-engraver.hh b/lily/include/rhythmic-column-engraver.hh index 207427117d..1cf5962afc 100644 --- a/lily/include/rhythmic-column-engraver.hh +++ b/lily/include/rhythmic-column-engraver.hh @@ -21,14 +21,14 @@ class Rhythmic_column_engraver :public Engraver { Dot_column *dotcol_l_; protected: - TRANSLATOR_CLONE(Rhythmic_column_engraver); + VIRTUAL_COPY_CONS(Translator); virtual void acknowledge_element (Score_element_info); virtual void process_acknowledged (); virtual void do_pre_move_processing(); virtual void do_post_move_processing(); public: Rhythmic_column_engraver(); - DECLARE_MY_RUNTIME_TYPEINFO; + }; #endif // RHYTHMIC_COLUMN_GRAV_HH diff --git a/lily/include/rhythmic-head.hh b/lily/include/rhythmic-head.hh index 4c11b50fd0..ab45f03573 100644 --- a/lily/include/rhythmic-head.hh +++ b/lily/include/rhythmic-head.hh @@ -15,7 +15,7 @@ class Rhythmic_head : public Item { public: - DECLARE_MY_RUNTIME_TYPEINFO; + int balltype_i_; int dots_i_; diff --git a/lily/include/score-bar.hh b/lily/include/score-bar.hh index 83c8e0bbaa..741f1412b9 100644 --- a/lily/include/score-bar.hh +++ b/lily/include/score-bar.hh @@ -18,8 +18,8 @@ */ class Score_bar : public virtual Bar { public: - DECLARE_MY_RUNTIME_TYPEINFO; - SCORE_ELEMENT_CLONE(Score_bar); + + VIRTUAL_COPY_CONS(Score_element); protected: void do_pre_processing (); }; diff --git a/lily/include/score-column.hh b/lily/include/score-column.hh index dfe944c5a5..50fd2afa89 100644 --- a/lily/include/score-column.hh +++ b/lily/include/score-column.hh @@ -35,8 +35,8 @@ class Score_column : public Paper_column { public: int break_penalty_i () { return break_penalty_i_; } - DECLARE_MY_RUNTIME_TYPEINFO; - SCORE_ELEMENT_CLONE(Score_column); + + VIRTUAL_COPY_CONS(Score_element); /// length of notes/rests in this column Array durations; diff --git a/lily/include/score-element-info.hh b/lily/include/score-element-info.hh index 9870cecb15..19586ede51 100644 --- a/lily/include/score-element-info.hh +++ b/lily/include/score-element-info.hh @@ -19,12 +19,10 @@ */ struct Score_element_info { Score_element * elem_l_; - - Request*req_l_; + Music *req_l_; Array origin_grav_l_arr_; - Score_element_info (Score_element*, Request*); - + Score_element_info (Score_element*, Music*); Score_element_info(); }; diff --git a/lily/include/score-element.hh b/lily/include/score-element.hh index 4ad95c7371..2828e00fae 100644 --- a/lily/include/score-element.hh +++ b/lily/include/score-element.hh @@ -12,7 +12,6 @@ #include "directed-graph.hh" #include "graphical-element.hh" -#define SCORE_ELEMENT_CLONE(T) VIRTUAL_COPY_CONS (T, Score_element) typedef void (Score_element::*Score_element_method_pointer) (void); @@ -37,7 +36,7 @@ public: Lookup const *lookup_l () const; virtual ~Score_element (); - DECLARE_MY_RUNTIME_TYPEINFO; + void add_processing (); @@ -54,7 +53,7 @@ public: virtual Line_of_score * line_l () const; virtual bool linked_b () const; - SCORE_ELEMENT_CLONE (Score_element); + VIRTUAL_COPY_CONS(Score_element); /// do not print anything black bool transparent_b_; diff --git a/lily/include/score-engraver.hh b/lily/include/score-engraver.hh index fae750a39a..3dd921aaa7 100644 --- a/lily/include/score-engraver.hh +++ b/lily/include/score-engraver.hh @@ -32,9 +32,9 @@ class Score_engraver : void typeset_all(); public: - TRANSLATOR_CLONE(Score_engraver); + VIRTUAL_COPY_CONS(Translator); Paper_score * pscore_p_; - DECLARE_MY_RUNTIME_TYPEINFO; + Score_engraver(); virtual Music_output *get_output_p (); @@ -47,7 +47,7 @@ protected: protected: /* Engraver_group_engraver interface */ virtual Staff_info get_staff_info() const; - virtual bool do_try_request (Request*); + virtual bool do_try_music (Music*); virtual void do_creation_processing(); virtual void do_removal_processing(); virtual void announce_element (Score_element_info); diff --git a/lily/include/score-performer.hh b/lily/include/score-performer.hh index adb462a2dd..733fb86fef 100644 --- a/lily/include/score-performer.hh +++ b/lily/include/score-performer.hh @@ -18,8 +18,8 @@ class Score_performer: public Performer_group_performer, public Global_translator { public: - TRANSLATOR_CLONE(Score_performer); - DECLARE_MY_RUNTIME_TYPEINFO; + VIRTUAL_COPY_CONS(Translator); + Score_performer(); ~Score_performer(); Performance *performance_p_; diff --git a/lily/include/score-priority-engraver.hh b/lily/include/score-priority-engraver.hh index c6827250b9..d9d87a127e 100644 --- a/lily/include/score-priority-engraver.hh +++ b/lily/include/score-priority-engraver.hh @@ -20,9 +20,9 @@ class Score_priority_engraver : public Engraver { Assoc align_p_assoc_; public: - TRANSLATOR_CLONE(Score_priority_engraver); + VIRTUAL_COPY_CONS(Translator); Score_priority_engraver (); - DECLARE_MY_RUNTIME_TYPEINFO; + protected: virtual void acknowledge_element (Score_element_info); virtual void do_pre_move_processing(); diff --git a/lily/include/script-column.hh b/lily/include/script-column.hh index 99c053b10a..a5eb00add2 100644 --- a/lily/include/script-column.hh +++ b/lily/include/script-column.hh @@ -23,7 +23,7 @@ protected: public: Link_array