]> git.donarmstrong.com Git - lilypond.git/commitdiff
Typo fix in git-starting, add AU 1 to CG, fix url margin problem in doc-work
authorJonathan Kulp <jonlancekulp@gmail.com>
Tue, 24 Feb 2009 03:04:15 +0000 (21:04 -0600)
committerTrevor Daniels <t.daniels@treda.co.uk>
Tue, 24 Feb 2009 12:25:33 +0000 (12:25 +0000)
Documentation/devel/compiling.itexi
Documentation/devel/doc-work.itexi
Documentation/devel/git-starting.itexi

index d782815936cfda97ff36716680c1c153b17657f9..87186d273ed64157bafd37e12a0abfdbb2cb7c60 100644 (file)
 @node Compiling
 @chapter Compiling
 
+
+@node Compiling from source
+@section Compiling from source
+
+@ignore
+You can also compile LilyPond directly from the source code. This
+requires that you can read English, so this section is not
+translated.  If you really want to compile LilyPond, see
+@iftex
+@c DO NOT translate the following line at all.
+@ref{Compiling from source,,,lilypond-program,Application Usage}.
+@end iftex
+@ifhtml
+@c Please translate the following line (but not the .html file name)
+the @uref{Compiling-from-source.html,documentation in English}.
+@end ifhtml
+@end ignore
+
+@c TRANSLATORS:
+@c   Please **do not** translate anything below this line.  Users
+@c   should not be compiling LilyPond themselves; if they really
+@c   want to do so, they should be able to read the English docs,
+@c   because they'll probably need to ask questions in English
+@c   on the -devel list.   -gp
+@c Instead, please uncomment and translate the paragraph above,
+@c and remove all stuff (menu, nodes, contents) below this line.
+
+@menu
+* Downloading source code::
+* Requirements::
+* Building LilyPond::
+* Building documentation::
+* Testing LilyPond::
+* Problems::
+@end menu
+
+@node Downloading source code
+@subsection Downloading source code
+
+Download source
+
+@itemize
+@item tarballs from
+@uref{http://lilypond.org/download/} by HTTP.
+@item tarballs from
+@uref{http://download.linuxaudio.org/lilypond/} by HTTP.
+@item
+GIT from @uref{http://git.sv.gnu.org/gitweb/?p=lilypond.git;a=summary,git.sv.gnu.org}
+
+@example
+git clone git://git.sv.gnu.org/lilypond.git
+@end example
+
+The repository does not contain generated files.  To create
+@file{configure}, run
+@example
+./autogen.sh
+@end example
+@end itemize
+
+For information on packaging, see @uref{http://lilypond.org/devel}.
+
+
+@node Requirements
+@subsection Requirements
+
+@unnumberedsubsubsec Compilation
+
+In addition to the packages needed for running LilyPond (see below), you
+need the following extra packages for building.
+
+When installing a binary package FOO, you may need to install the
+FOO-devel, libFOO-dev or FOO-dev package too.
+
+@itemize
+
+@item @uref{http://fontforge.sf.net/,FontForge} 20060125 or newer.
+
+@item @uref{http://metafont.tutorial.free.fr/,MetaFont} (mf-nowin, mf, mfw or
+mfont binaries) and @uref{http://cm.bell-labs.com/who/hobby/MetaPost.html,MetaPost}
+(mpost binary), usually packaged with a @LaTeX{} distribution like
+tetex or texlive.
+
+@item @uref{http://www.lcdf.org/~eddietwo/type/#t1utils,t1utils}
+(version 1.33 or newer recommended).
+
+@item New Century Schoolbook fonts, as PFB files.  These are shipped with
+X11 and Ghostscript, and are named @file{c059033l.pfb}
+@file{c059036l.pfb}, @file{c059013l.pfb} and @file{c059016l.pfb}.
+
+@item @uref{http://www.gnu.org/software/guile/guile.html,GUILE} (version
+1.8.2 or newer).  If you are installing binary packages, you may need to
+install guile-devel or guile-dev or libguile-dev too.
+
+@item @uref{ftp://ftp.gnu.org/gnu/texinfo/,Texinfo} (version 4.11 or newer).
+
+@item @uref{http://gcc.gnu.org/, The GNU c++ compiler} (version 3.4 or
+newer.  4.x is strongly recommended).
+
+@item @uref{http://www.python.org,Python} (version 2.4 or newer)
+
+@item @uref{ftp://ftp.gnu.org/gnu/make/,GNU Make} (version 3.78 or newer).
+
+@item @uref{http://www.gnu.org/software/gettext/gettext.html,gettext}
+(version 0.17 or newer).
+
+@item @uref{http://www.gnu.org/software/flex/,Flex}.
+
+@item @uref{http://www.perl.org/,Perl}.
+
+@item @uref{http://www.gnu.org/software/flex/,GNU Bison}.
+
+@item All packages required for running, including development packages with
+header files and libraries.
+
+@end itemize
+
+
+@unnumberedsubsubsec Running requirements
+
+Running LilyPond requires proper installation of the following software
+
+@itemize
+
+@item @uref{http://www.freetype.org/,Freetype} (version 2.1.10 or newer).
+@item @uref{http://fontconfig.org/,FontConfig} (version 2.2 or newer).
+@item @uref{http://www.pango.org/,Pango} (version 1.12 or newer).
+@item @uref{http://www.gnu.org/software/guile/guile.html,GUILE}
+(version 1.8.2 or newer), or patch 1.8.1 with
+@uref{http://lilypond.org/vc/gub.darcs/patches/guile-1.8-rational.patch}.
+@item @uref{http://www.python.org,Python} (version 2.4 or newer).
+@item @uref{http://www.ghostscript.com,Ghostscript} (version 8.15 or
+newer. 8.60 recommended)
+@item Dejaview.  (This is normally installed by default)
+@end itemize
+
+International fonts are required to create music with international text
+or lyrics.
+
+
+@unnumberedsubsubsec Requirements for building documentation
+
+You can view the documentation online at
+@uref{http://lilypond.org/doc/}, but you can also build it locally.
+This process requires a successful compile of LilyPond, and some
+additional tools and packages:
+
+@itemize
+@item The @uref{http://netpbm.sourceforge.net/,netpbm utilities}
+@item ImageMagick
+@item International fonts (see input/regression/utf-8.ly for hints
+about which font packages are necessary for your platform)
+@item Ghostscript 8.60 or newer, or 8.50 with the patch from
+@uref{http://bugs.ghostscript.com/show_bug.cgi?id=688154}
+and the patch from
+@uref{http://bugs.ghostscript.com/show_bug.cgi?id=688017}.
+@item @uref{http://www.nongnu.org/texi2html/,Texi2HTML} 1.80 or newer
+@item rsync
+@end itemize
+
+
+@node Building LilyPond
+@subsection Building LilyPond
+
+@unnumberedsubsubsec Compiling
+
+To install GNU LilyPond, type
+
+@example
+gunzip -c lilypond-x.y.z | tar xf -
+cd lilypond-x.y.z
+./configure            # run with --help for applicable options
+make
+su -c 'make install'
+@end example
+
+@noindent
+If you are not root, you should choose a @code{--prefix} argument that
+points into your home directory, e.g.
+
+@example
+./configure --prefix=$HOME/usr
+@end example
+
+
+@unnumberedsubsubsec Compiling for multiple platforms
+
+If you want to build multiple versions of LilyPond with different
+configuration settings, you can use the @code{--enable-config=CONF}
+option of @command{configure}.  You should use @code{make conf=CONF}
+to generate the output in @file{out-CONF}.  For example, suppose you
+want to build with and without profiling, then use the following for
+the normal build
+
+@example
+./configure --prefix=$HOME/usr/ --enable-checking
+make
+make install
+@end example
+
+and for the profiling version, specify a different configuration
+
+@example
+./configure --prefix=$HOME/usr/ --enable-profiling --enable-config=prof --disable-checking
+make conf=prof
+make conf=prof install
+@end example
+
+
+@unnumberedsubsubsec Compiling outside the source tree
+
+It is possible to compile LilyPond in a build tree different from the
+source tree, with @code{--srcdir} option of @command{configure}:
+
+@example
+mkdir lily-build && cd lily-build
+@var{sourcedir}/configure --srcdir=@var{sourcedir}
+
+@end example
+
+
+@unnumberedsubsubsec Useful @command{make} variables
+
+If a less verbose build output if desired, the variable
+@code{QUIET_BUILD} may be set to @code{1} on @command{make} command
+line, or in @file{local.make} at top of the build tree.
+
+
+@node Building documentation
+@subsection Building documentation
+
+This requires a successful compile of LilyPond, or using an external
+LilyPond binary.
+
 @menu
-* move AU 1 here::
+* Commands for building documentation:: Compiling and installing the documentation.
+* Building documentation without compiling LilyPond:: Using a LilyPond binary already installed.
 @end menu
 
+@node Commands for building documentation
+@unnumberedsubsubsec Commands for building documentation
+
+The documentation is built by issuing
+
+@example
+make web
+@end example
+
+After compilation, the HTML documentation tree is available in
+@file{out-www/offline-root/}, and can be browsed locally.
+
+The HTML and PDF files can be installed into the standard documentation
+path by issuing
+
+@example
+make web-install
+@end example
+
+@noindent
+This also installs Info documentation with images if the installation
+prefix is properly set; otherwise, instructions for manual installation
+of Info documentation are printed on standard output.
+
+It is also possible to build a documentation tree in
+@file{out-www/online-root/}, with special processing, so it can be used
+on a website with content negotiation for automatic language selection;
+this can be achieved by issuing
+
+@example
+make WEB_TARGETS=online web
+@end example
+
+@noindent
+and both @q{offline} and @q{online} targets can be generated by issuing
+
+@example
+make WEB_TARGETS="offline online" web
+@end example
+
+Several targets are available to clean the documentation build and
+help with maintaining documentation; an overview of these targets is
+available with
+
+@example
+make help
+@end example
+
+@noindent
+from every directory in the build tree.  Most targets for
+documentation maintenance are available from @file{Documentation/};
+for more information, see @file{Documentation/user/README.txt} and
+@file{Documentation/TRANSLATION}.
+
+The makefile variable @code{QUIET_BUILD} may be set to @code{1} for a
+less verbose build output, just like for building the programs.
+
+@knownissues
+
+The most time consuming task for building the documentation is running
+LilyPond to build images of music, and there cannot be several
+simultaneously running @command{lilypond-book} instances, so @code{-j}
+@command{make} option does not significantly speed up the build process.
+To help speed it up, the makefile variable @var{CPU_COUNT} may be set
+in @file{local.make} or on the command line to the number of
+@code{.ly} files that LilyPond should process simultaneously, e.g. on
+a bi-processor or dual core machine
+
+@example
+make -j3 CPU_COUNT=3 web
+@end example
+
+@noindent
+The recommended value of @var{CPU_COUNT} is one plus the number of
+cores or processors, but it is advisable to set it to a smaller value
+if your system has not enough RAM to run that many simultaneous
+LilyPond instances.
+
+If source files have changed since last documentation build, output
+files that need to be rebuilt are normally rebuilt, even if you do not
+run @code{make web-clean} first.  However, building dependencies in the
+documentation are so complex that rebuilding of some targets may not
+be triggered as they should be; a workaround is to force rebuilding
+by touching appropriate files, e.g.
+
+@example
+touch Documentation/user/*.itely
+touch input/lsr/*.ly
+@end example
+
+
+@node Building documentation without compiling LilyPond
+@unnumberedsubsubsec Building documentation without compiling LilyPond
+
+The documentation can be built locally without compiling LilyPond
+binary, if LilyPond is already installed on your system.
+
+From a fresh Git checkout, do
+
+@example
+./autogen.sh   # ignore any warning messages
+cp GNUmakefile.in GNUmakefile
+make -C python
+nice make LILYPOND_EXTERNAL_BINARY=/path/to/bin/lilypond web
+@end example
+
+Please note that this may break sometimes -- for example, if a new
+feature is added with a test file in input/regression, even the latest
+development release of LilyPond will fail to build the docs.
+
+You may build the manual without building all the @file{input/*}
+stuff: change directory, for example to @file{Documentation/user},
+issue @code{make web}, which will build documentation in a
+subdirectory @file{out-www} from the source files in current
+directory.  In this case, if you also want to browse the documentation
+in its post-processed form, change back to top directory and issue
+
+@example
+make out=www WWW-post
+@end example
+
+@knownissues
+
+You may also need to create a script for @command{pngtopnm} and
+@code{pnmtopng}.  On GNU/Linux, I use this:
+
+@verbatim
+export LD_LIBRARY_PATH=/usr/lib
+exec /usr/bin/pngtopnm "$@"
+@end verbatim
+
+On MacOS@tie{}X, I use this:
+
+@verbatim
+export DYLD_LIBRARY_PATH=/sw/lib
+exec /sw/bin/pngtopnm "$@"
+@end verbatim
+
+
+
+@node Testing LilyPond
+@subsection Testing LilyPond
+
+@html
+<a name="testing"></a>
+@end html
+
+LilyPond comes with an extensive suite that exercises the entire
+program.  This suite can be used to automatically check the impact of a
+change.  This is done as follows
+
+@example
+make test-baseline
+@emph{## apply your changes, compile}
+make check
+@end example
+
+This will leave an HTML page @file{out/test-results/index.html}.  This
+page shows all the important differences that your change introduced,
+whether in the layout, MIDI, performance or error reporting.
+
+To rerun tests, use
+
+@example
+make test-redo           @emph{## redo files differing from baseline}
+make test-clean          @emph{## remove all test results}
+@end example
+
+@noindent
+and then run @code{make check} again.
+
+For tracking memory usage as part of this test, you will need GUILE
+CVS; especially the following patch:
+@uref{http://lilypond.org/vc/gub.darcs/patches/guile-1.9-gcstats.patch}.
+
+For checking the coverage of the test suite, do the following
+
+@example
+./scripts/auxiliar/build-coverage.sh
+@emph{# uncovered files, least covered first}
+./scripts/auxiliar/coverage.py  --summary out-cov/*.cc
+@emph{# consecutive uncovered lines, longest first}
+./scripts/auxiliar/coverage.py  --uncovered out-cov/*.cc
+@end example
+
+
+@node Problems
+@subsection Problems
+
+For help and questions use @email{lilypond-user@@gnu.org}.  Send bug
+reports to @email{bug-lilypond@@gnu.org}.
+
+Bugs that are not fault of LilyPond are documented here.
+
+@unnumberedsubsubsec Bison 1.875
+
+There is a bug in bison-1.875: compilation fails with "parse error
+before `goto'" in line 4922 due to a bug in bison.  To fix, please
+recompile bison 1.875 with the following fix
+
+@example
+$ cd lily; make out/parser.cc
+$ vi +4919 out/parser.cc
+# append a semicolon to the line containing "__attribute__ ((__unused__))
+# save
+$ make
+@end example
+
+
+@unnumberedsubsubsec Solaris
+
+Solaris7, ./configure
+
+@file{./configure} needs a POSIX compliant shell.  On Solaris7,
+@file{/bin/sh} is not yet POSIX compliant, but @file{/bin/ksh} or bash
+is.  Run configure like
+
+@example
+CONFIG_SHELL=/bin/ksh ksh -c ./configure
+@end example
+
+@noindent
+or
+
+@example
+CONFIG_SHELL=/bin/bash bash -c ./configure
+@end example
+
+@unnumberedsubsubsec FreeBSD
+
+To use system fonts, dejaview must be installed.  With the default
+port, the fonts are installed in @file{usr/X11R6/lib/X11/fonts/dejavu}.
+
+Open the file @file{$LILYPONDBASE/usr/etc/fonts/local.conf} and add the
+following line just after the @code{<fontconfig>} line.  (Adjust as necessary
+for your hierarchy.)
+
+@example
+<dir>/usr/X11R6/lib/X11/fonts</dir>
+@end example
+
+
+@unnumberedsubsubsec International fonts
+
+On MacOS@tie{}X, all fonts are installed by default.  However, finding all
+system fonts requires a bit of configuration; see
+@uref{http://lists.gnu.org/archive/html/lilypond-user/2007-03/msg00472.html,
+this post} on the @code{lilypond-user} mailing list.
+
+On Linux, international fonts are installed by different means on
+every distribution.  We cannot list the exact commands or packages
+that are necessary, as each distribution is different, and the exact
+package names within each distribution changes.  Here are some
+hints, though:
+
+@verbatim
+Red Hat Fedora
+
+    taipeifonts fonts-xorg-truetype ttfonts-ja fonts-arabic \
+         ttfonts-zh_CN fonts-ja fonts-hebrew
+
+Debian GNU/Linux
+
+   apt-get install emacs-intl-fonts xfonts-intl-.* \
+        ttf-kochi-gothic ttf-kochi-mincho \
+        xfonts-bolkhov-75dpi xfonts-cronyx-100dpi xfonts-cronyx-75dpi
+@end verbatim
 
-@node move AU 1 here
-@section move AU 1 here
 
 
 ALSO ADD:
index 86f93fc838902ea876b233f296ba27c70c904d21..76ae466f212884a3782d77f190850a35c598952f 100644 (file)
@@ -69,6 +69,7 @@ limited documentation help.
 @subsection Texinfo introduction
 
 The language is called texinfo; you can see its manual here:
+
 @uref{http://www.gnu.org/software/texinfo/manual/texinfo/}
 
 However, you don't need to read those docs.  The most important
index 701f5e82232b94603bfdf0b5d8ef69acee167fc6..9d02911d0920dccfebc761b6dd4becc00ab20c25 100644 (file)
@@ -172,7 +172,7 @@ git pull origin
 @subsection Resolving conflicts
 
 Occasionally an update may result in conflicts -- this happens
-when you and somebody else hae modified the same part of the same
+when you and somebody else have modified the same part of the same
 file and git cannot figure out how to merge the two versions
 together.  When this happens, you must manually merge the two
 versions.