
@node Invoking LilyPond, , , Top
@chapter Invoking LilyPond
@cindex Invoking LilyPond


@example
        @strong{lilypond} [OPTION]... [MUDELA-FILE]...
@end example

@section Options

@table @samp
@item -f,--format=
	Output format for sheet music. Choices are tex (for TeX
	output), ps (for PostScript) and scm (for GUILE)
@item -I,--include=
    add @file{FILE} to the search path for input files.
@item -m,--midi
    Disable TeX output. If you have a \midi definition, it will do the 
    midi output only.
@item -M,--dependencies
    Also output rules to be included in Makefile.
@item -d,--debug
    Turn debugging info on.  GNU LilyPond reads the file @file{.dstreamrc}, 
    which lists what functions and classes may produce copious debugging
    output.
@item -s,--safe
    Disallow untrusted @code{\include} directives, backslashes in TeX
code and named output.
@item -t,--test
    Switch on any experimental features.  Not for general public use.
@item -w,--warranty
    Show the warranty with which GNU LilyPond comes. (It comes with 
    @strong{NO WARRANTY}!)
@item -o,--output=FILE
    Set the default output file to @file{FILE}.
@item -h,--help
    Show a summary of usage.
@item -i,--init=FILE
    Set init file to @file{FILE} (default: @file{init.ly}).
@item --include, -I=DIRECTORY
    Add @file{DIRECTORY} to the search path for input files.
@item --ignore-version, -V
    Make the incompatible mudela version warning non-fatal.
@end table



When invoked with a filename that has no extension, LilyPond will try
adding `@file{.ly}' as an extension first, then `@file{.fly}' and
finally `@file{.sly}' extension.  If the filename ends with
`@file{.fly}', LilyPond processes the file as music using
`@file{init.fly}'.  In this case, LilyPond does something like:

@quotation

@example 
\score @{
  \notes\relative c @{
1    \input "yourfile.fly"
  @}
  \paper@{@}
  \midi@{@}
@} 
@end example 

@end quotation

The result of `@file{.sly}' is similar except that a single unjustified
line is produced.

If you invoke LilyPond with a file `@file{foo.}@var{ext}' that doesn't
have the `@file{.ly}' extension, then LilyPond will look for a file
called `@file{init.}@var{ext}' and process this file.  The file
`@file{init.}@var{ext}' must contain the @code{\maininput} keyword or
LilyPond will not read the user specified file.

When LilyPond processes @file{filename.ly} it will produce
@file{filename.tex} as output.  If @file{filename.ly} contains a second
@code{\paper} keyword, then LilyPond will produce @file{filename-1.tex}
as well.  Subsequent @code{\paper} keywords will produce sequentially
numbered file names.  Several files can be specified; they will each
be processed independently.@footnote{Not entirely true: The status of
GUILE is kept.}



@section Environment variables

@table @samp
@item LILYINCLUDE
    additional directories for finding lilypond data.  The
    format is like the format of @file{PATH}.
@item LILYPREFIX
	[FIXME]
@item LANG
    selects the language for the warning messages of LilyPond.
@end table


