Contents
-This file lists authors of GNU LilyPond, and what they wrote.
-This list is alphabetically ordered.
+This file lists authors of GNU LilyPond, and what they wrote. This
+list is alphabetically ordered.
o Mats Bengtsson <matsb@s3.kth.se>,
http://www.s3.kth.se/~matsb
o Han-Wen Nienhuys <hanwen@cs.uu.nl>,
http://www.cs.uu.nl/~hanwen
- Main author.
+ Main author (initials: HWN).
o Jan Nieuwenhuizen <janneke@gnu.org>,
http://www.xs4all.nl/~jantien
- Main author
+ Main author (initials: JCN).
o Alexandre Oliva <oliva@dcc.unicamp.br>,
http://sunsite.unicamp.br/~oliva
testing
SUBDIRS=man tex pictures topdocs ntweb
STEPMAKE_TEMPLATES=documentation
README_TOP_FILES=NEWS DEDICATION TODO ANNOUNCE-0.1
+# INFO_FILES = $(wildcard $(outdir)/$(package).info*)
EXTRA_DIST_FILES = gnu-music-history TODO
BLURBS=BLURB COPERTINA FLAPTEKST
-OUTTEXINFO_FILES = $(outdir)/topinfo.texinfo $(outdir)/mutopia.texinfo
include $(depth)/make/stepmake.make
default: do-doc
-# INFO_FILES = $(outdir)/$(package).info
-
-texinfo: $(OUTTEXINFO_FILES)
+texinfo: $(outdir)/$(package).info
It can be done! Occasionally, the Cygnus b19.1 cross compiler and
utilities under GNU/Linux are used to make the binary file(.exe.zip)
releases (some makefile hacking was needed to build this stuff). Jeffrey
-Reed tries to keep-up with LilyPond development, and is doing quite well.
+Reed tries to keep-up with LilyPond development, and is doing quite
+well. His latest release is available on
+lurl(http://www.realtime.net/~daboys/lilypond/).
subsect(UNPACKING)
$realinstall $args
)
-I place this in script file(~/bin). Having said that here is how one
-might build the em(gettext) package.
+I place this in script file(~/bin). The LilyPond configure, build,
+and install process handles this with it's own install script. In
+addition there are patches to the cygnus install command that also
+deals with this problem. Having said that, here is how one
+might build the em(gettext) package.
itemize(
it() download the package from one of the ftp sites.
subsubsect(Yodl Document Language)
lurl(http://www.xs4all.nl/~jantien/yodl/)
-Yodl for documentation in Lilypond. It is currently being updated by
+Yodl for documentation in LilyPond. It is currently being updated by
Jan Nieuwenhuizen. The development methodology of em(Yodl) as well as
em(LilyPond) relies on a the following directory structure:
that em(yodl) is not yet installed. This is normal and shouldn't be a
problem.
-subsubsect(Lilypond) label(lilybuild)
+subsubsect(LilyPond) label(lilybuild)
itemize(
it() download the package from
lurl(http://www.cs.uu.nl/people/hanwen/lilypond/) to
)
subsect(Running lilypond on Windows-NT) label(run)
-
-label(binary)
+
+We are now distributing a formated binary distribution for
+Windows-NT. Please refer to
+lurl(http://www.realtime.net/~daboys/lilypond/) for current news,
+download, installation, and running information.
Jeffrey B. Reed email(daboys@bga.com)
sect(RUNNING LILYPOND -- by Dominique Cretel)
+You may want to refer to section ref(run), for more current
+information about downloading, installing, and running the Windows-NT
+binary distribution.
+
enumerate(
-eit() First, I have download tha 0.1.64 version of Lilypond music software.
+eit() First, I have download tha 0.1.64 version of LilyPond music software.
eit() Then I extract it in a temp directory, and I move the directory
"lilypond-0.1.64" to the root directory of my D drive.
# Documentation/TODO
- * write toplevel info file
-
- * yodl2texinfo: automatic nodes and menus?
+ * overview and index of features
* get rid of pod manpage layout legacy
-
-
includefile(../stepmake/Documentation/layout.yo)
)
-~/usr/src/bin is in the PATH, and contains symlinks to the
-compiled executables.
+~/usr/src/bin is in the PATH, and contains symbolic links to the
+compiled executables.
question(Is there an emacs mode?)
you have an rpm it is in /usr/doc/lilypond-X/. You have to install it
yourself.
+question(How do i create the file(.tfm) files?)
+
+You don't. The file(.tfm) files should be generated automatically by
+Metafont when you run TeX(). Check your TeX() installation, or ask
+your local TeX() guru. The supplied file(.afm) files are intended to
+be used by LilyPond, not by any other programs.
+
+
+sect(Documentation)
+
+question(Why is the documentation/website/etc. so lousy?)
+
+LilyPond development is moving quite fast, documentation will often
+lag a bit behind. We must always make a choice between writing more
+doco, writing more code and answering email.
+
+If you think you can make a correction, or devised a solution that
+should be documented, please do so and send in a patch.
+
sect(Language: mudela)
question(Why can't you type code(#c) in stead of code(cis) ?)
MANTXT = $(addprefix $(outdir)/, $(addsuffix .txt,$(basename $(TEXINFO_FILES) .texinfo)))
MANGROFF = $(addprefix $(outdir)/, $(addsuffix .$(SECTION),$(basename $(YO_FILES) .yo)))
-OUTTEXINFO_FILES= $(addprefix $(outdir)/, $(addsuffix .texinfo,$(basename $(YO_FILES) .yo)))
-
OUT_DIST_FILES += $(MANGROFF)
include $(depth)/make/stepmake.make
default: $(MANGROFF)
-texinfo: $(OUTTEXINFO_FILES)
-
-
-
INSTALLATION_OUT_FILES=$(MANGROFF)
INSTALLATION_OUT_DIR=$(mandir)/man$(SECTION)
metalC(Automatically generated by yodl(1) from convert-mudela.yo.)
-node(Programs)(convert-mudela)(Invoking convert-mudela)(Programs)
manpagename(convert-mudela)(convert-mudela to newer versions)
convert-mudela sequentially applies different mudela-conversions to
upgrade a Mudela input file.
-menu(
-mit(Invoking convert-mudela)( Command options supported by file(convert-mudela))
-mit(Bugs convert-mudela)( Bugs)
-mit(Author convert-mudela)( Author)
-)
-
manpagedescription()
Upgrade a Mudela input file from FROM_PATCHLEVEL to TO_PATCHLEVEL.
If no files are given, the standard input and output are used.
-node(convert-mudela)(Invoking convert-mudela)(Bugs convert-mudela)(convert-mudela)
manpagesynopsis()
convert-mudela [options] [files]
available version.
)
-node(Invoking convert-mudela)(Bugs convert-mudela)(Author convert-mudela)(convert-mudela)
manpagesection(BUGS)
Not all language changes are handled. Multiple output options won't
url(python)(http://www.python.org).
-node(Bugs convert-mudela)(Author convert-mudela)(LilyPond)(convert-mudela)
manpageauthor()
nemail(Han-Wen Nienhuys)(hanwen@cs.uu.nl), lurl(http://www.cs.uu.nl/people/hanwen)
COMMENT(
(PIPETHROUGH(echo -n `date '+%d/%b/%y'|tr '[a-z]' '[A-Z]'`)())
)
+
manpage(LilyPond)
(1)
(1998)
manpagename(LilyPond)(the GNU Music Typesetter)
cindex(LilyPond)
-COMMENT(nodes and menus by hand, for now)
-node(Author convert-mudela)(LilyPond)(Invoking LilyPond)(Programs)
-menu(
-mit(Invoking LilyPond)( Command options supported by file(LilyPond))
-mit(Disclaimer LilyPond)( Disclaimer)
-mit(Features LilyPond)( Features)
-mit(Problems LilyPond)( Problems)
-mit(Files LilyPond)( Files)
-mit(Environment LilyPond)( Environment)
-mit(Bugs LilyPond)( Bugs)
-mit(See Also LilyPond)( See Also)
-mit(Remarks LilyPond)( Remarks)
-mit(History LilyPond)( History)
-mit(Author LilyPond)( Author)
-)
-
-node(LilyPond)(Invoking LilyPond)(Features LilyPond)(LilyPond)
-
manpagesynopsis()
bf(lilypond) [OPTION]... [MUDELA-FILE]...
manpagedescription()
-verbinclude(../BLURB.in)
+includefile(../BLURB.in)
manpageoptions()
description(
converting absolute octave mode stuff to relative octaves.
)
-node(Invoking LilyPond)(Features LilyPond)(Disclaimer LilyPond)(LilyPond)
manpagesection(FEATURES)
This is an overview of the features that GNU LilyPond supports. For
it()Clef changes, meter changes, cadenza-mode, key changes, repeat bars.
)
-node(Features LilyPond)(Disclaimer LilyPond)(Problems LilyPond)(LilyPond)
manpagesection(DISCLAIMER)
GNU LilyPond is copyright 1996-1998 by its authors. GNU LilyPond is
GNU LilyPond may be freely distributed. For further information consult
the GNU General Public License, from the file file(COPYING).
-node(Disclaimer LilyPond)(Problems LilyPond)(Files LilyPond)(LilyPond)
manpagesection(PROBLEMS)
There is an extensive list of todoes and bugs. See file(TODO). If you
to this mailinglist).
)
-node(Problems LilyPond)(Files LilyPond)(Environment LilyPond)(LilyPond)
manpagefiles()
description(
dit(file(init.ly))
includes files from the directory file(init/).
)
-node(Files LilyPond)(Environment LilyPond)(Bugs LilyPond)(LilyPond)
manspagesection(environment)
description(
selects the language for the warning messages of LilyPond.
)
-node(Environment LilyPond)(Bugs LilyPond)(See Also LilyPond)(LilyPond)
manpagebugs()
Lots of them. See file(TODO) and file(BUGS)
-node(Bugs LilyPond)(See Also LilyPond)(Remarks LilyPond)(LilyPond)
manpageseealso()
description(
Announces of new versions will be sent to info-gnu-music and
gnu-music-discuss.
-node(See Also LilyPond)(Remarks LilyPond)(History LilyPond)(LilyPond)
manpagesection(REMARKS)
GNU LilyPond has no connection with the music package Rosegarden, other
than the names being similar (:-)
-node(Remarks LilyPond)(History LilyPond)(Author LilyPond)(LilyPond)
manpagesection(HISTORY)
cindex(History)
scale release (0.1) was done after approximately 78 patchlevels on
August 1, 1997.
-node(History LilyPond)(Author LilyPond)(Ly2dvi)(LilyPond)
manpageauthor()
cindex(Author)
metalC(Automatically generated by yodl(1) from ly2dvi.yo.)
-node(Author LilyPond)(Ly2dvi)(Invoking Ly2dvi)(Programs)
manpagename(Ly2dvi)(convert mudela to DVI)
-menu(
-mit(Invoking Ly2dvi)( Command options supported by file(Ly2dvi))
-mit(Features Ly2dvi)( Features)
-mit(Environment Ly2dvi)( Environment)
-mit(Files Ly2dvi)( Files)
-mit(See Also Ly2dvi)( See Also)
-mit(Bugs Ly2dvi)( Bugs)
-mit(Remarks Ly2dvi)( Remarks)
-mit(Author Ly2dvi)( Author)
-)
-
manpagedescription()
ly2dvi is a shell script which creates input file for LaTeX,
based on information from the output files from lilypond.
in the output (TeX) files, and latex is finally run to create
one or more DVI files.
-node(Ly2dvi)(Invoking Ly2dvi)(Features Ly2dvi)(Ly2dvi)
manpagesynopsis()
ly2dvi [options] inputfile[.ly] [....]
DVI file for each.
)
-node(Invoking Ly2dvi)(Features Ly2dvi)(Environment Ly2dvi)(Ly2dvi)
manpagesection(Features)
ly2dvi responds to several parameters specified in the mudela
Specify name of papersize.
)
-node(Features Ly2dvi)(Environment Ly2dvi)(Files Ly2dvi)(Ly2dvi)
manpagesection(Environment)
description(
Temporary directory name. Default is /tmp
)
-node(Environment Ly2dvi)(Files Ly2dvi)(See Also Ly2dvi)(Ly2dvi)
manpagesection(Files)
file(titledefs.tex) is inspected for definitions used to extract
Specify paperwidth (points - an inch is 72.27, a cm is 28.453 points).
)
-node(Files Ly2dvi)(See Also Ly2dvi)(Bugs Ly2dvi)(Ly2dvi)
manpagesection(See Also)
lilypond(1), tex(1), latex(1)
-node(See Also Ly2dvi)(Bugs Ly2dvi)(Remarks Ly2dvi)(Ly2dvi)
manpagesection(Bugs)
If you have found a bug, you should send a bugreport.
to this mailinglist).
)
-node(Bugs Ly2dvi)(Remarks Ly2dvi)(Author Ly2dvi)(Ly2dvi)
manpagesection(Remarks)
Many papersizes are now supported. Information on other sizes
archE, b0, b1, b2, b3, b4, b5, flsa, flse, halfletter, ledger, legal,
letter, note
-node(Remarks Ly2dvi)(Author Ly2dvi)(Mi2mu)(Ly2dvi)
manpageauthor()
nemail(Jan Arne Fagertun)(Jan.A.Fagertun@energy.sintef.no), lurl(http://www.termo.unit.no/mtf/people/janaf/)
metalC(Automatically generated by yodl(1) from mi2mu.yo.)
-node(Author Ly2dvi)(Mi2mu)(Invoking Mi2mu)(Programs)
-
manpagename(Mi2mu)(convert MIDI to bf(mudela)(5))
-menu(
-mit(Invoking Mi2mu)( Command options supported by file(Mi2mu))
-mit(Disclaimer Mi2mu)( Disclaimer)
-mit(Author Mi2mu)( Author)
-)
-
manpagedescription()
Mi2mu translates a MIDI input file to Mudela (GNU LilyPond source
format). Mi2mu is part of the GNU LilyPond music typesetting package.
-node(Mi2mu)(Invoking Mi2mu)(Disclaimer Mi2mu)(Mi2mu)
manpagessynopsis()
mi2mu [options] midi-file
Assume no double dotted notes.
)
-node(Invoking Mi2mu)(Disclaimer Mi2mu)(Author Mi2mu)(Mi2mu)
manpagesection(DISCLAIMER)
Mi2mu is copyright 1996, 1997 by its authors. Mi2mu is distributed
On the input format. This is a LilyPond-enhanced LaTeX document.
)
-node(Disclaimer Mi2mu)(Author Mi2mu)(mudela-book)(Mi2mu)
manpageauthor()
Please consult the documentation file file(AUTHORS) for more detailed
metalC(Automatically generated by yodl(1) from mudela-book.yo.)
-node(Author Mi2mu)(mudela-book)(Invoking mudela-book)(Programs)
-
manpagename(mudela-book)(integrate LaTeX and mudela)
-menu(
-mit(Invoking mudela-book)(Command options supported by file(mudela-book))
-mit(Bugs mudela-book)(Bugs)
-mit(Author mudela-book)(Author)
-)
-
manpagedescription() file(mudela-book) is a script that helps
integrating mudela and LaTeX(). mudela-book runs LilyPond on
fragments of mudela in your source file, and includes the results into
CONTENTS is copied into the TeX source enclosed in a verbatim block.
)
-node(mudela-book)(Invoking mudela-book)(Bugs mudela-book)(mudela-book)
manpagesection(Synopsis)
description(
print a short help message
)
-node(Invoking mudela-book)(Bugs mudela-book)(Author mudela-book)(mudela-book)
manpagebugs()
Doesn't handle incorrect input sanely. mudela-book is written in
python, so you have install url(python)(http://www.python.org).
-node(Bugs mudela-book)(Author mudela-book)(Mutopia)(mudela-book)
manpageauthor()
nemail(Han-Wen Nienhuys)(hanwen@cs.uu.nl), lurl(http://www.cs.uu.nl/people/hanwen)
convert-mudela sequentially applies different mudela-conversions to
upgrade a Mudela input file\&.
.PP
-.PP
.SH "DESCRIPTION"
.PP
Upgrade a Mudela input file from FROM_PATCHLEVEL to TO_PATCHLEVEL\&.
.SH "NAME"
LilyPond \- the GNU Music Typesetter
.PP
-.PP
-.PP
.SH "SYNOPSIS"
\fBlilypond\fP [OPTION]\&.\&.\&. [MUDELA-FILE]\&.\&.\&.
.PP
.SH "DESCRIPTION"
.PP
-
-.DS
-
LilyPond is the GNU Project music typesetter\&. This program can print
beautiful sheet music from a music definition file\&. It can also play
mechanical performances to a MIDI file\&. Features include multiple
staffs, meters, clefs, keys, lyrics, versatile input language, cadenzas,
beams, slurs, triplets, formatting scores, part extraction\&. It includes
a nice font of musical symbols\&.
-
-.DE
-
-
.PP
.SH "OPTIONS"
.IP "-I,--include=FILE"
.SH "NAME"
Ly2dvi \- convert mudela to DVI
.PP
-.PP
.SH "DESCRIPTION"
ly2dvi is a shell script which creates input file for LaTeX,
based on information from the output files from lilypond\&.
.TH "LilyPond" "1" "1998" "Mi2mu" "The LilyPond package"
.PP
.PP
-.PP
.SH "NAME"
Mi2mu \- convert MIDI to \fBmudela\fP(5)
.PP
-.PP
.SH "DESCRIPTION"
Mi2mu translates a MIDI input file to Mudela (GNU LilyPond source
format)\&. Mi2mu is part of the GNU LilyPond music typesetting package\&.
.TH "LilyPond" "1" "1998" "The LilyPond package" "mudela-book"
.PP
.PP
-.PP
.SH "NAME"
mudela-book \- integrate LaTeX and mudela
.PP
-.PP
.SH "DESCRIPTION"
\fBmudela-book\fP is a script that helps
integrating mudela and \&. mudela-book runs LilyPond on
-node(Author mudela-book)(Mutopia)(Concept Index)(Top)
-
article(Mutopia project - manifesto)(HWN and JCN)()
This is some random ranting about the Mutopia project, aka "Music To
default: do-doc
+$(outdir)/%.html: %.yo
+ $(sed-version) < $< > $<.out
+ $(YODL2HTML) -doutdir=$(outdir) --live-data=3 -o $@ $<.out
+ rm -f $<.out
+ $(PYTHON) $(step-bindir)/add-html-footer.py --package=$(topdir) \
+ --index=http://www.cs.ruu.nl/people/hanwen/lilypond/index.html \
+ --news=$(depth)/NEWS $@
+
local-WWW:
mailto(daboys@bga.com)
article(LilyPond Windows NT 4.0 Distribution)(nemail(Jeffrey B. Reed)(daboys@bga.com))(label(contents))
-sect(Windows NT Distribution)
+sect(Windows NT Binary Distribution)
subsect(Introduction) label(introduction)
-This web page is dedicated to the distrubution of LilyPond for Windows
-NT 4.0. This package is covered under the GNU General Public License
-and all of the source and documentation are available on the official
-url(LilyPond
-Homepage)(http://www.cs.ruu.nl/people/hanwen/lilypond/index.html).
+This page is dedicated to the distribution of precompiled and preformatted
+LilyPond binaries for Windows NT 4.0 . This package is covered under the
+GNU General Public License and all of the source and documentation are
+available on the official
+url(LilyPond Homepage)(http://www.cs.ruu.nl/people/hanwen/lilypond/index.html).
-LilyPond is the GNU Project music typesetter. This program can print
-beautiful sheet music from a music definition file. It can also play
-mechanical performances to a MIDI file. Features include multiple
-staffs, meters, clefs, keys, lyrics, versatile input language,
-cadenzas, beams, slurs, triplets, formatting scores, part
-extraction. It includes a nice font of musical symbols.
+includefile(../BLURB.in)
link(Back to top)(contents)
clearpage()
subsect(NEWS) label(news)
-
-Version 1.0.3 is available
+This is what the version @TOPLEVEL_VERSION@ brings:
+verb(
+top_of_NEWS
+)
link(Back to top)(contents)
clearpage()
subsect(Download) label(download)
itemize(
- it()lurl(lilypond-1.0.3.zip)
+ it()lurl(lilypond-@TOPLEVEL_VERSION@.bin.zip)
)
link(Back to top)(contents)
it()Set your path variable for lilypond and TeX
description(
dit(batch file)
- In a batch file you can add the following entry: nl()
- bf(set path=%path%em(LilyPond-dir)\bin;em(MiKTeX-dir)\miktex\bin)
- dit(Windows Environment)
+ In a batch file you can add the following entries: nl()
+ bf(set LILYPOND=em(LilyPond-dir)) nl()
+ bf(set path=%path%%LILYPOND%\bin;em(MiKTeX-dir)\miktex\bin) nl()
+ bf(set TEXINPUTS=%LILYPOND%\texmf\tex\lilypond;;) nl()
+ bf(set MFINPUTS=%LILYPOND%\texmf\mf\public\lilypond;;) nl()
+COMMENT( dit(Windows Environment)
In the Windows environment you can select
properties menu of the My Computer icon. Click on
the environment tag and add the following to the user
variables path entry. nl()
- bf(em(LilyPond-dir)\bin;em(MiKTeX-dir)\miktex\bin)
+ bf(em(LilyPond-dir)\bin;em(MiKTeX-dir)\miktex\bin))
) nl()
it() The first installation of LilyPond also requires these
additional steps:
subsect(Running LilyPond) label(running)
+
+itemize(
+ it()Take a look at url(angles.ly)(angles.ly)
+ it()Save angles.ly to your local disk
+ it()From a Command Prompt run: nl()
+ bf(ly2dvi.py angles.ly) nl()
+ bf(dvips angles.dvi) nl()
+ bf(cmd /c angles.ps) nl()
+)
+
link(Back to top)(contents)
clearpage()
link(Back to top)(contents)
clearpage()
+
--- /dev/null
+COMMENT(
+URG
+don't try to make html from this
+)
+whentexinfo(
+nodetext(Your Softs.)
+chapter(Programs)
+
+COMMENT(prepare for texinfoing manpages)
+redef(manpage)(5)()
+redef(manpagename)(2)(nodeprefix()nodetext(ARG2)chapter(ARG1)nodeprefix(ARG1))
+redef(manpageauthor)(0)(sect(Authors))
+redef(manpagesection)(1)(sect(ARG1))
+
+redef(includefile)(1)(INCLUDEFILE(man/ARG1))
+includefile(convert-mudela.yo)
+includefile(lilypond.yo)
+includefile(ly2dvi.yo)
+includefile(mi2mu.yo)
+includefile(mudela-book.yo)
+)
sect(Properties)
-By default the same accidentals are valid for all octaves, but
- this can be changed with the property code(specialaccidentals).
+By default the same key signature is valid for all octaves, but
+ this can be changed with the property code(keyoctaviation).
The identifier code(\specialkey) sets the property for the Staff. A
-key with two flats in one octave and three
- sharps in the next can be declared with verb(\specialkey
-\accidentals bes es fis' cis' gis';)
+key with two flats in one octave and three sharps in the next can be
+declared with verb(\specialkey \keysignature bes es fis' cis' gis';)
sect(Music fragments)
label(tutorial:music-fragments)
TODO
+need to rethink paper size stuff?
+
+pipethrough(date) sucks.
+
+paragraphs have too much space.
+
in stead <-> instead
)
+COMMENT(
+ Mainly written by Han-Wen Nienhuys,
+
+ with help of (among others)
+
+ * Jan Nieuwenhuizen
+
+ * Lambert Meertens,
+
+ * Adrian Mariano
+
+ * Mats Bengtsson
+
+)
+
htmlbodyopt(bgcolor)(white)
htmlcommand(<font color=black>)
-latexpackage()(a4wide)
latexlayoutcmds(
-%\usepackage[latin1]{inputenc}
-\input mudela-book
+ \topmargin -0.25in
+ \textheight 53\baselineskip
+ \advance\textheight by \topskip
+ \marginparwidth 1 in % Width of marginal notes.
+ \oddsidemargin 0.25 in % Note that \oddsidemargin = \evensidemargin
+ \evensidemargin 0.25 in
+ \marginparwidth 0.75 in
+ \textwidth 5.875 in % Width of text line.
+ \input mudela-book
)
whenlatex(notableofcontents())
(Han-Wen Nienhuys and Jan Nieuwenhuizen)
(nop()PIPETHROUGH(date "+%B %d, %Y")()()nop())
-COMMENT(
-
-* paragraphs have too much space.
-
-)
-
latexcommand(\def\interexample{})
latexcommand(\def\preexample{\par})
should consult bind(Appendix)ref(glossary): it contains a glossary
of musical terms along with translations in some other languages.
-If you want to try the examples given here, you should have look a
+If you want to try the examples given here, you should have a
look at bind(Section)ref(sec:running-lilypond) first.
sect(Music copying, music definition and music entry)
\melodic { X Y Z }
\paper {}
})
-We will continue to leave out the red tape this, until the time is fit to explain what the
-above it means.
+We will continue to leave out the red tape this, until the time is right to explain what
+it means.
Because LilyPond uses a language, it is a so called em(batch)
This means, that you use a
text editor (such as code(emacs) or code(vi)) to create an input
file. When you are done editing your input file, you save it, and you
-run LilyPond on the file. If Lily finds any errors in your input file
+run LilyPond on the file. If LilyPond finds any errors in your input file
then nop(she)footnote(We're sure that if computer programs could have
gender, LilyPond would be a female computer program. So we will
refer to the program as a she. This gender-bending is not to tease
you can process further to view or print.
Using LilyPond to print or view some music is a four-step procedure.
-To get you started we'll run down the full procedure for you once.
+To get you started we'll run down the full procedure for you.
enumerate(
it()
If you entered this, you probably made some little errors with the
right amount of quotes as well. To remedy this, mudela has another
-feature called `relative octaves', which reduces the amount of quotes
+feature called `relative octaves', which reduces the number of quotes
needed. If you want to enter large pieces of music em(now) we
recommend you make an excursion to
bind(Section)ref(sec:relativeoctaves) and learn about relative
is the name of the corresponding major key. The key of C-minor can
thus be specified as `code(\key es)'.
-dit(code(\accidentals) var(pitchlist))
+dit(code(\keysignature) var(pitchlist))
-This command changes the current key signature. The signature is
-given in the form of a list of accidentals, which can be useful for
-unconventional keys. The key of C-minor can be specified as
-`code(\accidentals bes es as)'. The command `code(\accidentals fis es
-bis)' provides a more exotic example.
+This command changes the current key signature. Unlike the
+`code(\key)' command, this command can produce arbitrary key
+signatures, which can be useful for unconventional keys or modes. The
+key signature is given in the form of a list of notes. The notes will
+be printed in the key signature in the order that they appear on the list.
+For example, the key
+of C-minor can be specified as `code(\accidentals bes es as)'. The
+command `code(\accidentals fis es bis)' provides a more exotic
+example.
dit(code(\time) var(numerator)code(/)var(denominator))
- This command chages the current time signature. LilyPond uses the
+ This command changes the current time signature. LilyPond uses the
time signature to
calculate where to place the bars that start a measure. These bars
in turn are the places where a system can be broken into lines.
measure.
dit(code(\bar) var(bartype))
- This command lets you print special bar lines, such as repeats. You
- can also use it to allow line breaks when entering cadenzas. The
- argument var(bartype) is a string that describes what kind of bar line to print.
+ This command lets you print special bar
+ lines and repeat symbols. You can also use it to allow line breaks
+ when entering cadenzas. The argument var(bartype) is a string that
+ describes what kind of bar line to print.
mudela(fragment,verbatim)(
\bar "|:"; c'4 \bar ":|:"; c'4 \bar ":|"; c'4 \bar "||";
c'4 \bar "empty"; c'4 \bar "|.";
)
The command `code(\bar "empty")' does not create any visible bar
- line, but it does tells LilyPond to allow a linebreak
- at that position.
+ line, but it does tells LilyPond to allow a linebreak
+ at that position. The `code(\bar)' command prints the specified
+ symbol immediately. If you give a `code(\bar)' command at the end
+ of a measure then
+ the specified symbol replaces the automatic bar line; otherwise
+ the specified symbol appears in the middle of the measure. The
+ code(\bar) command does not affect metric structure.
+
+
dit(code(\partial) var(duration)) some music starts with a measure that
isn't fully filled, a so-called upstep. The code(\partial) command
allows you to make
upsteps. The argument is a duration similar to the duration of a note.
+The `code(\partial)' command cannot be used to generate partial
+measures in the middle of the music.
Example:
mudela(fragment,verbatim)(
\time 4/4;
and an edited edition from em(one source). We will use the first few
bars of bind(J.)bind(S.)Bach's lovely Cello suite bind(no.)I to
demonstrate this. The example makes heavy use of space rests: a space
-rest is a like a rest that doesn't print anything. It can be used as
-a placeholder, to attach articulation marks to. It is entered as a
-note with the name code(s).
+rest takes up time, like a rest does, but it doesn't print anything.
+It can be used as a placeholder, to attach articulation marks to. It
+is entered as a note with the name code(s).
mudela(verbatim)(
bach = \melodic { [c16 g e' d'] [e' g e' g] }
article(AUTHORS - who did what on GNU LilyPond?)()()
-This file lists authors of GNU LilyPond, and what they wrote.
-This list is alphabetically ordered.
+This file lists authors of GNU LilyPond, and what they wrote. This
+list is alphabetically ordered.
itemize(
it()nemail(Mats Bengtsson)(matsb@s3.kth.se),
it()nemail(Han-Wen Nienhuys)(hanwen@cs.uu.nl),
lurl(http://www.cs.uu.nl/~hanwen)
nl()
- Main author.
+ Main author (initials: HWN).
it()nemail(Jan Nieuwenhuizen)(janneke@gnu.org),
lurl(http://www.xs4all.nl/~jantien)
nl()
- Main author
+ Main author (initials: JCN).
it()nemail(Alexandre Oliva)(oliva@dcc.unicamp.br),
lurl(http://sunsite.unicamp.br/~oliva)
testing
(PPC, intel), FreeBSD, AIX, NeXTStep, IRIX, Digital Unix and
Solaris.
+it()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 code(--disable-debugging).
+
Although we recommend to use Unix, LilyPond is known to run on Windows
NT/95/98 as well. See Section ref(w32).
it() GNU C++ version 2.7 or newer (2.8 and egcs are also fine).
-it() Python 1.5
+it() Python 1.5 (Strictly speaking, you shouldn't need Python for
+ compiling and installing, but you'll need it to regenerate the font
+ tables, e.g.).
)
sect(RUNNING)
itemize(
it()GNU make.
+Check out lurl(ftp://ftp.gnu.org)
+or any mirror of this site.
+
it()Flex (version 2.5.4 or newer).
+Check out lurl(ftp://ftp.gnu.org)
+or any mirror of this site.
it()Bison (version 1.25 or newer).
-it()Python (version 1.5 or newer).
+Check out lurl(ftp://ftp.gnu.org)
+or any mirror of this site.
+
+it()Python (version 1.5 or newer). Check out
+lurl(ftp://ftp.python.org) or lurl(ftp://ftp.cwi.nl/pub/python).
+
it()Yodl. All documentation will be in Yodl. (1.30.17)
lurl(ftp://pcnov095.win.tue.nl/pub/yodl)
lurl(http://www.cs.uu.nl/~hanwen/yodl)
it()Texinfo. (version 3.12 or newer)
it()GNU find
+Check out lurl(ftp://ftp.gnu.org)
+or any mirror of this site
+
+
it() A fast computer (a full page of music typically takes 1 minute on my
486/133, using the bf(--enable-checking) compile. It's lot slower than
most MusiXTeX preprocessors)
verb(
configure --prefix=~ --enable-profiling --enable-config=optprof --enable-optimise --disable-checking
- make configuration=optprof
- make configuration=optprof install
+ make config=optprof
+ make config=optprof install
)
+COMMENT(
+URG
+don't try to make html from this
+)
+whentexinfo(
+nodetext(Your Rights.)
+chapter(Copying)
+LilyPond is Free Software. See file(COPYING) for details.
-node()(Top)(Copying)((dir))
-menu(
-mit(Copying)( Your rights.)
-mit(Programs)( Your softs.)
-mit(Mutopia)( Your music.)
-mit(Concept Index)( Your index.)
-)
+COMMENT(prepare for texinfoing manpages)
+redef(manpage)(5)()
+redef(manpagename)(2)(nodeprefix()nodetext(ARG2)chapter(ARG1)nodeprefix(ARG1))
+redef(manpageauthor)(0)(sect(Authors))
+redef(manpagesection)(1)(sect(ARG1))
-node(Top)(Copying)(Programs)(Top)
-chapter(COPYING)
-LilyPond is Free Software. See file(COPYING) for details.
+COMMENT(redef(includefile)(1)(INCLUDEFILE(man/ARG1)))
+includefile(programs.yo)
-node(Copying)(Programs)(convert-mudela)(Top)
-menu(
-mit(convert-mudela)( Convert Mudela)
-mit(LilyPond)( The GNU Music Typsetter herself)
-mit(Ly2dvi)( Lilypond Frontend)
-mit(Mi2mu)( MIDI input)
-mit(mudela-book)( Integrate LaTeX and mudela)
-)
+COMMENT(prepare for texinfoing articles)
+redef(article)(3)(nodeprefix()chapter(ARG1)nodeprefix(ARG1))
+redef(article)(3)(nodeprefix()chapter(ARG1)nodeprefix(Tutorial))
-whentexinfo(texinfocommand(@include man/DOEXPAND(outdir)/convert-mudela.texinfo))
-whentexinfo(texinfocommand(@include man/DOEXPAND(outdir)/lilypond.texinfo))
-whentexinfo(texinfocommand(@include man/DOEXPAND(outdir)/ly2dvi.texinfo))
-whentexinfo(texinfocommand(@include man/DOEXPAND(outdir)/mi2mu.texinfo))
-whentexinfo(texinfocommand(@include man/DOEXPAND(outdir)/mudela-book.texinfo))
-whentexinfo(texinfocommand(@include DOEXPAND(outdir)/mutopia.texinfo))
+redef(includefile)(1)(INCLUDEFILE(tex/ARG1))
+includefile(tutorial.yo)
+
+COMMENT(prepare for texinfoing articles)
+redef(article)(3)(nodeprefix()chapter(ARG1)nodeprefix(ARG1))
+redef(article)(3)(nodeprefix()chapter(ARG1)nodeprefix(Mutopia))
+redef(includefile)(1)(INCLUDEFILE(ARG1))
+includefile(mutopia.yo)
nchapter(Concept Index)
-node(Mutopia)(Concept Index)()(Top)
COMMENT( urg makeindex())
-printndex()
-
-whentexinfo(texinfocommand(@bye))
-
+printindex()
+)
(PPC, intel), FreeBSD, AIX, NeXTStep, IRIX, Digital Unix and
Solaris.
+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-debugging.
+
Although we recommend to use Unix, LilyPond is known to run on Windows
NT/95/98 as well. See Section [w32].
o GNU C++ version 2.7 or newer (2.8 and egcs are also fine).
-o Python 1.5
+o Python 1.5 (Strictly speaking, you shouldn't need Python for
+ compiling and installing, but you'll need it to regenerate the font
+ tables, e.g.).
3: RUNNING
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 ftp://ftp.gnu.org
+or any mirror of this site.
o Bison (version 1.25 or newer).
-o Python (version 1.5 or newer).
+Check out ftp://ftp.gnu.org
+or any mirror of this site.
+
+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)
ftp://pcnov095.win.tue.nl/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 this site
+
o A fast computer (a full page of music typically takes 1 minute on my
486/133, using the --enable-checking compile. It's lot slower than
most MusiXTeX preprocessors)
and for the profiling version, I specify a different configuration.
configure --prefix=~ --enable-profiling --enable-config=optprof --enable-optimise --disable-checking
- make configuration=optprof
- make configuration=optprof install
+ make config=optprof
+ make config=optprof install
8: INSTALLING
+
+pl 6
+ - largish rehack:
+ * Super_element is now an `abstract' class,
+ * Paper_score directly contains one Line_of_score. The
+ breaking/postprocessing/deletion is mixed with the output phase.
+ * Hopefully this will save memory for large scores. (benchmarks, anyone?)
+ * bf: Horizontal_vertical_group_item::do_unlink () should call
+
+ Axis_group_item::do_unlink ()
+
+ - changed LILYPOND to LILYPONDPREFIX
+ - added tfm and dvi target for mf/
+ - reincluded english.ly
+ - doc fixes (thanks, Adrian Moriano)
+ - doc fixes.
+ - mf: ex height added.
+
+pl 5.mb1
+ - Mudela 1.0.1: Changed \accidentals -> \keysignature
+ - Identifiers can be used in textual scripts:
+
+
+ tempoString="Allegro molto assai";
+
+ [...]
+
+ c^\tempoString
+
+
+
+pl 5.jbr2
+ - aclocal.m4,config.h.in,flower/file-path.cc: Added PATHSEP and
+ DIRSEP to configuration to support windows style path and pathlists.
+ - stepmake/bin/package-zip32.sh,stepmake/stepmake/package.make:
+ zip target now calls package-zip32.sh which creates winnt
+ binary distribution zip file. xzip target continues to use
+ package-zip.sh for Jan's cross-compiled version.
+ - lily/main.cc: Added a search for LILYPOND environment variable to
+ better facilitate binary distributions.
+ - Documentation/README-W32.yo: Updated information on running lilypond
+ on winnt.
+
+
+
+pl 5.jcn1
+ - (step)make fixes from yodl
+ - minor doco fixes
+ - bf: patch in website after 'make release'
+
+pl 5.jbr1
+ - Documentation/ntweb/Makefile: Used absolute url for LilyPond Homepage
+ - Documentation/ntweb/index.yo: Minor mods per Jan's suggestions
+
+
+
+
+*************
+pl 5
+
+pl 4.jcn1
+ - texinfo docs, lots of yodl TODO
+ - junked some makefiles
+ - ntweb: use BLURB
+ - bf: pletvisibility
+ - adaptions for yodl-1.31.2's automatic texinfo conversion
+ - reinclude of 1.jcn2:
+ - renamed -alto -> viola
+ - bf: avant-gardish six preludes
+ - bf: ly2dvi warnings
+
+pl 4.jbr1
+ - stepmake/stepmake/install-outfiles.sub.make: fixed typo
+ - scripts/GNUmakefile: add ly2dvi32 to installation list and fixed
+ included executable-targets.make to facilate installation of scripts
+ - Documentation/ntweb: Fixes to nt web page and added topdoc like
+ automation.
+
+*********
pl 4
pl 3.mb2
- Changed text script alignment: center -> left
Most of the items are marked in the code as well, with full explanation.
grep for TODO and ugh/ugr/urg
- * add ex-dimension to feta-params.
+ * use streambufs to provide IO handling for TeX stream, mudela stream,
+data-file.
+ * seriously buffer TeX output (do profile of writing .5 mb TeX file.)
* strip EXEs before installing
+ * zip target for binary windows dist (JBR)
+
+ * repeat bars: need distance after ":|" and before "|:"
+
+ * doco should not depend on a4
+
* text continuationss
* fix plain tex footer line.
- * portable libs for flowerlib/lilylib
-
* install TeX stuff into tex/generic directory.
* preformatted .info stuff.
* make new VoiceOne, VoiceTwo, VoiceThree contexts with
ydirection and hshift preset
- * StepMake install
- - /usr/bin/make-patch?
-
* *.yo: fix pod manpage layout legacy
* text-items clash with stems/beams
- plet -> tuplet
- measure -> bar
- abbreviation-beam -> (measured/unmeasured) tremolo
+ - partial -> anacrouse
* libtoolize flowerlib
* clefs (AG): The "8" should appear closer to the actual clef,
touching it.
- * give Items/Spanners access to unbroken originals
-
* scoping for properties?
{ c4
PACKAGE_NAME=LilyPond
MAJOR_VERSION=1
MINOR_VERSION=0
-PATCH_LEVEL=4
+PATCH_LEVEL=6
MY_PATCH_LEVEL=
-# use the above to send patches, always empty for released version:
-# please don't move these comments up; the patch should fail if
+# use the above to send patches: MY_PATCH_LEVEL is always empty for a
+# released version.
+#
+# Please don't move these comments up; the patch should fail if
# the previous version was wrong.
+dnl WARNING WARNING WARNING WARNING
+dnl do not edit! this is aclocal.m4, generated from stepmake/stepmake/../aclocal.m4
dnl aclocal.m4 -*-shell-script-*-
dnl StepMake subroutines for configure.in
AC_DEFUN(AC_STEPMAKE_COMPILE, [
# -O is necessary to get inlining
- OPTIMIZE="-O"
+ OPTIMIZE=""
+ CXXFLAGS=${CXXFLAGS:-""}
checking_b=yes
- optimise_b=tja
+ optimise_b=no
profile_b=no
debug_b=yes
[checking_b=$enableval] )
# actually, the default is: tja='-O' to get inlining...
- # off=''
+ # off='' --jcn
+
+ #actually, that sucks.
+ # tja looks like a typo. Default is optimisation off. --hwn
+
AC_ARG_ENABLE(optimise,
[ enable-optimise use maximal speed optimisations. Default: off],
[optimise_b=$enableval])
fi
if test "$optimise_b" = yes; then
- DEFINES="$DEFINES -finline-functions"
- OPTIMIZE="-O2"
+ OPTIMIZE="-O2 -finline-functions"
fi
if test "$optimise_b" = no; then
if test $profile_b = yes; then
EXTRA_LIBES="-pg"
- DEFINES="$DEFINES -pg"
+ OPTIMIZE="$OPTIMIZE -pg"
fi
if test $debug_b = yes; then
- DEFINES="$DEFINES -g"
+ OPTIMIZE="$OPTIMIZE -g"
fi
# however, C++ support in mingw32 v 0.1.4 is still flaky
AC_CHECK_HEADER(FlexLexer.h, true,
AC_STEPMAKE_WARN(can"\'"t find flex header. Please install Flex headers correctly))
- CXXFLAGS="$DEFINES $OPTIMIZE"
+ CPPFLAGS="$CPPFLAGS $DEFINES"
+ CXXFLAGS="$CXXFLAGS $OPTIMIZE"
LDFLAGS=$EXTRA_LIBES
AC_SUBST(CXXFLAGS)
AC_DEFUN(AC_STEPMAKE_END, [
AC_OUTPUT($CONFIGFILE.make:config.make.in)
- rm -f Makefile
- cp make/toplevel.make.in ./Makefile
- chmod 444 Makefile
+ rm -f GNUmakefile
+ cp make/toplevel.make.in ./GNUmakefile
+ chmod 444 GNUmakefile
])
AC_DEFUN(AC_STEPMAKE_GXX, [
stepmake=stepmake
AC_SUBST(stepmake)
+ STATE_VECTOR=`ls make/STATE-VECTOR 2>/dev/null`
+ if test "x$STATE_VECTOR" != "x"; then
+ STATE_VECTOR="\$(depth)/$STATE_VECTOR"
+ fi
+ AC_SUBST(STATE_VECTOR)
+
CONFIGSUFFIX=
AC_ARG_ENABLE(config,
[ enable-config=FILE put configure settings in config-FILE.make],
AC_CHECK_SEARCH_RESULT($PYTHON, python, You should install Python)
if test "x$OSTYPE" = "xcygwin32" || test "x$OSTYPE" = "xWindows_NT"; then
- LN=cp # hard link does not work under cygnus-nt (yet?)
+ LN=cp # hard link does not work under cygnus-nt
+ LN_S=cp # symbolic link does not work for native nt
ZIP="zip -r -9" #
DOTEXE=.exe
- INSTALL="\$(stepdir)/../bin/install-dot-exe.sh -c"
+ DIRSEP='\\'
+ PATHSEP=';'
+ INSTALL="\$(stepdir)/../bin/install-dot-exe.sh -c"
else
+ DIRSEP='/'
+ PATHSEP=':'
LN=ln
+ LN_S='ln -s'
ZIP="zip -r -9"
INSTALL="\$(stepdir)/../bin/install-sh -c"
fi
AC_SUBST(DOTEXE)
AC_SUBST(ZIP)
AC_SUBST(LN)
+ AC_SUBST(LN_S)
AC_SUBST(INSTALL)
-
+ AC_DEFINE_UNQUOTED(DIRSEP, '${DIRSEP}')
+ AC_DEFINE_UNQUOTED(PATHSEP, '${PATHSEP}')
+
+
AC_STEPMAKE_DATADIR
])
/* define if explicit instantiation is needed */
#undef NEED_EXPLICIT_INSTANTIATION
+/* define directory and path separators */
+#define DIRSEP '@DIRSEP@'
+#define PATHSEP '@PATHSEP@'
package = @package@
PACKAGE_NAME = @PACKAGE_NAME@
stepmake = @stepmake@
+state-vector = @STATE_VECTOR@
CONFIGSUFFIX = @CONFIGSUFFIX@
MAKEINFO = @MAKEINFO@
ICFLAGS = @ICFLAGS@
FIND = @FIND@
FLEX = @FLEX@
LN = @LN@
+LN_S = @LN_S@
MSGFMT = @MSGFMT@
PERL = @PERL@
PYTHON = @PYTHON@
stepmake=stepmake
+ STATE_VECTOR=`ls make/STATE-VECTOR 2>/dev/null`
+ if test "x$STATE_VECTOR" != "x"; then
+ STATE_VECTOR="\$(depth)/$STATE_VECTOR"
+ fi
+
+
CONFIGSUFFIX=
# Check whether --enable-config or --disable-config was given.
if test "${enable_config+set}" = set; then
fi
echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:653: checking host system type" >&5
+echo "configure:659: 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:678: checking for $ac_word" >&5
+echo "configure:684: 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:712: checking for $ac_word" >&5
+echo "configure:718: 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:749: checking for $ac_word" >&5
+echo "configure:755: 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
# 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:783: checking for $ac_word" >&5
+echo "configure:789: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_BASH'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "python", so it can be a program name with args.
set dummy python; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:816: checking for $ac_word" >&5
+echo "configure:822: 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
if test "x$OSTYPE" = "xcygwin32" || test "x$OSTYPE" = "xWindows_NT"; then
- LN=cp # hard link does not work under cygnus-nt (yet?)
+ LN=cp # hard link does not work under cygnus-nt
+ LN_S=cp # symbolic link does not work for native nt
ZIP="zip -r -9" #
DOTEXE=.exe
- INSTALL="\$(stepdir)/../bin/install-dot-exe.sh -c"
+ DIRSEP='\\'
+ PATHSEP=';'
+ INSTALL="\$(stepdir)/../bin/install-dot-exe.sh -c"
else
+ DIRSEP='/'
+ PATHSEP=':'
LN=ln
+ LN_S='ln -s'
ZIP="zip -r -9"
INSTALL="\$(stepdir)/../bin/install-sh -c"
fi
+
+ cat >> confdefs.h <<EOF
+#define DIRSEP '${DIRSEP}'
+EOF
+ cat >> confdefs.h <<EOF
+#define PATHSEP '${PATHSEP}'
+EOF
+
+
+
if test "$datadir" = "\${prefix}/share"; then
datadir='${prefix}/share/'$package
# Uncomment the configuration options your package needs.
# -O is necessary to get inlining
- OPTIMIZE="-O"
+ OPTIMIZE=""
+ CXXFLAGS=${CXXFLAGS:-""}
checking_b=yes
- optimise_b=tja
+ optimise_b=no
profile_b=no
debug_b=yes
# actually, the default is: tja='-O' to get inlining...
- # off=''
+ # off='' --jcn
+
+ #actually, that sucks.
+ # tja looks like a typo. Default is optimisation off. --hwn
+
# Check whether --enable-optimise or --disable-optimise was given.
if test "${enable_optimise+set}" = set; then
enableval="$enable_optimise"
fi
if test "$optimise_b" = yes; then
- DEFINES="$DEFINES -finline-functions"
- OPTIMIZE="-O2"
+ OPTIMIZE="-O2 -finline-functions"
fi
if test "$optimise_b" = no; then
if test $profile_b = yes; then
EXTRA_LIBES="-pg"
- DEFINES="$DEFINES -pg"
+ OPTIMIZE="$OPTIMIZE -pg"
fi
if test $debug_b = yes; then
- DEFINES="$DEFINES -g"
+ OPTIMIZE="$OPTIMIZE -g"
fi
# however, C++ support in mingw32 v 0.1.4 is still flaky
# 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:1009: checking for $ac_word" >&5
+echo "configure:1035: 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:1038: checking for $ac_word" >&5
+echo "configure:1064: 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:1086: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1112: 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.
cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext <<EOF
-#line 1096 "configure"
+#line 1122 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:1100: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1126: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
ac_cv_prog_cc_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
{ 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:1120: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1146: 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:1125: checking whether we are using GNU C" >&5
+echo "configure:1151: 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:1134: \"$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:1160: \"$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:1149: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1175: 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:1206: checking how to run the C++ preprocessor" >&5
+echo "configure:1232: 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 1219 "configure"
+#line 1245 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1224: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1250: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
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:1255: checking for $ac_word" >&5
+echo "configure:1281: 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:1286: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
+echo "configure:1312: 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.
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 1296 "configure"
+#line 1322 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:1300: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1326: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
ac_cv_prog_cxx_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
{ 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:1320: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1346: 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:1325: checking whether we are using GNU C++" >&5
+echo "configure:1351: 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:1334: \"$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:1360: \"$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:1349: checking whether ${CXX-g++} accepts -g" >&5
+echo "configure:1375: 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:1379: checking for FlexLexer.h" >&5
+echo "configure:1405: 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 1384 "configure"
+#line 1410 "configure"
#include "confdefs.h"
#include <FlexLexer.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1389: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1415: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
rm -rf conftest*
fi
- CXXFLAGS="$DEFINES $OPTIMIZE"
+ CPPFLAGS="$CPPFLAGS $DEFINES"
+ CXXFLAGS="$CXXFLAGS $OPTIMIZE"
LDFLAGS=$EXTRA_LIBES
echo $ac_n "checking whether explicit instantiation is needed""... $ac_c" 1>&6
-echo "configure:1438: checking whether explicit instantiation is needed" >&5
+echo "configure:1465: 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 1443 "configure"
+#line 1470 "configure"
#include "confdefs.h"
template <class T> struct foo { static int baz; };
return foo<int>::baz;
; return 0; }
EOF
-if { (eval echo configure:1453: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1480: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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:1480: checking for $ac_word" >&5
+echo "configure:1507: 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:1522: checking for $ac_word" >&5
+echo "configure:1549: 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:1556: checking for $ac_word" >&5
+echo "configure:1583: 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:1623: checking for $ac_word" >&5
+echo "configure:1650: 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:1655: checking for $ac_word" >&5
+echo "configure:1682: 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:1710: checking language" >&5
+echo "configure:1737: 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:1746: checking for gettext in -lintl" >&5
+echo "configure:1773: 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 1754 "configure"
+#line 1781 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
gettext()
; return 0; }
EOF
-if { (eval echo configure:1768: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1795: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
for ac_func in gettext
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1798: checking for $ac_func" >&5
+echo "configure:1825: 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 1803 "configure"
+#line 1830 "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:1829: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1856: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_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:1861: checking for $ac_word" >&5
+echo "configure:1888: 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:1891: checking whether msgfmt accepts -o" >&5
+echo "configure:1918: 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
echo $ac_n "checking TeX/MF root dir directory""... $ac_c" 1>&6
-echo "configure:1944: checking TeX/MF root dir directory" >&5
+echo "configure:1971: checking TeX/MF root dir directory" >&5
find_root_prefix="$prefix"
echo $ac_n "checking MF input directory""... $ac_c" 1>&6
-echo "configure:1985: checking MF input directory" >&5
+echo "configure:2012: checking MF input directory" >&5
find_dirdir=`(cd $find_texprefix;
$FIND ./ -type d -a -name source -print |sort|head -1|sed 's#^\./##')`
echo $ac_n "checking TeX input directory""... $ac_c" 1>&6
-echo "configure:2010: checking TeX input directory" >&5
+echo "configure:2037: checking TeX input directory" >&5
find_dirdir=`(cd $find_texprefix;
$FIND ./ -type d -a -name tex -print |sort|head -1|sed 's#^\./##')`
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2041: checking for $ac_word" >&5
+echo "configure:2068: 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:2075: checking for $ac_word" >&5
+echo "configure:2102: 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:2109: checking for $ac_word" >&5
+echo "configure:2136: 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:2142: checking for $ac_word" >&5
+echo "configure:2169: 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:2176: checking for $ac_word" >&5
+echo "configure:2203: 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:2210: checking for $ac_word" >&5
+echo "configure:2237: 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
echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
-echo "configure:2268: checking for 8-bit clean memcmp" >&5
+echo "configure:2295: 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 2276 "configure"
+#line 2303 "configure"
#include "confdefs.h"
#ifdef __cplusplus
extern "C" void exit(int);
}
EOF
-if { (eval echo configure:2289: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2316: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
ac_cv_func_memcmp_clean=yes
else
test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.o"
echo $ac_n "checking for vprintf""... $ac_c" 1>&6
-echo "configure:2307: checking for vprintf" >&5
+echo "configure:2334: 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 2312 "configure"
+#line 2339 "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:2338: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2365: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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:2362: checking for _doprnt" >&5
+echo "configure:2389: 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 2367 "configure"
+#line 2394 "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:2393: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2420: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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:2420: checking for $ac_func" >&5
+echo "configure:2447: 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 2425 "configure"
+#line 2452 "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:2451: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2478: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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:2490: checking for $ac_word" >&5
+echo "configure:2517: 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
result="`echo \"$YODL2TEXINFO\" | grep echo`"
if test "x$YODL2TEXINFO" = "xerror" -o "x$result" != "x"; then
- echo "configure: warning: can\'t find yodl. You should install Yodl 1.30.pre4 or better" 1>&2
+ echo "configure: warning: can\'t find yodl. You should install Yodl 1.30.2 or better" 1>&2
warn_b=yes
fi
s%@AUTOGENERATE@%$AUTOGENERATE%g
s%@absolute_builddir@%$absolute_builddir%g
s%@stepmake@%$stepmake%g
+s%@STATE_VECTOR@%$STATE_VECTOR%g
s%@CONFIGSUFFIX@%$CONFIGSUFFIX%g
s%@host@%$host%g
s%@host_alias@%$host_alias%g
s%@DOTEXE@%$DOTEXE%g
s%@ZIP@%$ZIP%g
s%@LN@%$LN%g
+s%@LN_S@%$LN_S%g
s%@INSTALL@%$INSTALL%g
s%@DIR_DATADIR@%$DIR_DATADIR%g
s%@subdirs@%$subdirs%g
fi
- rm -f Makefile
- cp make/toplevel.make.in ./Makefile
- chmod 444 Makefile
+ rm -f GNUmakefile
+ cp make/toplevel.make.in ./GNUmakefile
+ chmod 444 GNUmakefile
AC_CHECK_PROGS(MAKEINFO, makeinfo, error)
AC_CHECK_SEARCH_RESULT($YODL2TEXINFO, yodl,
- You should install Yodl 1.30.pre4 or better)
+ You should install Yodl 1.30.2 or better)
AC_STEPMAKE_END
path.cc - manipulation of paths and filenames.
*/
#include <stdio.h>
+#include "config.hh"
#include "file-path.hh"
#include "flower-debug.hh"
% Toplevel initialisation file.
-\version "1.0.0";
+\version "1.0.1";
\include "declarations.ly"
% Toplevel initialisation file.
-\version "1.0.0";
+\version "1.0.1";
\include "declarations.ly";
% Toplevel initialisation file.
-\version "1.0.0";
+\version "1.0.1";
\include "declarations.ly"
% Toplevel initialisation file.
-\version "1.0.0";
+\version "1.0.1";
\include "declarations.ly"
--- /dev/null
+%{
+ abbreviations of english names for notes
+
+ %}
+
+\notenames {
+ cff = \musicalpitch { -1 0 -2 }
+ cf = \musicalpitch { -1 0 -1 }
+ c = \musicalpitch { -1 0 0 }
+ cs = \musicalpitch { -1 0 1 }
+ css = \musicalpitch { -1 0 2 }
+ dff = \musicalpitch { -1 1 -2 }
+ df = \musicalpitch { -1 1 -1 }
+ d = \musicalpitch { -1 1 0 }
+ ds = \musicalpitch { -1 1 1 }
+ dss = \musicalpitch { -1 1 2 }
+ eff = \musicalpitch { -1 2 -2 }
+ ef = \musicalpitch { -1 2 -1 }
+ e = \musicalpitch { -1 2 0 }
+ es = \musicalpitch { -1 2 1 }
+ ess = \musicalpitch { -1 2 2 }
+ fff = \musicalpitch { -1 3 -2 }
+ ff = \musicalpitch { -1 3 -1 }
+ f = \musicalpitch { -1 3 0 }
+ fs = \musicalpitch { -1 3 1 }
+ fss = \musicalpitch { -1 3 2 }
+ gff = \musicalpitch { -1 4 -2 }
+ gf = \musicalpitch { -1 4 -1 }
+ g = \musicalpitch { -1 4 0 }
+ gs = \musicalpitch { -1 4 1 }
+ gss = \musicalpitch { -1 4 2 }
+ aff = \musicalpitch { -1 5 -2 }
+ af = \musicalpitch { -1 5 -1 }
+ a = \musicalpitch { -1 5 0 }
+ as = \musicalpitch { -1 5 1 }
+ ass = \musicalpitch { -1 5 2 }
+ bff = \musicalpitch { -1 6 -2 }
+ bf = \musicalpitch { -1 6 -1 }
+ b = \musicalpitch { -1 6 0 }
+ bs = \musicalpitch { -1 6 1 }
+ bss = \musicalpitch { -1 6 2 }
+
+
+ %
+ % upper case: 1 octave lower.
+ %
+
+
+ Cff = \musicalpitch { -2 0 -2 }
+ Cf = \musicalpitch { -2 0 -1 }
+ C = \musicalpitch { -2 0 0 }
+ Cs = \musicalpitch { -2 0 1 }
+ Css = \musicalpitch { -2 0 2 }
+ Dff = \musicalpitch { -2 1 -2 }
+ Df = \musicalpitch { -2 1 -1 }
+ D = \musicalpitch { -2 1 0 }
+ Ds = \musicalpitch { -2 1 1 }
+ Dss = \musicalpitch { -2 1 2 }
+ Eff = \musicalpitch { -2 2 -2 }
+ Ef = \musicalpitch { -2 2 -1 }
+ E = \musicalpitch { -2 2 0 }
+ Es = \musicalpitch { -2 2 1 }
+ Ess = \musicalpitch { -2 2 2 }
+ Fff = \musicalpitch { -2 3 -2 }
+ Ff = \musicalpitch { -2 3 -1 }
+ F = \musicalpitch { -2 3 0 }
+ Fs = \musicalpitch { -2 3 1 }
+ Fss = \musicalpitch { -2 3 2 }
+ Gff = \musicalpitch { -2 4 -2 }
+ Gf = \musicalpitch { -2 4 -1 }
+ G = \musicalpitch { -2 4 0 }
+ Gs = \musicalpitch { -2 4 1 }
+ Gss = \musicalpitch { -2 4 2 }
+ Aff = \musicalpitch { -2 5 -2 }
+ Af = \musicalpitch { -2 5 -1 }
+ A = \musicalpitch { -2 5 0 }
+ As = \musicalpitch { -2 5 1 }
+ Ass = \musicalpitch { -2 5 2 }
+ Bff = \musicalpitch { -2 6 -2 }
+ Bf = \musicalpitch { -2 6 -1 }
+ B = \musicalpitch { -2 6 0 }
+ Bs = \musicalpitch { -2 6 1 }
+ Bss = \musicalpitch { -2 6 2 }
+
+
+}
% Toplevel initialisation file.
-\version "1.0.0";
+\version "1.0.1";
\include "declarations.ly"
% Toplevel initialisation file.
-\version "1.0.0";
+\version "1.0.1";
\include "declarations.ly"
% Toplevel initialisation file.
-\version "1.0.0";
+\version "1.0.1";
\include "declarations.ly";
-\version "1.0.0";
+\version "1.0.1";
paper_sixteen = \paper {
staffheight = 16.0\pt;
\include "table13.ly";
\include "table16.ly";
-\version "1.0.0";
+\version "1.0.1";
paper_twenty = \paper {
staffheight = 20.0\pt;
ydirection 1 force stem up \stemup
pletvisibility 0 show nothing
pletvisibility 1 show number
-pletvisibility 2 show number, and bracket-if-no-beam
+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
beamquantisation 2 quantise avoide wedge2) \beampostraditional
[Staff]
-specialaccidentals 0 Accidental for all octaves \normalkey
-specialaccidentals 1 Accidental only for specified octave \specialkey
+keyoctaviation 0 Key signature only for specified octave \specialkey
+keyoctaviation 1 Key signature for all octaves \normalkey
[Staff?]
\property Voice.pletvisibility = 0
}
pleton = {
- \property Voice.pletvisibility = 2
+ \property Voice.pletvisibility = 3
}
tiny = {
\property Voice.fontsize= "-2"
ecarg = \melodic {
\property Voice.pletvisibility = 0
\]
- \property Voice.pletvisibility = 2
+ \property Voice.pletvisibility = 3
}
%}
normalkey = {
- \property Staff.specialaccidentals = 0
+ \property Staff.keyoctaviation = 1
}
specialkey = {
- \property Staff.specialaccidentals = 1
+ \property Staff.keyoctaviation = 0
}
-\version "1.0.0";
+\version "1.0.1";
blah = \melodic {
\transpose c'' {
\time 4/4;
- \accidentals es;
+ \keysignature es;
[cis8 d e f] [e! a b cis'] |
es e f e a a' a a' |
\clef "bass"; }
[es16 c' b a] [g f es d] [c d es d] [c Bes As G] |
\clef "violin";
- \accidentals c;
+ \keysignature c;
cis4 c cis cis |
<cis dis eis fes ges> cis dis2 ~ |
\time 2/4 ;
Tested Features: example file with comments
%}
-\version "1.0.0";
+\version "1.0.1";
% the % is a comment.
% \lbheel \lbheel \lfheel \lftoe
% \rbheel \rbtoe \rfheel \rftoe
-\version "1.0.0";
+\version "1.0.1";
\score{
\melodic {
* organ staff...
%}
-\version "1.0.0";
+\version "1.0.1";
-\version "1.0.0";
+\version "1.0.1";
ritme = \melodic\transpose c'' {
\partial 8;
% scales with accents.
%
-\version "1.0.0";
+\version "1.0.1";
blah = \melodic {
\time 6/8;
\transpose c {
-\version "1.0.0";
+\version "1.0.1";
blah = \melodic{ \transpose c'' {
"(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "1.0.0";
+\version "1.0.1";
shortlong = \melodic\transpose c'{
c4()c( c c |
TestedFeatures = "beams and beamflags";
}
-\version "1.0.0";
+\version "1.0.1";
\score{
<
"(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "1.0.0";
+\version "1.0.1";
shortlong = \melodic{
c4()c( c c |
copyright = "public domain";
Tested = "test the Collision resolution ";
}
-\version "1.0.0";
+\version "1.0.1";
\include "paper20.ly"
-\version "1.0.0";
+\version "1.0.1";
oden = \lyric{
O8 |
-\version "1.0.0";
+\version "1.0.1";
FontBody= \melodic\transpose c''{
\bar "|:";
% "(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "1.0.0";
+\version "1.0.1";
\include "font-body.ly"
\score{
% "(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "1.0.0";
+\version "1.0.1";
\include "font-body.ly"
\score{
TestedFeatures = "This file tests some nasty Gourlay spacings";
}
-\version "1.0.0";
+\version "1.0.1";
%{
-\version "1.0.0";
+\version "1.0.1";
\score{
\melodic\relative c'{
[c16 \stemdown c'' \stemboth c,, d]
"(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "1.0.0";
+\version "1.0.1";
shortlong = \melodic{
c4()c( c c |
% test damping
-\version "1.0.0";
+\version "1.0.1";
\score{
\melodic\relative c'{
-\version "1.0.0";
+\version "1.0.1";
\score{
\melodic\transpose c'{
TestedFeatures = "This file tests various spacings";
}
-\version "1.0.0";
+\version "1.0.1";
multipart = \melodic{
\type StaffGroup <
}
-\version "1.0.0";
+\version "1.0.1";
beamintervals = \melodic{
\time 7/4;
instrument= "Instrument";
}
-\version "1.0.0";
+\version "1.0.1";
\score{
\melodic
Hi all,
I have extend Mats' patches to allow accidental transposition:
- \accidentals bes es fis;
+ \keysignature bes es fis;
= \transpose d =>
- \accidentals gis;
+ \keysignature gis;
As you can see in output the example file "test.ly" there are a few problems left:
- key undo (already in the Todo)
}
-\version "1.0.0";
+\version "1.0.1";
vOne = \melodic \relative c''{
\clef"violin";
vThree = \melodic \relative c''{
\clef"violin";
- \accidentals fis cis;
+ \keysignature fis cis;
\time 2/4 ;
d4 d |
- \accidentals bes es fis;
+ \keysignature bes es fis;
fis4 fis |
- \accidentals fis cis gis dis ais eis;
+ \keysignature fis cis gis dis ais eis;
cis4 ais4 |
}
"(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "1.0.0";
+\version "1.0.1";
\score{
\melodic{
Tested Features lyrics and chords
%}
-\version "1.0.0";
+\version "1.0.1";
melodie = \melodic\relative c {
\clef"violin";
Tested Features: lyrics, interleaving lyrics and staffs
%}
-\version "1.0.0";
+\version "1.0.1";
melody = \melodic \relative c'' {
\clef violin;
$(outdir)/my-lily-parser.o: $(outdir)/parser.hh
$(outdir)/my-lily-lexer.o: $(outdir)/parser.hh
$(outdir)/lexer.o: $(outdir)/parser.hh
-
-
$(outdir)/lily-version.o: $(outdir)/version.hh
-
$(outdir)/main.o: $(outdir)/BLURB.hh $(outdir)/COPERTINA.hh $(outdir)/FLAPTEKST.hh
PACKAGE_NAME=LilyPond
MAJOR_VERSION=1
MINOR_VERSION=0
-PATCH_LEVEL=4
+PATCH_LEVEL=6
MY_PATCH_LEVEL=
-# use the above to send patches, always empty for released version:
-# please don't move these comments up; the patch should fail if
+# use the above to send patches: MY_PATCH_LEVEL is always empty for a
+# released version.
+#
+# Please don't move these comments up; the patch should fail if
# the previous version was wrong.
+++ /dev/null
-#include "horizontal-group-element.hh"
-#include "interval.hh"
-#include "item.hh"
-#include "debug.hh"
-
-
-IMPLEMENT_IS_TYPE_B1(Horizontal_group_element, Axis_group_element);
-
-Horizontal_group_element::Horizontal_group_element ()
- : Axis_group_element (X_AXIS,X_AXIS)
-{
-}
-
-Interval
-Horizontal_group_element::do_width() const
-{
- return Graphical_axis_group::extent (X_AXIS);
-}
-
--- /dev/null
+#include "horizontal-group-element.hh"
+#include "interval.hh"
+#include "item.hh"
+#include "debug.hh"
+
+
+IMPLEMENT_IS_TYPE_B1(Horizontal_group_element, Axis_group_element);
+
+Horizontal_group_element::Horizontal_group_element ()
+ : Axis_group_element (X_AXIS,X_AXIS)
+{
+}
+
+Interval
+Horizontal_group_element::do_width() const
+{
+ return Graphical_axis_group::extent (X_AXIS);
+}
+
+++ /dev/null
-
-#include "horizontal-vertical-group-element.hh"
-#include "interval.hh"
-#include "item.hh"
-#include "debug.hh"
-
-Horizontal_vertical_group_element::Horizontal_vertical_group_element()
-{
- axis1_ = X_AXIS;
- axis2_ = Y_AXIS;
-}
-
-
-
-IMPLEMENT_IS_TYPE_B2(Horizontal_vertical_group_element, Horizontal_group_element, Vertical_group_element);
--- /dev/null
+
+#include "horizontal-vertical-group-element.hh"
+#include "interval.hh"
+#include "item.hh"
+#include "debug.hh"
+
+Horizontal_vertical_group_element::Horizontal_vertical_group_element()
+{
+ axis1_ = X_AXIS;
+ axis2_ = Y_AXIS;
+}
+
+
+
+IMPLEMENT_IS_TYPE_B2(Horizontal_vertical_group_element, Horizontal_group_element, Vertical_group_element);
class Horizontal_vertical_group_item : public Axis_group_item, public Horizontal_vertical_group_element {
protected:
virtual void do_print() const;
- virtual void do_unlink () { Horizontal_vertical_group_element::do_unlink (); }
+ virtual void do_unlink () {
+ Axis_group_item::do_unlink ();
+ }
SCORE_ELEMENT_CLONE(Horizontal_vertical_group_item);
public:
Horizontal_vertical_group_item ();
public:
Link_array<Spanner> attached_span_l_arr_;
Drul_array<Item*> broken_to_drul_;
+ Item *unbroken_original_l_;
/// should be put in a breakable col.
bool breakable_b_;
struct Atom;
struct Symtable;
struct Symtables;
-struct Super_elem;
+struct Super_element;
struct Translation_property;
struct Tempo_req;
struct Tex_stream;
struct Text_req;
struct Text_spanner;
struct Tie;
+struct Tex_outputter;
struct Tie_engraver;
struct Tie_req;
struct Time_description;
/*
- scoreline.hh -- part of GNU LilyPond
+ line-of-score.hh -- part of GNU LilyPond
(c) 1996--1998 Han-Wen Nienhuys
*/
#include "colhpos.hh"
#include "spanner.hh"
+#include "super-element.hh"
/// the columns of a score that form one line.
-class Line_of_score : public Spanner
+class Line_of_score : public Spanner , public Super_element
{
public:
Link_array<Paper_column> cols;
bool contains_b (Paper_column const *c) const;
Link_array<Line_of_score> get_lines() const;
- void set_breaking (Array<Column_x_positions> const&);
+ Line_of_score * set_breaking (Array<Column_x_positions> const&, int j) const;
protected:
virtual Link_array<Score_element> get_extra_dependencies () const;
virtual void do_unlink ();
virtual void do_junk_links ();
- virtual void break_into_pieces (bool);
+
virtual Interval do_width() const;
virtual void do_print() const;
SCORE_ELEMENT_CLONE(Line_of_score);
*/
class Paper_score : public Music_output {
- void tex_output ();
+ Tex_outputter *open_tex_outputter (Tex_stream*);
+ Tex_stream *open_output_stream ();
+
public:
Paper_def *paper_l_;
Pointer_list<Score_element*> elem_p_list_;
Outputter *outputter_l_;
- Super_elem *super_elem_l_;
-
+ Line_of_score * line_l_;
+
Paper_score ();
- /// add a line to the broken stuff. Positions given in #config#
- void set_breaking (Array<Column_x_positions> const &);
/// add to bottom of pcols
virtual ~Paper_score();
protected:
+
+
/* MAIN ROUTINES */
virtual void process();
// can't instantiate template with cygnus' gcc...
// virtual ~Paper_score();
private:
+
+ void remove_line (Line_of_score*);
/// before calc_breaking
void preprocess();
void calc_idealspacing();
/// calculate where the lines are to be broken, and use results
- void calc_breaking();
+ Array<Column_x_positions> calc_breaking();
/// after calc_breaking
void postprocess();
virtual void print () const;
Paper_def *paper () const;
- Lookup * lookup_l () const;
+ Lookup const *lookup_l () const;
virtual ~Score_element ();
DECLARE_MY_RUNTIME_TYPEINFO;
protected:
/**
- Administration: Where are we?. This is mainly used by Super_elem and
+ Administration: Where are we?. This is mainly used by Super_element and
Score_element::calcalute_dependencies ()
0 means ORPHAN,
*/
class Spanner : public virtual Score_element {
public:
-
Drul_array<Item*> spanned_drul_;
void set_bounds (Direction d, Item*);
DECLARE_MY_RUNTIME_TYPEINFO;
virtual Spanner* access_Spanner ();
Spanner ();
+ Spanner (Spanner const &);
bool broken_b () const;
virtual Array<Rod> get_rods () const;
Spanner* find_broken_piece (Line_of_score*) const;
virtual void break_into_pieces ();
Link_array<Spanner> broken_into_l_arr_;
+ Spanner * unbroken_original_l_;
virtual void do_unlink ();
virtual void do_junk_links ();
/*
- super-element.hh -- declare Super_elem
+ super-element.hh -- declare Super_element
source file of the LilyPond music typesetter
*/
-#ifndef SUPER_ELEM_HH
-#define SUPER_ELEM_HH
+#ifndef Super_element_HH
+#define Super_element_HH
#include "score-element.hh"
/** The toplevel element. The Paper_score contains this element, and any
element shoud be a dependency for the super element.
*/
-class Super_elem : public Score_element {
+class Super_element : public virtual Score_element {
public:
- Link_array<Line_of_score> lines_arr_;
- Line_of_score * line_of_score_l_;
- void add_broken_line (Line_of_score*);
- Super_elem();
+ Super_element();
void space_processing ();
void pre_processing();
void unlink_all ();
protected:
- virtual void do_substitute_dependency (Score_element*,Score_element*);
- virtual void handle_broken_dependencies();
-
- virtual void do_add_processing();
DECLARE_MY_RUNTIME_TYPEINFO;
};
-#endif // SUPER_ELEM_HH
+#endif // Super_element_HH
Item::Item ()
{
+ unbroken_original_l_ =0;
break_priority_i_ = 0;
breakable_b_ = false;
break_status_dir_ = CENTER;
do {
if (s->spanned_drul_[d] == this)
s->set_bounds (d, 0);
-
- } while ( flip (&d) != LEFT);
+ if (unbroken_original_l_
+ && unbroken_original_l_-> broken_to_drul_[d] == this)
+ unbroken_original_l_->broken_to_drul_[d] = 0;
+ } while (flip (&d) != LEFT);
}
attached_span_l_arr_.set_size (0);
+ unbroken_original_l_ =0;
}
Paper_column *
Item::Item (Item const &s)
: Score_element (s)
{
+ unbroken_original_l_ = &s;
/* do not copy attached_span_l_arr_ */
breakable_b_ = s.breakable_b_;
broken_to_drul_[LEFT] = broken_to_drul_[RIGHT] =0;
{
old_accidental_idx_arr_ = accidental_idx_arr_;
key_.clear ();
- Scalar prop = get_property ("specialaccidentals");
+ Scalar prop = get_property ("keyoctaviation");
if (prop.length_i () > 0)
{
- key_.multi_octave_b_ = prop.to_bool ();
+ key_.multi_octave_b_ = ! prop.to_bool ();
}
accidental_idx_arr_.clear ();
source file of the LilyPond music typesetter
- (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996,1997 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
return cols.find_l ((Paper_column*)c);
}
-void
-Line_of_score::set_breaking (Array<Column_x_positions> const &breaking)
+Line_of_score*
+Line_of_score::set_breaking (Array<Column_x_positions> const &breaking, int j) const
{
- for (int j=0; j < breaking.size(); j++)
- {
- const Array<Paper_column*> &curline (breaking[j].cols);
- const Array<Paper_column*> &errors (breaking[j].error_col_l_arr_);
- const Array<Real> &config (breaking[j].config);
+ const Array<Paper_column*> &curline (breaking[j].cols);
+ const Array<Paper_column*> &errors (breaking[j].error_col_l_arr_);
+ const Array<Real> &config (breaking[j].config);
- for (int i=0; i < errors.size(); i++)
- errors[i]->error_mark_b_ = true;
+ for (int i=0; i < errors.size(); i++)
+ errors[i]->error_mark_b_ = true;
- Line_of_score *line_l=0;
- Line_of_score *line_p =0;
+ const Line_of_score *line_l=0;
- if (breaking.size() >1)
- {
- line_p = (Line_of_score*)clone()->access_Spanner ();
- line_l = line_p;
- }
- else
- line_l = this;
+ if (breaking.size() >1)
+ {
+ line_l = (Line_of_score*)clone()->access_Spanner ();
+ }
+ else
+ line_l = this;
- ((Array<Paper_column*> &)line_l->cols) = curline;
- line_l->set_bounds(LEFT,curline[0]);
+ ((Array<Paper_column*> &)line_l->cols) = curline;
+ line_l->set_bounds(LEFT,curline[0]);
- line_l->set_bounds(RIGHT,curline.top());
+ line_l->set_bounds(RIGHT,curline.top());
- if (line_p)
- {
- pscore_l_->typeset_broken_spanner (line_p);
- broken_into_l_arr_.push (line_p);
- }
-
- for (int i=0; i < curline.size(); i++)
- {
- curline[i]->translate_axis (config[i],X_AXIS);
- curline[i]->line_l_ = (Line_of_score*)line_l;
- }
+ for (int i=0; i < curline.size(); i++)
+ {
+ curline[i]->translate_axis (config[i],X_AXIS);
+ curline[i]->line_l_ = (Line_of_score*)line_l;
}
-}
-
-void
-Line_of_score::break_into_pieces (bool)
-{
-
+ return line_l;
}
-Link_array<Line_of_score>
-Line_of_score::get_lines() const
-{
- Link_array<Line_of_score> ret;
- if (broken_into_l_arr_.size())
- for (int i=0; i < broken_into_l_arr_.size(); i++)
- {
- ret.push ((Line_of_score*)broken_into_l_arr_[i]);
- }
- else
- ret.push ((Line_of_score*)this); // ugh
-
- return ret;
-}
+
void
Line_of_score::do_print() const
int
main (int argc, char **argv)
{
+ // facilitate binary distributions
+ char const *env_lily = getenv ("LILYPONDPREFIX");
+ String prefix_directory;
+ if (env_lily)
+ prefix_directory = env_lily;
#if HAVE_GETTEXT
setlocale (LC_ALL, "");
// setlocale (LC_MESSAGES, "");
+ String lily_locale_dir;
String name (PACKAGE);
name.to_lower ();
- bindtextdomain (name.ch_C (), DIR_LOCALEDIR);
+ if (!prefix_directory.empty_b())
+ {
+ lily_locale_dir = prefix_directory + "/share/locale";
+ bindtextdomain (name.ch_C (), lily_locale_dir.ch_C());
+ }
+ else
+ bindtextdomain (name.ch_C (), DIR_LOCALEDIR);
textdomain (name.ch_C ());
#endif
if (env_sz)
global_path.parse_path (env_sz);
+ if (!prefix_directory.empty_b())
+ {
+ global_path.add (prefix_directory + "/share/lilypond/init/");
+ global_path.add (prefix_directory + "/share/lilypond");
+ }
+
global_path.add (String (DIR_DATADIR) + "/init/");
global_path.push (DIR_DATADIR);
/*
urg: make input file name:
+
input: file name
+
output: file name with added default extension. "" is stdin.
- in reference argument: the extention. ".ly" if none
+ in reference argument: the extension. ".ly" if none
*/
-
String
distill_inname_str (String name_str, String& ext_r)
{
static Keyword_ent the_key_tab[]={
{"absdynamic", ABSDYNAMIC},
{"accepts", ACCEPTS},
- {"accidentals", ACCIDENTALS},
{"bar", BAR},
{"cadenza", CADENZA},
{"clear", CLEAR},
{"in", IN_T},
{"lyric", LYRIC},
{"key", KEY},
+ {"keysignature", KEYSIGNATURE},
{"mark", MARK},
{"melodic" , MELODIC},
{"musicalpitch", MUSICAL_PITCH},
*/
#include "main.hh"
-#include "super-element.hh"
#include "debug.hh"
#include "lookup.hh"
#include "spanner.hh"
Paper_score::Paper_score ()
{
outputter_l_ =0;
- super_elem_l_ = new Super_elem;
- typeset_element (super_elem_l_);
+ Line_of_score * line_p = new Line_of_score;
+ typeset_unbroken_spanner (line_p);
+
+ line_l_ = line_p;
}
Paper_score::~Paper_score ()
{
- super_elem_l_->unlink_all ();
+#if 0
+ for (int i=0; i< line_l_arr_.size (); i++)
+ line_l_arr_[i]->unlink_all ();
+
for (PCursor<Score_element*> i(elem_p_list_.top()); i.ok(); i++)
- assert(!i->linked_b());
+ {
+
+ if (i->linked_b())
+ i->unlink ();
+ assert (! i->linked_b ());
+ }
+#endif
}
void
{
elem_p_list_.bottom ().add (elem_p);
elem_p->pscore_l_ = this;
-
elem_p->add_processing ();
}
}
+#if 0
void
Paper_score::set_breaking (Array<Column_x_positions> const &breaking)
{
- super_elem_l_->line_of_score_l_->set_breaking (breaking);
- super_elem_l_->break_processing ();
-
for (iter (span_p_list_.top (),i); i.ok ();)
{
Spanner *span_p = i.remove_p ();
i++;
}
}
+#endif
-void
+
+Array<Column_x_positions>
Paper_score::calc_breaking ()
{
Break_algorithm *algorithm_p=0;
sol = algorithm_p->solve ();
delete algorithm_p;
}
- set_breaking (sol);
+ return sol;
}
void
clean_cols ();
print ();
*mlog << _ ("Preprocessing elements...") << " " << flush;
- super_elem_l_->breakable_col_processing ();
- super_elem_l_->pre_processing ();
+ line_l_->breakable_col_processing ();
+ line_l_->pre_processing ();
- *mlog << '\n' << _ ("Calculating column positions...") << " " << flush;
- super_elem_l_->space_processing ();
- calc_breaking ();
- print ();
- *mlog << _ ("Postprocessing elements...") << " " << endl;
- super_elem_l_->post_processing ();
- tex_output ();
+ *mlog << '\n' << _ ("Calculating column positions...") << " " << flush;
+ line_l_->space_processing ();
+
+ Array<Column_x_positions> breaking = calc_breaking ();
+ Tex_stream *tex_stream_p = open_output_stream ();
+ outputter_l_=open_tex_outputter (tex_stream_p);
+
+ Link_array<Line_of_score> lines;
+ for (int i=0; i < breaking.size (); i++)
+ {
+ Line_of_score *line_l = line_l_->set_breaking (breaking, i);
+ lines.push (line_l);
+ if (line_l != line_l_)
+ typeset_broken_spanner (line_l);
+
+ }
+
+ *mlog << "\nLine ... ";
+ for (int i=0; i < lines.size (); i++)
+ {
+ *mlog << '[' << flush;
+
+ Line_of_score *line_l = lines[i];
+ line_l->break_processing ();
+ line_l->post_processing ();
+ *mlog << i << flush;
+ line_l->output_all ();
+ *mlog << ']' << flush;
+ remove_line (line_l);
+
+ }
+ *tex_stream_p << "\n\\EndLilyPondOutput";
+ delete outputter_l_;
+ delete tex_stream_p;
+ outputter_l_ = 0;
}
void
-Paper_score::tex_output ()
+Paper_score::remove_line (Line_of_score *l)
+{
+ Link_array<Score_element> to_remove;
+ for (PCursor<Score_element*> i(elem_p_list_.top ()); i.ok (); )
+ {
+ if (i->line_l () == l)
+ to_remove.push (i.remove_p ());
+ else
+ i++;
+ }
+
+ for (PCursor<Spanner*> i (span_p_list_.top ()); i.ok (); )
+ {
+ Score_element *e = i.ptr ();
+ if (e->line_l () == l)
+ to_remove.push (i.remove_p ());
+ else
+ i++;
+ }
+
+ // l->unlink_all ();
+ for (int i=0; i < to_remove.size (); i++)
+ {
+ to_remove[i]->unlink ();
+ assert (!to_remove[i]->linked_b ());
+ delete to_remove [i];
+ }
+}
+
+Tex_stream *
+Paper_score::open_output_stream ()
{
// output
String base_outname = paper_l_->outfile_str_ ;
*mlog << _f ("TeX output to %s...",
outname == "-" ? String ("<stdout>") : outname ) << endl;
- Tex_stream tex_out (outname);
- Tex_outputter interfees (&tex_out);
+ return new Tex_stream (outname);
+}
+
- outputter_l_ = &interfees;
+
+Tex_outputter *
+Paper_score::open_tex_outputter (Tex_stream *tex_out_p)
+{
+ Tex_outputter *interfees_p= new Tex_outputter (tex_out_p);
if (header_global_p)
{
- tex_out << header_global_p->TeX_string ();
+ *tex_out_p << header_global_p->TeX_string ();
}
- tex_out << _ ("% outputting Score, defined at: ") << origin_str_ << '\n';
+ *tex_out_p << _ ("% outputting Score, defined at: ") << origin_str_ << '\n';
if (header_l_)
{
- tex_out << header_l_->TeX_string();
+ *tex_out_p << header_l_->TeX_string();
}
- tex_out << paper_l_->TeX_output_settings_str ();
+ *tex_out_p << paper_l_->TeX_output_settings_str ();
if (experimental_features_global_b)
- tex_out << "\\turnOnExperimentalFeatures%\n";
+ *tex_out_p << "\\turnOnExperimentalFeatures%\n";
- tex_out << "\\turnOnPostScript%\n";
- super_elem_l_->output_all ();
- tex_out << "\n\\EndLilyPondOutput";
- outputter_l_ = 0;
+ *tex_out_p << "\\turnOnPostScript%\n";
+ return interfees_p;
}
/** Get all breakable columns between l and r, (not counting l and r). */
%{ // -*-Fundamental-*-
/*
- parser.yy -- YACC -> C++ parser for mudela
+ parser.yy -- Bison/C++ parser for mudela
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997 Han-Wen Nienhuys <hanwen@cs.uu.nl>
Jan Nieuwenhuizen <janneke@gnu.org>
*/
// mmm
-Mudela_version oldest_version ("1.0.0");
-Mudela_version version ("1.0.0");
+Mudela_version oldest_version ("1.0.1");
+Mudela_version version ("1.0.1");
// needed for bison.simple's malloc() and free()
/* tokens which are not keywords */
-%token ACCIDENTALS
%token ALIAS
%token BAR
%token BEAMPLET
%token IN_T
%token LYRIC
%token KEY
+%token KEYSIGNATURE
%token MARK
%token MUSIC
%token MUSICAL_PITCH
$$ = key_p;
delete $2;
}
- | ACCIDENTALS pitch_list {
+ | KEYSIGNATURE pitch_list {
Key_change_req *key_p= new Key_change_req;
key_p->pitch_arr_ = *$2;
key_p->ordinary_key_b_ = false;
;
text_def:
- STRING {
+ string {
Text_def *t = new Text_def;
$$ = t;
t->text_str_ = *$1;
}
-Lookup *
+Lookup const *
Score_element::lookup_l () const
{
return pscore_l_->paper_l_->lookup_l (size_i_);
void
Score_engraver::do_creation_processing()
{
- scoreline_l_ = pscore_p_->super_elem_l_->line_of_score_l_;
+ scoreline_l_ = pscore_p_->line_l_;
scoreline_l_->set_bounds(LEFT,get_staff_info().command_pcol_l ());
command_column_l_->breakable_b_ = true;
Engraver_group_engraver::do_creation_processing();
for (int i=1; i < break_cols.size(); i++)
{
Spanner* span_p = clone()->access_Spanner ();
- left = break_cols[i-1];
- right = break_cols[i];
+ Item *left = break_cols[i-1];
+ Item *right = break_cols[i];
if (!right->line_l())
right = right->find_prebroken_piece(LEFT);
if (!left->line_l())
{
break_into_pieces ();
for (int i=0; i < broken_into_l_arr_.size(); i++)
- broken_into_l_arr_[i]->handle_broken_dependencies();
+ {
+ broken_into_l_arr_[i]->handle_broken_dependencies();
+ }
}
else
{
Spanner::Spanner ()
{
+ unbroken_original_l_ =0;
spanned_drul_[LEFT]=0;
spanned_drul_[RIGHT]=0;
}
+Spanner::Spanner (Spanner const &s)
+ :Score_element (s)
+{
+ spanned_drul_[LEFT] = spanned_drul_[RIGHT] =0;
+ unbroken_original_l_ = &s;
+}
+
void
Spanner::do_brew_molecule ()
{
{
set_bounds (LEFT, 0);
set_bounds (RIGHT, 0);
+
+ if (unbroken_original_l_)
+ {
+ unbroken_original_l_->broken_into_l_arr_.substitute (this, 0);
+ unbroken_original_l_ =0;
+ }
}
void
+++ /dev/null
-/*
- super-elem.cc -- implement Super_elem
-
- source file of the LilyPond music typesetter
-
- (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-#include "super-element.hh"
-#include "line-of-score.hh"
-#include "p-score.hh"
-#include "string.hh"
-#include "tex-outputter.hh"
-
-void
-Super_elem::handle_broken_dependencies()
-{
- lines_arr_ = line_of_score_l_->get_lines();
- for (int i =0; i < lines_arr_.size(); i++)
- add_dependency (lines_arr_[i]);
-}
-
-
-void
-Super_elem::do_substitute_dependency (Score_element*o,Score_element* n)
-{
- if (line_of_score_l_ == o->access_Spanner ())
- line_of_score_l_ = n? (Line_of_score*) n->access_Spanner () : 0;
-}
-
-Super_elem::Super_elem()
-{
- line_of_score_l_ = new Line_of_score ;
-}
-
-void
-Super_elem::do_add_processing()
-{
- pscore_l_->typeset_unbroken_spanner (line_of_score_l_);
- add_dependency (line_of_score_l_);
-}
-
-IMPLEMENT_IS_TYPE_B1(Super_elem,Score_element);
-
-
-/**
- for administration of what was done already
- */
-enum Score_element_status {
- ORPHAN=0, // not yet added to pstaff
- VIRGIN, // added to pstaff
- PREBROKEN,
- PRECALCING,
- PRECALCED, // calcs before spacing done
- SPACING,
- SPACED,
- BROKEN,
- POSTCALCING, // busy calculating. This is used to trap cyclic deps.
- POSTCALCED, // after spacing calcs done
- BREWING,
- BREWED,
- UNLINKING,
- UNLINKED,
-};
-
-void
-Super_elem::pre_processing ()
-{
- calcalute_dependencies (PRECALCING, PRECALCED, &Score_element::do_pre_processing);
-}
-
-void
-Super_elem::space_processing ()
-{
- calcalute_dependencies (SPACING, SPACED, &Score_element::do_space_processing);
-}
-
-/* for break processing, use only one status, because copies have to
- have correct status. (Previously,
- Score_element::handle_[pre]broken_dependencies assigned to status_i_
- */
-void
-Super_elem::breakable_col_processing ()
-{
- calcalute_dependencies (PREBROKEN, PREBROKEN, &Score_element::do_breakable_col_processing);
-}
-
-void
-Super_elem::break_processing ()
-{
- calcalute_dependencies (BROKEN, BROKEN, &Score_element::do_break_processing);
-}
-void
-Super_elem::post_processing ()
-{
- calcalute_dependencies (POSTCALCING, POSTCALCED, &Score_element::do_post_processing);
-}
-
-void
-Super_elem::output_all ()
-{
- for (int i=0; i < lines_arr_.size(); i++)
- {
- pscore_l_->outputter_l_->start_line ();
- lines_arr_[i]->calcalute_dependencies (BREWING, BREWED, &Score_element::do_brew_molecule);
- pscore_l_->outputter_l_->stop_line ();
- }
-}
-
-
-
-void
-Super_elem::unlink_all ()
-{
- calcalute_dependencies (UNLINKING, UNLINKED, &Score_element::junk_links);
-}
-
--- /dev/null
+/*
+ super-elem.cc -- implement Super_elem
+
+ source file of the LilyPond music typesetter
+
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+*/
+
+#include "super-element.hh"
+#include "line-of-score.hh"
+#include "p-score.hh"
+#include "string.hh"
+#include "tex-outputter.hh"
+
+
+Super_element::Super_element()
+{
+}
+
+IMPLEMENT_IS_TYPE_B1(Super_element,Score_element);
+
+
+/**
+ for administration of what was done already
+ */
+enum Score_element_status {
+ ORPHAN=0, // not yet added to pstaff
+ VIRGIN, // added to pstaff
+ PREBROKEN,
+ PRECALCING,
+ PRECALCED, // calcs before spacing done
+ SPACING,
+ SPACED,
+ BROKEN,
+ POSTCALCING, // busy calculating. This is used to trap cyclic deps.
+ POSTCALCED, // after spacing calcs done
+ BREWING,
+ BREWED,
+ UNLINKING,
+ UNLINKED,
+};
+
+void
+Super_element::pre_processing ()
+{
+ calcalute_dependencies (PRECALCING, PRECALCED, &Score_element::do_pre_processing);
+}
+
+void
+Super_element::space_processing ()
+{
+ calcalute_dependencies (SPACING, SPACED, &Score_element::do_space_processing);
+}
+
+/* for break processing, use only one status, because copies have to
+ have correct status. (Previously,
+ Score_element::handle_[pre]broken_dependencies assigned to status_i_
+ */
+void
+Super_element::breakable_col_processing ()
+{
+ calcalute_dependencies (PREBROKEN, PREBROKEN, &Score_element::do_breakable_col_processing);
+}
+
+void
+Super_element::break_processing ()
+{
+ calcalute_dependencies (BROKEN, BROKEN, &Score_element::do_break_processing);
+}
+void
+Super_element::post_processing ()
+{
+ calcalute_dependencies (POSTCALCING, POSTCALCED, &Score_element::do_post_processing);
+}
+
+void
+Super_element::output_all ()
+{
+ pscore_l_->outputter_l_->start_line ();
+ calcalute_dependencies (BREWING, BREWED, &Score_element::do_brew_molecule);
+ pscore_l_->outputter_l_->stop_line ();
+}
+
+
+
+void
+Super_element::unlink_all ()
+{
+ calcalute_dependencies (UNLINKING, UNLINKED, &Score_element::junk_links);
+}
+
STEPMAKE_TEMPLATES=makedir
BLURBS=BLURB # COPERTINA FLAPTEKST
-include $(depth)/make/stepmake.make
-
+# ifneq ($(strip $(state-vector)),)
+EXTRA_DIST_FILES = STATE-VECTOR
+# endif
+include $(depth)/make/stepmake.make
--- /dev/null
+0.1.76
+0.1.76.jcn1
+0.1.77
+0.1.77.uu1
+0.1.77.hwjc
+0.1.77.jcn1
+0.1.77.jcn2
+0.1.77.hwn1
+0.1.78
+0.1.78.hwn1
+0.1.78.jcn1
+0.1.78.jcn2
+0.1.79
+0.1.79.hwn1
+0.1.79.jcn2
+0.1.80
+0.1.80.jcn1
+0.1.80.eb1
+0.1.80.hwn1
+0.1.81
+0.1.81.jcn1
+0.1.81.jbr2
+0.1.81.jcn2
+0.1.81.jbr1
+0.1.81.jcn1
+0.1.81.hwn1
+0.1.81.hwn2
+0.1.82
+0.1.82.jcn1
+0.1.82.jcn2
+0.1.82.jcn3
+0.1.82.jcn4
+0.1.82.jcn5
+0.1.82.hwn1
+0.1.82.hwn2
+0.1.83
+0.1.83.hwn1
+0.1.83.jcn1
+0.1.83.uu1
+0.1.83.hwn1
+0.1.83.hwn2
+0.1.83.hwn3
+0.1.83.hwn4
+0.1.83.hwn5
+0.1.83.jcn4
+0.1.84
+0.1.84.jcn1
+0.1.84.hwn1
+0.1.84.jcn2
+0.1.84.hwn2
+0.1.84.jcn3
+0.1.84.hwn4
+0.1.85
+0.1.85.jcn1
+0.1.85.hwn1
+0.1.85.jcn2
+1.0.0
+1.0.0.hwn1
+1.0.0.hwn2
+1.0.1
+1.0.1.jbr1
+1.0.1.jcn2
+1.0.1.jbr2
+1.0.2
+1.0.2.hwn1
+1.0.3
+1.0.4.jcn1
+1.0.5
+1.0.5.jbr1
+1.0.5.jcn1
+1.0.5.hwn1
+1.0.6
+++ /dev/null
-# Docrules.make
-
-include $(make-dir)/mudela_rules.make
%build
./configure --disable-checking --disable-debugging --enable-printing --prefix=/usr --enable-optimise --enable-shared --enable-tex-dir='${prefix}/lib/texmf/texmf/tex/generic' --enable-mf-dir='${prefix}/lib/texmf/texmf/fonts/source/'
make all
+make -C Documentation texinfo || true
make htmldoc
%install
/usr/man/man1/mudela-book.1
/usr/man/man1/ly2dvi.1
/usr/man/man1/convert-mudela.1
+/usr/info/lilypond.info*
/usr/lib/texmf/texmf/tex/generic/lilypond
/usr/lib/texmf/texmf/fonts/source/public/lilypond
/usr/share/lilypond/
+++ /dev/null
-# make/Mutopia.make
-
-
Begin3
Titel: LilyPond
-Versie: 1.0.4
-Inschrijf datum: 24AUG98
+Versie: 1.0.6
+Inschrijf datum: 02SEP98
Beschrijving: @FLAPTEKST@
Trefwoorden: muziek typezetten midi notatie
Auteur: hanwen@stack.nl (Han-Wen Nienhuys)
janneke@gnu.org (Jan Nieuwenhuizen)
Onderhouden door: hanwen@cs.ruu.nl (Han-Wen Nienhuys)
Voornaamste plek: sunsite.unc.edu /pub/Linux/apps
- 770k lilypond-1.0.4.tar.gz
+ 770k lilypond-1.0.6.tar.gz
Oorspronkelijke plek: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
- 770k lilypond-1.0.4.tar.gz
+ 770k lilypond-1.0.6.tar.gz
Copi-eer voorwaarden: GPL
End
Begin3
Title: LilyPond
-Version: 1.0.4
-Entered-date: 24AUG98
+Version: 1.0.6
+Entered-date: 02SEP98
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.0.4.tar.gz
+ 770k lilypond-1.0.6.tar.gz
Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
- 770k lilypond-1.0.4.tar.gz
+ 770k lilypond-1.0.6.tar.gz
Copying-policy: GPL
End
Name: lilypond
-Version: 1.0.4
+Version: 1.0.6
Release: 1
Copyright: GPL
Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.0.4.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.0.6.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>
%build
./configure --disable-checking --disable-debugging --enable-printing --prefix=/usr --enable-optimise --enable-shared --enable-tex-dir='${prefix}/lib/texmf/texmf/tex/generic' --enable-mf-dir='${prefix}/lib/texmf/texmf/fonts/source/'
make all
+make -C Documentation texinfo || true
make htmldoc
%install
/usr/man/man1/mudela-book.1
/usr/man/man1/ly2dvi.1
/usr/man/man1/convert-mudela.1
+/usr/info/lilypond.info*
/usr/lib/texmf/texmf/tex/generic/lilypond
/usr/lib/texmf/texmf/fonts/source/public/lilypond
/usr/share/lilypond/
#guh
include $(stepdir)/substitute-vars.make
+include $(stepdir)/substitute-rules.make
ATVARIABLES = \
BASH\
$(PYTHON) $(buildscripts)/mf-to-table.py --package=$(topdir) --outdir=$(outdir) --dep $(outdir)/$(<F:.log=.dep) --ly $(outdir)/$(<F:.log=.ly) --afm $(outdir)/$(<F:.log=.afm) --tex $(outdir)/$(<F:.log=.tex) $<
+
+
TEXINSTALL=$(MAKE) INSTALLATION_OUT_DIR=$(TEXDIR)/lilypond depth=.. INSTALLATION_OUT_FILES="$(TEXTABLES)" -f $(stepdir)/install-outfiles.sub.make $@
AFMINSTALL=$(MAKE) depth=.. INSTALLATION_OUT_DIR=$(datadir) INSTALLATION_OUT_FILES="$(AFM_FILES)" -f $(stepdir)/install-outfiles.sub.make $@
+++ /dev/null
-% feta-test16
-% part of LilyPond's pretty-but-neat music font
-
-
-input feta-autometric;
-fet_beginfont("feta-test", 16);
-staffsize#:=16pt#;
-test:=1;
-
-% smoked cheese
-test := -1;
-
-
-% dem piksels.
-%test := 1;
-
-input feta-generic;
-
-fet_endfont("feta");
-
-end.
-
+++ /dev/null
-
-%
-% feta-brackets16.mf -- implement
-%
-% source file of the Feta (Font-En-Tja) music font
-%
-% (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
-% Jan Nieuwenhuizen <janneke@gnu.org>
-%
-
-font_identifier:="feta-brackets16";
-font_size 16;
-mode_setup;
-
-staffsize#:=16pt#;
-input feta-haak;
-end.
-
+++ /dev/null
-%
-% feta-brackets20.mf -- implement
-%
-% source file of the Feta (Font-En-Tja) music font
-%
-% (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
-% Jan Nieuwenhuizen <janneke@gnu.org>
-%
-
-font_identifier:="feta-brackets20";
-font_size 20;
-mode_setup;
-
-staffsize#:=20pt#;
-input feta-haak;
-end.
% input feta-toevallig;
% input feta-schrift;
% input feta-schrift;
- input feta-haak;
+% input feta-haak;
fi
test:=0;
input feta-autometric;
+input feta-macros;
+
+blot_diameter# = .4pt#;
+
fet_beginfont("feta-nummer", size);
mode_setup;
-input feta-macros;
-input feta-params;
height#:=designsize;
+
save b,h; 4h+b=1.15; 10h+b=1;
fatten:=designsize*h+b;
save b,h; 4h+b=1.05; 10h+b=1;
interline#:=staffsize#/(stafflines-1);
% URG!
-% font_x_height ( interline# );
+font_x_height interline# ;
%
% [D.K.Roush & J.S.Gourlay] say this should be 0.072
boogje:=boogje rotated angle(dxs,dys);
pickup pencircle scaled sleur_pen;
filldraw boogje;
- show z1;
- show z2;
- show z3;
- show z4;
- show z5;
- show z6;
enddef;
-def slurchar(expr dxs,dys,hs,d) =
- beginchar(0,0,0,0) "Embedded mf";
- draw_slur(dxs,dys,hs,d);
- endchar;
-enddef;
-
-% drawslur(10,10,0,1);
depth = ../..
# do Coriolan if you have plenty RAM / CPU
-examples=coriolan oboi-part viola-part
+#examples=coriolan oboi-part viola-part
# examples= oboi-part viola-part
LOCALSTEPMAKE_TEMPLATES=mutopia
copyright = "public domain";
}
-\version "1.0.0";
+\version "1.0.1";
\include "global.ly"
\include "violoncello.ly"
copyright = "public domain";
}
-\version "1.0.0";
+\version "1.0.1";
\include "global.ly"
\include "clarinetti.ly"
}
-\version "1.0.0";
+\version "1.0.1";
\include "clarinetto-1.ly"
\include "clarinetto-2.ly"
}
-\version "1.0.0";
+\version "1.0.1";
clarinetto1 = \melodic \relative c {
R1 *2 | d''4-.\ff r r2 | R1 *3 | e4-. r r2 | R1 *3 |
}
-\version "1.0.0";
+\version "1.0.1";
clarinetto2 = \melodic \relative c {
R1*2 bes''4-.\ff r r2 | R1*3 | cis4-. r r2 | R1 *3 |
copyright = "public domain";
}
-\version "1.0.0";
+\version "1.0.1";
\include "global.ly"
\include "contrabasso.ly"
copyright = "public domain";
}
-\version "1.0.0";
+\version "1.0.1";
contrabasso = \melodic \relative c {
% \translator Staff=violoncello
copyright = "public domain";
}
-\version "1.0.0";
+\version "1.0.1";
\include "global.ly"
copyright = "public domain";
}
-\version "1.0.0";
+\version "1.0.1";
\include "global.ly"
\include "corni.ly"
}
-\version "1.0.0";
+\version "1.0.1";
\include "corno-1.ly"
\include "corno-2.ly"
copyright = "public domain";
}
-\version "1.0.0";
+\version "1.0.1";
corno1 = \melodic \relative c {
R1 *2 | f''4-.\ff r r2 | R1 *3 | f4-. r r2 | R1 *3 |
copyright = "public domain";
}
-\version "1.0.0";
+\version "1.0.1";
corno2 = \melodic \relative c {
R1 *2 | d''4-.\ff r r2 | R1 *3 | d4-. r r2 | R1 *3 |
}
-\version "1.0.0";
+\version "1.0.1";
\include "global.ly"
\include "fagotti.ly"
}
-\version "1.0.0";
+\version "1.0.1";
\include "fagotto-1.ly"
\include "fagotto-2.ly"
}
-\version "1.0.0";
+\version "1.0.1";
fagotto1 = \melodic \relative c {
R1 *2 | as'4-.\ff r r2 | R1 *3 | as4-. r r2 | R1 *3 |
copyright = "public domain";
}
-\version "1.0.0";
+\version "1.0.1";
fagotto2 = \melodic \relative c {
R1 *2 | f4-.\ff r r2 | R1 *3 | f4-. r r2 | R1 *3 |
}
-\version "1.0.0";
+\version "1.0.1";
\include "global.ly"
\include "flauti.ly"
}
-\version "1.0.0";
+\version "1.0.1";
\include "flauto-1.ly"
\include "flauto-2.ly"
copyright = "public domain";
}
-\version "1.0.0";
+\version "1.0.1";
flauto1 = \melodic \relative c {
R1 *2 | c'''4-.\ff r r2 | R1 *3 | d4-. r r2 | R1 *3 |
copyright = "public domain";
}
-\version "1.0.0";
+\version "1.0.1";
flauto2 = \melodic \relative c {
R1 *2 | as'''4-.\ff r r2 | R1 *3 | b4-. r r2 | R1 *3 |
}
-\version "1.0.0";
+\version "1.0.1";
global = \melodic {
\time 4/4;
copyright = "public domain";
}
-\version "1.0.0";
+\version "1.0.1";
oboe1 = \melodic \relative c'' {
R1 *2 | as'4-.\ff r r2 | R1 *3 | as4-. r r2 | R1 *3 |
}
-\version "1.0.0";
+\version "1.0.1";
oboe2 = \melodic \relative c{
R1 *2| f''4-.\ff r r2 | R1 *3 | f4-. r r2 | R1 *3 |
}
-\version "1.0.0";
+\version "1.0.1";
\include "global.ly"
\include "oboi.ly"
}
-\version "1.0.0";
+\version "1.0.1";
\include "oboe-1.ly"
\include "oboe-2.ly"
}
-\version "1.0.0";
+\version "1.0.1";
timpani = \melodic \relative c {
R1 *2 | c4-.\ff r r2 | R1 *3 | c4-. r r2 | R1 *3 |
}
-\version "1.0.0";
+\version "1.0.1";
\include "global.ly"
\include "trombe.ly"
}
-\version "1.0.0";
+\version "1.0.1";
\include "trombo-1.ly"
\include "trombo-2.ly"
copyright = "public domain";
}
-\version "1.0.0";
+\version "1.0.1";
trombo1 = \melodic \relative c {
R1 *2 | c''4-.\ff r r2 | R1 *3 | c4-. r r2 | R1 *3 |
copyright = "public domain";
}
-\version "1.0.0";
+\version "1.0.1";
trombo2 = \melodic \relative c {
R1 *2 | c'4-.\ff r r2 | R1 *3 | c4-. r r2 | R1 *3 |
copyright = "public domain";
}
-\version "1.0.0";
+\version "1.0.1";
viola1 = \melodic \relative c {
\type Voice=one
copyright = "public domain";
}
-\version "1.0.0";
+\version "1.0.1";
viola2 = \melodic \relative c {
% starts on (actualy, most part is on) same staff as viola1
copyright = "public domain";
}
-\version "1.0.0";
+\version "1.0.1";
\include "global.ly"
\include "viola-1.ly"
copyright = "public domain";
}
-\version "1.0.0";
+\version "1.0.1";
\include "global.ly"
\include "violino-1.ly"
copyright = "public domain";
}
-\version "1.0.0";
+\version "1.0.1";
violino1 = \melodic \relative c {
c'1\ff ~ | c | <f4-. c'-. as'-.> r r2 | R1 |
copyright = "public domain";
}
-\version "1.0.0";
+\version "1.0.1";
\include "global.ly"
\include "violino-2.ly"
copyright = "public domain";
}
-\version "1.0.0";
+\version "1.0.1";
violino2 = \melodic \relative c {
c'1\ff ~ | c | <f4-. c'-. as'-.> r r2 | R1 |
copyright = "public domain";
}
-\version "1.0.0";
+\version "1.0.1";
\include "global.ly"
\include "violoncello.ly"
}
-\version "1.0.0";
+\version "1.0.1";
violoncello = \melodic \relative c {
c1\ff ~ | c | f,4-. r r2 | r1 | c'1\ff ~ | c | f,4-. r r2 |
copyright = "public domain";
}
-\version "1.0.0";
+\version "1.0.1";
one = \melodic\relative c {
\property Voice . textstyle = "italic"
copyright = "public domain";
}
-\version "1.0.0";
+\version "1.0.1";
one = \melodic\relative c{
\property Voice . textstyle = "italic"
r8\mf [c'-1( e-2 g-4] [e-2 c-1 bes'-5 g-3] |
enteredby = "jcn";
copyright = "public domain";
}
-\version "1.0.0";
+\version "1.0.1";
one = \melodic\relative c{
\property Voice . textstyle = "italic"
enteredby = "jcn";
copyright = "public domain";
}
-\version "1.0.0";
+\version "1.0.1";
one = \melodic\relative c{
enteredby = "jcn";
copyright = "public domain";
}
-\version "1.0.0";
+\version "1.0.1";
one = \melodic\relative c{
+++ /dev/null
-\header{
-filename = "allemande-alto.ly";
-title = "Solo Cello Suites";
-subtitle = "Suite II";
-piece = "Allemande";
-% opus = "BWV 1008";
-opus = "";
-composer = "Johann Sebastian Bach (1685-1750)";
-enteredby = "JCN";
-copyright = "public domain";
-}
-
-%{
- Tested Features:breaking algorithm, chords, multivoice, accents,
- dotted slurs
-%}
-
-\version "1.0.0";
-
-\include "allemande-urtext.ly";
-
-allemande_alto_global = \melodic{
- \time 4/4;
- \key f;
- \partial 16;
- \clef alto;
- \skip 1*11;
- s2. s8.
- \bar ":|:";
- \skip 1*11;
- s2. s4 s8
- \bar ":|";
-}
-
-allemande_alto_scripts = \melodic{
-}
-
-allemande_alto_staff = \type Staff <
- \melodic \transpose c'' \$allemande
- \$allemande_alto_global
- \$allemande_alto_scripts
->
-
-\score{
- \$allemande_alto_staff
- \include "scs-paper.ly";
- \midi{ \tempo 4 = 45; }
-}
-
filename = "allemande-cello.ly";
title = "Solo Cello Suites";
subtitle = "Suite II";
-piece = "Allemande";
+%piece = "Allemande";
% opus = "BWV 1008";
opus = "";
composer = "Johann Sebastian Bach (1685-1750)";
dotted slurs
%}
-\version "1.0.0";
+\version "1.0.1";
\include "allemande-urtext.ly";
\$allemande_cello_staff
\include "scs-paper.ly";
\midi{ \tempo 4 = 45; }
+ \header{ piece = "Allemande"; }
}
% allemande-urtext.ly
-% belongs together with -cello.ly and -alto.ly
+% belongs together with -cello.ly and -viola.ly
% (who is going to make a -violin.ly?)
%{
Well, there are still some scripts in this "urtext".
-But merging melodic and scripts doen't work too well yet (see alto_scripts).
+But merging melodic and scripts doen't work too well yet (see viola_scripts).
%}
n = { \slurnormal }
--- /dev/null
+\header{
+filename = "allemande-viola.ly";
+title = "Solo Cello Suites";
+subtitle = "Suite II";
+% piece = "Allemande";
+% opus = "BWV 1008";
+opus = "";
+composer = "Johann Sebastian Bach (1685-1750)";
+enteredby = "JCN";
+copyright = "public domain";
+}
+
+%{
+ Tested Features:breaking algorithm, chords, multivoice, accents,
+ dotted slurs
+%}
+
+\version "1.0.1";
+
+\include "allemande-urtext.ly";
+
+allemande_viola_global = \melodic{
+ \time 4/4;
+ \key f;
+ \partial 16;
+ \clef alto;
+ \skip 1*11;
+ s2. s8.
+ \bar ":|:";
+ \skip 1*11;
+ s2. s4 s8
+ \bar ":|";
+}
+
+allemande_viola_scripts = \melodic{
+}
+
+allemande_viola_staff = \type Staff <
+ \melodic \transpose c'' \$allemande
+ \$allemande_viola_global
+ \$allemande_viola_scripts
+>
+
+\score{
+ \$allemande_viola_staff
+ \include "scs-paper.ly";
+ \midi{ \tempo 4 = 45; }
+ \header{ piece = "Allemande"; }
+}
+
+++ /dev/null
-\header{
-filename = "courante-alto.ly";
-title = "Solo Cello Suites";
-subtitle = "Suite II";
-piece = "Courante";
-% opus = "BWV 1008";
-opus = "";
-composer = "Johann Sebastian Bach (1685-1750)";
-enteredby = "JCN";
-copyright = "public domain";
-}
-
-%{
- Tested Features:breaking algorithm, chords, multivoice, accents,
- dotted slurs
-%}
-
-\version "1.0.0";
-
-\include "courante-urtext.ly";
-
-courante_alto_global = \melodic{
- \time 3/4;
- \key f;
- \partial 16;
- \clef alto;
- \skip 2.*15;
- s2 s8.
- \bar ":|:";
- \skip 2.*15;
- s2 s8.
- \bar ":|";
-}
-
-courante_alto_scripts = \melodic{
-}
-
-courante_alto_staff = \type Staff <
- \melodic \transpose c' \$courante
- \$courante_alto_global
- \$courante_alto_scripts
->
-
-\score{
- \$courante_alto_staff
- \include "scs-paper.ly";
- \midi{ \tempo 4 = 55; }
-}
-
filename = "courante-cello.ly";
title = "Solo Cello Suites";
subtitle = "Suite II";
-piece = "Courante";
+% piece = "Courante";
% opus = "BWV 1008";
opus = "";
composer = "Johann Sebastian Bach (1685-1750)";
dotted slurs
%}
-\version "1.0.0";
+\version "1.0.1";
\include "courante-urtext.ly";
\$courante_cello_staff
\include "scs-paper.ly";
\midi{ \tempo 4 = 55; }
+ \header{ piece = "Courante"; }
}
% courante-urtext.ly
-% belongs together with -cello.ly and -alto.ly
+% belongs together with -cello.ly and -viola.ly
% (who is going to make a -violin.ly?)
%{
Well, there are still some scripts in this "urtext".
-But merging melodic and scripts doen't work too well yet (see alto_scripts).
+But merging melodic and scripts doen't work too well yet (see viola_scripts).
%}
n = { \slurnormal }
--- /dev/null
+\header{
+filename = "courante-viola.ly";
+title = "Solo Cello Suites";
+subtitle = "Suite II";
+% piece = "Courante";
+% opus = "BWV 1008";
+opus = "";
+composer = "Johann Sebastian Bach (1685-1750)";
+enteredby = "JCN";
+copyright = "public domain";
+}
+
+%{
+ Tested Features:breaking algorithm, chords, multivoice, accents,
+ dotted slurs
+%}
+
+\version "1.0.1";
+
+\include "courante-urtext.ly";
+
+courante_viola_global = \melodic{
+ \time 3/4;
+ \key f;
+ \partial 16;
+ \clef alto;
+ \skip 2.*15;
+ s2 s8.
+ \bar ":|:";
+ \skip 2.*15;
+ s2 s8.
+ \bar ":|";
+}
+
+courante_viola_scripts = \melodic{
+}
+
+courante_viola_staff = \type Staff <
+ \melodic \transpose c' \$courante
+ \$courante_viola_global
+ \$courante_viola_scripts
+>
+
+\score{
+ \$courante_viola_staff
+ \include "scs-paper.ly";
+ \midi{ \tempo 4 = 55; }
+ \header{ piece = "Courante"; }
+}
+
+++ /dev/null
-\header{
-filename = "gigue-cello.ly";
-title = "Solo Cello Suites";
-subtitle = "Suite II";
-piece = "Pr\\'elude"; % duh
-% opus = "BWV 1008";
-opus = "";
-composer = "Johann Sebastian Bach (1685-1750)";
-enteredby = "JCN";
-copyright = "public domain";
-}
-
-%{
- Tested Features:breaking algorithm, chords, multivoice, accents,
- dotted slurs
-%}
-
-\version "1.0.0";
-
-\include "gigue-urtext.ly";
-
-gigue_cello_global = \melodic{
- \time 3/8;
- \key f;
- \clef bass;
- \partial 8
- \skip 4.*31;
- s4
- \bar ":|:";
- \skip 4.*44;
- s4
- \bar ":|";
-}
-
-gigue_cello_scripts = \melodic{
-}
-
-gigue_cello_staff = \type Staff <
- \melodic \transpose c' \$gigue
- \$gigue_cello_global
- \$gigue_cello_scripts
->
-
-\score{
- \$gigue_cello_staff
- \include "scs-paper.ly";
-%broken
- \midi{ \tempo 4 = 60; }
-}
-
filename = "gigue-cello.ly";
title = "Solo Cello Suites";
subtitle = "Suite II";
-piece = "Pr\\'elude"; % duh
+% piece = "Gigue";
% opus = "BWV 1008";
opus = "";
composer = "Johann Sebastian Bach (1685-1750)";
dotted slurs
%}
-\version "1.0.0";
+\version "1.0.1";
\include "gigue-urtext.ly";
\$gigue_cello_staff
\include "scs-paper.ly";
\midi{ \tempo 4 = 60; }
+ \header{ piece = "Gigue"; }
}
% gigue-urtext.ly
-% belongs together with -cello.ly and -alto.ly
+% belongs together with -cello.ly and -viola.ly
% (who is going to make a -violin.ly?)
%{
Well, there are still some scripts in this "urtext".
-But merging melodic and scripts doen't work too well yet (see alto_scripts).
+But merging melodic and scripts doen't work too well yet (see viola_scripts).
%}
n = { \slurnormal }
--- /dev/null
+\header{
+filename = "gigue-cello.ly";
+title = "Solo Cello Suites";
+subtitle = "Suite II";
+% piece = "Gigue";
+% opus = "BWV 1008";
+opus = "";
+composer = "Johann Sebastian Bach (1685-1750)";
+enteredby = "JCN";
+copyright = "public domain";
+}
+
+%{
+ Tested Features:breaking algorithm, chords, multivoice, accents,
+ dotted slurs
+%}
+
+\version "1.0.1";
+
+\include "gigue-urtext.ly";
+
+gigue_cello_global = \melodic{
+ \time 3/8;
+ \key f;
+ \clef bass;
+ \partial 8;
+ \skip 4.*31;
+ s4
+ \bar ":|:";
+ \skip 4.*44;
+ s4
+ \bar ":|";
+}
+
+gigue_cello_scripts = \melodic{
+}
+
+gigue_cello_staff = \type Staff <
+ \melodic \transpose c' \$gigue
+ \$gigue_cello_global
+ \$gigue_cello_scripts
+>
+
+\score{
+ \$gigue_cello_staff
+ \include "scs-paper.ly";
+%broken
+ \midi{ \tempo 4 = 60; }
+ \header{ piece = "Gigue"; }
+}
+
+++ /dev/null
-\header{
-filename = "menuetto-alto.ly";
-title = "Solo Cello Suites";
-subtitle = "Suite II";
-piece = "Menuetto I";
-description = "Transcribed for Alto";
-source = "?";
-% opus = "BWV 1008 no. 5";
-opus = "";
-composer = "Johann Sebastian Bach (1685-1750)";
-enteredby = "JCN";
-copyright = "public domain";
-}
-
-%{
- Tested Features:breaking algorithm, chords, multivoice, accents,
- dotted slurs
-%}
-
-\version "1.0.0";
-
-\include "menuetto-urtext.ly";
-
-menuetto_i_alto_global = \melodic{
- \time 3/4;
- \key f;
- \clef alto;
- \skip 2.*8;
- \bar ":|:";
- \clef violin;
- \skip 2.*1;
- \slurdotted
- \skip 2.*3;
- \clef alto;
- \skip 2.*11;
- s2._"Fine"
- \bar ":|";
-}
-
-menuetto_i_alto_scripts = \melodic{
- s2.
- s8^"~"^1_2_4 s8*5
- s2.*5
- s4 s-\upbow s-\downbow
- s2.-\upbow
- s2.*5
- s2 s4-\upbow
- s4-\downbow s2
- s2.*1
- s2^0 s4
- s2.*1
- s4-\downbow s4-\upbow
-}
-
-menuetto_i_alto_staff = \type Staff <
- \melodic \transpose c' \$menuetto_i
- \$menuetto_i_alto_global
-% \$menuetto_i_alto_scripts
->
-
-\score{
- \$menuetto_i_alto_staff
- \include "scs-paper.ly";
- \midi{ \tempo 4 = 110; }
-}
-
-menuetto_ii_alto_global = \melodic{
- \time 3/4;
- \key D;
- \clef alto;
- \skip 2.*8;
- \bar ":|:";
- \skip 2.*1;
- \slurdotted
- \skip 2.*14;
- s2._"Menuetto I da Capo"
- \bar ":|";
-}
-
-menuetto_ii_alto_staff = \type Staff <
- \melodic \transpose c' \$menuetto_ii
- \$menuetto_ii_alto_global
-% \$menuetto_ii_alto_scripts
->
-
-\header{
-piece = "Menuetto II";
-opus = "";
-}
-\score{
- \$menuetto_ii_alto_staff
- \include "scs-paper.ly";
- \midi{ \tempo 4 = 130; }
-}
-
filename = "menuetto-cello.ly";
title = "Solo Cello Suites";
subtitle = "Suite II";
-piece = "Menuetto I";
+%piece = "Menuetto I";
source = "?";
% opus = "BWV 1008 no. 5";
opus = "";
dotted slurs
%}
-\version "1.0.0";
+\version "1.0.1";
\include "menuetto-urtext.ly";
\$menuetto_i_cello_staff
\include "scs-paper.ly";
\midi{ \tempo 4 = 110; }
+ \header{ piece = "Menuetto I"; }
}
menuetto_ii_cello_global = \melodic{
% \$menuetto_ii_cello_scripts
>
-\header{
-piece = "Menuetto II";
-opus = "";
-}
\score{
\$menuetto_ii_cello_staff
\include "scs-paper.ly";
\midi{ \tempo 4 = 130; }
+ \header{ piece = "Menuetto II"; }
}
% menuetto-urtext.ly
-% belongs together with -cello.ly and -alto.ly
+% belongs together with -cello.ly and -viola.ly
% (who is going to make a -violin.ly?)
%{
Well, there are still some scripts in this "urtext".
-But merging melodic and scripts doen't work too well yet (see alto_scripts).
+But merging melodic and scripts doen't work too well yet (see viola_scripts).
%}
menuetto_i_a = \melodic \relative c {
--- /dev/null
+\header{
+filename = "menuetto-viola.ly";
+title = "Solo Cello Suites";
+subtitle = "Suite II";
+% piece = "Menuetto I";
+description = "Transcribed for Viola";
+source = "?";
+% opus = "BWV 1008 no. 5";
+opus = "";
+composer = "Johann Sebastian Bach (1685-1750)";
+enteredby = "JCN";
+copyright = "public domain";
+}
+
+%{
+ Tested Features:breaking algorithm, chords, multivoice, accents,
+ dotted slurs
+%}
+
+\version "1.0.1";
+
+\include "menuetto-urtext.ly";
+
+menuetto_i_viola_global = \melodic{
+ \time 3/4;
+ \key f;
+ \clef alto;
+ \skip 2.*8;
+ \bar ":|:";
+ \clef violin;
+ \skip 2.*1;
+ \slurdotted
+ \skip 2.*3;
+ \clef alto;
+ \skip 2.*11;
+ s2._"Fine"
+ \bar ":|";
+}
+
+menuetto_i_viola_scripts = \melodic{
+ s2.
+ s8^"~"^1_2_4 s8*5
+ s2.*5
+ s4 s-\upbow s-\downbow
+ s2.-\upbow
+ s2.*5
+ s2 s4-\upbow
+ s4-\downbow s2
+ s2.*1
+ s2^0 s4
+ s2.*1
+ s4-\downbow s4-\upbow
+}
+
+menuetto_i_viola_staff = \type Staff <
+ \melodic \transpose c' \$menuetto_i
+ \$menuetto_i_viola_global
+% \$menuetto_i_viola_scripts
+>
+
+\score{
+ \$menuetto_i_viola_staff
+ \include "scs-paper.ly";
+ \midi{ \tempo 4 = 110; }
+ \header{ piece = "Menuetto I"; }
+}
+
+menuetto_ii_viola_global = \melodic{
+ \time 3/4;
+ \key D;
+ \clef alto;
+ \skip 2.*8;
+ \bar ":|:";
+ \skip 2.*1;
+ \slurdotted
+ \skip 2.*14;
+ s2._"Menuetto I da Capo"
+ \bar ":|";
+}
+
+menuetto_ii_viola_staff = \type Staff <
+ \melodic \transpose c' \$menuetto_ii
+ \$menuetto_ii_viola_global
+% \$menuetto_ii_viola_scripts
+>
+
+\score{
+ \$menuetto_ii_viola_staff
+ \include "scs-paper.ly";
+ \midi{ \tempo 4 = 130; }
+ \header{ piece = "Menuetto II"; }
+}
+
+++ /dev/null
-\header{
-filename = "prelude-alto.ly";
-title = "Solo Cello Suites";
-subtitle = "Suite II";
-piece = "Pr\\'elude"; % duh
-opus = "BWV 1008";
-% opus = "";
-composer = "Johann Sebastian Bach (1685-1750)";
-enteredby = "JCN";
-copyright = "public domain";
-}
-
-%{
- Tested Features:breaking algorithm, chords, multivoice, accents,
- dotted slurs
-%}
-
-\version "1.0.0";
-
-\include "prelude-urtext.ly";
-
-prelude_alto_global = \melodic{
- \time 3/4;
- \key f;
- \clef alto;
- \skip 2.*63;
- \bar "|.";
-}
-
-prelude_alto_scripts = \melodic{
-}
-
-prelude_alto_staff = \type Staff <
- \melodic \transpose c' \$prelude
- \$prelude_alto_global
- \$prelude_alto_scripts
->
-
-\score{
- \$prelude_alto_staff
- \include "scs-paper.ly";
- \midi{ \tempo 4 = 40; }
-}
-
filename = "prelude-cello.ly";
title = "Solo Cello Suites";
subtitle = "Suite II";
-piece = "Pr\\'elude"; % duh
+%piece = "Pr\\'elude"; % duh
opus = "BWV 1008";
% opus = "";
composer = "Johann Sebastian Bach (1685-1750)";
dotted slurs
%}
-\version "1.0.0";
+\version "1.0.1";
\include "prelude-urtext.ly";
\$prelude_cello_staff
\include "scs-paper.ly";
\midi{ \tempo 4 = 40; }
+ \header{ piece = "Pr\\'elude"; }
}
% prelude-urtext.ly
-% belongs together with -cello.ly and -alto.ly
+% belongs together with -cello.ly and -viola.ly
% who is going to make a -violin.ly?
%{
Well, there are still some scripts in this "urtext".
-But merging melodic and scripts doen't work too well yet see alto_scripts .
+But merging melodic and scripts doen't work too well yet see viola_scripts .
%}
% urg, Thread is gone, try Voice
--- /dev/null
+\header{
+filename = "prelude-viola.ly";
+title = "Solo Cello Suites";
+subtitle = "Suite II";
+% piece = "Pr\\'elude"; % duh
+opus = "BWV 1008";
+% opus = "";
+composer = "Johann Sebastian Bach (1685-1750)";
+enteredby = "JCN";
+copyright = "public domain";
+}
+
+%{
+ Tested Features:breaking algorithm, chords, multivoice, accents,
+ dotted slurs
+%}
+
+\version "1.0.1";
+
+\include "prelude-urtext.ly";
+
+prelude_viola_global = \melodic{
+ \time 3/4;
+ \key f;
+ \clef alto;
+ \skip 2.*63;
+ \bar "|.";
+}
+
+prelude_viola_scripts = \melodic{
+}
+
+prelude_viola_staff = \type Staff <
+ \melodic \transpose c' \$prelude
+ \$prelude_viola_global
+ \$prelude_viola_scripts
+>
+
+\score{
+ \$prelude_viola_staff
+ \include "scs-paper.ly";
+ \midi{ \tempo 4 = 40; }
+ \header{ piece = "Pr\\'elude"; }
+}
+
+++ /dev/null
-\header{
-filename = "sarabande-alto.ly";
-title = "Solo Cello Suites";
-subtitle = "Suite II";
-piece = "Sarabande";
-% opus = "BWV 1008";
-opus = "";
-composer = "Johann Sebastian Bach (1685-1750)";
-enteredby = "JCN";
-copyright = "public domain";
-}
-
-%{
- Tested Features:breaking algorithm, chords, multivoice, accents,
- dotted slurs
-%}
-
-\version "1.0.0";
-
-\include "sarabande-urtext.ly";
-
-sarabande_alto_global = \melodic{
- \time 3/4;
- \key f;
- \clef alto;
- \skip 2.*12;
- \bar ":|:";
- \skip 2.*16;
- \bar ":|";
-}
-
-sarabande_alto_scripts = \melodic{
-}
-
-sarabande_alto_staff = \type Staff <
- \melodic \transpose c' \$sarabande
- \$sarabande_alto_global
- \$sarabande_alto_scripts
->
-
-\score{
- \$sarabande_alto_staff
- \include "scs-paper.ly";
- \midi{ \tempo 4 = 40; }
-}
-
filename = "sarabande-cello.ly";
title = "Solo Cello Suites";
subtitle = "Suite II";
-piece = "Sarabande";
+% piece = "Sarabande";
% opus = "BWV 1008";
opus = "";
composer = "Johann Sebastian Bach (1685-1750)";
dotted slurs
%}
-\version "1.0.0";
+\version "1.0.1";
\include "sarabande-urtext.ly";
\$sarabande_cello_staff
\include "scs-paper.ly";
\midi{ \tempo 4 = 40; }
+ \header{ piece = "Sarabande"; }
}
% sarabande-urtext.ly
-% belongs together with -cello.ly and -alto.ly
+% belongs together with -cello.ly and -viola.ly
% (who is going to make a -violin.ly?)
%{
Well, there are still some scripts in this "urtext".
-But merging melodic and scripts doen't work too well yet (see alto_scripts).
+But merging melodic and scripts doen't work too well yet (see viola_scripts).
%}
n = { \slurnormal }
--- /dev/null
+\header{
+filename = "sarabande-viola.ly";
+title = "Solo Cello Suites";
+subtitle = "Suite II";
+% piece = "Sarabande";
+% opus = "BWV 1008";
+opus = "";
+composer = "Johann Sebastian Bach (1685-1750)";
+enteredby = "JCN";
+copyright = "public domain";
+}
+
+%{
+ Tested Features:breaking algorithm, chords, multivoice, accents,
+ dotted slurs
+%}
+
+\version "1.0.1";
+
+\include "sarabande-urtext.ly";
+
+sarabande_viola_global = \melodic{
+ \time 3/4;
+ \key f;
+ \clef alto;
+ \skip 2.*12;
+ \bar ":|:";
+ \skip 2.*16;
+ \bar ":|";
+}
+
+sarabande_viola_scripts = \melodic{
+}
+
+sarabande_viola_staff = \type Staff <
+ \melodic \transpose c' \$sarabande
+ \$sarabande_viola_global
+ \$sarabande_viola_scripts
+>
+
+\score{
+ \$sarabande_viola_staff
+ \include "scs-paper.ly";
+ \midi{ \tempo 4 = 40; }
+ \header{ piece = "Sarabande"; }
+}
+
+++ /dev/null
-\header{
-instrument="Alto";
-}
-
-instrument="alto";
-\include "solo-cello-suite-ii.ly"
-
--- /dev/null
+\header{
+instrument="Alto";
+}
+
+instrument="viola";
+\include "solo-cello-suite-ii.ly"
+
%{
%}
-\version "1.0.0";
+\version "1.0.1";
global =
Tested Features: stem direction, multivoice, forced accidentals.
%}
-\version "1.0.0";
+\version "1.0.1";
\include "nederlands.ly" % for correct parsing of note names
global = \melodic {
\time 4/4;
- \accidentals bes es as;
+ \keysignature bes es as;
\skip 1*31;
\bar "|."; |
}
copyright = "Public Domain";
}
-\version "1.0.0";
+\version "1.0.1";
global =
\melodic {
Ugh.. Wish we had grace notes.... It adds another dimension to this
piece of music. %}
-\version "1.0.0";
+\version "1.0.1";
cad = \melodic \relative c' {
}
-\version "1.0.0";
+\version "1.0.1";
allegro =
\melodic
definition below. --MB
%}
-\version "1.0.0";
+\version "1.0.1";
vi1=\melodic \relative c'' {
\time 4/4;
copyright = "public domain";
latexheaders= "headers";
}
-\version "1.0.0";
+\version "1.0.1";
%{
Silly latex file dropped; use ly2dvi
copyright = "public domain";
}
-\version "1.0.0";
+\version "1.0.1";
\include "standchen.ly"
description = "A schubert song in 20 pt";
}
-\version "1.0.0";
+\version "1.0.1";
% fool make-website
% \include "standchen.ly";
multiple \paper{}s in one \score
%}
-\version "1.0.0";
+\version "1.0.1";
$vocal_verse1 = \melodic\relative c{
% ugh: treble/bass
#: ineq-constrained-qp.cc:222
msgid "didn't converge!"
-msgstr "ik convederde niet!"
+msgstr "ik convergederde niet!"
#: ineq-constrained-qp.cc:224
msgid "Too much degeneracy. "
# bin/Makefile
depth = ..
-SEXECUTABLES=convert-mudela mudela-book ly2dvi
+SEXECUTABLES=convert-mudela mudela-book ly2dvi ly2dvi32
STEPMAKE_TEMPLATES=script
include $(depth)/make/stepmake.make
-# include $(stepdir)/Executable_targets.make
+include $(stepdir)/executable-targets.make
((1,0,0), conv, '0.1.21 -> 1.0.0 '))
+if 1: # need new a namespace
+ def conv (lines):
+ newlines = []
+ for x in lines:
+ x = regsub.gsub ('\\\\accidentals',
+ '\\\\keysignature',x)
+ x = regsub.gsub ('specialaccidentals *= *1',
+ 'keyoctaviation = 0',x)
+ x = regsub.gsub ('specialaccidentals *= *0',
+ 'keyoctaviation = 1',x)
+ newlines.append (x)
+ return newlines
+
+
+ conversions.append (
+ ((1,0,1), conv, '\\accidentals -> \\keysignature, ' +
+ 'specialaccidentals -> keyoctaviation\n'))
+
############################
# Original LaTeX file made by Mats Bengtsson, 17/8 1997
#
-VERSION="0.12"
+VERSION="0.12.jcn1"
NAME=ly2dvi.sh
IDENTIFICATION="$NAME $VERSION"
NOW=`date`
# NEWS
+# 0.12.jcn1
+# - mudelaDefs really fixed (sorry, PC)
+
# 0.12
# - -S/--sourcedir switch
-#
#
#0.11.jcn3
#
mudelaDefs(){
# Include \def\mudela-definitions
+# The aim here is to pick up the definition for the
+# current file, then any other file.
#
+mudelatmp=$TMP/mudelaDefs$$
+# Use `cat' to prevent filenames being prepended
+#
+cat "$File" $OF | fgrep "$MU_DEF" > $mudelatmp
for L in $MU_DEF
do
- for F in "$File" "$OF"
- do
- LL=`sed -n 's/\\\\def\\\\'"$L"'{\([^}]*\)}.*$/\1/p' "$F"`
- [ "$LL" ] && {
- Echo "$1\\"$L'{'"$LL"'}%' >> $LatF
- break
- }
- done
+ # This converts \def\mudelatitle{fred}
+ # to \mudelatitle{fred} or to
+ # \def\mudelatitle{fred}
+ # and stops after the first one found.
+ sed -n '/\\def\\'"$L"'{\([^}]*\)}.*$/{
+ s//'"`regexp_quote \"$1\"`"'\\'"$L"'{\1}%/p
+ q
+ }' $mudelatmp >> $LatF
done
+rm -f $mudelatmp
}
#
+#
startFile(){
#
# LaTeX file name
AUTHORS
o Jan Nieuwenhuizen <janneke@gnu.org>,
- http://www.digicash.com/~jan
+ http://www.xs4all.nl/~jantien
Main author.
o Han-Wen Nienhuys <hanwen@cs.uu.nl>,
-
-
NAME
-
INSTALL - installing StepMake
-
-
DESCRIPTION
-
This page documents installation and usage of StepMake
-
-
ABSTRACT
+StepMake is a drop-in package that takes care of generic Makefile and
+packaging/distribution issues. It enables you to write only the simplest of
+Makefile snippets, while providing a series powerful make targets. Features
+include speed, wildcarding, out/ dir build, stateless Makefiles and package
+clustering. It includes some handy scripts for making (package-)diffs and
+patches, making binary distributions etc.
+
+To use StepMake with your package, you do something remotely like:
+
+ tar xzf releases/stepmake-0.1.23
+ cd package-x.x.x/ # package to be StepMake-ised
+ ./../stepmake-0.1.23/bin/stepmakeise.sh
+
+You'll have to customize at least the files:
+
+ ./VERSION .
+ ./configure.in
+
+to your package's needs. You might want to take a look at:
+
+ ./make/Toplevel.make.in
+ ./config.hh.in
+ ./config.make.in
+
+Also, you should put a Makefile in every subdirectory of your
+package. These makefiles generally are quite simple, e.g. this
+is a the makefile for an include directory of LilyPond:
+
+ # lily/include/Makefile
+
+ depth = ../..
+ include $(depth)/make/Stepmake.make
+
+it will identify all .h, .hh, ... files and take care of distributing
+them.
+
+There's a make/Template.make that you can use as an example.
+See also the Makefiles in the LilyPond or Yodl package.
+
+Once included in your package, StepMake (or in fact, any
+StepMake-ised package) behaves as a normal subdirectory;
+make commands such as 'make dist' recurse into the stepmake tree
+(For a list of available targets, type make help after
+configuring).
+Stepmake (and any changes made) will be distributed with the main
+pacakage. However, StepMake doesn't lose its independency, change
+to the stepmake directory, and it'll behave as a main package.
+You shouldn't version directory names of subpackages, otherwise
+you'll see that package twice in each patch when you upgrade.
+
+PREREQUISITES
+
+To use StepMake with a package you need:
+
+o A GNU system: StepMake is known to work on these GNU systems: Linux
+ (PPC, intel), FreeBSD, AIX, NeXTStep, IRIX, Digital Unix and Solaris.
+ If you have the Cygnus WINDOWS32 port of the GNU utils, it will even
+ work in Windows NT/95, but we don't promise to support it.
+o GNU make
+o GNU autoconf
+
+RECOMMENDED
+
+Although not strictly necessary, these are recommended to have.
+
+o Python
+o Yodl. All documentation will be in Yodl. (1.22.jcn3)
+o GNU find
+
+INTERNALS
+
+Over time, we put a lot of effort in the configure, make, distribute
+system (CMDS) for LilyPond. Some months ago, we realised it was not
+standard GNU --- we require GNU make for building, and Python for extra
+scripting. In an effort to be more GNU, we tried automake, but after two
+weeks we realised the costs were too high for us and we reverted to our
+own system (see automake.urgh). Not long after that i was confronted
+with two other packages that lacked a decent CMDS. I realised that Lily's
+would be perfect, it's modular and easy. The only problem was to make a
+clean cut between generic and Lily specific stuff. The result was
+StepMake: a bunch of generic makefiles, found in:
+
+ stepmake/stepmake/*.make
+
+eneric helper scripts:
+
+ stepmake/bin/*.sh
+ stepmake/bin/*.py
+
+and modular configure functions:
+
+ stepmake/configure.in
+ stepmake/aclocal.m4
+ stepmake/config.hh.in
+ stepmake/config.make.in
+
+Of course, every package has its own configure- and make peculiarities.
+The best way to create the configure scripts is to copy them from
+stepmake (Actually, stepmake/bin/stepmakeise.sh will do
+that for you.) into you package's toplevel directory. For most
+packages, you'll only have to comment in/out some functions in
+configure.in.
+
+Package specific makefiles go in:
+
+ make/Targets.make
+ make/Rulese.make
+ make/Substitute.make
+
+and are included by the generic StepMake makefiles.
+
+MAINTAINING
+
+If you want to make and manage (binary) distributions, create and apply
+patches, you'll need some framework that's outside of the package's
+sourcetree.
+For a number of simple maintenance tasks, StepMake will therefore assume
+the following directory structure:
+
+ doos/ # gnu/windows32 build and binary releases
+ harmonia -> harmonia-x.y.z
+ harmonia-x.y.z/
+ lilypond -> lilypond-x.y.z # symlink to development directory
+ lilypond-x.y.z/ # current development
+ patches/ # patches between different releases
+ RedHat/BUILD # RedHat build and binary releases
+ RedHat/RPMS
+ RedHat/SPECS
+ releases/ # .tar.gz releases
+ test/ # tarballs and diffs from current version
+ yodl -> yodl-1.30.17
+ yodl-1.30.17
+
+with prefix $HOME/usr/src
+and (for building rpms only) in $HOME/.rpmrc:
+
+ topdir: /home/fred/usr/src/RedHat
+
+Check and update the layout with the command:
+
+ ./stepmake/bin/stepdirs.sh
+
+SEE ALSO
+
+../PATCHES.txt
+
+CONFIGURING
+
+Stepmake comes with a number of precooked configure functions for
+general needs, such as AC_STEPMAKE_COMPILE for simple C development
+and AC_STEPMAKE_CXX for C++.
+
+See configure.in and comment in/out the functions that your package
+needs. For specific needs, you can write your own autoconf code,
+see info autoconf.
+
+AUTHORS
+
+Jan Nieuwenhuizen <janneke@gnu.org>
+
+Han-Wen Nienhuys <hanwen@cs.uu.nl>
+Have fun!
+pl 47
+ - bf: patch in website after 'make release'
+ - windows ln -> cp
+ - bf: texinfo build
+
+pl 46
+ - bf: versioning typo: topleveL_MAJOR
+ - bf: reincluded optional STATE-VECTOR
pl 45
- Foo_rules.make -> foo-rules.make
PACKAGE_NAME=StepMake
MAJOR_VERSION=0
MINOR_VERSION=1
-PATCH_LEVEL=45
+PATCH_LEVEL=47
MY_PATCH_LEVEL=
# use the above to send patches, always empty for released version:
AC_DEFUN(AC_STEPMAKE_COMPILE, [
# -O is necessary to get inlining
- OPTIMIZE="-O"
+ OPTIMIZE=""
+ CXXFLAGS=${CXXFLAGS:-""}
checking_b=yes
- optimise_b=tja
+ optimise_b=no
profile_b=no
debug_b=yes
[checking_b=$enableval] )
# actually, the default is: tja='-O' to get inlining...
- # off=''
+ # off='' --jcn
+
+ #actually, that sucks.
+ # tja looks like a typo. Default is optimisation off. --hwn
+
AC_ARG_ENABLE(optimise,
[ enable-optimise use maximal speed optimisations. Default: off],
[optimise_b=$enableval])
fi
if test "$optimise_b" = yes; then
- DEFINES="$DEFINES -finline-functions"
- OPTIMIZE="-O2"
+ OPTIMIZE="-O2 -finline-functions"
fi
if test "$optimise_b" = no; then
if test $profile_b = yes; then
EXTRA_LIBES="-pg"
- DEFINES="$DEFINES -pg"
+ OPTIMIZE="$OPTIMIZE -pg"
fi
if test $debug_b = yes; then
- DEFINES="$DEFINES -g"
+ OPTIMIZE="$OPTIMIZE -g"
fi
# however, C++ support in mingw32 v 0.1.4 is still flaky
AC_CHECK_HEADER(FlexLexer.h, true,
AC_STEPMAKE_WARN(can"\'"t find flex header. Please install Flex headers correctly))
- CXXFLAGS="$DEFINES $OPTIMIZE"
+ CPPFLAGS="$CPPFLAGS $DEFINES"
+ CXXFLAGS="$CXXFLAGS $OPTIMIZE"
LDFLAGS=$EXTRA_LIBES
AC_SUBST(CXXFLAGS)
AC_DEFUN(AC_STEPMAKE_END, [
AC_OUTPUT($CONFIGFILE.make:config.make.in)
- rm -f Makefile
- cp make/toplevel.make.in ./Makefile
- chmod 444 Makefile
+ rm -f GNUmakefile
+ cp make/toplevel.make.in ./GNUmakefile
+ chmod 444 GNUmakefile
])
AC_DEFUN(AC_STEPMAKE_GXX, [
stepmake=stepmake
AC_SUBST(stepmake)
+ STATE_VECTOR=`ls make/STATE-VECTOR 2>/dev/null`
+ if test "x$STATE_VECTOR" != "x"; then
+ STATE_VECTOR="\$(depth)/$STATE_VECTOR"
+ fi
+ AC_SUBST(STATE_VECTOR)
+
CONFIGSUFFIX=
AC_ARG_ENABLE(config,
[ enable-config=FILE put configure settings in config-FILE.make],
AC_CHECK_SEARCH_RESULT($PYTHON, python, You should install Python)
if test "x$OSTYPE" = "xcygwin32" || test "x$OSTYPE" = "xWindows_NT"; then
- LN=cp # hard link does not work under cygnus-nt (yet?)
+ LN=cp # hard link does not work under cygnus-nt
+ LN_S=cp # symbolic link does not work for native nt
ZIP="zip -r -9" #
DOTEXE=.exe
- INSTALL="\$(stepdir)/../bin/install-dot-exe.sh -c"
+ DIRSEP='\\'
+ PATHSEP=';'
+ INSTALL="\$(stepdir)/../bin/install-dot-exe.sh -c"
else
+ DIRSEP='/'
+ PATHSEP=':'
LN=ln
+ LN_S='ln -s'
ZIP="zip -r -9"
INSTALL="\$(stepdir)/../bin/install-sh -c"
fi
AC_SUBST(DOTEXE)
AC_SUBST(ZIP)
AC_SUBST(LN)
+ AC_SUBST(LN_S)
AC_SUBST(INSTALL)
-
+ AC_DEFINE_UNQUOTED(DIRSEP, '${DIRSEP}')
+ AC_DEFINE_UNQUOTED(PATHSEP, '${PATHSEP}')
+
+
AC_STEPMAKE_DATADIR
])
--- /dev/null
+#!/bin/sh
+# package-zip32.sh --- make a windoze formated distribution
+
+set -x
+
+if [ $# -lt 1 ]; then
+ echo "Usage: $0 PACKAGE_SOURCEDIR"
+ exit 2
+fi
+
+srcdir=$1
+shift
+
+. $srcdir/VERSION
+
+VERSION=$MAJOR_VERSION.$MINOR_VERSION.$PATCH_LEVEL
+if [ "x$MY_PATCH_LEVEL" != "x" ]; then
+ VERSION=$VERSION.$MY_PATCH_LEVEL
+fi
+
+package=`echo $PACKAGE_NAME | tr '[A-Z]' '[a-z]'`
+name=$package-$VERSION
+ZIP_CMD="zip -r -9"
+
+here=`pwd`
+cd $srcdir/..
+PACKAGE_ROOTDIR=`pwd`
+export PACKAGE_ROOTDIR
+cd $here
+
+RELEASE_DIR="$PACKAGE_ROOTDIR/bin.releases/winnt"
+ZIP_FILE="$RELEASE_DIR/$name.bin.zip"
+
+
+if [ ! -e $RELEASE_DIR ]; then
+ mkdir -p $RELEASE_DIR
+fi
+
+distdir=/tmp/${name}
+
+rm -f ${srcdir}/config.cache
+${srcdir}/configure --prefix=${distdir} \
+ --srcdir=${srcdir} \
+ --enable-tex-prefix=${distdir}/texmf \
+ --enable-tex-dir=${distdir}/texmf/tex \
+ --enable-mf-dir=${distdir}/texmf/mf
+
+if ! make ; then
+ echo "make failed"
+ exit 1
+fi
+
+if ! make install ; then
+ echo "make install failed"
+ exit 1
+fi
+
+#
+# Post install clean up
+#
+CYGWIN_LIB=$PACKAGE_ROOTDIR/distfiles/winnt/cygwinb19.dll
+if [ ! -e $CYGWIN_LIB ]; then
+ echo "Unable to locate $CYGWIN_LIB"
+ exit 1
+fi
+
+cd $distdir/bin
+cp $CYGWIN_LIB .
+mv ly2dvi32 ly2dvi.py
+cd $distdir/..
+$ZIP_CMD $ZIP_FILE $name
+echo "Wrote $ZIP_FILE"
+exit 0
+
+
package = @package@
PACKAGE_NAME = @PACKAGE_NAME@
stepmake = @stepmake@
+state-vector = @STATE_VECTOR@
CONFIGSUFFIX = @CONFIGSUFFIX@
MAKEINFO = @MAKEINFO@
ICFLAGS = @ICFLAGS@
FIND = @FIND@
FLEX = @FLEX@
LN = @LN@
+LN_S = @LN_S@
MSGFMT = @MSGFMT@
PERL = @PERL@
PYTHON = @PYTHON@
stepmake=stepmake
+ STATE_VECTOR=`ls make/STATE-VECTOR 2>/dev/null`
+ if test "x$STATE_VECTOR" != "x"; then
+ STATE_VECTOR="\$(depth)/$STATE_VECTOR"
+ fi
+
+
CONFIGSUFFIX=
# Check whether --enable-config or --disable-config was given.
if test "${enable_config+set}" = set; then
fi
echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:635: checking host system type" >&5
+echo "configure:641: 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:660: checking for $ac_word" >&5
+echo "configure:666: 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:694: checking for $ac_word" >&5
+echo "configure:700: 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:731: checking for $ac_word" >&5
+echo "configure:737: 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
# 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:765: checking for $ac_word" >&5
+echo "configure:771: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_BASH'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "python", so it can be a program name with args.
set dummy python; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:798: checking for $ac_word" >&5
+echo "configure:804: 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
if test "x$OSTYPE" = "xcygwin32" || test "x$OSTYPE" = "xWindows_NT"; then
- LN=cp # hard link does not work under cygnus-nt (yet?)
+ LN=cp # hard link does not work under cygnus-nt
+ LN_S=cp # symbolic link does not work for native nt
ZIP="zip -r -9" #
DOTEXE=.exe
- INSTALL="\$(stepdir)/../bin/install-dot-exe.sh -c"
+ DIRSEP='\\'
+ PATHSEP=';'
+ INSTALL="\$(stepdir)/../bin/install-dot-exe.sh -c"
else
+ DIRSEP='/'
+ PATHSEP=':'
LN=ln
+ LN_S='ln -s'
ZIP="zip -r -9"
INSTALL="\$(stepdir)/../bin/install-sh -c"
fi
+
+ cat >> confdefs.h <<EOF
+#define DIRSEP '${DIRSEP}'
+EOF
+
+ cat >> confdefs.h <<EOF
+#define PATHSEP '${PATHSEP}'
+EOF
+
+
if test "$datadir" = "\${prefix}/share"; then
datadir='${prefix}/share/'$package
echo $ac_n "checking language""... $ac_c" 1>&6
-echo "configure:930: checking language" >&5
+echo "configure:952: 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:962: checking for $ac_word" >&5
+echo "configure:984: 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:996: checking for $ac_word" >&5
+echo "configure:1018: 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:1030: checking for $ac_word" >&5
+echo "configure:1052: 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:1063: checking for $ac_word" >&5
+echo "configure:1085: 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:1097: checking for $ac_word" >&5
+echo "configure:1119: 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:1131: checking for $ac_word" >&5
+echo "configure:1153: 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:1185: checking for $ac_word" >&5
+echo "configure:1207: 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
s%@AUTOGENERATE@%$AUTOGENERATE%g
s%@absolute_builddir@%$absolute_builddir%g
s%@stepmake@%$stepmake%g
+s%@STATE_VECTOR@%$STATE_VECTOR%g
s%@CONFIGSUFFIX@%$CONFIGSUFFIX%g
s%@host@%$host%g
s%@host_alias@%$host_alias%g
s%@DOTEXE@%$DOTEXE%g
s%@ZIP@%$ZIP%g
s%@LN@%$LN%g
+s%@LN_S@%$LN_S%g
s%@INSTALL@%$INSTALL%g
s%@DIR_DATADIR@%$DIR_DATADIR%g
s%@YODL@%$YODL%g
test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
- rm -f Makefile
- cp make/toplevel.make.in ./Makefile
- chmod 444 Makefile
+ rm -f GNUmakefile
+ cp make/toplevel.make.in ./GNUmakefile
+ chmod 444 GNUmakefile
STEPMAKE_TEMPLATES=makedir
BLURBS=BLURB # COPERTINA FLAPTEKST
+ifneq ($(strip $(state-vector)),)
+EXTRA_DIST_FILES = STATE-VECTOR
+endif
include $(depth)/make/stepmake.make
-
Begin3
Title: StepMake
-Version: .1.45
-Entered-date: 24AUG98
+Version: 0.1.47
+Entered-date: 02SEP98
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-.1.45.tar.gz
+ 40k stepmake-0.1.47.tar.gz
Original-site: pcnov095.win.tue.nl /pub/lilypond/development/
- 40k stepmake-.1.45.tar.gz
+ 40k stepmake-0.1.47.tar.gz
Copying-policy: GPL
End
Name: stepmake
-Version: .1.45
+Version: 0.1.47
Release: 1
Copyright: GPL
Group: Development
-Source0: pcnov095.win.tue.nl:/pub/lilypond/development/stepmake-.1.45.tar.gz
+Source0: pcnov095.win.tue.nl:/pub/lilypond/development/stepmake-0.1.47.tar.gz
Summary: generic make package
Packager: janneke@gnu.org (Jan Nieuwenhuizen)
Buildroot: /tmp/stepmake-install
include $(depth)/VERSION
-topleveL_MAJOR_VERSION:=$(MAJOR_VERSION)
+TOPLEVEL_MAJOR_VERSION:=$(MAJOR_VERSION)
TOPLEVEL_MINOR_VERSION:=$(MINOR_VERSION)
TOPLEVEL_PATCH_LEVEL:=$(PATCH_LEVEL)
# use to send patches, always empty for released version:
--- /dev/null
+
+LINECOMMENT=\#
+
+default:
+ chmod +w $(OUTFILE)
+ echo "$(LINECOMMENT) WARNING WARNING WARNING WARNING" > $(OUTFILE)
+ echo "$(LINECOMMENT) do not edit! this is $(OUTFILE), generated from $(INFILE)" >> $(OUTFILE)
+ cat $(INFILE) >> $(OUTFILE)
+ chmod -w $(OUTFILE)
doc: do-doc
+$(outdir)/$(package).info: $(outdir)/topinfo.texinfo $(OUTTEXINFO_FILES)
+ $(MAKEINFO) -o $@ $(outdir)/topinfo.texinfo
+
# what to do here?
ifneq ($(strip $(INFO_FILES)),)
INFOINSTALL=$(MAKE) INSTALLATION_OUT_DIR=$(infodir) depth=$(depth) INSTALLATION_OUT_FILES="$(INFO_FILES)" -f $(stepdir)/install-outfiles.sub.make $@
-$(outdir)/$(package).info: check-texinfo-deps $(OUTTEXINFO_FILES)
- $(MAKEINFO) -o $@ $(outdir)/topinfo.texinfo
-
localinstall: # $(INFO_FILES)
-$(INSTALL) -d $(infodir)
$(INFOINSTALL)
OUTTXT_FILES = $(OUTYO_FILES:.yo=.txt) $(OUTIN_FILES:.yo=.txt)
OUTHTML_FILES = $(OUTYO_FILES:.yo=.html) $(OUTIN_FILES:.yo=.html) # $(OUTREADME_HTML_FILES)
# OUTTEXINFO_FILES= $(addprefix $(outdir)/, $(addsuffix .texinfo,$(basename $(YO_FILES) .yo)))
-# OUTTEXINFO_FILES = $(outdir)/topinfo.texinfo $(outdir)/mutopia.texinfo
OUTREADME_TXT_FILES=$(addprefix $(outdir)/,$(addsuffix .txt, $(README_TOP_FILES)))
OUTREADME_HTML_FILES=$(addprefix $(outdir)/,$(addsuffix .html, $(README_TOP_FILES)))
+++ /dev/null
-# stepmake/documentation.shared.make
-# urg: stuff shared between yodl/lily/stepmake
-
-# could/should do this for bin/Makefile make/Makefile too
-
-### below here is shared between lily/yodl/Documentation and topdocs...
-
-include $(stepdir)/documentation_vars.make
-include $(stepdir)/documentation_rules.make
(cd $(outdir); sh ../$(step-bindir)/tar-docxx.sh $(package)-$(TOPLEVEL_VERSION).tar.gz)
-
-
+update-state-vector:
+ifneq ($(strip $(state-vector)),)
+ if [ "`tail -1 $(state-vector)`" != "$(TOPLEVEL_VERSION)" ]; then\
+ echo $(TOPLEVEL_VERSION) >> $(state-vector); \
+ fi
+endif
local-dist: $(DIST_FILES) $(OUT_DIST_FILES) $(NON_ESSENTIAL_DIST_FILES)
mkdir -p $(distdir)/$(localdir)
@echo "configure changed! You should probably reconfigure manually."
@echo "**************************************"
(cd $(depth); ./config.status)
+ touch $@ # do something for multiple simultaneous configs.
# Initial_outfiles.sub.make
include $(depth)/make/stepmake.make
-include $(stepdir)/install_outfiles.make
+include $(stepdir)/install-outfiles.make
mv $(@F) $@
rm $(basename $< ).*gf
+
+$(outdir)/%.tfm: %.mf
+ mf '\mode:=ljfour; input $<;'
+ mv $(@F) $(outdir)
+ rm $(basename $<).*{gf,log}
-#empty
+
+
+tfm: $(TFM_FILES)
+
+dvi: $(DVI_FILES)
+
-MF_FILES = $(wildcard *.mf)
+MF_FILES := $(wildcard *.mf)
FONT_FILES = $(wildcard *[0-9].mf)
EXTRA_DIST_FILES += $(MF_FILES)
+MF_TFM_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.tfm))
+MF_DVI_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.dvi))
+MF_LOG_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.log))
+DVI_FILES += $(MF_DVI_FILES)
+TFM_FILES += $(MF_TFM_FILES)
+
+
update:
$(PYTHON) $(step-bindir)/update.py --package=$(topdir) $(makeflags)
-zip:
+xzip:
$(SHELL) $(step-bindir)/package-zip.sh $(topdir) $(prefix:/%=%)
+zip:
+ $(SHELL) $(step-bindir)/package-zip32.sh $(topdir)
+
$(outdir)/%.1: %.texinfo
$(texi2man)
-# $(outdir)/%.info: %.texinfo
-# $(MAKEINFO) -o $@ $<
-
$(outdir)/%.info: $(outdir)/%.texinfo
$(MAKEINFO) -o $@ $<
$(texi2html)
$(PYTHON) $(step-bindir)/add-html-footer.py --package=$(topdir) --index $(depth)/../index.html $@
-$(outdir)/%.texinfo: %.texinfo
- cp $< $@
-
$(outdir)/%.1: $(outdir)/%.texinfo
-$(texi2man)
rm -f configure
GNUmakefile: make/toplevel.make.in
- chmod +w $@
- echo "# WARNING WARNING WARNING WARNING" > $@
- echo "# do not edit! this is generated from make/Toplevel.make.in" >> $@
- cat $< >> $@
- chmod -w $@
+ $(MAKE) INFILE=$< OUTFILE=$@ -f $(stepdir)/automatically-generated.sub.make
aclocal.m4: $(stepdir)/../aclocal.m4
- cp $< $@
+ $(MAKE) INFILE=$< OUTFILE=$@ LINECOMMENT=dnl -f $(stepdir)/automatically-generated.sub.make
+
local-WWW: #index.html
WWW-clean:
$(MAKE) CONFIGSUFFIX='www' clean
-dist:
+dist:
+ $(MAKE) update-state-vector
rm -rf $(distdir)
$(MAKE) local-dist $(distdir)
chmod -R a+r $(distdir)
# Yolily_topdoc_vars.make
-# INFO_FILES = $(outdir)/$(package).info
-
TO_TOP_FILES=$(addprefix $(outdir)/, $(README_TOP_FILES))
$(MAKE) CONFIGSUFFIX='www' -C Documentation WWW
rm -f `find . -name \*.html~ -print`
find `find Documentation -type d -name 'out-www'` -not -name '*dvi' -not -name '*ly' -not -name '*tex' -not -name '*.ps' -not -name 'out-www' > wwwlist
+ -ln -f $(patch-dir)/$(distname).diff.gz out-www
-ln -f $(depth)/$(distname).diff.gz out-www
tar cfz $(outdir)/htmldoc.tar.gz `cat wwwlist` `ls *.gif out-www/$(distname).diff.gz $(ERRORLOG)` index.html