Relocation algorithm
LilyPond uses the following algorithm to find its data files.
- Compute the directory where the currently executed
lilypond
binary is located. Let’s call this
bindir
. Set (internal) environment variable
INSTALLER_PREFIX
to bindir/.. (i.e., the
parent directory of bindir
).
- Check environment variable
LILYPOND_DATADIR
. If it is set,
use its value for LilyPond’s data directory, datadir
.
Otherwise use either
$INSTALLER_PREFIX/share/lilypond/version (with
version being the current LilyPond version) or
$INSTALLER_PREFIX/share/lilypond/current.
- Check environment variable
LILYPOND_LOCALEDIR
. If it is
set, use its value for LilyPond’s locale data directory,
localedir
. Otherwise use
$INSTALLER_PREFIX/share/locale.
- Check environment variable
LILYPOND_RELOCDIR
. If it is
set, use its value for the directory of LilyPond’s relocation
files, relocdir
. Otherwise use
$INSTALLER_PREFIX/etc/relocate.
- If
datadir
doesn’t exist, use a compile-time value instead.
Ditto for localedir
(but not for relocdir
, since it
doesn’t make sense to have that).
- If
relocdir
exists, process all files in this directory
(see Relocation files).