README_TOP_FILES=NEWS DEDICATION TODO ANNOUNCE-0.1 AIMS
INFO_FILES = $(wildcard $(outdir)/$(package).info*)
-EXTRA_DIST_FILES = gnu-music-history TODO
+
BLURBS=BLURB COPERTINA FLAPTEKST
+++ /dev/null
-# Documentation/TODO
-
- * overview and index of features
-
- * get rid of pod manpage layout legacy
-
+++ /dev/null
-
-=head1 HISTORY
-
-
-Please note that this all happened when I wasn't around yet. If you
-think that I am a biased, unfair, predisposed hypocrite, then don't
-bother flaming me; I already know that.
-
-The GNU Music project is a project which aims to create free software
-for music printing and composing. It was started in november '92 by a
-core team of four members (Bryan Ford <baford@cs.utah.edu>, David Linn
-<drl@vuse.vanderbilt.edu>, Francois Pinard <pinard@iro.umontreal.ca>,
-Neil Jerram <nj104@cus.cam.ac.uk>) and in January '93 Robert Strandh
-<Robert.Strandh@labri.u-bordeaux.fr> joined.
-
-After serious disputes with Robert Strandh and the FSF staff in '94,
-the project core team got divided. The development efforts of GMP
-stopped.
-
-Independently, I (HWN) started LilyPond. When I showed it to
-RMS, he was very enthousiastic about having LilyPond in the GNU
-project. I subsequently learned about the GNU Music project, and
-contacted them.
-
-What was left of the GMP (Robert Strandh) and us, LilyPond people,
-agreed that cooperation would be desirable. Although merging of both
-efforts was and is technically infeasible, we did decide that LilyPond
-should also be part of the GNU Music project.
-
-Only later did I discover the previous quarrels about the GMP-"take
-1". To show that I am aware of the history, and to make sure nobody
-gets me wrong or is angry at me because I stole a project or a
-project's name, I wrote this note.
-
-In summary, LilyPond is now the only substantial embodiment of the GNU
-Music Project, and it is part of the GNU project.
-
-For completeness' sake, I will mention the other efforts here:
-
-=over 4
-
-=item G Sharp, http://dept-info.labri.u-bordeaux.fr/~strandh/Gsharp
-
-An alpha version notation editor for X in Scheme. Source available on
-request from Robert Strandh.
-
-=item GNU music,
-
-An alpha version of a music editing system with Musictex
-output. Pretest versions of GNU Music (v0.3) can still be obtained from
-Francois Pinard.
-
-=back
-
-This history note is probably biased in some way, because I wrote it.
-The rest of this document is also entirely mine, and is not meant to
-reflect anyone else's opinion.
sect(Goal)
-Provide musicians with free software for
-itemize(
-it()composing
-it()engraving
-it()playing
-it()sequencing
-it()interchanging music
-it()arranging
-it()performing
-it()Metacomposing
-)
-
-These systems should encourage laymen to take up composing, in the
-same way that GNU tools have created a whole new generation of
-programmers.
The public deserves free tools for composing and printing.
sect(Repeats)
+
+OUTDATED. FIXME
+
In order to specify repeats, use the code(\repeat) keyword. By
default, repeats are printed with repeat symbols.
mudela(fragment,verbatim,center)(
dit(code(barNonAuto)) If set to 1 then bar lines will not be printed
automatically; they must be explicitly created with code(\bar) keywords.
-dit(code(unfoldRepeats)) If set to 1 then repeats will be unfolded.
-Otherwise, they will be printed using repeat symbols.
-
dit(code(defaultClef)) Determines the default clef. See code(\clef)
keyword.
attribute whose value is the direction to use for stems. You can
change it to `up' by issuing the following phrase:
verb(
- \property "Voice"."ydirection" = "1"
+ \property "Voice"."verticalDirection" = "1"
)
This command should be read as ``change the property called
-code(ydirection) within the current code(Voice) context to the value
-code(-1).'' For the property code(ydirection) the value code(1) means
+code(verticalDirection) within the current code(Voice) context to the value
+code(-1).'' For the property code(verticalDirection) the value code(1) means
`up', and code(-1) means `down'. So, the
proper way to code the polyphonic example is given in
bind(Figure)ref(tutorial:multi-voice-fig).
mudela(fragment,verbatim,center)(
\context "Staff" <
\context "Voice" = "one" {
- \property Voice.ydirection = "1"
+ \property Voice.verticalDirection = "1"
r4 as'4 () as'4 g'4 }
\context "Voice" = "two" {
- \property Voice.ydirection = "-1"
+ \property Voice.verticalDirection = "-1"
g'2 f'4 e'4 }
>
)
meaning of a code(\property).
mudela(verbatim)(
-stemup = \property Voice.ydirection = "1"
-stemdown = \property Voice.ydirection = "-1"
+stemup = \property Voice.verticalDirection = "1"
+stemdown = \property Voice.verticalDirection = "-1"
shift = \property Voice.hshift = "1"
\score {
\context "Staff" \notes <
hardcoded into the language and they have to be terminated by
semicolons.
-
sect(Sound output)
label(tutorial:sound)
variables and symlinks, which comes in handly when you have to compile
LilyPond more often.
+sect(OBTAINING)
+
+You can get the latest version of LilyPond at
+lurl(ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/). Refer to the links
+document for mirror sites.
+
+em(If you upgrade by patching do remember to rerun autoconf after
+applying the patch).
+
sect(PREREQUISITES)
For compilation you need:
it()Bison (version 1.25 or newer).
Check out lurl(ftp://ftp.gnu.org)
or any mirror of this site.
-it() GUILE 1.3 (no, GUILE 1.2 won't work), check out lurl(http://www.gnu.org/programs/guile.html)
+it() GUILE 1.3 (no, GUILE 1.2 won't work),
+check out lurl(http://www.gnu.org/programs/guile.html).
it()Python (version 1.5 or newer). Check out
Contents
1: ABSTRACT
-2: PREREQUISITES
-3: RUNNING
-4: RECOMMENDED
-5: WEBSITE
-6: CONFIGURING and COMPILING
-7: CONFIGURING FOR MULTIPLE PLATFORMS
-8: INSTALLING
-9: REDHAT LINUX
-10: DEBIAN GNU/LINUX
-11: WINDOWS NT/95
-12: AUTHORS
+2: OBTAINING
+3: PREREQUISITES
+4: RUNNING
+5: RECOMMENDED
+6: WEBSITE
+7: CONFIGURING and COMPILING
+8: CONFIGURING FOR MULTIPLE PLATFORMS
+9: INSTALLING
+10: REDHAT LINUX
+11: DEBIAN GNU/LINUX
+12: WINDOWS NT/95
+13: AUTHORS
1: ABSTRACT
It sets some environment variables and symlinks, which comes
in handly when you have to compile LilyPond more often.
-2: PREREQUISITES
+2: OBTAINING
+
+You can get the latest version of LilyPond at
+ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/. Refer to the links
+document for mirror sites.
+
+If you upgrade by patching do remember to rerun autoconf
+after applying the patch.
+
+3: PREREQUISITES
For compilation you need:
o A GNU system: GNU LilyPond is known to run on these GNU
- systems: Linux (PPC, intel), FreeBSD, AIX, NeXTStep,
+ systems: Linux (PPC, intel), FreeBSD, AIX, NeXTStep,
IRIX, Digital Unix and Solaris.
-o Lots of disk space: LilyPond takes between 50 and 100
+o Lots of disk space: LilyPond takes between 50 and 100
mb to compile if you use debugging information. If you
- are short on disk-space run configure with --disable-
+ are short on disk-space run configure with --disable-
debugging.
Although we recommend to use Unix, LilyPond is known to
- run on Windows NT/95/98 as well. See Section 11.
+ run on Windows NT/95/98 as well. See Section 12.
o EGCS 1.1 or newer.
o GUILE 1.3 (no, GUILE 1.2 won't work), check out
http://www.gnu.org/software/guile/guile.html.
-3: RUNNING
+4: RUNNING
-GNU LilyPond does use a lot of resources. For operation you
+GNU LilyPond does use a lot of resources. For operation you
need the following:
o TeX
o A PostScript printer and/or viewer (such as
- Ghostscript) is strongly recommended. Xdvi will show
- all embedded PostScript too if you have Ghostscript
+ Ghostscript) is strongly recommended. Xdvi will show
+ all embedded PostScript too if you have Ghostscript
installed.
o GUILE 1.3 (no, GUILE 1.2 won't work), check out
http://www.gnu.org/programs/guile.html
-For running LilyPond successfully you have to help TeX and
-MetaFont find various files. The recommended way of doing
-so is adjusting the environment variables in the start-up
-scripts of your shell. An example is given here for the
+For running LilyPond successfully you have to help TeX and
+MetaFont find various files. The recommended way of doing
+so is adjusting the environment variables in the start-up
+scripts of your shell. An example is given here for the
Bourne shell:
export MFINPUTS="/usr/local/share/lilypond/mf:"
- export TEXINPUTS="/usr/local/share/lilypond/tex:"
+ export TEXINPUTS="/usr/local/share/lilypond/tex:/usr/local/share/lilypond/ps:"
-The empty path component represents and MetaFont's default
-search paths. Scripts with the proper paths for the bourne
+The empty path component represents and MetaFont's default
+search paths. Scripts with the proper paths for the bourne
and C-shell respectively are generated in build-
-scripts/out/lilypond-profile and buildscripts/out/lilypond-
+scripts/out/lilypond-profile and buildscripts/out/lilypond-
login during compilation.
-4: RECOMMENDED
+5: RECOMMENDED
-Although not strictly necessary, these are recommended to
+Although not strictly necessary, these are recommended to
have.
o GNU make. Check out ftp://ftp.gnu.org or any mirror of
this site.
-o Flex (version 2.5.4 or newer). Check out
+o Flex (version 2.5.4 or newer). Check out
ftp://ftp.gnu.org or any mirror of this site.
-o Bison (version 1.25 or newer). Check out
+o Bison (version 1.25 or newer). Check out
ftp://ftp.gnu.org or any mirror of this site.
-o GUILE 1.3 (no, GUILE 1.2 won't work), check out
- http://www.gnu.org/programs/guile.html
+o GUILE 1.3 (no, GUILE 1.2 won't work), check out
+ http://www.gnu.org/programs/guile.html.
-o Python (version 1.5 or newer). Check out
+o Python (version 1.5 or newer). Check out
ftp://ftp.python.org or ftp://ftp.cwi.nl/pub/python.
-o Yodl. All documentation will be in Yodl. (1.30.17)
+o Yodl. All documentation will be in Yodl. (1.30.17)
ftp://ftp.lilypond.org/pub/yodl
http://www.cs.uu.nl/~hanwen/yodl
o Texinfo. (version 3.12 or newer)
-o GNU find Check out ftp://ftp.gnu.org or any mirror of
+o GNU find Check out ftp://ftp.gnu.org or any mirror of
this site.
o The geometry package for LaTeX is needed to use ly2dvi.
- Available at ftp://ftp.ctan.org/tex-
+ Available at ftp://ftp.ctan.org/tex-
archive/macros/latex/contrib/supported/geometry or at
mirror site ftp://ftp.dante.de
o A fast computer: a full page of music typically takes 1
- minute on my 486/133, using the --enable-checking com-
+ minute on my 486/133, using the --enable-checking com-
pile.
-5: WEBSITE
+6: WEBSITE
-If you want to auto-generate Lily's website, you'll need
+If you want to auto-generate Lily's website, you'll need
some additional conversion tools.
o xpmtoppm (from the Portable Bitmap Utilities) (For Red-
- Hat Linux users: it is included within the package
+ Hat Linux users: it is included within the package
libgr-progs).
o Bib2html http://pertsserver.cs.uiuc.edu/~hull/bib2html.
Which, in turn depends on man2html for proper installa-
- tion. man2html can be had from http://askdon-
+ tion. man2html can be had from http://askdon-
ald.ask.uni-karlsruhe.de/hppd/hpux/Network-
ing/WWW/Man2html-1.05.
TeTeX users should not forget to rerun texhash.
Building the website requires pnmtopng. The version of pnm-
-topng that is distributed with RedHat 5.1 contains a bug
-(pnmtopng is dynamically linked to the wrong version of
-libpng). Recompile it from source, and make sure that the
-pnmtopng binary is linked statically to the libpng that is
+topng that is distributed with RedHat 5.1 contains a bug
+(pnmtopng is dynamically linked to the wrong version of
+libpng). Recompile it from source, and make sure that the
+pnmtopng binary is linked statically to the libpng that is
+
included in libgr.
tar xzf libgr-2.0.13.tar.gz
You can then install the new pnmtopng into /usr/local/bin/
-6: CONFIGURING and COMPILING
+7: CONFIGURING and COMPILING
to install GNU LilyPond, simply type:
gunzip -c lilypond-x.y.z | tar xf -
cd lilypond-x.y.z
- configure # fill in your standard prefix with --prefix
+ ./configure # fill in your standard prefix with --prefix
make
make install
/usr/local/share/lilypond/*
/usr/local/share/locale/{it,nl}/LC_MESSAGES/lilypond.mo
-The above assumes that you are root and have the GNU devel-
+The above assumes that you are root and have the GNU devel-
opment tools, and your make is GNU make. If this is not the
-case, you can adjust your environment variables to your
-
+case, you can adjust your environment variables to your
taste:
export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR"
- configure
+ ./configure
CPPFLAGS are the preprocessor flags.
The configure script is Cygnus configure, and it will accept
---help. If you are not root, you will probably have to make
+--help. If you are not root, you will probably have to make
it with a different --prefix option. Our favourite location
is
- configure --prefix=$HOME/usr
+ ./configure --prefix=$HOME/usr
-In this case, you will have to set up MFINPUTS, and TEXIN-
+In this case, you will have to set up MFINPUTS, and TEXIN-
PUTS accordingly.
-Since GNU LilyPond currently is beta, you are advised to
+Since GNU LilyPond currently is beta, you are advised to
also use
--enable-debugging
Enable debugging print routines (lilypond -D option)
--enable-optimise
- Set maximum optimisation: compile with -O2. This can
- be unreliable on some compiler/platform combinations
+ Set maximum optimisation: compile with -O2. This can
+ be unreliable on some compiler/platform combinations
(eg, DEC Alpha and PPC)
--enable-profiling
Compile with support for profiling.
--enable-config
- Output to a different configuration file. Needed for
+ Output to a different configuration file. Needed for
multi-platform builds
-All options are documented in the configure help The option
+All options are documented in the configure help The option
--enable-optimise is recommended for Real Life usage.
If you do
make all
-everything will be compiled, but nothing will be installed.
-The resulting binaries can be found in the subdirectories
+everything will be compiled, but nothing will be installed.
+The resulting binaries can be found in the subdirectories
out/ (which contain all files generated during compilation).
-7: CONFIGURING FOR MULTIPLE PLATFORMS
+8: CONFIGURING FOR MULTIPLE PLATFORMS
If you want to compile LilyPond with different configuration
-settings, then, you can use the --enable-config option.
-Example: suppose I want to build with and without profil-
+settings, then, you can use the --enable-config option.
+Example: suppose I want to build with and without profil-
ing. Then I'd use the following for the normal build,
- configure --prefix=~ --disable-optimise --enable-checking
+ ./configure --prefix=~ --disable-optimise --enable-checking
make
make install
and for the profiling version, I specify a different config-
uration.
- configure --prefix=~ --enable-profiling --enable-config=optprof --enable-optimise --disable-checking
+ ./configure --prefix=~ --enable-profiling --enable-config=optprof --enable-optimise --disable-checking
make config=optprof
make config=optprof install
-8: INSTALLING
+9: INSTALLING
If you have done a successful make, then a simple
should do the trick.
If you are doing an upgrade, please remember to remove obso-
-lete .pk and .tfm files of the fonts. A script has been
+lete .pk and .tfm files of the fonts. A script has been
provided to do the work for you, see bin/clean-fonts.sh.
CAVEATS
-o The -O2 option triggers bugs on various platforms
- (PowerPC, Alpha). If you experience problems, you
+o The -O2 option triggers bugs on various platforms
+ (PowerPC, Alpha). If you experience problems, you
+
should first try turning off this.
EXAMPLE
Check out the input files, some of them have comments Please
refer to the man page for more information.
-9: REDHAT LINUX
+10: REDHAT LINUX
-RedHat Linux users can compile an RPM. A spec file is in
-make/out/lilypond.spec, it is distributed along with the
+RedHat Linux users can compile an RPM. A spec file is in
+make/out/lilypond.spec, it is distributed along with the
sources.
You can make the rpm by issuing
rpm -tb lilypond-x.y.z.tar.gz
rpm -i /usr/src/redhat/RPMS/i386/lilypond-x.y.z
-10: DEBIAN GNU/LINUX
+11: DEBIAN GNU/LINUX
-A Debian package is also available; contact Anthony Fok
-foka@debian.org. The build scripts are in the subdirectory
+A Debian package is also available; contact Anthony Fok
+foka@debian.org. The build scripts are in the subdirectory
debian/.
-11: WINDOWS NT/95
+12: WINDOWS NT/95
Separate instructions on building for W32 are avaible in the
file README-W32.yo.
-12: AUTHORS
+13: AUTHORS
Han-Wen Nienhuys <hanwen@cs.uu.nl>
-pl 43.crypton1
- - bf: repeat :| placement + core dump
- input/test/repeat.ly
- input/test/coda-kludge.ly
- - bf: mf without ljfour
+pl 44
+pl 43.jcn2
+ - bf: repeat :| placement + core dump
+ input/test/repeat.ly
+ input/test/coda-kludge.ly
+ - bf: mf without ljfour
+ * feta-accordion fix/hack for feta11 at 300dpi
+
+pl 43.hwn1
+ - half assed attempt at ABC convertor.
+ - Spacing_spanner: "decentral" spacing stuff. Use -t to try.
+ - bf: StaffGroup vertical alignment
+ - \property {slur,tie,}ydirection -> {slurV,tieV,v}erticalDirection (1.0.20)
+ - Spanner now hangs on left endpoint.
+ - \property forgetAccidentals: do not remember accidentals.
+ Every note not in the key triggers typesetting of an accidental.
+ - \property noResetKey: do not reset key at start of measure:
+ accidental remain in effect until overriden
+ - bf: ties & accidentals (fix breaks oldTieBehavior)
+ - junked Tie::same_pitch_b_
+
pl 43.jcn1
- configure, set-lily.sh, release stuff
+pl 42.tca2
+ - lilypond don't put \interstaffline after last line. This to
+ get really nice vertical spacing for mudela-book.
+ - mudela-book: vertical spacing
+ - lilyponddefs.tex: commented out \parindent=0pt to get correct
+ paragraph indent for mudela-book
+
+************
+pl 43
+
pl 41.hwn3
- reinstated \property inheritance
- \property SkipBars -> skipBars
Absolute_dynamic_req, Span_dynamic_req, Slur_req, Beam_req. Use
Span_reqs and Text_script_reqs with type fields instead.
-
-
pl 42.tca1
- updated mudela-book documentation
- misc mudela-book.py
spacing.)
pl 40.mb1
- - bf: ly2dvi set MFINPUTS so standard tree is found before lilypond
- - bf: lilypond-regtest.doc, ls-latex.py; now finds author/title
+ - bf: ly2dvi set MFINPUTS so standard tree is found before lilypond
+ - bf: lilypond-regtest.doc, ls-latex.py; now finds author/title
pl 40.uu1
- large documentation patch by Adrian Mariano
- allow autobeaming according to duration iso (crude) multiplicity
pl 33.jbr1
- - change my email address
- - Windows platform does a cp -r instead of a ln -s
+ - change my email address
+ - Windows platform does a cp -r instead of a ln -s
pl 33.uu1
- bf: ^ and _
- sinfonia.ly: several fixes
- dynamics
* increased range pppppp to ffffff
- * added sp, spp, sff, rfz
- * example see input/test/tchaikovsky.ly
- * updated dynamics in refman
+ * added sp, spp, sff, rfz
+ * example see input/test/tchaikovsky.ly
+ * updated dynamics in refman
pl 24.jcn2
pl 24.mb1
- - bf: Correct units now used in the .afm files.
+ - bf: Correct units now used in the .afm files.
******
- bf: lily-version
pl 23.jbr1
- - scripts/ly2dvi.py: Windows 95 shell does not support redivrection
- of stderr. We now distribute ash and use it when needed.
- - stepmake/bin/package-zip32.sh: distribute ash, and guild ice-9/
- directory. We build and distribute manpages in html format instead
- of text format.
- - Documentation/ntweb: Updated doco and now distributing as a self
- extracted binary with install script.
+ - scripts/ly2dvi.py: Windows 95 shell does not support redivrection
+ of stderr. We now distribute ash and use it when needed.
+ - stepmake/bin/package-zip32.sh: distribute ash, and guild ice-9/
+ directory. We build and distribute manpages in html format instead
+ of text format.
+ - Documentation/ntweb: Updated doco and now distributing as a self
+ extracted binary with install script.
pl 23.hwn4
- bugfixes
- bf: vv-duet
pl 18.mb1
- - \mark now works, using G_staff_side_item.
+ - \mark now works, using G_staff_side_item.
- Improved layout of multi-bar rests, including a new
font symbol.
pl 18 (jan 4 '99)
pl 17.jbr2
- - Documentation/README-W32: Brought my stuff up to date
- - Documentation/ntweb: updated for realease
- - stepmake/bin/package-zip32.sh: cygwin-b20 changes
- - scripts/ly2dvi.py: LILYPONDPREFIX fixes
+ - Documentation/README-W32: Brought my stuff up to date
+ - Documentation/ntweb: updated for realease
+ - stepmake/bin/package-zip32.sh: cygwin-b20 changes
+ - scripts/ly2dvi.py: LILYPONDPREFIX fixes
pl 17.jbr1
- - scripts/ly2dvi.py root is now the shared directory path not the
- root of the lily installation. Environment variable LILYPONDPREFIX
- is also the path to shared directory.
- - lily/main.cc WINNT conditional added to avoid a casting of
- main_prog
+ - scripts/ly2dvi.py root is now the shared directory path not the
+ root of the lily installation. Environment variable LILYPONDPREFIX
+ is also the path to shared directory.
+ - lily/main.cc WINNT conditional added to avoid a casting of
+ main_prog
pl 17.hwn1
- bfs wtk1-fugue1
pl15.tca1
- fixed verbatim option behaviour for mudela-book.
- - added mudela-book option intertext="some text"
+ - added mudela-book option intertext="some text"
- mudela-book now understand latex \begin{verbatim}
pl 15.jcn1
parser, lilypond (Mudela 1.0.13)
pl 14.jcn1
- - bf: get_chord C-m5-
- - typos: chord-name
+ - bf: get_chord C-m5-
+ - typos: chord-name
pl 14.tca2
- move option proccing out of main
- bf: package-diff
- new chord syntax, again: TONIC [DURATION] ['-' MODIFIERS/ADDITIONS]
- shorthand prefix for note-mode: '@', no shorthand for notes in chord
- mode...
+ mode...
pl 11.jcn6
- bf: ly2dvi: better guess LILYPONDPREFIX: <bin>../share/lilypond
- duration with chords + change: @4 c @c7
pl 11.jcn1
- - minor chord syntax change: *c6 iso @c6;
+ - minor chord syntax change: *c6 iso @c6;
**********
pl 11
pl9.tca1
- - included that missing init/mudela-book-defs.py. Added
- one line to init/GNUMakefile to make .py-files be included.
- - fragment and nonfragment options to override autodetection
+ - included that missing init/mudela-book-defs.py. Added
+ one line to init/GNUMakefile to make .py-files be included.
+ - fragment and nonfragment options to override autodetection
pl 10.jcn1
- input/test/chords.ly
- fixed \relative
pl8.tca1
- - changes to mudela-book. Junked fragment and floating options,
- added eps option. Options should not stay as long that you get
- comfortable with them. ;)
- - Also possible to define your own commands with
- a syntax like \mudela{c d e}
- - updated mudela-book-doc.doc
+ - changes to mudela-book. Junked fragment and floating options,
+ added eps option. Options should not stay as long that you get
+ comfortable with them. ;)
+ - Also possible to define your own commands with
+ a syntax like \mudela{c d e}
+ - updated mudela-book-doc.doc
pl 8.jcn3
- website: gnuisation of footers
- bf: mudela-book -> \default_paper is obsolete.
pl 3.ms1
- - thumb-upgrade
+ - thumb-upgrade
pl4.jcn1
- bf: dotted slur
- mudela-book example file in Documentation/tex/mudela-book-doc.doc
pl 3.jcn5
- - bf: dashed-slur
- - bf: LilyIdString
- - more star fixes
- - repeatbar fixes
+ - bf: dashed-slur
+ - bf: LilyIdString
+ - more star fixes
+ - repeatbar fixes
pl 3.jcn3
- mup-to-ly.py: version 0.0
pl 2
pl 1.mb1
- - Support for cautionary accidentals. , i.e. accidentals
- within parantheses. Syntax: 'cis?'. Try input/test/accid.fly
- Note that the font has changed.
- - bf: No unnecessary warnings about time signatures
- - Added optional second argument of \key. Set to \major or \minor
- to get a major or minor key. Default: major.
+ - Support for cautionary accidentals. , i.e. accidentals
+ within parantheses. Syntax: 'cis?'. Try input/test/accid.fly
+ Note that the font has changed.
+ - bf: No unnecessary warnings about time signatures
+ - Added optional second argument of \key. Set to \major or \minor
+ to get a major or minor key. Default: major.
- bf: Compilation error in midi-walker.cc
pl 1.jcn2
--- /dev/null
+Call for Volunteers -- The Mutopia project seeks YOUR help.
+
+
+WHAT IS MUTOPIA?
+
+Mutopia is an archive of public domain music, free for all to
+download, modify and redistribute. It should be based on free
+software. It is similar in spirit to the gutenberg archive.
+
+
+
+WHAT NEEDS TO BE DONE
+
+- write legal faq documents
+
+- setup submission guidelines,
+
+- acquire mutopia.org domain.
+
+- setup FTP server
+
+- cooperate with ABC folks, ftp.gmd.de
+
+
+
+WHO DO WE NEED
+
+Volunteers that want to setup and maintain a website and FTP site.
+
+Volunteers with enough legal knowledge to write submission guidelines.
+
+A project leader.
+
+
+
+WHO ARE WE?
+
+We are Han-Wen Nienhuys and Jan Nieuwenhuizen. We are working on the
+GNU project music typesetter, a program that does for sheet music what
+TeX does for text. We would like to help start this mutopia project.
+Unfortunately, maintaining and extending LilyPond does not leave us
+enough time to take up the task of setting up Mutopia
+
+
+Signed
+
+Han-Wen Nienhys
+Jan Nieuwenhuizen
+
+[other bigwigs?]
. * PostScript
. * header for PS enteredby = "bla <bla@bar.com>"
. * ps/lily.ps see comments.
+. * down tuplet spanner.
+. * didot / big point.
. * devise standard for functioning of Vertical_align_element.
. * midi key.
. * Repeats
+. * input/bugs/rep.ly (moved from test)
. * unfold broken:
. * without alternatives: repeat unfold 4 { a b c d }
. * count > alternatives: repeat unfold 79 { a b c d }
present, they're not properly distinguished) but no distinct way to
specify the third. Should there be?
. * rest collision minimum dist.
-. * 1. is there a "no key signature mode" for lily yet so that i can just
-enter the notes without worrying about it instead of having to
-remember to put a "!" after each accidental?
-
-a note with a circle after it, meaning:
+. * a note with a circle after it, meaning:
note + circle = note + 1/4 of its length
page three, the c-sharp on the second line should be a quarter with
a circle, not a quarter tied to a sixteenth. is this at all
possible with lily?
-tuplets that are written as "number : note", for example
+. * tuplets that are written as "number : note", for example
"3 : [image of a half note here]". possible?
-"p+" and "p-" for dynamic markings. possible?
. * repeat engraver, gallina.ly
. * Matanya's tips:
. * spacing for prefatory matter
-. * The line length is 7.5 inch (19.05
-cm) and the height of normal size is equivalent to the traditional raster 1
-> size. (The Schott company sells Letraset sheets of musical symbols which are
-> measured in raster sizes). It is agreed among most engravers I know that the
-> standard size for adult readers in solo music should 70% of raster 1. Jeff's
-> example was 75%, so I had to modify my file to match.
-
-So that makes for a staff space of 4 2/3 point. I'll add the
-dimensions to the TODO file.
. * accidentals closer to note head
. * to space the staffs/staffgroups contained in the score.
. * Slur
. * Rhythmic_grouping
. * Duration
-. * Spring generation
. * Collision
. * Rest_collision
. * clef grav prop's
+. * parser
.* TODO before 1.2
. * Morally pure LilyPond.
. * make wide_spanner_engraver (line_group_spanne,r staff_symbol)
. * remove Interval dim_ from Dimension_cache and rename the struct.
. * do scaled fonts generally
+. * Spacing.
. * The Lilypond accidental symbols are available through the TeX macros,
\textflat, \textsharp and \textnatural defined in the init file
lilyponddefs.tex. All the symbols are defined in the files fetaXX.tex
. * ly2dvi
. * bottomnote for ly2dvi
. * deps for ly2dvi
+
.* STUFF
. * compulsory hshift
. * Give # lines in linebreaking.
. * \selectmusic to cut pieces from music.
. * TODO: merge atom & molecule; make tree from molecule.
. * Align_element::padding ?
-. * uniformise property names...
-. * ydirection <-> yDirection
-. * rather allow '_' in identifiers first (i.e. junk ^ and _),
-and do y_direction?
-. * typo checks on property names?
+. * typo checks on property names?
. * use streambufs and iostream
to provide IO handling for TeX stream, mudela stream, data-file.
. * seriously buffer TeX output (do profile of writing .5 mb TeX file.)
. * detect of 16/8 bit files
. * examples to go with it.
-. * Spring_spacer:
-. * write a faster Spring_spacer (without matrices if possible)
-. * relate energybound to linelen unitspace fontsize etc.
-. * used fixed point fp?
-
. * \header
. * output header info to MIDI too.
PACKAGE_NAME=LilyPond
MAJOR_VERSION=1
MINOR_VERSION=1
-PATCH_LEVEL=43
-MY_PATCH_LEVEL=crypton1
+PATCH_LEVEL=44
+MY_PATCH_LEVEL=
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
+dnl WARNING WARNING WARNING WARNING
+dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4
dnl aclocal.m4 -*-shell-script-*-
dnl StepMake subroutines for configure.in
AC_CHECK_PROGS(TAR, tar, error)
if test "x`uname`" = "xHP-UX"; then
+ AC_PATH_PROG(BASH, bash, /bin/sh)
AC_STEPMAKE_WARN(avoiding buggy /bin/sh)
- AC_CHECK_PROGS(SHELL, bash, /bin/ksh)
+ AC_PATH_PROG(SHELL, bash, /bin/ksh)
else
+ AC_PATH_PROG(BASH, bash, /bin/sh)
SHELL=/bin/sh
AC_SUBST(SHELL)
fi
- AC_CHECK_PROGS(BASH, bash, /bin/sh)
AC_PATH_PROG(PYTHON, ${PYTHON:-python}, -echo no python)
AC_SUBST(PYTHON)
[TFMDIR=$enableval],
[TFMDIR=auto] )
- AC_MSG_CHECKING(TeX TFM directory)
+ AC_CHECK_PROGS(KPSEWHICH, kpsewhich, no)
+ AC_MSG_CHECKING(for TeX TFM directory)
if test "x$TFMDIR" = xauto ; then
if test "x$TEX_TFMDIR" = "x" ; then
- if kpsewhich --version > /dev/null 2>&1 ; then
- TEX_TFMDIR=`kpsewhich tfm cmr10.tfm`
+ if test "x$KPSEWHICH" != "xno" ; then
CMR10=`kpsewhich tfm cmr10.tfm`
TEX_TFMDIR=`dirname $CMR10`
else
with-localedir=LOCALE use LOCALE as locale dir. Default: PREFIX/share/locale "
ac_help="$ac_help
with-lang=LANG use LANG as language to emit messages"
+ac_help="$ac_help
+ enable-tex-tfmdir=DIR set the tex-directory where cmr10.tfm lives (default: use kpsewhich)"
# Initialize some variables set by options.
# The variables have the same names as the options, with
fi
stepmake=`echo ${stepmake} | sed "s!\\\${prefix}!$presome!"`
+ echo $ac_n "checking Package""... $ac_c" 1>&6
+echo "configure:627: checking Package" >&5
if test "x$PACKAGE" = "xSTEPMAKE"; then
- echo Stepmake package!
+ echo "$ac_t""Stepmake package!" 1>&6
(cd stepmake; rm -f stepmake; ln -s ../stepmake .)
(cd stepmake; rm -f bin; ln -s ../bin .)
ac_aux_dir=
stepmake=stepmake
else
- echo Package: $PACKAGE
+ echo "$ac_t""$PACKAGE" 1>&6
+ echo $ac_n "checking for stepmake""... $ac_c" 1>&6
+echo "configure:655: checking for stepmake" >&5
# Check for installed stepmake
if test -d $stepmake; then
- echo Using installed stepmake: $stepmake
+ echo "$ac_t""$stepmake" 1>&6
else
stepmake='$(depth)'/stepmake
- echo Using local stepmake: $datadir/stepmake not found
+ echo "$ac_t""./stepmake ($datadir/stepmake not found)" 1>&6
fi
ac_aux_dir=
for ac_dir in \
fi
echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:772: checking host system type" >&5
+echo "configure:778: checking host system type" >&5
host_alias=$host
case "$host_alias" in
# 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:797: checking for $ac_word" >&5
+echo "configure:803: 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
# 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:832: checking for $ac_word" >&5
+echo "configure:838: 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
# 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:869: checking for $ac_word" >&5
+echo "configure:875: 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 "x`uname`" = "xHP-UX"; then
+ # Extract the first word of "bash", so it can be a program name with args.
+set dummy bash; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:910: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$BASH" in
+ /*)
+ ac_cv_path_BASH="$BASH" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_BASH="$BASH" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_BASH="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_BASH" && ac_cv_path_BASH="/bin/sh"
+ ;;
+esac
+fi
+BASH="$ac_cv_path_BASH"
+if test -n "$BASH"; then
+ echo "$ac_t""$BASH" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
echo "configure: warning: avoiding buggy /bin/sh" 1>&2
warn_b=yes
- 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
+ # Extract the first word of "bash", so it can be a program name with args.
+set dummy bash; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:910: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_SHELL'+set}'`\" = set"; then
+echo "configure:950: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_SHELL'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
- if test -n "$SHELL"; then
- ac_cv_prog_SHELL="$SHELL" # Let the user override the test.
-else
+ case "$SHELL" in
+ /*)
+ ac_cv_path_SHELL="$SHELL" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_SHELL="$SHELL" # Let the user override the test with a dos path.
+ ;;
+ *)
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
+ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
- ac_cv_prog_SHELL="$ac_prog"
+ ac_cv_path_SHELL="$ac_dir/$ac_word"
break
fi
done
IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_SHELL" && ac_cv_path_SHELL="/bin/ksh"
+ ;;
+esac
fi
-fi
-SHELL="$ac_cv_prog_SHELL"
+SHELL="$ac_cv_path_SHELL"
if test -n "$SHELL"; then
echo "$ac_t""$SHELL" 1>&6
else
echo "$ac_t""no" 1>&6
fi
-test -n "$SHELL" && break
-done
-test -n "$SHELL" || SHELL="/bin/ksh"
-
else
- SHELL=/bin/sh
-
- fi
-
- 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
+ # Extract the first word of "bash", so it can be a program name with args.
+set dummy bash; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:950: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_BASH'+set}'`\" = set"; then
+echo "configure:987: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
- if test -n "$BASH"; then
- ac_cv_prog_BASH="$BASH" # Let the user override the test.
-else
+ case "$BASH" in
+ /*)
+ ac_cv_path_BASH="$BASH" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_BASH="$BASH" # Let the user override the test with a dos path.
+ ;;
+ *)
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
+ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
- ac_cv_prog_BASH="$ac_prog"
+ ac_cv_path_BASH="$ac_dir/$ac_word"
break
fi
done
IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_BASH" && ac_cv_path_BASH="/bin/sh"
+ ;;
+esac
fi
-fi
-BASH="$ac_cv_prog_BASH"
+BASH="$ac_cv_path_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"
+ SHELL=/bin/sh
+
+ fi
# Extract the first word of "${PYTHON:-python}", so it can be a program name with args.
set dummy ${PYTHON:-python}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:984: checking for $ac_word" >&5
+echo "configure:1028: 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
# 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:1217: checking for $ac_word" >&5
+echo "configure:1261: 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
# 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:1247: checking for $ac_word" >&5
+echo "configure:1291: 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
# Extract the first word of "cl", so it can be a program name with args.
set dummy cl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1298: checking for $ac_word" >&5
+echo "configure:1342: 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
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1330: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1374: 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.
cat > conftest.$ac_ext << EOF
-#line 1341 "configure"
+#line 1385 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:1346: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1390: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
ac_cv_prog_cc_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
{ 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:1372: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1416: 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:1377: checking whether we are using GNU C" >&5
+echo "configure:1421: 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
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1386: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1430: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gcc=yes
else
ac_cv_prog_gcc=no
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1405: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1449: 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
fi
echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6
-echo "configure:1468: checking how to run the C++ preprocessor" >&5
+echo "configure:1512: 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
cross_compiling=$ac_cv_prog_cxx_cross
CXXCPP="${CXX-g++} -E"
cat > conftest.$ac_ext <<EOF
-#line 1481 "configure"
+#line 1525 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1486: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1530: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
# 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:1523: checking for $ac_word" >&5
+echo "configure:1567: 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
echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1555: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
+echo "configure:1599: 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.
cat > conftest.$ac_ext << EOF
-#line 1566 "configure"
+#line 1610 "configure"
#include "confdefs.h"
int main(){return(0);}
EOF
-if { (eval echo configure:1571: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1615: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
ac_cv_prog_cxx_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
{ 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:1597: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1641: 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:1602: checking whether we are using GNU C++" >&5
+echo "configure:1646: 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
yes;
#endif
EOF
-if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1611: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1655: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gxx=yes
else
ac_cv_prog_gxx=no
ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS=
echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
-echo "configure:1630: checking whether ${CXX-g++} accepts -g" >&5
+echo "configure:1674: 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
ac_safe=`echo "FlexLexer.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for FlexLexer.h""... $ac_c" 1>&6
-echo "configure:1664: checking for FlexLexer.h" >&5
+echo "configure:1708: checking for FlexLexer.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1669 "configure"
+#line 1713 "configure"
#include "confdefs.h"
#include <FlexLexer.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1674: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1718: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
echo $ac_n "checking whether explicit instantiation is needed""... $ac_c" 1>&6
-echo "configure:1725: checking whether explicit instantiation is needed" >&5
+echo "configure:1769: checking whether explicit instantiation is needed" >&5
if eval "test \"`echo '$''{'lily_cv_need_explicit_instantiation'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1730 "configure"
+#line 1774 "configure"
#include "confdefs.h"
template <class T> struct foo { static int baz; };
return foo<int>::baz;
; return 0; }
EOF
-if { (eval echo configure:1740: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1784: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
lily_cv_need_explicit_instantiation=no
else
# 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:1767: checking for $ac_word" >&5
+echo "configure:1811: 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
# 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:1810: checking for $ac_word" >&5
+echo "configure:1854: 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
# 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:1845: checking for $ac_word" >&5
+echo "configure:1889: 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
# 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:1913: checking for $ac_word" >&5
+echo "configure:1957: 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
# 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:1946: checking for $ac_word" >&5
+echo "configure:1990: 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
echo $ac_n "checking language""... $ac_c" 1>&6
-echo "configure:2002: checking language" >&5
+echo "configure:2046: checking language" >&5
case "$language" in
En* | en* | Am* | am* | US* | us*)
lang=English;;
echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6
-echo "configure:2038: checking for gettext in -lintl" >&5
+echo "configure:2082: 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
ac_save_LIBS="$LIBS"
LIBS="-lintl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2046 "configure"
+#line 2090 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
gettext()
; return 0; }
EOF
-if { (eval echo configure:2060: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2104: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
for ac_func in gettext
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2090: checking for $ac_func" >&5
+echo "configure:2134: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2095 "configure"
+#line 2139 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:2121: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2165: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
# 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:2153: checking for $ac_word" >&5
+echo "configure:2197: 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
test -n "$MSGFMT" || MSGFMT="\$(SHELL) \$(step-bindir)/fake-msgfmt.sh "
echo $ac_n "checking whether msgfmt accepts -o""... $ac_c" 1>&6
-echo "configure:2184: checking whether msgfmt accepts -o" >&5
+echo "configure:2228: 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
# 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:2212: checking for $ac_word" >&5
+echo "configure:2256: 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
# 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:2248: checking for $ac_word" >&5
+echo "configure:2292: 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
# 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:2286: checking for $ac_word" >&5
+echo "configure:2330: 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
# 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:2322: checking for $ac_word" >&5
+echo "configure:2366: 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
done
test -n "$MPOST" || MPOST="-echo no mp or mpost"
+
METAPOST=$MPOST
fi
# 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:2360: checking for $ac_word" >&5
+echo "configure:2405: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_INIMETAFONT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# 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:2396: checking for $ac_word" >&5
+echo "configure:2441: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_INIMFONT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# 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:2434: checking for $ac_word" >&5
+echo "configure:2479: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_INIMETAPOST'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# 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:2470: checking for $ac_word" >&5
+echo "configure:2515: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_INIMPOST'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
INIMETAPOST=$INIMPOST
fi
+ echo $ac_n "checking for working metafont mode""... $ac_c" 1>&6
+echo "configure:2549: checking for working metafont mode" >&5
+ modelist='ljfour lj4 lj3 lj2 ljet laserjet'
+ for MFMODE in $modelist; do
+ $METAFONT "\mode:=$MFMODE; mode_setup; end." > /dev/null 2>&1
+ if test -f mfput.tfm; then
+ break;
+ fi
+ done
+ rm -f mfput.*
+ echo "$ac_t""$MFMODE" 1>&6
+
+
-# AC_STEPMAKE_TEXMF_DIRS
+
+ # Check whether --enable-tex-tfmdir or --disable-tex-tfmdir was given.
+if test "${enable_tex_tfmdir+set}" = set; then
+ enableval="$enable_tex_tfmdir"
+ TFMDIR=$enableval
+else
+ TFMDIR=auto
+fi
+
+
+ for ac_prog in kpsewhich
+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:2581: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_KPSEWHICH'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$KPSEWHICH"; then
+ ac_cv_prog_KPSEWHICH="$KPSEWHICH" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_KPSEWHICH="$ac_prog"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+KPSEWHICH="$ac_cv_prog_KPSEWHICH"
+if test -n "$KPSEWHICH"; then
+ echo "$ac_t""$KPSEWHICH" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+test -n "$KPSEWHICH" && break
+done
+test -n "$KPSEWHICH" || KPSEWHICH="no"
+
+ echo $ac_n "checking for TeX TFM directory""... $ac_c" 1>&6
+echo "configure:2612: checking for TeX TFM directory" >&5
+ if test "x$TFMDIR" = xauto ; then
+ if test "x$TEX_TFMDIR" = "x" ; then
+ if test "x$KPSEWHICH" != "xno" ; then
+ CMR10=`kpsewhich tfm cmr10.tfm`
+ TEX_TFMDIR=`dirname $CMR10`
+ else
+
+ echo "configure: warning: Please set TEX_TFMDIR (to where cmr10.tfm lives):
+ TEX_TFMDIR=/usr/local/TeX/lib/tex/fonts ./configure" 1>&2
+ warn_b=yes
+
+ fi
+ fi
+ fi
+ echo "$ac_t""$TEX_TFMDIR" 1>&6
+
+
if test "x$YODL" = "x"; then
for ac_prog in striproff
# 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:2516: checking for $ac_word" >&5
+echo "configure:2637: 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
# 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:2551: checking for $ac_word" >&5
+echo "configure:2672: 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
# 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:2586: checking for $ac_word" >&5
+echo "configure:2707: 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
# 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:2621: checking for $ac_word" >&5
+echo "configure:2742: 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
# 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:2655: checking for $ac_word" >&5
+echo "configure:2776: 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
# 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:2690: checking for $ac_word" >&5
+echo "configure:2811: 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
# 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:2725: checking for $ac_word" >&5
+echo "configure:2846: 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
# 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:2760: checking for $ac_word" >&5
+echo "configure:2881: 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
## The GUILE_FLAGS macro.
## First, let's just see if we can find Guile at all.
echo $ac_n "checking for Guile""... $ac_c" 1>&6
-echo "configure:2821: checking for Guile" >&5
+echo "configure:2942: checking for Guile" >&5
guile-config link > /dev/null || {
echo "configure: cannot find guile-config; is Guile installed?" 1>&2
exit 1
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for gh_scm2doubles in -lguile""... $ac_c" 1>&6
-echo "configure:2833: checking for gh_scm2doubles in -lguile" >&5
+echo "configure:2954: checking for gh_scm2doubles in -lguile" >&5
ac_lib_var=`echo guile'_'gh_scm2doubles | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
ac_save_LIBS="$LIBS"
LIBS="-lguile $GUILE_LDFLAGS $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2841 "configure"
+#line 2962 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
gh_scm2doubles()
; return 0; }
EOF
-if { (eval echo configure:2855: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2976: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
-echo "configure:2889: checking for 8-bit clean memcmp" >&5
+echo "configure:3010: 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
ac_cv_func_memcmp_clean=no
else
cat > conftest.$ac_ext <<EOF
-#line 2897 "configure"
+#line 3018 "configure"
#include "confdefs.h"
#ifdef __cplusplus
extern "C" void exit(int);
}
EOF
-if { (eval echo configure:2910: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3031: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_memcmp_clean=yes
else
test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}"
echo $ac_n "checking for vprintf""... $ac_c" 1>&6
-echo "configure:2928: checking for vprintf" >&5
+echo "configure:3049: checking for vprintf" >&5
if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2933 "configure"
+#line 3054 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char vprintf(); below. */
; return 0; }
EOF
-if { (eval echo configure:2959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3080: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_vprintf=yes"
else
if test "$ac_cv_func_vprintf" != yes; then
echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
-echo "configure:2983: checking for _doprnt" >&5
+echo "configure:3104: checking for _doprnt" >&5
if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2988 "configure"
+#line 3109 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char _doprnt(); below. */
; return 0; }
EOF
-if { (eval echo configure:3014: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3135: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func__doprnt=yes"
else
for ac_func in memmem snprintf vsnprintf gettext
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3041: checking for $ac_func" >&5
+echo "configure:3162: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3046 "configure"
+#line 3167 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:3072: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3193: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
# 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:3111: checking for $ac_word" >&5
+echo "configure:3232: 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
fi
-
-echo $ac_n "checking Checking TFM directory""... $ac_c" 1>&6
-echo "configure:3153: checking Checking TFM directory" >&5
-CMR10=`kpsewhich tfm cmr10.tfm`
-TEX_TFMDIR=`dirname $CMR10`
-echo "$ac_t""$TEX_TFMDIR" 1>&6
-
+echo $ac_n "checking links for running from sourcetree""... $ac_c" 1>&6
+echo "configure:3273: checking links for running from sourcetree" >&5
+LILYPONDPREFIX=$absolute_builddir
+LOCALES="it nl"
+for i in $LOCALES; do
+ dir=$LILYPONDPREFIX/share/locale/$i/LC_MESSAGES
+ if test ! -x $dir ; then
+ mkdir -p $dir
+ fi
+ rm -f $dir/lilypond.mo
+ ln -sf $LILYPONDPREFIX/po/out/$i.mo $dir/lilypond.mo
+done
+rm -f afm; ln -sf $LILYPONDPREFIX/mf/out afm
+rm -f tfm; ln -sf $LILYPONDPREFIX/mf/out tfm
+rm -f cmtfm; ln -sf $TEX_TFMDIR cmtfm
+echo "$ac_t""ok" 1>&6
trap '' 1 2 15
s%@INIMFONT@%$INIMFONT%g
s%@INIMETAPOST@%$INIMETAPOST%g
s%@INIMPOST@%$INIMPOST%g
+s%@MFMODE@%$MFMODE%g
+s%@KPSEWHICH@%$KPSEWHICH%g
+s%@TEX_TFMDIR@%$TEX_TFMDIR%g
s%@STRIPROFF@%$STRIPROFF%g
s%@YODL@%$YODL%g
s%@YODL2HTML@%$YODL2HTML%g
s%@YODL2LESS_DIR@%$YODL2LESS_DIR%g
s%@LIBOBJS@%$LIBOBJS%g
s%@MAKEINFO@%$MAKEINFO%g
-s%@TEX_TFMDIR@%$TEX_TFMDIR%g
CEOF
EOF
chmod 444 GNUmakefile
-
piece = "1. Overture";
}
-\version "1.0.19";
+\version "1.0.20";
global=\notes{
\time 2/2;
-\version "1.0.19";
+\version "1.0.20";
scales = \notes\transpose c''{
f2 f f f f f f f f f\break
--- /dev/null
+\score{
+ <
+ \context Staff \notes\relative c'{
+ c4 d e f
+ \repeat semi 3 { g a b c }
+% \alternative { { c b a g } { f e d c } } c c c c
+ \alternative { { c b a g } { f e d c } { c d e f } }
+ g g g g
+ \repeat semi 2 { c c c c }
+ \repeat semi 2 { c c c c }
+ g g g g
+ }
+ >
+}
-\version "1.0.19";
+\version "1.0.20";
one = \notes\relative c{
c'' d e f
}
}
-\version "1.0.18";
+\version "1.0.20";
-\version "1.0.19";
+\version "1.0.20";
blah = \notes {
Tested Features: example file with comments
%}
-\version "1.0.19";
+\version "1.0.20";
% the % is a comment.
-\version "1.0.19";
+\version "1.0.20";
part = \notes {
c-1 c c c
r1*3
% \lbheel \lbheel \lfheel \lftoe
% \rbheel \rbtoe \rfheel \rftoe
-\version "1.0.19";
+\version "1.0.20";
\score{
\notes {
* organ staff...
%}
-\version "1.0.19";
+\version "1.0.20";
\translator {
\VoiceContext
\name "VoiceOne";
- ydirection = "1";
+ verticalDirection = "1";
}
\translator {
\VoiceContext
\name "VoiceTwo";
- ydirection = "-1";
+ verticalDirection = "-1";
}
\translator {
\VoiceContext
\name "VoiceThree";
- ydirection = "1";
+ verticalDirection = "1";
hshift = "1";
}
\translator {
\VoiceContext
\name "VoiceFour";
- ydirection = "-1";
+ verticalDirection = "-1";
hshift = "1";
}
\translator {
-\version "1.0.19";
+\version "1.0.20";
ritme = \notes\transpose c'' {
\time 4/4;
% scales with accents.
%
-\version "1.0.19";
+\version "1.0.20";
blah = \notes {
\time 6/8;
\transpose c {
-\version "1.0.19";
+\version "1.0.20";
blah = \notes{ \transpose c'' {
}
-\version "1.0.18";
+\version "1.0.20";
-\version "1.0.19";
+\version "1.0.20";
\score{
\notes \transpose c'''{
\stemup
}
}
-\version "1.0.19";
+\version "1.0.20";
}}
-\version "1.0.19";
+\version "1.0.20";
-\version "1.0.19";
+\version "1.0.20";
onestaff = \context Staff = foo\notes {
\property Staff.instr = instr
-\version "1.0.19";
+\version "1.0.20";
\score{
\notes\transpose c'{
}
}
-\version "1.0.19";
+\version "1.0.20";
}
}
-\version "1.0.19";
+\version "1.0.20";
-\version "1.0.19";
+\version "1.0.20";
\score{
\notes\transpose c''{
TestedFeatures = "beams and beamflags";
}
-\version "1.0.19";
+\version "1.0.20";
\score{
<
"(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "1.0.19";
+\version "1.0.20";
shortlong = \notes{
c4()c( c c |
>
}
-\version "1.0.19";
+\version "1.0.20";
}
-\version "1.0.19";
+\version "1.0.20";
-\version "1.0.19";
+\version "1.0.20";
%{
Would this be acceptable/good enough/convenient for entry?
-\version "1.0.19";
+\version "1.0.20";
\score {
\notes{
copyright = "public domain";
Tested = "test the Collision resolution ";
}
-\version "1.0.19";
+\version "1.0.20";
twovoice = \context Staff \notes <
\context Voice=i { \stemdown c4 d e f g2~ g4 a [c8 d e f] c2| }
-\version "1.0.19";
+\version "1.0.20";
\score {
\include "paper20.ly"
-\version "1.0.19";
+\version "1.0.20";
oden = \lyrics{
O8 |
-\version "1.0.19";
+\version "1.0.20";
\score{
\notes{
>
}
-\version "1.0.19";
+\version "1.0.20";
}
-\version "1.0.19";
+\version "1.0.20";
-\version "1.0.19";
+\version "1.0.20";
\score{
\notes \relative c {
-\version "1.0.19";
+\version "1.0.20";
FontBody= \notes\transpose c''{
\bar "|:";
% "(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "1.0.19";
+\version "1.0.20";
\include "font-body.ly"
\score{
% "(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "1.0.19";
+\version "1.0.20";
\include "paper16.ly"
\include "font-body.ly"
gourlay_maxmeasures =5.;
}
}
-\version "1.0.19";
+\version "1.0.20";
TestedFeatures = "This file tests some nasty Gourlay spacings";
}
-\version "1.0.19";
+\version "1.0.20";
%{
-\version "1.0.19";
+\version "1.0.20";
\score{
<
-\version "1.0.19";
+\version "1.0.20";
toeter_i = \notes\relative c <{
\property Staff.instrument = "Toeters"
/Mats B
%}
-\version "1.0.19";
+\version "1.0.20";
incipit = \notes\relative c'{
<b1 fis' b d>
-\version "1.0.19";
+\version "1.0.20";
%{
test key itemv breaking
-\version "1.0.19";
+\version "1.0.20";
\score{
\notes\relative c'{
[c16 \stemdown c'' \stemboth c,, d]
-\version "1.0.19";
+\version "1.0.20";
global = \notes {
s1 | \mark "A";
>
\paper { Gourlay_maxmeaures = 2.; }
}
-\version "1.0.19";
+\version "1.0.20";
-\version "1.0.19";
+\version "1.0.20";
voice_one = \notes\transpose c''{ \stemup
R1 * 2 | f'4-. r r2 | R1 * 3 |
\context ThreadedVoice <
\context Thread = TA
{ \property Thread.noteHeadStyle = "cross"
- \property ThreadedVoice.ydirection = \up c16}
+ \property ThreadedVoice.verticalDirection = \up c16}
\context Thread = TB
{ \property Thread.noteHeadStyle = "" a16 }
}
}
}
-\version "1.0.19";
+\version "1.0.20";
-\version "1.0.19";
+\version "1.0.20";
\score{
\notes \transpose c''{
-\version "1.0.19";
+\version "1.0.20";
m = \notes \relative c''{
c1 | c2 c | c c | c c | c c | c c | c c | c c |
-\version "1.0.19";
+\version "1.0.20";
\score {
+++ /dev/null
-\score{
- <
- \context Staff \notes\relative c'{
- c4 d e f
- \repeat 3 { g a b c }
-% \alternative { { c b a g } { f e d c } } c c c c
- \alternative { { c b a g } { f e d c } { c d e f } }
- g g g g
- \repeat 2 { c c c c }
- \repeat 2 { c c c c }
- g g g g
- }
- >
-}
-
-\version "1.0.16";
}
}
-\version "1.0.19";
+\version "1.0.20";
-\version "1.0.19";
+\version "1.0.20";
onestaff = \context Staff = foo\notes {
\property Staff.instr = instr
"(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "1.0.19";
+\version "1.0.20";
shortlong = \notes{
c4()c( c c |
-\version "1.0.19";
+\version "1.0.20";
% bug
% excentric slur can't handle this ...
% test damping
-\version "1.0.19";
+\version "1.0.20";
\score{
\notes\relative c'{
}
}
-\version "1.0.19";
+\version "1.0.20";
-\version "1.0.19";
+\version "1.0.20";
% urg, the direction of the slur gets swapped!
\score{
-\version "1.0.19";
+\version "1.0.20";
\score{
\notes\transpose c'{
\notes \relative c''
\context GrandStaff <
\context Staff = SA <
- \context Voice = VA { \property Voice.ydirection= 1
+ \context Voice = VA { \property Voice.verticalDirection= 1
e4 dis4 e2 }
- \context Voice = VB { \property Voice.ydirection= -1
+ \context Voice = VB { \property Voice.verticalDirection= -1
[cis8 a] [fis b] gis2 }
{\key e; }
>
}
>
-\paper
-{
-}
\paper
{
% linewidth = 5.0 \cm; % ly2dvi barfs on -1
linewidth = 8.0 \cm;
+% linewidth = 12.0 \cm;
}
}
-\version "1.0.19";
+\version "1.0.20";
TestedFeatures = "This file tests various spacings";
}
-\version "1.0.19";
+\version "1.0.20";
multipart = \notes \relative c'{
\context StaffGroup <
- \context Staff = one {
+ \context Staff = one \context Voice {
c4
c
c c
}
- \context Staff = two {
+ \context Staff = two \context Voice {
[c8 c]
[c c]
[c c] [c c]
}
- \context Staff = three {
+ \context Staff = three \context Voice {
\times 2/3 { [c8 c c] }
\times 2/3 { [c c c] }
- \times 2/3 { [c c c] } \times 2/3 { [c c c] }
+ \times 2/3 { [c c c] }
+ \times 2/3 { [c c c] }
}
- \context Staff = four {
+ \context Staff = four \context Voice {
\times 2/4 { [c8 c c c] }
\times 2/4 { [c c c c] }
\times 2/4 { [c c c c] } \times 2/4 { [c c c c] }
}
- \context Staff = five {
+ \context Staff = five \context Voice {
\times 2/5 { [c8 c c c c] }
\times 2/5 { [c c c c c] }
\times 2/5 { [c c c c c] } \times 2/5 { [c c c c c] }
}
- \context Staff = six {
+ \context Staff = six \context Voice {
\times 2/6 { [c8 c c c c c] }
\times 2/6 { [c c c c c c] }
\times 2/6 { [c c c c c c] } \times 2/6 { [c c c c c c] }
}
- \context Staff = seven {
+ \context Staff = seven \context Voice {
\times 2/7 { [c8 c c c c c c] }
\times 2/7 { [c c c c c c c] }
\times 2/7 { [c c c c c c c] }
\times 2/7 { [c c c c c c c] }
}
- \context Staff = eight {
+ \context Staff = eight \context Voice {
\times 2/8 { [c8 c c c c c c c] }
\times 2/8 { [c c c c c c c c] }
\times 2/8 { [c c c c c c c c] }
\times 2/8 { [c c c c c c c c] }
}
- \context Staff = nine {
+ \context Staff = nine \context Voice {
\times 2/9 { [c8 c c c c c c c c] }
\times 2/9 { [c c c c c c c c c] }
\times 2/9 { [c c c c c c c c c] }
\times 2/9 { [c c c c c c c c c] }
}
- \context Staff = ten {
+ \context Staff = ten \context Voice {
\times 2/10 { [c8 c c c c c c c c c] }
\times 2/10 { [c c c c c c c c c c] }
\times 2/10 { [c c c c c c c c c c] }
\times 2/10 { [c c c c c c c c c c] }
}
- \context Staff = eleven {
+ \context Staff = eleven \context Voice {
\times 2/11 { [c8 c c c c c c c c c c] }
\times 2/11 { [c c c c c c c c c c c] }
\times 2/11 { [c c c c c c c c c c c] }
-\version "1.0.19";
+\version "1.0.20";
nt = \notes { c1 \break c1 c1 }
stuff = \notes \relative c'' <
\context Staff = stone { \nt }
-\version "1.0.19";
+\version "1.0.20";
\score {
}
-\version "1.0.19";
+\version "1.0.20";
>
\paper { linewidth = -1.; }
}
-\version "1.0.19";
+\version "1.0.20";
}
-\version "1.0.19";
+\version "1.0.20";
beamintervals = \notes{
\time 7/4;
instrument= "Violoncello";
}
-\version "1.0.19";
+\version "1.0.20";
% this is an example of extreme dynamics
-\version "1.0.19";
+\version "1.0.20";
$somewhat_long = \lyrics{
\property Lyrics . textstyle = "roman"
% the thumb-script is used in cello music to indicate a note that should
% be played with your thumb.
-\version "1.0.19";
+\version "1.0.20";
\score { \notes \relative c'' {
[<a8_\thumb a'8-3(> <)b_\thumb b'-3>
-\version "1.0.19";
+\version "1.0.20";
% middle tie is wrong
-\version "1.0.19";
+\version "1.0.20";
tie = \notes\transpose c''{
instrument= "Instrument";
}
-\version "1.0.19";
+\version "1.0.20";
\score{
\notes
}
-\version "1.0.19";
+\version "1.0.20";
vOne = \notes \relative c''{
\clef"violin";
}
}
-\version "1.0.19";
+\version "1.0.20";
{\voicetwo c}>
-\version "1.0.19";
+\version "1.0.20";
-\version "1.0.19";
+\version "1.0.20";
\score {
\notes <
}
}
-\version "1.0.19";
+\version "1.0.20";
}
}
-\version "1.0.19";
+\version "1.0.20";
"(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "1.0.19";
+\version "1.0.20";
\score{
\notes{
Tested Features lyrics and chords
%}
-\version "1.0.19";
+\version "1.0.20";
melodie = \notes\relative c'' {
\clef "violin";
Tested Features: lyrics, interleaving lyrics and staffs, repeats
%}
-\version "1.0.18";
+\version "1.0.20";
melody = \notes \relative c'' {
\clef violin;
/*
[stem up, stem up shifted, stem down shifted, stem down]
- */
- Array<Note_column*> clash_group_arr_a[4];
+ */
+ Array<Note_column*> clash_group_arr_a[4]; // TODO: use drul.
for (int i=0; i < clash_l_arr_.size(); i++)
{
void print () const;
};
+struct Spacer_spring
+{
+ Real distance_f_;
+ Real hooke_f_;
+ Real other_idx_;
+};
/// helper struct for #Spacing_problem#
struct Column_info {
bool ugh_b_;
Drul_array< Array<Spacer_rod> > rods_;
+ Drul_array< Array<Spacer_spring> > springs_;
Column_info();
Column_info (Paper_column *,Real const *);
struct Clef_performer;
struct Column_x_positions;
struct Column_info;
+struct Column_spring;
struct Collision;
struct Collision_engraver;
struct Command_req;
struct Slur;
struct Slur_engraver;
struct Slur_req;
-struct Spacing_req;
+struct Spacing_spanner;
struct Span_bar;
struct Span_score_bar;
struct Span_dynamic_req;
struct Span_req;
struct Spanner;
+struct Spring;
struct Spring_spacer;
struct Staff_bracket;
struct Staff_performer;
/// the columns of a score that form one line.
class Line_of_score : public Axis_group_spanner, public Super_element
{
- Link_array<Paper_column> cols_;
public:
+ Link_array<Paper_column> cols_;
Line_of_score();
/// is #c# contained in #*this#?
bool contains_b (Paper_column const *c) const;
- Link_array<Line_of_score> get_lines() const;
Line_of_score * set_breaking (Array<Column_x_positions> const&, int j) const;
- void output_all ();
+ void output_all (bool last_line);
void add_column (Paper_column*);
protected:
#include "axis-group-item.hh"
#include "rod.hh"
-
+#include "spring.hh"
/**
stuff grouped vertically.
void preprocess ();
/// set a minimum distance
void add_rod (Paper_column * to, Real distance);
+ void add_spring (Paper_column * to, Real dist, Real strength);
virtual Paper_column * column_l () const;
/// if lines are broken then this column is in #line#
void output_scheme (SCM scm);
void start_line (Real height);
void stop_line ();
+ void stop_last_line ();
void switch_to_font (String fontname);
Paper_stream* outstream_l_;
#include "direction.hh"
#include "drul-array.hh"
-struct Column_rod {
+struct Column_rod
+{
Paper_column *other_l_;
Real distance_f_;
Rod ();
};
-
-struct Column_spring {
- Paper_column *other_l_;
- Real distance_f_;
- Real strength_f_;
-
- Column_spring ();
- static int compare (const Column_spring &r1, const Column_spring &r2);
- void print () const;
-};
-
-struct Spring{
-
-};
#endif /* ROD_HH */
--- /dev/null
+/*
+ spacing-engraver.hh -- declare Spacing_engraver
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ */
+
+#ifndef SPACING_ENGRAVER_HH
+#define SPACING_ENGRAVER_HH
+
+#include "engraver.hh"
+#include "pqueue.hh"
+
+struct Rhythmic_tuple
+{
+ Score_element_info info_;
+ Moment end_;
+
+ Rhythmic_tuple ()
+ {
+ }
+ Rhythmic_tuple (Score_element_info i, Moment m )
+ {
+ info_ = i;
+ end_ = m;
+ }
+ static int time_compare (Rhythmic_tuple const &, Rhythmic_tuple const &);
+};
+
+/**
+ Acknowledge rhythmic elements, for initializing spacing fields in
+ the columns.
+
+ should be the last one of the toplevel context
+*/
+class Spacing_engraver : public Engraver
+{
+ PQueue<Rhythmic_tuple> playing_durations_;
+ Array<Rhythmic_tuple> now_durations_;
+ Array<Rhythmic_tuple> stopped_durations_;
+
+ Spacing_spanner * spacing_p_;
+protected:
+ VIRTUAL_COPY_CONS(Translator);
+ virtual void acknowledge_element (Score_element_info);
+ virtual void do_post_move_processing ();
+ virtual void do_pre_move_processing ();
+ virtual void do_creation_processing ();
+ virtual void do_removal_processing ();
+public:
+ Spacing_engraver ();
+};
+
+#endif /* SPACING_ENGRAVER_HH */
+
#ifndef SPACING_SPANNER_HH
#define SPACING_SPANNER_HH
+#include "spanner.hh"
+
class Spacing_spanner : public Spanner
{
- Link_array<Paper_column> cols_;
-
+public:
Spacing_spanner ();
+ VIRTUAL_COPY_CONS(Score_element);
+ Score_column *scol (int) const;
+ Array<Spring> do_measure (int,int) const;
+ int col_count () const;
protected:
- virtual void do_space_processing ();
+ virtual Array<Spring> get_springs () const;
+
};
#endif /* SPACING_SPANNER_HH */
Spanner ();
Spanner (Spanner const &);
bool broken_b () const;
+
virtual Array<Rod> get_rods () const;
+ virtual Array<Spring> get_springs () const;
virtual Spanner* find_broken_piece (Line_of_score*) const;
protected:
void set_my_columns ();
Array<Breaking_information> broken_info_;
friend Axis_group_spanner; // UGH
- virtual void output_processing ();
virtual void do_space_processing ();
virtual void do_break_processing ();
virtual Interval do_width () const;
The quality is given by the total potential energy in the
springs. The lower the energy, the better the configuration.
- TODO: make item widths work per Staff.
+ TODO: too complicated. Revise.
+ Use force iso. energy. Also optimise for uniform density
*/
class Spring_spacer : public Line_spacer {
--- /dev/null
+/*
+ spring.hh -- declare Spring, Column_spring
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ */
+
+#ifndef SPRING_HH
+#define SPRING_HH
+
+#include "lily-proto.hh"
+#include "drul-array.hh"
+
+struct Column_spring {
+ Paper_column *other_l_;
+ Real distance_f_;
+ Real strength_f_;
+
+ Column_spring ();
+ static int compare (const Column_spring &r1, const Column_spring &r2);
+ void print () const;
+};
+
+struct Spring{
+ Drul_array<Item*> item_l_drul_;
+ Real distance_f_;
+ Real strength_f_;
+ void add_to_cols ();
+ Spring ();
+};
+
+
+#endif /* SPRING_HH */
+
Tie ();
void set_head (Direction, Note_head*head_l);
VIRTUAL_COPY_CONS(Score_element);
-
- bool same_pitch_b_;
- Drul_array<Note_head *> head_l_drul_;
+ Drul_array<Note_head *> head_l_drul_;
protected:
virtual void do_add_processing ();
virtual void do_post_processing ();
return cols_.find_l ((Paper_column*)(c));
}
+// const?
Line_of_score*
Line_of_score::set_breaking (Array<Column_x_positions> const &breaking, int j) const
{
}
void
-Line_of_score::output_all ()
+Line_of_score::output_all (bool last_line)
{
Interval i(extent(Y_AXIS));
if (i.empty_b())
pscore_l_->outputter_l_->start_line (i.length ());
Super_element::output_all ();
- pscore_l_->outputter_l_->stop_line ();
+ if (last_line)
+ pscore_l_->outputter_l_->stop_last_line();
+ else
+ pscore_l_->outputter_l_->stop_line ();
}
{
if (!key_item_p_ && mel_l_arr_.size())
{
+ bool forget = get_property ("forgetAccidentals",0).to_bool();
for (int i=0; i < mel_l_arr_.size(); i++)
{
Item * support_l = support_l_arr_[i];
key_item_p_->add_pitch (note_l->pitch_,
note_l->cautionary_b_);
key_item_p_->add_support (support_l);
- local_key_.set (note_l->pitch_);
+
+ if (!forget)
+ local_key_.set (note_l->pitch_);
}
-
}
}
}
else if (Tie * tie_l = dynamic_cast<Tie *> (info.elem_l_))
{
- if (tie_l->same_pitch_b_)
- tied_l_arr_.push (tie_l-> head_l_drul_[RIGHT]);
+ tied_l_arr_.push (tie_l-> head_l_drul_[RIGHT]);
}
}
Time_description const * time_C_ = get_staff_info().time_C_;
if (time_C_ && !time_C_->whole_in_measure_)
{
- if (key_C_)
+ bool no_res = get_property ("noResetKey",0).to_bool ();
+ if (!no_res && key_C_)
local_key_= *key_C_;
}
}
minimal_dists_arr_drul_[dir].push (cr);
}
+void
+Paper_column::add_spring (Paper_column * p, Real d, Real s)
+{
+ Direction dir = Direction (sign (p->rank_i () - rank_i ()));
+
+ if (!dir)
+ {
+ warning ("Must set spring between differing columns.");
+ return;
+ }
+
+ for (int i=0; i < spring_arr_drul_[dir].size (); i++)
+ {
+ Column_spring &spring = spring_arr_drul_[dir][i];
+ if (spring.other_l_ == p)
+ {
+ spring.distance_f_ = spring.distance_f_ >? d;
+ return ;
+ }
+ }
+
+ Column_spring cr;
+ cr.distance_f_ = d;
+ cr.strength_f_ = s;
+ cr.other_l_ = p;
+
+ spring_arr_drul_[dir].push (cr);
+}
+
int
Paper_column::rank_i() const
{
{
#ifndef NPRINT
DOUT << "rank: " << rank_i_ << '\n';
- for (int i=0; i < minimal_dists_arr_drul_[LEFT].size (); i++)
- {
- minimal_dists_arr_drul_[LEFT][i].print ();
- }
- DOUT << "Right: ";
- for (int i=0; i < minimal_dists_arr_drul_[RIGHT].size (); i++)
+ Direction d = LEFT;
+ do
{
- minimal_dists_arr_drul_[RIGHT][i].print ();
+ for (int i=0; i < minimal_dists_arr_drul_[d].size (); i++)
+ {
+ minimal_dists_arr_drul_[d][i].print ();
+ }
+ for (int i=0; i < spring_arr_drul_[d].size (); i++)
+ {
+ spring_arr_drul_[d][i].print ();
+ }
+
}
+ while ((flip (&d))!=LEFT);
Item::do_print ();
#endif
}
return (Paper_column*)(this);
}
-
+/*
+ ugh.
+ */
void
Paper_column::preprocess ()
{
minimal_dists_arr_drul_[LEFT].sort (Column_rod::compare);
minimal_dists_arr_drul_[RIGHT].sort (Column_rod::compare);
+ spring_arr_drul_[LEFT].sort (Column_spring::compare);
+ spring_arr_drul_[RIGHT].sort (Column_spring::compare);
}
line_l->post_processing ();
*mlog << i << flush;
- line_l->output_all ();
-
+ line_l->output_all (i + 1 == lines.size());
if (experimental_features_global_b)
*mlog << '(' << elem_p_arr_.size () + span_p_arr_.size () << ')';
SCM scm = gh_list (ly_symbol ("stop-line"), SCM_UNDEFINED);
output_scheme (scm);
}
+
+void
+Paper_outputter::stop_last_line ()
+{
+ SCM scm = gh_list (ly_symbol ("stop-last-line"), SCM_UNDEFINED);
+ output_scheme (scm);
+}
Jan Nieuwenhuizen <janneke@gnu.org>
*/
+/*
+ Ambiguities:
+
+ * \alternative
+
+ * use of '-' in various places
+
+*/
+
+
#include <iostream.h>
#include "lily-guile.hh"
#include "notename-table.hh"
#include "new-repeated-music.hh"
// mmm
-Mudela_version oldest_version ("1.0.16");
-Mudela_version version ("1.0.19");
+Mudela_version oldest_version ("1.0.20");
+Mudela_version version ("1.0.20");
void
print_mudela_versions (ostream &os)
request_with_dir:
script_dir request_that_take_dir {
if (G_script_req * gs = dynamic_cast<G_script_req*> ($2))
- gs->dir_ = $1;
+ gs->dir_ = Direction ($1);
else if ($1)
$2->warning ("Can't specify direction for this request");
$$ = $2;
void
Rod::add_to_cols ()
{
- item_l_drul_[RIGHT]->column_l ()->add_rod
- (item_l_drul_[LEFT]->column_l (), distance_f_);
- item_l_drul_[LEFT]->column_l ()->add_rod
- (item_l_drul_[RIGHT]->column_l (), distance_f_);
+ Direction d = LEFT;
+ do {
+ item_l_drul_[-d]->column_l ()->add_rod
+ (item_l_drul_[d]->column_l (), distance_f_);
+ }while ((flip (&d))!=LEFT);
}
-void
-Column_spring::print () const
-{
-#ifndef NDEBUG
- DOUT << "Column_spring { rank = "
- << other_l_->rank_i () << ", dist = " << distance_f_ << "}\n";
-#endif
-}
-
-Column_spring::Column_spring ()
-{
- distance_f_ = 0;
- other_l_ = 0;
-}
-
-int
-Column_spring::compare (const Column_spring &r1, const Column_spring &r2)
-{
- return r1.other_l_->rank_i() - r2.other_l_->rank_i();
-}
void
Slur_engraver::do_pre_move_processing()
{
- Scalar dir (get_property ("slurydirection", 0));
- Scalar dir2 (get_property ("ydirection", 0));
+ Scalar dir (get_property ("slurVerticalDirection", 0));
+ Scalar dir2 (get_property ("verticalDirection", 0));
Direction slurdir = CENTER;
if (dir.length_i () && dir.isnum_b ())
*/
-#include "engraver.hh"
-#include "pqueue.hh"
#include "musical-request.hh"
#include "score-column.hh"
-
-struct Rhythmic_tuple
-{
- Score_element_info info_;
- Moment end_;
-
- Rhythmic_tuple ()
- {
- }
- Rhythmic_tuple (Score_element_info i, Moment m )
- {
- info_ = i;
- end_ = m;
- }
- static int time_compare (Rhythmic_tuple const &, Rhythmic_tuple const &);
-};
+#include "spacing-engraver.hh"
+#include "spacing-spanner.hh"
inline int
compare (Rhythmic_tuple const &a, Rhythmic_tuple const &b)
}
int
-Rhythmic_tuple::time_compare (Rhythmic_tuple const&h1,
+Rhythmic_tuple::time_compare (Rhythmic_tuple const &h1,
Rhythmic_tuple const &h2)
{
+
return (h1.end_ - h2.end_ ).sign ();
}
-/**
- Acknowledge rhythmic elements, for initializing spacing fields in
- the columns. */
-class Spacing_engraver : public Engraver
+Spacing_engraver::Spacing_engraver()
{
- PQueue<Rhythmic_tuple> playing_durations_;
- Array<Rhythmic_tuple> now_durations_;
- Array<Rhythmic_tuple> stopped_durations_;
-
-protected:
- VIRTUAL_COPY_CONS(Translator);
- virtual void acknowledge_element (Score_element_info);
- virtual void do_post_move_processing ();
- virtual void do_pre_move_processing ();
+ spacing_p_ = 0;
+}
-public:
+void
+Spacing_engraver::do_creation_processing ()
+{
+ spacing_p_ =new Spacing_spanner;
+ spacing_p_->set_bounds (LEFT, get_staff_info ().command_pcol_l ());
+ announce_element (Score_element_info (spacing_p_, 0));
+}
-};
+void
+Spacing_engraver::do_removal_processing ()
+{
+ Paper_column * p = get_staff_info ().command_pcol_l ();
+ spacing_p_->set_bounds (RIGHT, p);
+ typeset_element (spacing_p_);
+ spacing_p_ =0;
+}
void
Spacing_engraver::acknowledge_element (Score_element_info i)
shortest_playing = shortest_playing <? m;
}
- Moment starter;
- starter.set_infinite (1);
+ Moment starter, inf;
+ inf.set_infinite (1);
+ starter=inf;
for (int i=0; i < now_durations_.size (); i++)
{
Moment m = now_durations_[i].info_.req_l_->length_mom ();
sc->shortest_starter_mom_ = starter;
}
-
void
Spacing_engraver::do_post_move_processing ()
{
--- /dev/null
+/*
+ spacing-spanner.cc -- implement Spacing_spanner
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ */
+
+#include "spacing-spanner.hh"
+#include "score-column.hh"
+#include "dimensions.hh"
+#include "paper-def.hh"
+#include "warn.hh"
+#include "p-score.hh"
+#include "line-of-score.hh"
+
+Spacing_spanner::Spacing_spanner ()
+{
+ set_elt_property (break_helper_only_scm_sym, SCM_BOOL_T);
+ set_elt_property (transparent_scm_sym, SCM_BOOL_T);
+}
+
+int
+Spacing_spanner::col_count () const
+{
+ return pscore_l_->line_l_->cols_.size ();
+}
+
+Score_column *
+Spacing_spanner::scol (int i)const
+{
+ return dynamic_cast<Score_column*> (pscore_l_->line_l_->cols_[i]);
+}
+
+/*
+ cut 'n paste from spring-spacer.cc
+ */
+Array<Spring>
+Spacing_spanner::do_measure (int col1, int col2) const
+{
+ for (int i =col1; i < col2; i++)
+ {
+ scol (i)->preprocess ();
+ scol (i)->print ();
+ }
+
+ Moment shortest;
+ shortest.set_infinite (1);
+ for (int i =col1; i < col2; i++)
+ {
+ if (scol(i)->musical_b ())
+ {
+ shortest = shortest <? scol(i)->shortest_starter_mom_;
+ }
+ }
+
+ Array<Spring> meas_springs;
+
+ for (int i= col1; i < col2; i++)
+ {
+ if (!scol (i)->musical_b() && i+1 < col_count())
+ {
+ Real symbol_distance = scol (i)->extent (X_AXIS)[RIGHT] ;
+ Real durational_distance = 0;
+ Moment delta_t = scol (i+1)->when_mom () - scol (i)->when_mom () ;
+ /*
+ ugh should use shortest_playing distance
+ */
+ if (delta_t)
+ {
+ Real k= paper_l()->arithmetic_constant (shortest);
+ durational_distance = paper_l()->length_mom_to_dist (delta_t,k);
+ }
+ symbol_distance += -scol (i+1)->extent(X_AXIS)[LEFT];
+
+ Spring s ;
+ s.item_l_drul_[LEFT] = scol (i);
+ s.item_l_drul_[RIGHT] = scol (i+1);
+ s.distance_f_ = symbol_distance >? durational_distance;
+ meas_springs.push (s);
+
+ Item *l = s.item_l_drul_[LEFT]->find_prebroken_piece (RIGHT);
+ Item *r = s.item_l_drul_[RIGHT]->find_prebroken_piece (LEFT);
+ Spring sp_orig (s);
+
+ if (l)
+ {
+ s = sp_orig;
+ s.item_l_drul_[LEFT] =l ;
+ meas_springs.push (s);
+ }
+
+ if (l && r)
+ {
+ s = sp_orig;
+ s.item_l_drul_[RIGHT] = r;
+ s.item_l_drul_[LEFT] = l;
+ meas_springs.push (s);
+ }
+
+ }
+ }
+
+ for (int i=col1; i < col2; i++)
+ {
+ if (scol (i)->musical_b())
+ {
+ Moment shortest_playing_len = scol(i)->shortest_playing_mom_;
+ if (! shortest_playing_len)
+ {
+ warning (_f ("can't find a ruling note at %s",
+ scol (i)->when_mom ().str ()));
+ shortest_playing_len = 1;
+ }
+ if (! shortest)
+ {
+ warning (_f ("no minimum in measure at %s",
+ scol (i)->when_mom ().str ()));
+ shortest = 1;
+ }
+ Moment delta_t = scol (i+1)->when_mom () - scol (i)->when_mom ();
+ Real k= paper_l()->arithmetic_constant(shortest);
+ Real dist = paper_l()->length_mom_to_dist (shortest_playing_len, k);
+ dist *= (double)(delta_t / shortest_playing_len);
+
+
+ Spring sp;
+ sp.distance_f_ = dist;
+ sp.item_l_drul_[LEFT] = scol (i);
+ sp.item_l_drul_[RIGHT] = scol (i+1);
+
+ meas_springs.push (sp);
+
+ /*
+ UGH. TODO: more
+ advanced spacing here.
+ */
+ Spring sp_orig (sp);
+
+ Item *r = sp.item_l_drul_[RIGHT]->find_prebroken_piece (LEFT);
+
+ if (r)
+ {
+ sp = sp_orig;
+ sp.item_l_drul_[RIGHT] =r ;
+ meas_springs.push (sp);
+ }
+ }
+ }
+ return meas_springs;
+}
+
+Array<Spring>
+Spacing_spanner::get_springs () const
+{
+ Array<Spring> springs;
+ int last_break =0;
+ for (int i=1; i < col_count (); i++)
+ {
+ if (scol (i)->breakable_b ())
+ {
+ springs.concat (do_measure (last_break, i));
+ last_break = i;
+ }
+ }
+ return springs;
+}
+
+
#include "molecule.hh"
#include "paper-outputter.hh"
-
-
void
Spanner::do_print() const
{
break_points.insert (left,0);
break_points.push (right);
-
for (int i=1; i < break_points.size(); i++)
{
Breaking_information info;
while (flip(&i) != 1);
}
-
void
Spanner::set_bounds(Direction d, Item*i)
{
{
i->used_b_ = true;
}
+
+ if (d== LEFT)
+ {
+ dim_cache_[X_AXIS]->parent_l_ = i->dim_cache_[X_AXIS];
+ }
if (spanned_drul_[Direction(-d)] == spanned_drul_[d]
&& i)
}
Spanner::Spanner (Spanner const &s)
- :Score_element (s)
+ : Score_element (s)
{
spanned_drul_[LEFT] = spanned_drul_[RIGHT] =0;
}
-void
-Spanner::output_processing ()
-{
- if (get_elt_property (transparent_scm_sym) != SCM_BOOL_F)
- return;
-
- output_p_ = do_brew_molecule_p ();
- Offset left_off (spanned_drul_[LEFT]->absolute_coordinate(X_AXIS), 0);
- Offset o (absolute_coordinate (X_AXIS), absolute_coordinate (Y_AXIS));
- o += left_off;
- pscore_l_->outputter_l_->output_molecule (output_p_, o, classname (this));
-}
Interval
Spanner::do_width() const
span_p->set_bounds(LEFT,info.bounds_[LEFT]);
span_p->set_bounds(RIGHT,info.bounds_[RIGHT]);
pscore_l_->typeset_element (span_p);
-
info.broken_spanner_l_ = span_p;
span_p->handle_broken_dependencies();
return broken_info_.size();
}
-
-
-
Array<Rod>
Spanner::get_rods () const
{
return r;
}
+Array<Spring>
+Spanner::get_springs () const
+{
+ Array<Spring> s;
+ return s;
+}
+
void
Spanner::do_space_processing ()
{
{
rs[i].add_to_cols ();
}
+
+ Array<Spring> ss (get_springs ());
+ for (int i=0; i < ss.size (); i++)
+ {
+ ss[i].add_to_cols ();
+ }
}
r_rod.other_idx_ = this_rank;
cols_[left_idx].rods_[RIGHT].push (r_rod);
}
+#if 1
+ if (experimental_features_global_b)
+ {
+ for (int i=0; i < col->spring_arr_drul_[LEFT].size (); i++)
+ {
+ Column_spring &cr = col->spring_arr_drul_[LEFT][i];
+ int idx = cr.other_l_->rank_i () - cols_[0].pcol_l_->rank_i ();
+ if (idx < 0)
+ continue;
+
+ if (cols_[idx].pcol_l_ != cr.other_l_)
+ continue;
+
+
+ connect (idx, this_rank, cr.distance_f_,
+ cr.strength_f_ / cr.distance_f_);
+ }
+ }
+#endif
cols_.push (c);
}
void
Spring_spacer::prepare()
{
- DOUT << "Preparing..";
- calc_idealspacing();
+ if (!experimental_features_global_b)
+ calc_idealspacing();
handle_loose_cols();
print();
- DOUT << "finished preparing.\n";
}
Line_spacer*
--- /dev/null
+/*
+ spring.cc -- implement Spring
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ */
+
+#include "spring.hh"
+#include "debug.hh"
+#include "item.hh"
+#include "p-col.hh"
+
+Spring::Spring ()
+{
+ item_l_drul_[LEFT] =item_l_drul_[RIGHT] =0;
+ distance_f_ =0.;
+ strength_f_ =1.0;
+}
+
+void
+Spring::add_to_cols ()
+{
+ Direction d = LEFT;
+ do
+ {
+ item_l_drul_[-d]->column_l ()->add_spring
+ (item_l_drul_[d]->column_l (),
+ distance_f_, strength_f_);
+ }
+ while ((flip (&d))!=LEFT);
+}
+
+
+Column_spring::Column_spring ()
+{
+ other_l_ = 0;
+ distance_f_ =0;
+ strength_f_ =1.0;
+}
+
+
+int
+Column_spring::compare (Column_spring const & r1, Column_spring const &r2)
+{
+ return r1.other_l_->rank_i() - r2.other_l_->rank_i();
+}
+
+void
+Column_spring::print () const
+{
+#ifndef NPRINT
+ DOUT << "Column_spring { rank = "
+ << other_l_->rank_i () << ", dist = " << distance_f_ << "}\n";
+
+#endif
+}
if (stem_p_)
{
- Scalar prop = get_property ("ydirection", 0);
+ Scalar prop = get_property ("verticalDirection", 0);
Direction dir = prop.isnum_b () ? (Direction)int(prop) : CENTER;
if (dir)
{
if (req_l_)
{
+
+ /*
+ JUNKME!
+ */
if (old_behavior)
{
if (now_heads_.size () != stopped_heads_.size ())
}
now_heads_.clear ();
- Scalar dir (get_property ("tieydirection", 0));
- Scalar dir2 (get_property ("ydirection", 0));
+ Scalar dir (get_property ("tieVerticalDirection", 0));
+ Scalar dir2 (get_property ("verticalDirection", 0));
Direction tie_dir = CENTER;
if (dir.length_i () && dir.isnum_b ())
{
head_l_drul_[RIGHT] =0;
head_l_drul_[LEFT] =0;
- same_pitch_b_ =false;
}
% Toplevel initialisation file.
-\version "1.0.19";
+\version "1.0.20";
\include "declarations.ly"
% Toplevel initialisation file.
-\version "1.0.19";
+\version "1.0.20";
\include "declarations.ly";
% Toplevel initialisation file.
-\version "1.0.19";
+\version "1.0.20";
\include "declarations.ly"
% Toplevel initialisation file.
-\version "1.0.19";
+\version "1.0.20";
\include "declarations.ly"
\accepts "Lyrics";
\accepts "ChordNames";
- \consistsend "Axis_group_engraver";
-
};
\translator { \StaffGroupContext }
% Toplevel initialisation file.
-\version "1.0.19";
+\version "1.0.20";
\include "declarations.ly"
% Toplevel initialisation file.
-\version "1.0.19";
+\version "1.0.20";
\include "declarations.ly"
% Toplevel initialisation file.
-\version "1.0.19";
+\version "1.0.20";
\include "declarations.ly";
% Toplevel initialisation file.
-\version "1.0.19";
+\version "1.0.20";
\include "declarations.ly"
-\version "1.0.19";
+\version "1.0.20";
paper_sixteen = \paper {
staffheight = 16.0\pt;
% paper20.ly
-\version "1.0.19";
+\version "1.0.20";
paper_twenty = \paper {
staffheight = 20.0\pt;
%{
-PROPERTIES
-
-name value effect shorthand
-
-[Voice]
-ydirection -1 force stem down \stemdown
-ydirection 0 stem direction free \stemboth
-ydirection 1 force stem up \stemup
-
-pletvisibility 0 show nothing
-pletvisibility 1 show number
-pletvisibility 2 show (number and bracket)-if-no-beam
-pletvisibility 3 show number, and bracket-if-no-beam
-pletvisibility 4 show number, and bracket
-
-slurdash 0 normal slurs
-slurdash 1 dotted slurs
-slurdash >1 dashed slurs
-
-slurydirection -1 force stem down \slurdown
-slurydirection 0 stem direction free \slurboth
-slurydirection 1 force stem up \slurup
-
-slurydirection -1 force stem down \slurdown
-slurydirection 0 stem direction free \slurboth
-slurydirection 1 force stem up \slurup
-
-textalignment -1 left alignment of text
-textalignment 0 center alignment of text
-textalignment 1 right alignment of text
-
-beamAuto 0/1 auto-beam on/off
-beamAutoEnd "num/den" end auto-beam
-beamAutoEnd_8 "num/den" end auto-beam of 8ths
-beamAutoEnd_16 "num/den" end auto-beam of 16ths
-
-[Score?]
-beamslopedamping 0 no damping \beamslopeproportional
-beamslopedamping 1 damping1) \beamslopedamped
-beamslopedamping 100000 zero slope \beamslopezero
-
-[Score?]
-beamquantisation 0 no quantisations \beamposfree
-beamquantisation 1 quantise pos and slope \beamposnormal
-beamquantisation 2 quantise avoide wedge2) \beampostraditional
-
-[Staff]
-keyoctaviation 0 Key signature only for specified octave \specialkey
-keyoctaviation 1 Key signature for all octaves \normalkey
-
-[Staff]
-barAlways 0 none
-barAlways 1 generate bar at every moment
-
-[Staff]
-barAuto 0 none
-barAuto 1 auto-generate bar every measure
-barAtLineStart 0/1 generate bar at beginning of line
-
-[Staff]
-timeSignatureStyle C Use C and stroked C for 4/4,2/2
-timeSignatureStyle old Use old style mensuration marks
-timeSignatureStyle 1 Use single number
-timeSignatureStyle "" Use normal two-digit time signature
-timeSignatureStyle Cn/m Set symbol explicitly, n/m=2/2 or 4/4
-timeSignatureStyle oldn/m Set symbol explicitly,
- n/m=2/2,3/2,3/4,4/4,6/4 or 9/4.
-[Staff]
-voltaVisibility 0/1 on/off
-voltaSpannerDuration Rat. Coda kludge: set length of volta-spanner,
- typically set to one measure: "1"
-
-[Staff]
-clefStyle "fullSizeChanges" Clef changes typeset in full size
-clefStyle "transparent" No clef typeset
-
-[Staff?]
-instrument ascii midi instrument table lookup
-
-[Score]
-chordInversion 0/1 Find and display chord with inversion?
-
-
-1) after beam slope damping table suggested in [Wanske]
-2) [Wanske] as well as [Ross] suggests that beams sloped upward must not
- start sitting on a staffline, and beams sloped downward must not hang
- from a staffline (similar for beam-ends). This would create a wedge
- that is traditionally being avoided because it could easily be filled-up
- with ink.
- However, avoiding these wedges restricts the freedom of beams quite a lot
- while they don't seem to be a problem in modern printing.
- In no piece of sheetmusic engraved after 1953 (Baerenreiter) i've seen
- these wedges being avoided.
+SEE THE REFERENCE MANUAL FOR EXPLANATIONS.
%}
+\version "1.0.20";
+
%hmm, (these) abbrevs suck, imo
% i guess they're meant as some form of doco
% that's what i use them for...
-stemup = \property Voice.ydirection = \up
-stemboth= \property Voice.ydirection = \center
-stemdown = \property Voice.ydirection = \down
+stemup = \property Voice.verticalDirection = \up
+stemboth= \property Voice.verticalDirection = \center
+stemdown = \property Voice.verticalDirection = \down
slurup = \notes {
s1*0
- \property Voice.slurydirection = \up
+ \property Voice.slurVerticalDirection = \up
}
slurboth= \notes {
s1*0
- \property Voice.slurydirection = \center
+ \property Voice.slurVerticalDirection = \center
}
slurdown = \notes {
s1*0
- \property Voice.slurydirection = \down
+ \property Voice.slurVerticalDirection = \down
}
shifton = \property Voice.hshift = 1
staffone = {
\translator Staff=one
- \property Staff.ydirection = \center
+ \property Staff.verticalDirection = \center
\property Staff.hshift = 0
}
stafftwo = {
\translator Staff=two
- \property Staff.ydirection = \center
+ \property Staff.verticalDirection = \center
\property Staff.hshift = 0
}
staffthree = {
\translator Staff=three
- \property Staff.ydirection = \center
+ \property Staff.verticalDirection = \center
\property Staff.hshift = 0
}
stafffour = {
\translator Staff=four
- \property Staff.ydirection = \center
+ \property Staff.verticalDirection = \center
\property Staff.hshift = 0
}
\property Staff.clefStyle = "fullSizeChanges"
\nobreak \bar "";
}
+
Begin3
Titel: LilyPond
-Versie: 1.1.43
-Inschrijf datum: 17MAY99
+Versie: 1.1.44
+Inschrijf datum: 25MAY99
Beschrijving: @FLAPTEKST@
Trefwoorden: muziek typezetten midi notatie
Auteur: hanwen@stack.nl (Han-Wen Nienhuys)
janneke@gnu.org (Jan Nieuwenhuizen)
Onderhouden door: hanwen@cs.ruu.nl (Han-Wen Nienhuys)
Voornaamste plek: sunsite.unc.edu /pub/Linux/apps
- 770k lilypond-1.1.43.tar.gz
+ 770k lilypond-1.1.44.tar.gz
Oorspronkelijke plek: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
- 770k lilypond-1.1.43.tar.gz
+ 770k lilypond-1.1.44.tar.gz
Copi-eer voorwaarden: GPL
End
Begin3
Title: LilyPond
-Version: 1.1.43
-Entered-date: 17MAY99
+Version: 1.1.44
+Entered-date: 25MAY99
Description:
LilyPond is the GNU Project music typesetter. This program can print
beautiful sheet music from a music definition file. It can also play
janneke@gnu.org (Jan Nieuwenhuizen)
Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
- 770k lilypond-1.1.43.tar.gz
+ 770k lilypond-1.1.44.tar.gz
Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
- 770k lilypond-1.1.43.tar.gz
+ 770k lilypond-1.1.44.tar.gz
Copying-policy: GPL
End
Name: lilypond
-Version: 1.1.43
+Version: 1.1.44
Release: 1
Copyright: GPL
Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.43.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.44.tar.gz
Summary: A program for printing sheet music.
URL: http://www.cs.uu.nl/~hanwen/lilypond
Packager: Han-Wen Nienhuys <hanwen@cs.uu.nl>
COPYING NEWS-0.1 NEWS-1.0 NEWS-0.0 NEWS TODO AIMS
README_TXT_FILES = README.txt AUTHORS.txt INSTALL.txt PATCHES.txt
IN_FILES := $(wildcard *.in)
-EXTRA_DIST_FILES = dstreamrc mudela-mode.el vimrc VERSION $(README_FILES) $(SCRIPTS) $(IN_FILES)
+EXTRA_DIST_FILES = dstreamrc mudela-mode.el vimrc VERSION $(README_FILES) $(SCRIPTS) $(IN_FILES) TASKS
NON_ESSENTIAL_DIST_FILES = $(README_TXT_FILES)
# bootstrap stepmake:
localinstall:
mkdir -p $(datadir)
$(LN_S) $(TEX_TFMDIR) $(datadir)/cmtfm
+
+
+local-WWW-clean:
+ $(depth)/buildscripts/out/clean-fonts
copyright = "public domain";
}
-\version "1.0.19";
+\version "1.0.20";
\include "global.ly"
\include "violoncello.ly"
copyright = "public domain";
}
-\version "1.0.19";
+\version "1.0.20";
\include "global.ly"
\include "clarinetti.ly"
}
-\version "1.0.19";
+\version "1.0.20";
\include "clarinetto-1.ly"
\include "clarinetto-2.ly"
}
-\version "1.0.19";
+\version "1.0.20";
clarinetto1 = \notes \relative c {
R1 *2 | d''4-.\ff r r2 | R1 *3 | e4-. r r2 | R1 *3 |
}
-\version "1.0.19";
+\version "1.0.20";
clarinetto2 = \notes \relative c {
R1*2 bes''4-.\ff r r2 | R1*3 | cis4-. r r2 | R1 *3 |
copyright = "public domain";
}
-\version "1.0.19";
+\version "1.0.20";
\include "global.ly"
\include "contrabasso.ly"
copyright = "public domain";
}
-\version "1.0.19";
+\version "1.0.20";
contrabasso = \notes \relative c {
% \translator Staff=violoncello
copyright = "public domain";
}
-\version "1.0.19";
+\version "1.0.20";
\include "global.ly"
copyright = "public domain";
}
-\version "1.0.19";
+\version "1.0.20";
\include "global.ly"
\include "corni.ly"
}
-\version "1.0.19";
+\version "1.0.20";
\include "corno-1.ly"
\include "corno-2.ly"
copyright = "public domain";
}
-\version "1.0.19";
+\version "1.0.20";
corno1 = \notes \relative c {
R1 *2 | f''4-.\ff r r2 | R1 *3 | f4-. r r2 | R1 *3 |
copyright = "public domain";
}
-\version "1.0.19";
+\version "1.0.20";
corno2 = \notes \relative c {
R1 *2 | d''4-.\ff r r2 | R1 *3 | d4-. r r2 | R1 *3 |
}
-\version "1.0.19";
+\version "1.0.20";
\include "global.ly"
\include "fagotti.ly"
}
-\version "1.0.19";
+\version "1.0.20";
\include "fagotto-1.ly"
\include "fagotto-2.ly"
}
-\version "1.0.19";
+\version "1.0.20";
fagotto1 = \notes \relative c {
R1 *2 | as'4-.\ff r r2 | R1 *3 | as4-. r r2 | R1 *3 |
copyright = "public domain";
}
-\version "1.0.19";
+\version "1.0.20";
fagotto2 = \notes \relative c {
R1 *2 | f4-.\ff r r2 | R1 *3 | f4-. r r2 | R1 *3 |
}
-\version "1.0.19";
+\version "1.0.20";
\include "global.ly"
\include "flauti.ly"
}
-\version "1.0.19";
+\version "1.0.20";
\include "flauto-1.ly"
\include "flauto-2.ly"
copyright = "public domain";
}
-\version "1.0.19";
+\version "1.0.20";
flauto1 = \notes \relative c {
R1 *2 | c'''4-.\ff r r2 | R1 *3 | d4-. r r2 | R1 *3 |
copyright = "public domain";
}
-\version "1.0.19";
+\version "1.0.20";
flauto2 = \notes \relative c {
R1 *2 | as'''4-.\ff r r2 | R1 *3 | b4-. r r2 | R1 *3 |
}
-\version "1.0.19";
+\version "1.0.20";
global = \notes {
\time 4/4;
copyright = "public domain";
}
-\version "1.0.19";
+\version "1.0.20";
oboe1 = \notes \relative c'' {
R1 *2 | as'4-.\ff r r2 | R1 *3 | as4-. r r2 | R1 *3 |
}
-\version "1.0.19";
+\version "1.0.20";
oboe2 = \notes \relative c{
R1 *2| f''4-.\ff r r2 | R1 *3 | f4-. r r2 | R1 *3 |
}
-\version "1.0.19";
+\version "1.0.20";
\include "global.ly"
\include "oboi.ly"
}
-\version "1.0.19";
+\version "1.0.20";
\include "oboe-1.ly"
\include "oboe-2.ly"
}
-\version "1.0.19";
+\version "1.0.20";
timpani = \notes \relative c {
R1 *2 | c4-.\ff r r2 | R1 *3 | c4-. r r2 | R1 *3 |
}
-\version "1.0.19";
+\version "1.0.20";
\include "global.ly"
\include "trombe.ly"
}
-\version "1.0.19";
+\version "1.0.20";
\include "trombo-1.ly"
\include "trombo-2.ly"
copyright = "public domain";
}
-\version "1.0.19";
+\version "1.0.20";
trombo1 = \notes \relative c {
R1 *2 | c''4-.\ff r r2 | R1 *3 | c4-. r r2 | R1 *3 |
copyright = "public domain";
}
-\version "1.0.19";
+\version "1.0.20";
trombo2 = \notes \relative c {
R1 *2 | c'4-.\ff r r2 | R1 *3 | c4-. r r2 | R1 *3 |
copyright = "public domain";
}
-\version "1.0.19";
+\version "1.0.20";
viola1 = \notes \relative c {
\context Voice=one
copyright = "public domain";
}
-\version "1.0.19";
+\version "1.0.20";
viola2 = \notes \relative c {
% starts on (actualy, most part is on) same staff as viola1
copyright = "public domain";
}
-\version "1.0.19";
+\version "1.0.20";
\include "global.ly"
\include "viola-1.ly"
copyright = "public domain";
}
-\version "1.0.19";
+\version "1.0.20";
\include "global.ly"
\include "violino-1.ly"
copyright = "public domain";
}
-\version "1.0.19";
+\version "1.0.20";
violino1 = \notes \relative c {
c'1\ff ~ | c | <f4-. c'-. as'-.> r r2 | R1 |
copyright = "public domain";
}
-\version "1.0.19";
+\version "1.0.20";
\include "global.ly"
\include "violino-2.ly"
copyright = "public domain";
}
-\version "1.0.19";
+\version "1.0.20";
violino2 = \notes \relative c {
c'1\ff ~ | c | <f4-. c'-. as'-.> r r2 | R1 |
copyright = "public domain";
}
-\version "1.0.19";
+\version "1.0.20";
\include "global.ly"
\include "violoncello.ly"
}
-\version "1.0.19";
+\version "1.0.20";
violoncello = \notes \relative c {
c1\ff ~ | c | f,4-. r r2 | r1 | c'1\ff ~ | c | f,4-. r r2 |
----------------------------------------------------
-\version "1.0.19";
+\version "1.0.20";
\paper{barsize=50.0; \translator {\StaffContext \consists
Bar_number_engraver;}}
}
-\version "1.0.19";
+\version "1.0.20";
Bar_number_engraver;}}
}
-\version "1.0.19";
+\version "1.0.20";
}
-\version "1.0.19";
+\version "1.0.20";
\paper{barsize=50.0; \translator {\StaffContext \consists
Bar_number_engraver;}}
}
-\version "1.0.19";
+\version "1.0.20";
under the Gnu Public Licence.
%}
-\version "1.0.19";
+\version "1.0.20";
$voice_one = \notes \relative c' {
a'2 bes4. [c16 bes] | a4 d ~ d c ~ | c b ~ [b8 a] a4 ~|
Tested Features: cross staff beams and slurs, grace notes, no bars
%}
-\version "1.0.19";
+\version "1.0.20";
\include "nederlands.ly"
lower = \context Voice=two \notes \relative c{
\stemdown
- \property Staff.slurydirection = 1
+ \property Staff.slurVerticalDirection = 1
% snapnie, hoevaak relative c heeft ze nodig?
< \notes\relative c \basloopje \bassbeam >
Tested Features:
%}
-\version "1.0.19";
+\version "1.0.20";
\include "nederlands.ly"
copyright = "public domain";
}
-\version "1.0.19";
+\version "1.0.20";
\include "standchen.ly"
description = "A schubert song in 20 pt";
}
-\version "1.0.19";
+\version "1.0.20";
% fool make-website
% \include "standchen.ly";
Note: Original key F.
%}
-\version "1.0.19";
+\version "1.0.20";
$vocal_verse1 = \notes\relative c''{
% ugh: treble/bass
SUBDIRS = J.S.Bach Coriolan W.A.Mozart F.Schubert D.Zipoli Hymns D.Scarlatti L.Mozart E.Satie N.W.Gade
-examples= gallina
+examples=
LOCALSTEPMAKE_TEMPLATES=mutopia
include $(depth)/make/stepmake.make
title = "Diademata";
metre = "6 6. 8 6. D";
}
-\version "1.0.19";
+\version "1.0.20";
sop=\notes \transpose c''{
ees2 | ees4 ees4 g2 g2 | c'1. \bar "||";
metre = "10 10 . 11 11";
}
-\version "1.0.19";
+\version "1.0.20";
sop = \notes \transpose c''{
f4 | d' bes c' | f2 \bar "||";
metre = "10 11. 11 11. and refrain";
}
-\version "1.0.19";
+\version "1.0.20";
sop=\notes \relative c'' {
b2 gis4. a8 |b2 e,2 |
metre = "8 7 8 7 D";
}
-\version "1.0.19";
+\version "1.0.20";
sop=\notes \relative c'' {
b4 b c d | d c b a | g g a b | b4. a8 a2 \bar "||";
}
-\version "1.0.19";
+\version "1.0.20";
global=\notes {
\time 6/4;
piece = "Allemande";
}
-\version "1.0.19";
+\version "1.0.20";
global = \notes{
\time 4/4;
%%
%% Noe liknende skjer også i mellom andre og tredje stemme i takt 28
-\version "1.0.19";
+\version "1.0.20";
global = \notes{
\time 2/4;
copyright = "Public Domain";
}
-\version "1.0.19";
+\version "1.0.20";
global = \notes {
\time 4/4;
copyright = "public domain";
}
-\version "1.0.19";
+\version "1.0.20";
% upper = \context Staff \notes\relative c {
upper = \context Staff=upper \notes\relative c {
copyright = "public domain";
}
-\version "1.0.19";
+\version "1.0.20";
upper = \context Staff \notes\relative c{
\context Voice=i
\property Voice . textstyle = "italic"
enteredby = "jcn";
copyright = "public domain";
}
-\version "1.0.19";
+\version "1.0.20";
one = \context Staff \notes\relative c {
\context Voice=i
enteredby = "jcn";
copyright = "public domain";
}
-\version "1.0.19";
+\version "1.0.20";
upper = \context Staff \notes\relative c{
enteredby = "jcn";
copyright = "public domain";
}
-\version "1.0.19";
+\version "1.0.20";
one = \context Staff \notes\relative c{
EXTRA_DIST_FILES=
-examples=scsii-cello
+examples= #scsii-cello
LOCALSTEPMAKE_TEMPLATES=mutopia
include $(depth)/make/stepmake.make
>
-\version "1.0.19";
+\version "1.0.20";
\$courante_b
>
-\version "1.0.19";
+\version "1.0.20";
\$gigue_b
>
-\version "1.0.19";
+\version "1.0.20";
d2.
}
-\version "1.0.19";
+\version "1.0.20";
dotted slurs
%}
-\version "1.0.19";
+\version "1.0.20";
\include "prelude-urtext.ly";
\$prelude_b
>
-\version "1.0.19";
+\version "1.0.20";
dotted slurs
%}
-\version "1.0.19";
+\version "1.0.20";
\include "prelude-urtext.ly";
\$sarabande_b
>
-\version "1.0.19";
+\version "1.0.20";
\clef alto;
\$global_i
>
-\version "1.0.19";
+\version "1.0.20";
>
\$global_i
>
-\version "1.0.19";
+\version "1.0.20";
}
}
-\version "1.0.19";
+\version "1.0.20";
}
}
-\version "1.0.19";
+\version "1.0.20";
\clef bass;
\$global_i
>
-\version "1.0.19";
+\version "1.0.20";
%{
%}
-\version "1.0.19";
+\version "1.0.20";
global =
* auto beaming
%}
-\version "1.0.19";
+\version "1.0.20";
\include "nederlands.ly" % for correct parsing of note names
\voicetwo
\clef violin;
- \property Voice.ydirection = "-1"
+ \property Voice.verticalDirection = "-1"
r8 c16 b c8 g as c16 b c8 d |
g, c16 b c8 d f,16 g as4 g16 f |
copyright = "Public Domain";
}
-\version "1.0.19";
+\version "1.0.20";
global =
\notes {
\midi{ \tempo 4 = 100; }
}
-\version "1.0.19";
+\version "1.0.20";
-\version "1.0.19";
+\version "1.0.20";
corI=\notes\relative c'' {
\key c;
"Statens Musikbibliotek, Stockholm, Sweden";
}
-\version "1.0.19";
+\version "1.0.20";
\include "global.ly"
\include "wood.ly"
"Statens Musikbibliotek, Stockholm, Sweden";
}
-\version "1.0.19";
+\version "1.0.20";
\include "global.ly"
\include "wood.ly"
-\version "1.0.19";
+\version "1.0.20";
viI=\notes\relative c'' {
-\version "1.0.19";
+\version "1.0.20";
oboe=\notes\relative c'' {
\clef "treble";
Ugh.. Wish we had grace notes.... It adds another dimension to this
piece of music. %}
-\version "1.0.19";
+\version "1.0.20";
cad = \notes \relative c' {
}
-\version "1.0.19";
+\version "1.0.20";
allegro =
\notes
copyright = "public domain";
latexheaders= "headers";
}
-\version "1.0.19";
+\version "1.0.20";
)
(define (stop-line)
"}\\vss}\\interscoreline")
-
+ (define (stop-last-line)
+ "}\\vss}")
(define (filledbox breapth width depth height)
(string-append
"\\kern" (number->dim (- breapth))
(define select-font ,select-font)
(define start-line ,start-line)
(define stop-line ,stop-line)
+ (define stop-last-line ,stop-last-line)
(define text ,text)
(define tuplet ,tuplet)
(define volta ,volta)
((eq? action-name 'start-line) start-line)
((eq? action-name 'stem) stem)
((eq? action-name 'stop-line) stop-line)
+ ((eq? action-name 'stop-last-line) stop-last-line)
((eq? action-name 'volta) volta)
(else (error "unknown tag -- PS-TEX " action-name))
)
(define start-line ,start-line)
(define stem ,stem)
(define stop-line ,stop-line)
+ (define stop-last-line ,stop-line)
(define text ,text)
))
((eq? action-name 'tuplet) tuplet)
--- /dev/null
+#!@PYTHON@
+
+# once upon a rainy monday afternoon.
+#
+# ...
+#
+# (not finished.)
+#
+
+name = 'abc-to-ly'
+version = '0.1'
+
+import getopt
+import sys
+import re
+import string
+header = {}
+global_voice_stuff = []
+default_len = 4
+
+
+def dump_header (hdr):
+ print '\\header {'
+ for k in hdr.keys ():
+ print '%s = "%s";\n'% (k,hdr[k])
+ print '};'
+
+def set_default_length (s):
+ m = re.match ('1/(.*)$', s)
+ if m:
+ default_len = string.atoi ( m.group (1))
+
+def parse_timesig (s):
+ m = re.match ('^M: *(.*)$', s)
+ if m:
+ print '\meter %s; ' % m.group (1)
+
+def parse_key (s):
+ m = re.match ('^K: *(.*)$', s)
+ if m:
+ print '\key %s; ' % m.group (1)
+
+def gulp_file(f):
+ try:
+ i = open(f)
+ i.seek (0, 2)
+ n = i.tell ()
+ i.seek (0,0)
+ except:
+ print 'can\'t open file: ' + f + '\n'
+ return ''
+ s = i.read (n)
+ if len (s) <= 0:
+ print 'gulped empty file: ' + f + '\n'
+ i.close ()
+ return s
+
+
+def try_parse_header_line (ln):
+ m = re.match ('^(.): *(.*)$', ln)
+
+ if m:
+ g =m.group (1)
+ a = m.group (2)
+ if g == 'T':
+ header['title'] = a
+ if g == 'M':
+ global_voice_stuff.append ('\\time %s;' % a)
+ if g == 'K':
+ global_voice_stuff.append ('\\key %s;' % a)
+ if g == 'O':
+ header ['origin'] = a
+ if g == 'X':
+ header ['crossRefNumber'] = a
+
+ if g == 'A':
+ header ['area'] = a
+ if g == 'H':
+ header ['history'] = a
+ if g == 'B':
+ header ['book'] = a
+ if g == 'S':
+ header ['subtitle'] = a
+ if g == 'L':
+ set_default_length (ln)
+
+
+ return m
+
+
+# WAT IS ABC EEN ONTZETTENDE PROGRAMMEERPOEP !
+
+def try_parse_note (str):
+ mud = ''
+
+ slur_begin =0
+ if str[0] == '(':
+ slur_begin = 1
+ str = str[1:]
+
+ acc = None
+ if str[0] in '^=_':
+ c = str[0]
+ str = str[1:]
+ if c == '^':
+ acc = 1
+ if c == '=':
+ acc = 0
+ if c == '_':
+ acc = -1
+
+ octave = 0;
+ if str[0] in "ABCDEFG":
+ str = string.lower (str[0]) + str[1:]
+ octave = -1
+
+
+ notename = 0
+ if str[0] in "abcdefg":
+ notename = ord(str[0]) - ord('a')
+ str = str[1:]
+ else:
+ return str # failed; not a note!
+
+ while str[0] == ',':
+ octave = octave - 1
+ str = str[1:]
+ while str[0] == '\'':
+ octave = octave + 1
+ str = str[1:]
+ divide =0
+ if str[0] == '/':
+ divide =1
+ str = str[1:]
+ durstr = ''
+ while str[0] in "1234567890":
+ durstr = durstr + str[0]
+ str = str[1:]
+
+ duration_mult = 1
+ if durstr:
+ duration_mult = string.atoi (durstr)
+
+
+ slur_end =0
+ if str[0] == ')':
+ slur_begin = 1
+ str = str[1:]
+
+
+ return str
+
+def junk_space (str):
+ while str and str[0] in '\t\n ':
+ str = str[1:]
+
+ return str
+
+def try_parse_bar (str):
+ if str[0] == '|':
+ str = str[1:]
+ return str
+
+def try_parse_body_line (ln):
+ prev_ln = ''
+ while ln and ln != prev_ln:
+ prev_ln = ln
+ ln = try_parse_note (ln)
+ ln = try_parse_bar (ln)
+ ln = junk_space (ln)
+ if ln:
+ print 'Huh %s' % ln
+
+
+def parse_file (fn):
+ f = open (fn)
+ ls = f.readlines ()
+
+ head = 1
+ for l in ls:
+ if re.match ('^[\t ]*(%.*)?$', l):
+ continue
+
+ if head:
+ m = try_parse_header_line (l)
+ if not m:
+ head = 0
+
+ if not head:
+ m = try_parse_body_line (l)
+
+
+def identify():
+ print '%s %s' % (name, version)
+
+def help ():
+ print r"""
+This is a disfunctional ABC to mudela convertor. It only gulps input, and
+says huh when confused. Does not do chords. Go ahead and fix me.
+
+-h, --help this help.
+"""
+
+identify()
+(options, files) = getopt.getopt (sys.argv[1:], 'h', ['help'])
+
+for opt in options:
+ o = opt[0]
+ a = opt[1]
+ if o== '--help' or o == '-h':
+ help ()
+ else:
+ print o
+ raise getopt.error
+
+
+for f in files:
+ if f == '-':
+ f = ''
+
+ parse_file (f)
+ dump_header (header)
+ print global_voice_stuff, 1
+
'fontsize -> fontSize, midi_instrument -> midiInstrument, SkipBars -> skipBars')
+if 1:
+ def conv(lines):
+ newlines =[]
+ for x in lines:
+ x = re.sub ('tieydirection','tieVerticalDirection', x)
+ x = re.sub ('slurydirection','slurVerticalDirection', x)
+ x = re.sub ('ydirection','verticalDirection', x)
+ newlines.append (x)
+ return newlines
+
+ conversions.append ((1,0,20), conv,
+ '{,tie,slur}ydirection -> {v,tieV,slurV}erticalDirection')
+
+
############################
# help-gnu-music@gnu.org
#
# TODO:
-# * Spacing before and after mudela blocks should be fixed. No empy lines
-# before and after the mudela block should make just little space between
-# music and text, one or more empy lines should make bigger space, like
-# between paragraphs.
# * center option (??)
# * make mudela-book understand usepackage{geometry}
# * check that linewidth set in \paper is not wider than actual linewidth?
def write_outfile(self):
file = open(self.output_fn+'.latex', 'w')
file.write('% Created by mudela-book\n')
+ last_line = None
for line in self.__lines:
if type(line)==type([]):
- if line[0] == 'tex':
- #\\def\\interscoreline{}
+ if last_line == '\n':
+ file.write(r'\vspace{0.5cm}')
+ if line[0] == 'tex':
file.write('\\preMudelaExample \\input %s \\postMudelaExample\n'\
- # TeX applies the prefix of the main source automatically.
% (line[1]+'.tex'))
-# % (outdir+line[1]+'.tex'))
if line[0] == 'eps':
ps_dim = ps_dimention(outdir+line[1]+'.eps')
file.write('\\noindent\\parbox{%ipt}{\includegraphics{%s}}\n' \
% (ps_dim[0], line[1]+'.eps'))
-# % (ps_dim[0], outdir+line[1]+'.eps'))
else:
file.write(line)
+ if type(last_line)==type([]):
+ if line=='\n':
+ file.write(r'\vspace{0.5cm}')
+ last_line = line
file.close()
# given parameter s="\mudela[some options]{CODE} some text and commands"
-#!/usr/bin/python
#!@PYTHON@
# mup-to-ly.py --
+pl 77
+ - mfmode
+
+pl 76
+ - bfs: shells, scripts
+
pl 75
- bfs: release
PACKAGE_NAME=StepMake
MAJOR_VERSION=0
MINOR_VERSION=1
-PATCH_LEVEL=75
+PATCH_LEVEL=77
MY_PATCH_LEVEL=
# use the above to send patches, always empty for released version:
AC_CHECK_PROGS(TAR, tar, error)
if test "x`uname`" = "xHP-UX"; then
+ AC_PATH_PROG(BASH, bash, /bin/sh)
AC_STEPMAKE_WARN(avoiding buggy /bin/sh)
- AC_CHECK_PROGS(SHELL, bash, /bin/ksh)
+ AC_PATH_PROG(SHELL, bash, /bin/ksh)
else
+ AC_PATH_PROG(BASH, bash, /bin/sh)
SHELL=/bin/sh
AC_SUBST(SHELL)
fi
- AC_CHECK_PROGS(BASH, bash, /bin/sh)
AC_PATH_PROG(PYTHON, ${PYTHON:-python}, -echo no python)
AC_SUBST(PYTHON)
[TFMDIR=$enableval],
[TFMDIR=auto] )
- AC_MSG_CHECKING(TeX TFM directory)
+ AC_CHECK_PROGS(KPSEWHICH, kpsewhich, no)
+ AC_MSG_CHECKING(for TeX TFM directory)
if test "x$TFMDIR" = xauto ; then
if test "x$TEX_TFMDIR" = "x" ; then
- if kpsewhich --version > /dev/null 2>&1 ; then
- TEX_TFMDIR=`kpsewhich tfm cmr10.tfm`
+ if test "x$KPSEWHICH" != "xno" ; then
CMR10=`kpsewhich tfm cmr10.tfm`
TEX_TFMDIR=`dirname $CMR10`
else
fi
stepmake=`echo ${stepmake} | sed "s!\\\${prefix}!$presome!"`
+ echo $ac_n "checking Package""... $ac_c" 1>&6
+echo "configure:613: checking Package" >&5
if test "x$PACKAGE" = "xSTEPMAKE"; then
- echo Stepmake package!
+ echo "$ac_t""Stepmake package!" 1>&6
(cd stepmake; rm -f stepmake; ln -s ../stepmake .)
(cd stepmake; rm -f bin; ln -s ../bin .)
ac_aux_dir=
stepmake=stepmake
else
- echo Package: $PACKAGE
+ echo "$ac_t""$PACKAGE" 1>&6
+ echo $ac_n "checking for stepmake""... $ac_c" 1>&6
+echo "configure:641: checking for stepmake" >&5
# Check for installed stepmake
if test -d $stepmake; then
- echo Using installed stepmake: $stepmake
+ echo "$ac_t""$stepmake" 1>&6
else
stepmake='$(depth)'/stepmake
- echo Using local stepmake: $datadir/stepmake not found
+ echo "$ac_t""./stepmake ($datadir/stepmake not found)" 1>&6
fi
ac_aux_dir=
for ac_dir in \
fi
echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:760: checking host system type" >&5
+echo "configure:764: checking host system type" >&5
host_alias=$host
case "$host_alias" in
# 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:785: checking for $ac_word" >&5
+echo "configure:789: 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
# 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
+echo "configure:824: 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
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:857: checking for $ac_word" >&5
+echo "configure:861: 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 "x`uname`" = "xHP-UX"; then
+ # Extract the first word of "bash", so it can be a program name with args.
+set dummy bash; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:896: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$BASH" in
+ /*)
+ ac_cv_path_BASH="$BASH" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_BASH="$BASH" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_BASH="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_BASH" && ac_cv_path_BASH="/bin/sh"
+ ;;
+esac
+fi
+BASH="$ac_cv_path_BASH"
+if test -n "$BASH"; then
+ echo "$ac_t""$BASH" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
echo "configure: warning: avoiding buggy /bin/sh" 1>&2
warn_b=yes
- 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
+ # Extract the first word of "bash", so it can be a program name with args.
+set dummy bash; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:898: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_SHELL'+set}'`\" = set"; then
+echo "configure:936: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_SHELL'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
- if test -n "$SHELL"; then
- ac_cv_prog_SHELL="$SHELL" # Let the user override the test.
-else
+ case "$SHELL" in
+ /*)
+ ac_cv_path_SHELL="$SHELL" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_SHELL="$SHELL" # Let the user override the test with a dos path.
+ ;;
+ *)
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
+ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
- ac_cv_prog_SHELL="$ac_prog"
+ ac_cv_path_SHELL="$ac_dir/$ac_word"
break
fi
done
IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_SHELL" && ac_cv_path_SHELL="/bin/ksh"
+ ;;
+esac
fi
-fi
-SHELL="$ac_cv_prog_SHELL"
+SHELL="$ac_cv_path_SHELL"
if test -n "$SHELL"; then
echo "$ac_t""$SHELL" 1>&6
else
echo "$ac_t""no" 1>&6
fi
-test -n "$SHELL" && break
-done
-test -n "$SHELL" || SHELL="/bin/ksh"
-
else
- SHELL=/bin/sh
-
- fi
-
- 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
+ # Extract the first word of "bash", so it can be a program name with args.
+set dummy bash; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:938: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_BASH'+set}'`\" = set"; then
+echo "configure:973: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
- if test -n "$BASH"; then
- ac_cv_prog_BASH="$BASH" # Let the user override the test.
-else
+ case "$BASH" in
+ /*)
+ ac_cv_path_BASH="$BASH" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_BASH="$BASH" # Let the user override the test with a dos path.
+ ;;
+ *)
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
+ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
- ac_cv_prog_BASH="$ac_prog"
+ ac_cv_path_BASH="$ac_dir/$ac_word"
break
fi
done
IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_BASH" && ac_cv_path_BASH="/bin/sh"
+ ;;
+esac
fi
-fi
-BASH="$ac_cv_prog_BASH"
+BASH="$ac_cv_path_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"
+ SHELL=/bin/sh
+
+ fi
# Extract the first word of "${PYTHON:-python}", so it can be a program name with args.
set dummy ${PYTHON:-python}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:972: checking for $ac_word" >&5
+echo "configure:1014: 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
echo $ac_n "checking language""... $ac_c" 1>&6
-echo "configure:1139: checking language" >&5
+echo "configure:1181: checking language" >&5
case "$language" in
En* | en* | Am* | am* | US* | us*)
lang=English;;
# 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:1172: checking for $ac_word" >&5
+echo "configure:1214: 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
# 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:1207: checking for $ac_word" >&5
+echo "configure:1249: 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
# 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:1242: checking for $ac_word" >&5
+echo "configure:1284: 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
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1277: checking for $ac_word" >&5
+echo "configure:1319: 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
# 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:1311: checking for $ac_word" >&5
+echo "configure:1353: 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
# 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:1346: checking for $ac_word" >&5
+echo "configure:1388: 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
# 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:1381: checking for $ac_word" >&5
+echo "configure:1423: 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
# 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:1416: checking for $ac_word" >&5
+echo "configure:1458: 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
# 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:1475: checking for $ac_word" >&5
+echo "configure:1517: 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
Begin3
Title: StepMake
-Version: 0.1.74
-Entered-date: 17MAY99
+Version: 0.1.77
+Entered-date: 25MAY99
Description:
Keywords: music notation typesetting midi fonts engraving
Author: janneke@gnu.org (Jan Nieuwenhuizen)
hanwen@cs.ruu.nl (Han-Wen Nienhuys)
Maintained-by: janneke@gnu.org (Jan Nieuwenhuizen)
Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
- 40k stepmake-0.1.74.tar.gz
+ 40k stepmake-0.1.77.tar.gz
Original-site: pcnov095.win.tue.nl /pub/lilypond/development/
- 40k stepmake-0.1.74.tar.gz
+ 40k stepmake-0.1.77.tar.gz
Copying-policy: GPL
End
Name: stepmake
-Version: 0.1.74
+Version: 0.1.77
Release: 1
Copyright: GPL
Group: Development
-Source0: pcnov095.win.tue.nl:/pub/lilypond/development/stepmake-0.1.74.tar.gz
+Source0: pcnov095.win.tue.nl:/pub/lilypond/development/stepmake-0.1.77.tar.gz
Summary: generic make package
Packager: janneke@gnu.org (Jan Nieuwenhuizen)
Buildroot: /tmp/stepmake-install
cat $< | sed $(sed-atvariables) > $@
chmod 755 $@
-#FIXME. Check for bash?
+$(outdir)/%: %.bash
+ cat $< | sed $(sed-atvariables) > $@
+ chmod 755 $@
+
+$(outdir)/%: %.scm
+ cat $< | sed $(sed-atvariables) > $@
+ chmod 755 $@
+
+$(outdir)/%: %.expect
+ cat $< | sed $(sed-atvariables) > $@
+ chmod 755 $@
+
$(outdir)/%: %.sh
cat $< | sed $(sed-atvariables) > $@
chmod 755 $@
-all: $(PERL_SCRIPTS) $(PYTHON_SCRIPTS) $(SH_SCRIPTS)
+all: $(BASH_SCRIPTS) $(EXPECT_SCRIPTS) $(PERL_SCRIPTS) $(PYTHON_SCRIPTS) $(SCM_SCRIPTS) $(SH_SCRIPTS)
PERL_SCRIPTS_IN := $(wildcard *.pl)
PERL_SCRIPTS = $(addprefix $(outdir)/, $(PERL_SCRIPTS_IN:.pl=))
+BASH_SCRIPTS_IN := $(wildcard *.bash)
+BASH_SCRIPTS = $(addprefix $(outdir)/, $(BASH_SCRIPTS_IN:.bash=))
+EXPECT_SCRIPTS_IN := $(wildcard *.expect)
+EXPECT_SCRIPTS = $(addprefix $(outdir)/, $(EXPECT_SCRIPTS_IN:.expect=))
+SCM_SCRIPTS_IN := $(wildcard *.scm)
+SCM_SCRIPTS = $(addprefix $(outdir)/, $(SCM_SCRIPTS_IN:.scm=))
SH_SCRIPTS_IN := $(wildcard *.sh)
SH_SCRIPTS = $(addprefix $(outdir)/, $(SH_SCRIPTS_IN:.sh=))
PYTHON_SCRIPTS_IN := $(wildcard *.py)
PYTHON_SCRIPTS = $(addprefix $(outdir)/, $(PYTHON_SCRIPTS_IN:.py=))
-ALL_SCRIPTS_IN = $(SH_SCRIPTS_IN) $(PERL_SCRIPTS_IN) $(PYTHON_SCRIPTS_IN)
+ALL_SCRIPTS_IN = $(BASH_SCRIPTS_IN) $(EXPECT_SCRIPTS_IN) $(PERL_SCRIPTS_IN) $(PYTHON_SCRIPTS_IN) $(SCM_SCRIPTS_IN) $(SH_SCRIPTS_IN)
EXTRA_DIST_FILES += $(ALL_SCRIPTS_IN)
$(sed-version) < Documentation/topdocs/$(outdir)/topweb.html > $@
$(PYTHON) $(step-bindir)/add-html-footer.py --package=$(topdir) --index=Documentation/top-docs/out-www/index.html $@
-WWW-clean:
+WWW-clean: local-WWW-clean
$(MAKE) CONFIGSUFFIX='www' clean
+local-WWW-clean:
+
dist:
rm -rf $(distdir)
$(MAKE) local-dist $(distdir)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% set up dimensions
-\parindent=0pt
+% mudela-book don't like this:
+%\parindent=0pt
\newdimen\smallspace
\newdimen\interlinedist