depth = ..
+########################
+# Documentation build #
+########################
+
+#############
+### Variables
+
NAME = documentation
LANGS = $(shell $(PYTHON) $(top-src-dir)/python/langdefs.py)
-SUBDIRS = application contributor learning notation snippets\
- bibliography pictures misc po $(LANGS)
+MANUALS_SUBDIRS = application contributor learning notation
+SUBDIRS = $(MANUALS_SUBDIRS) snippets bibliography pictures misc po $(LANGS)
STEPMAKE_TEMPLATES = documentation texinfo tex omf
LOCALSTEPMAKE_TEMPLATES = lilypond ly
IN_ITELY_FILES = $(call src-wildcard,snippets/*-intro.itely)
SNIPPET_LY_FILES = $(call src-wildcard,snippets/*.ly)
-
-### Extra out files
+### Out files
# Dependencies
GENERATED_ITELY_FILES = $(IN_ITELY_FILES:snippets/%-intro.itely=$(outdir)/%.itely)
OMF_FILES += $(outdir)/internals.html.omf $(outdir)/internals.pdf.omf
# Main manuals
+TEXINFO_MANUALS = internals\
+ $(TELY_FILES:%.tely=%)\
+ $(TEXI_FILES:%.texi=%)
-OUT_MASTER_TEXI_FILES = $(outdir)/internals.texi
-#OUT_TEXI_FILES=$(ITEXI_FILES:%.itexi=$(outdir)/%.texi)\
-# $(ITELY_FILES:%.itely=$(outdir)/%.texi)
-
-HTML_FILES = \
-$(TELY_FILES:%.tely=$(outdir)/%-big-page.html)\
- $(TEXI_FILES:%.texi=$(outdir)/%-big-page.html)\
- $(outdir)/internals-big-page.html
+PDF_FILES = $(TEXINFO_MANUALS:%=$(outdir)/%.pdf)
-PDF_FILES = \
-$(TELY_FILES:%.tely=$(outdir)/%.pdf)\
- $(TELY_FILES:%.texi=$(outdir)/%.pdf)\
- $(outdir)/internals.pdf
+UNSPLITTED_HTML_MANUALS = changes
+SPLITTED_HTML_MANUALS = $(foreach manual, $(TEXINFO_MANUALS),\
+$(if $(findstring $(manual), $(UNSPLITTED_HTML_MANUALS)),, $(manual)))
+OUT_HTML_FILES = $(UNSPLITTED_HTML_MANUALS:%=$(outdir)/%.html)\
+ $(SPLITTED_HTML_MANUALS:%=$(outdir)/%-big-page.html)
+DEEP_HTML_FILES = $(SPLITTED_HTML_MANUALS:%=$(outdir)/%/index.html)
+# Other out files
HTML_PAGE_NAMES= index translations devel
-OUT_HTML_FILES= $(HTML_PAGE_NAMES:%=$(outdir)/%.html)
-OUT_CSS_FILES= $(CSS_FILES:%.css=$(outdir)/%.css)
+OUT_HTML_FILES += $(HTML_PAGE_NAMES:%=$(outdir)/%.html)
+OUT_CSS_FILES = $(CSS_FILES:%.css=$(outdir)/%.css)
MAIN_INFO_DOC = lilypond-notation
INFO_DOCS = lilypond-application lilypond-changes lilypond-contributor lilypond-internals \
DEST_INFO_IMAGES_SUBDIR = Documentation/
endif
-
include $(depth)/make/stepmake.make
-
-default: local-doc
-
-ifeq ($(out),www)
-local-WWW-2: txt-to-html $(OUT_HTML_FILES)
-
-local-WWW-clean: deep-WWW-clean
-
-deep-WWW-clean:
- rm -rf $(outdir)/wiki-dump
-endif
-
OUT_TXT_FILES = $(addprefix $(outdir)/, $(addsuffix .txt, $(README_TOP_FILES)))
-# cd $(outdir) rule gets bit hairy for --srcdir configure builds
-txt-to-html:
- $(foreach a, $(README_TOP_FILES), cp $(top-src-dir)/$(a) $(outdir)/$(a).txt && ) true
- $(PYTHON) $(step-bindir)/text2html.py $(OUT_TXT_FILES)
+###########
+### Targets
-$(OUT_HTML_FILES): $(OUT_CSS_FILES)
-
-$(outdir)/%.css: %.css
- ln -f $< $@
+default: local-doc
local-help: extra-local-help
\n\
LL refers to the desired locale (most often only the ISO 639 language code).\n"
-#####################################
-# Texinfo
-
info: $(INFO_FILES)
@echo export LILYPOND_DATADIR=$(LILYPOND_DATADIR)
@echo export PYTHONPATH=$(PYTHONPATH)
local-clean:
rm -f $(INFO_IMAGES_DIR)
+### Web targets
-#
-# Split manuals in HTML
-#
-$(outdir)/learning/index.html: $(OUT_PNG_IMAGES) $(OUT_EPS_IMAGES)
-$(outdir)/notation/index.html: $(OUT_PNG_IMAGES) $(OUT_EPS_IMAGES)
+ifeq ($(out),www)
+local-WWW-1: $(TEXINFO_MANUALS:%=$(outdir)/%.texi) $(PDF_FILES) info
+local-WWW-2: txt-to-html $(OUT_HTML_FILES) $(DEEP_HTML_FILES) $(source-links)
+endif
+
+
+#########
+### Rules
+
+# cd $(outdir) rule gets bit hairy for --srcdir configure builds
+txt-to-html:
+ $(foreach a, $(README_TOP_FILES), cp $(top-src-dir)/$(a) $(outdir)/$(a).txt && ) true
+ $(PYTHON) $(step-bindir)/text2html.py $(OUT_TXT_FILES)
+
+
+$(OUT_HTML_FILES): $(OUT_CSS_FILES)
+
+$(outdir)/%.css: %.css
+ ln -f $< $@
-#
-# Manuals in one big HTML page
-#
+## Extra images dependencies
+$(outdir)/learning/index.html: $(OUT_PNG_IMAGES) $(OUT_EPS_IMAGES)
+$(outdir)/notation/index.html: $(OUT_PNG_IMAGES) $(OUT_EPS_IMAGES)
$(outdir)/learning-big-page.html: $(OUT_PNG_IMAGES)
$(outdir)/notation-big-page.html: $(OUT_PNG_IMAGES)
$(outdir)/learning.texi $(outdir)/notation.texi: $(OUT_PDF_IMAGES)
-$(foreach manual, application contributor learning notation,\
-$(eval $(outdir)/(i).texi: $(call src-wildcard,$(i)/*.ite??)))
+$(foreach manual, $(MANUAL_SUBDIRS),\
+$(eval $(outdir)/(manual).texi: $(call src-wildcard,$(manual)/*.ite??)))
$(outdir)/%.png: %.png
convert -depth 8 -geometry 50x50% $< $@
gs -dAutoRotatePages=/None -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -sOutputFile=$@ -dEPSCrop -c .setpdfwrite -f $<
-### Splitted HTML manuals
-
-DEEP_HTML_FILES =\
- $(outdir)/application/index.html\
- $(outdir)/internals/index.html\
- $(outdir)/learning/index.html\
- $(outdir)/notation/index.html\
- $(outdir)/music-glossary/index.html\
- $(outdir)/snippets/index.html
-
# Symlinks to refer to external source documents from split and non-split HTML
source-links = $(outdir)/source $(outdir)/notation/source $(outdir)/music-glossary/source \
$(outdir)/application/source $(outdir)/learning/source $(outdir)/internals/source \
mkdir -p $(dir $@)
ln -sf $(depth)/.. $(@)
-################################
-### Snippets rules idiosyncrases
+## Snippets rules idiosyncrases
$(outdir)/%.itely: snippets/%-intro.itely snippets/%.snippet-list
xargs $(LYS_TO_TELY) -f doctitle,texidoc,verbatim --name=$@ --template=$< < $(filter %.snippet-list, $^)
$(outdir)/snippets.texi: $(GENERATED_ITELY_FILES) $(SNIPPET_LY_FILES)
-###############
-### Web targets
-
-ifeq ($(out),www)
-local-WWW-1: $(MASTER_TEXI_FILES) $(PDF_FILES) info
-
-local-WWW-2: $(HTML_FILES) $(DEEP_HTML_FILES) $(source-links)
-endif
-
$(outdir)/%.bib: %.bib
ln -f $< $@
-# lilypond.texi deps
+## notation.texi deps
$(top-build-dir)/mf/$(outconfbase)/feta16list.ly:
$(MAKE) -C $(top-src-dir)/mf
$(outdir)/notation.texi: $(outdir)/ly-grammar.txt
-# Rules for the automatically generated documentation
-
+## Rules for the automatically generated documentation
$(outdir)/ly-grammar.txt: $(top-src-dir)/lily/parser.yy
cd $(outdir) && $(BISON) -v $<
$(auxscript-dir)/yyout2grammar.py $(outdir)/parser.output $@
$(outdir)/internals.texi: $(LILYPOND_BINARY)
cd $(outdir) && $(LILYPOND_BINARY) --verbose $(top-src-dir)/ly/generate-documentation
-.SECONDARY:
-
-#####################################
-# Translations maintenance targets #
-#####################################
+###############################################
+# Documentation and translations maintenance #
+###############################################
po-update:
make -C po po-update
then echo "Error: $(ISOLANG) directory already exists. Exiting." ; \
exit 3 ; \
fi
- mkdir -p $(ISOLANG)/user
+ mkdir -p $(ISOLANG)/learning
cp fr/GNUmakefile $(ISOLANG)
- cp fr/user/GNUmakefile $(ISOLANG)/user
- sed -i -e 's/ISOLANG *= *fr/ISOLANG = $(ISOLANG)/' $(ISOLANG)/GNUmakefile $(ISOLANG)/user/GNUmakefile
+ cp fr/learning/GNUmakefile $(ISOLANG)/learning
+ sed -i -e 's/ISOLANG *= *fr/ISOLANG = $(ISOLANG)/' $(ISOLANG)/GNUmakefile $(ISOLANG)/learning/GNUmakefile
$(auxscript-dir)/texi-langutils.py -d $(outdir) -l $(ISOLANG) -o doc.pot --skeleton --gettext ../learning.tely
- mv $(outdir)/*.*tely $(ISOLANG)/user
+ mv $(outdir)/*.*tely $(ISOLANG)/learning
msgmerge -U po/lilypond-doc.pot $(outdir)/doc.pot
cp po/lilypond-doc.pot po/$(ISOLANG).po
@echo "*** Please add a language definition for $(ISOLANG) in python/langdefs.py ***"
-CHECKED_FILES = $(ISOLANG)/index.html.in $(shell find $(ISOLANG)/user/ -maxdepth 1 -name '*.*te??') \
- $(shell find $(depth)/input/texidocs/ -name '*.texidoc')
+CHECKED_FILES = $(ISOLANG)/index.html.in $(foreach i,learning notation application, \
+ $(shell find $(ISOLANG)/$(manual) -maxdepth 1 -name '*.*te??')) \
+ $(shell find $(ISOLANG)/texidocs/ -name '*.texidoc')
-TELY_FILES = $(call src-wildcard,$(ISOLANG)/user/*.tely)
+TELY_FILES = $(call src-wildcard,$(ISOLANG)/*.tely)
skeleton-update:
- $(auxscript-dir)/texi-langutils.py -d $(outdir) -l $(ISOLANG) --skeleton $(TELY_FILES:$(ISOLANG)/user/%.tely=../user/%.tely)
- $(auxscript-dir)/texi-skeleton-update.py $(ISOLANG)/user $(outdir)
+ $(auxscript-dir)/texi-langutils.py -d $(outdir) -l $(ISOLANG) --skeleton $(TELY_FILES:$(ISOLANG)/%.tely=../%.tely)
+ $(auxscript-dir)/texi-skeleton-update.py $(ISOLANG) $(outdir)
snippet-update:
- $(auxscript-dir)/update-snippets.py user $(ISOLANG)/user '*.itely'
+ $(auxscript-dir)/update-snippets.py user $(ISOLANG) '*.itely'
-DOCUMENTS_INCLUDES:=-I $(ISOLANG)/user \
--I $(top-build-dir)/Documentation/$(ISOLANG)/user/out-www \
--I $(top-src-dir)/input/lsr \
--I $(top-build-dir)/input/lsr/out-www \
--I user -I $(top-build-dir)/Documentation/user/out-www
+DOCUMENTS_INCLUDES:=-I $(ISOLANG) \
+-I $(top-build-dir)/Documentation/$(ISOLANG)/out-www \
+-I $(top-src-dir)/Documentation/snippets \
+-I $(top-build-dir)/Documentation/out-www
else # ISOLANG is empty
-DOCUMENTS_INCLUDES:=-I user \
--I $(top-build-dir)/Documentation/user/out-www \
--I $(top-src-dir)/input/lsr \
--I $(top-build-dir)/input/lsr/out-www
+DOCUMENTS_INCLUDES:=-I . \
+-I $(top-build-dir)/Documentation/out-www \
+-I $(top-src-dir)/Documentation/snippets \
+-I $(top-build-dir)/Documentation/snippets/out-www
endif # ISOLANG
by touching appropriate files, e.g.
@example
-touch Documentation/user/*.itely
-touch input/lsr/*.ly
+touch Documentation/notation/*.itely
+touch Documentation/snippets/*.ly
@end example
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 doc}, 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
+You may build the manual without building all the @file{input/*} stuff
+(i.e. mostly regression tests): change directory, for example to
+@file{Documentation/}, issue @code{make doc}, 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
@example
-1- Documentation index and Tutorial
-429 user/lilypond-learning.tely
-6368 user/tutorial.itely
-23 user/dedication.itely
-432 user/macros.itexi
+429 learning.tely
+6368 learning/tutorial.itely
+23 dedication.itely
+432 macros.itexi
171 index.html.in
161 translations.template.html.in
6522 po/lilypond-doc.pot (translate to po/@var{MY_LANGUAGE}.po)
---- ../lilypond-texi2html.init (section TRANSLATIONS)
+--- lilypond-texi2html.init (section TRANSLATIONS)
14106 total
-2- Introduction and beginning of Application Usage
-411 user/preface.itely
-3866 user/introduction.itely
-407 user/lilypond-program.tely
-193 user/install.itely (partial translation)
-1149 user/setup.itely
-3023 user/running.itely
+411 learning/preface.itely
+3866 learning/introduction.itely
+407 application.tely
+193 application/install.itely
+1149 application/setup.itely
+3023 application/running.itely
9049 total
-3- Learning manual
-10323 user/fundamental.itely -- Fundamental concepts
-14834 user/tweaks.itely -- Tweaking output
-5033 user/working.itely -- Working on LilyPond files
-498 user/templates.itely -- Templates
+10323 learning/fundamental.itely -- Fundamental concepts
+14834 learning/tweaks.itely -- Tweaking output
+5033 learning/working.itely -- Working on LilyPond files
+498 learning/templates.itely -- Templates
30688 total
-4- Notation reference
-724 user/lilypond.tely
-91 user/notation.itely -- Musical notation
-3155 user/pitches.itely
-4757 user/rhythms.itely
-1392 user/expressive.itely
-555 user/repeats.itely
-1456 user/simultaneous.itely
-1689 user/staff.itely
-919 user/editorial.itely
-2412 user/text.itely
-76 user/specialist.itely -- Specialist notation
-2725 user/vocal.itely
-1516 user/chords.itely
-702 user/piano.itely
-810 user/percussion.itely
-826 user/guitar.itely
-66 user/strings.itely
-242 user/bagpipes.itely
-4487 user/ancient.itely
-6170 user/input.itely -- Input syntax
-2164 user/non-music.itely -- Non-musical notation
-8663 user/spacing.itely -- Spacing issues
-11800 user/changing-defaults.itely -- Changing defaults
-5187 user/programming-interface.itely -- Interfaces for programmers
-611 user/notation-appendices.itely -- Notation manual tables
-252 user/cheatsheet.itely -- Cheat sheet
+724 notation.tely
+91 notation/notation.itely -- Musical notation
+3155 notation/pitches.itely
+4757 notation/rhythms.itely
+1392 notation/expressive.itely
+555 notation/repeats.itely
+1456 notation/simultaneous.itely
+1689 notation/staff.itely
+919 notation/editorial.itely
+2412 notation/text.itely
+76 notation/specialist.itely -- Specialist notation
+2725 notation/vocal.itely
+1516 notation/chords.itely
+702 notation/piano.itely
+810 notation/percussion.itely
+826 notation/guitar.itely
+66 notation/strings.itely
+242 notation/bagpipes.itely
+4487 notation/ancient.itely
+6170 notation/input.itely -- Input syntax
+2164 notation/non-music.itely -- Non-musical notation
+8663 notation/spacing.itely -- Spacing issues
+11800 notation/changing-defaults.itely -- Changing defaults
+5187 notation/programming-interface.itely -- Interfaces for programmers
+611 notation/notation-appendices.itely -- Notation manual tables
+252 notation/cheatsheet.itely -- Cheat sheet
63447 total
-5- Application usage
-3248 user/lilypond-book.itely -- LilyPond-book
-1171 user/converters.itely -- Converting from other formats
+3248 application/lilypond-book.itely -- LilyPond-book
+1171 application/converters.itely -- Converting from other formats
4419 total
-6- Appendices whose translation is optional
-310 user/literature.itely
-1222 user/scheme-tutorial.itely (needs to be revised first)
+310 notation/literature.itely
+1222 learning/scheme-tutorial.itely (should be revised first)
1532 total
@end example
@node Documentation files
@subsection Documentation files
-The user manuals lives in @file{Documentation/user/}. In
-particular, the files @file{lilypond-learning.ly} (LM),
-@file{lilypond.itely} (NR), @file{music-glossary.tely} (MG), and
-@file{lilypond-program} (AU). Each chapter is written in a
-separate file (ending in @file{.itely} for files containing
-lilypond code, and @file{.itexi} for files without lilypond code);
-see the @qq{main} file for each manual to determine the filename
+All manuals live in @file{Documentation/}.
+
+In particular, there are four user manuals, their respective master
+source files are @file{learning.tely} (LM, Learning Manual),
+@file{notation.tely} (NR, Notation Reference),
+@file{music-glossary.tely} (MG, Music Glossary), and
+@file{lilypond-program} (AU). Each chapter is written in a separate
+file, ending in @file{.itely} for files containing lilypond code, and
+@file{.itexi} for files without lilypond code, located in a subdirectory
+associated to the manual (@file{learning/} for @file{learning.tely}, and
+so on); list the subdirectory of each manual to determine the filename
of the specific chapter you wish to modify.
-Developer manuals live in @file{Documentation/devel}. Currently
-there is only one; @file{contrib-guide.texi}.
+Developer manuals live in @file{Documentation/} too. Currently there is
+only one: the Contributors' Guide @file{contrib-guide.texi} you are
+reading.
-Although snippets are part of documentation, they are not
-(directly) part of the manuals. For information about how to
-modify them, see @ref{LSR work}.
+Snippet files are part of documentation, and the Snippet List (SL) lives
+in @file{Documentation/} just like the manuals. For information about
+how to modify the snippet files and SL, see @ref{LSR work}.
@node Sectioning commands
It would be @qq{nice} if you spent a lot of time crafting nice
-tweaks for users... but my recommendation is @strong{not} to do
+tweaks for users@dots{} but my recommendation is @strong{not} to do
this. There's a lot of doc work to do without adding examples of
tweaks. Tweak examples can easily be added by normal users by adding
them to the LSR.
@node Updating docs with convert-ly
@section Updating doc with @command{convert-ly}
-cd into Documentation and run
+cd into @file{Documentation/} and run
@example
find . -name '*.itely' | xargs convert-ly -e
@itemize
@item Python 2.4 or higher,
@item GNU Make,
-@item Gettext.
+@item Gettext,
+@item Git.
@end itemize
It is not required to build LilyPond and the documentation to
all dependencies and rerun @command{./configure} (with the same
options as for @command{autogen.sh}).
-Then @command{cd} into @file{Documentation} and run
+Then @command{cd} into @file{Documentation/} and run
@example
make ISOLANG=@var{MY-LANGUAGE} new-lang
Take care of using typographic rules for your language, especially in
-@file{user/macros.itexi}.
+@file{macros.itexi}.
Please keep verbatim copies of music snippets (in @code{@@lilypond}
@end example
@noindent
-in the source, open @file{input/lsr/@var{filename}.ly}, translate the
+in the source, open @file{Documentation/snippets/@var{filename}.ly}, translate the
@code{texidoc} header field it contains, enclose it with
@code{texidoc@var{MY-LANGUAGE} = "} and @code{"}, and write it into
-@file{input/texidocs/@var{filename}.texidoc} -- please keep possibly
-existing translations in other languages! Additionnally, you may
-translate the snippet's title in @code{doctitle} header field, in case
-@code{doctitle} is a fragment option used in @code{@@lilypondfile};
-you can do this exactly the same way as @code{texidoc}. For instance,
-@file{input/texidocs/@var{filename}.texidoc} may contain
+@file{Documentation/@var{MY-LANGUAGE}/texidocs/@var{filename}.texidoc}.
+Additionnally, you may translate the snippet's title in @code{doctitle}
+header field, in case @code{doctitle} is a fragment option used in
+@code{@@lilypondfile}; you can do this exactly the same way as
+@code{texidoc}. For instance,
+@file{Documentation/@var{MY-LANGUAGE}/texidocs/@var{filename}.texidoc}
+may contain
@example
doctitlees = "Spanish title baz"
texidoces = "
Spanish translation blah
"
-doctitlede = "German title bar"
-texidocde = "German translation foo
-"
@end example
@code{@@example} blocs need not be verbatim copies, e.g. variable
@node Translating the Notation Reference and Application Usage
@unnumberedsubsubsec Translating the Notation Reference and Application Usage
-Copy @file{user/lilypond.tely} (or @file{user/lilypond-program.tely},
-respectively) into @file{@var{MY-LANGUAGE}/user}, then translate this
+Copy @file{notation.tely} (or @file{application.tely},
+respectively) into @file{@var{MY-LANGUAGE}}, then translate this
file and run @code{skeleton-update} -- see @ref{Updating documentation
translation}. Your are now ready to translate the Notation Reference
(Application Usage, respectively) exactly like the Learning Manual.
@file{Documentation/} and run
@example
-make CHECKED_FILES=@var{MY_LANGUAGE/user/foo.itely} check-translation
+make CHECKED_FILES=@var{MY_LANGUAGE}/@var{manual}/@var{foo}.itely check-translation
@end example
To see only which files need to be updated, do
or to update a single file
@example
-make CHECKED_FILES=@var{MY_LANGUAGE/user/foo.itely} update-translation
+make CHECKED_FILES=@var{MY_LANGUAGE/@var{manual}/foo.itely} update-translation
@end example
For each file to be udpated, update-translation will open your text
@end example
This script overwrites music snippets in
-@file{@var{MY_LANGUAGE/user/every.itely}} with music snippets from
-@file{@var{user/every.itely}}. It ignores skeleton files, and keeps
+@file{@var{MY_LANGUAGE/foo/every.itely}} with music snippets from
+@file{@var{foo/every.itely}}. It ignores skeleton files, and keeps
intact music snippets preceded with a line starting with @code{@@c
KEEP LY}; it reports an error for each @file{.itely} that has not the
same music snippet count in both languages. Always use this script
<tr>
<td>
<br>
- <a class="title" href="contributor.html">Contributors'
+ <a class="title" href="contributor/index.html">Contributors'
Guide</a>
(in <a class="title" href="contributor-big-page.html">one
big page</a>, in <a class="title" href="contributor.pdf">PDF</a>)
DOMAIN=lilypond-doc
DOC_PO_SOURCES = python/auxiliar/postprocess_html.py \
scripts/build/texi-gettext.py scripts/auxiliar/translations-status.py
-TELY_FILES = $(shell ls $(depth)/Documentation/user/lilypond*.tely)
-TELY_FILES += $(foreach l, $(LANGS), $(shell ls $(depth)/Documentation/$(l)/user/lilypond*.tely))
-LSR_LYS := $(shell ls $(depth)/input/lsr/*.ly)
+TELY_FILES = $(shell ls $(depth)/Documentation/user/*.tely)
+TELY_FILES += $(foreach l, $(LANGS), $(shell ls $(depth)/Documentation/$(l)/*.tely))
+LSR_LYS := $(shell ls $(depth)/Documentation/snippets/*.ly)
TELY_FILES += $(LSR_LYS:%.ly=../%.ly)
messages: $(outdir)/messages
"Project-Id-Version: fr\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-07-06 23:05+0200\n"
-"PO-Revision-Date: 2009-07-20 20:37+0200\n"
+"PO-Revision-Date: 2009-07-26 18:34+0200\n"
"Last-Translator: Jean-Charles Malahieude <lilyfan-AT-orange-DOT-fr>\n"
"Language-Team: Français <lilypond-user-fr@gnu.org>\n"
"MIME-Version: 1.0\n"
uninstall-WWW:
rm -rf $(DESTDIR)$(webdir)
-rmdir $(package_docdir)
- $(MAKE) -C Documentation/user uninstall
- $(MAKE) -C input/lsr uninstall
+ $(MAKE) -C Documentation uninstall
# For online docs with content negotiation, issue `make doc WEB_TARGETS=online'
$(outdir)/%.pdf.omf: %.tely
$(call GENERATE_OMF,pdf)
-$(outdir)/%.ps.gz.omf: %.tely
- $(call GENERATE_OMF,ps.gz)
-
$(outdir)/%.html.omf: $(outdir)/%.texi
$(call GENERATE_OMF,html)
$(outdir)/%.pdf.omf: $(outdir)/%.texi
$(call GENERATE_OMF,pdf)
-
-$(outdir)/%.ps.gz.omf: $(outdir)/%.texi
- $(call GENERATE_OMF,ps.gz)
.PRECIOUS: $(outdir)-letter/%.ps
-all: $(OUT_FILES)
+all:
ifeq ($(out),www)
local-WWW-1: $(ly_examples) $(pdf_examples) $(png_examples)
SCORE_LY_FILES = $(shell cd $(src-dir) && fgrep -l score *.ly)
ILY_FILES = $(call src-wildcard,*.ily)
-M4_FILES = $(call src-wildcard,*.m4)
-LYM4_FILES = $(call src-wildcard,*.lym4)
-EXTRA_DIST_FILES += $(M4_FILES) $(LYM4_FILES)
ly_examples=$(addprefix $(outdir)/, $(addsuffix .ly, $(examples)))
ly_examples+= $(ILY_FILES:%.ily=$(outdir)/%.ily)
name-stem= $(notdir $(basename $<))
-OUT_FILES = $(addprefix $(outdir)/,$(M4_FILES:%.m4=%)) \
- $(addprefix $(outdir)/,$(LYM4_FILES:%.lym4=%.ly))
-
-score_ps = $(addprefix $(outdir)/, $(addsuffix .ps.gz, $($SCORE_LY_FILES)))
+score_ps = $(addprefix $(outdir)/, $(addsuffix .ps.gz, $(SCORE_LY_FILES)))
# This module is imported by check_texi_refs.py
references_dict = {
- 'lilypond': 'ruser',
- 'lilypond-learning': 'rlearning',
- 'lilypond-program': 'rprogram',
- 'lilypond-snippets': 'rlsr',
+ 'notation': 'ruser',
+ 'learning': 'rlearning',
+ 'application': 'rprogram',
+ 'snippets': 'rlsr',
'music-glossary': 'rglos',
- 'lilypond-internals': 'rinternals' }
+ 'internals': 'rinternals' }
vc_last_revision = 'git log --pretty=format:%%H %(file_name)s | head -1'
vc_last_texidoc_revision = 'git log -Stexidoc%(preferred_language)s --pretty=format:%%H %(file_name)s | head -1'
-s = 'Translation of GIT [Cc]ommittish'
-texidoc_chunk_re = re.compile (r'^((?:%+\s*' + s + \
- r'.+)?\s*(?:texidoc|doctitle)([a-zA-Z]{2,4})\s+=(?:.|\n)*?)(?=%+\s*' + \
- s + r'|\s*(?:texidoc|doctitle)(?:[a-zA-Z]{2,4})\s+=|$(?!.|\n))', re.M)
-
-
def do_file (file_name, lang_codes):
if verbose:
sys.stderr.write ('%s...\n' % file_name)
else:
check_lang = lang
if check_lang == C:
- if not os.path.splitext (file_name)[1] == '.texidoc':
- raise Exception ('cannot determine language for ' + file_name)
- translated_contents = open (file_name).read ()
- if 'ISOLANG' in os.environ:
- preferred_language = os.environ['ISOLANG']
- else:
- raise Exception ('cannot determine language for ' + file_name)
- for m in texidoc_chunk_re.finditer (translated_contents):
- if m.group (2) == preferred_language:
- full_translated_contents = translated_contents
- translated_contents = m.group (1)
- translated_contents_start = m.start ()
- translated_contents_end = m.end ()
- break
- else:
- return
- original = file_name.replace ('texidocs' + os.path.sep, 'lsr' + os.path.sep, 1)
+ raise Exception ('cannot determine language for ' + file_name)
+ else:
+ if os.path.splitext (file_name)[1] == '.texidoc':
+ original = file_name.replace (os.path.join ('texidocs' + os.path.sep, 'lsr' + os.path.sep, 1)
original = original.replace ('.texidoc', '.ly', 1)
# URG dirty .texidoc files manipulation in a dirty way
f.write (translated_contents)
f.write (full_translated_contents[translated_contents_end:])
return
-
- else:
original = dir_lang (file_name, '', lang_dir_index)
translated_contents = open (file_name).read ()
if files:
dir = os.path.dirname (name) or "."
-# don't strip .tely extension, input/lsr uses .itely
+# don't strip .tely extension, Documentation/snippets uses .itely
name = os.path.basename (name)
template = template % vars ()
endif
-# no local settings in the build process.
+# no locale settings in the build process.
LANG=
export LANG
-INFO_DIRECTORIES = Documentation/user input/lsr
+INFO_DIRECTORIES = Documentation
# clean file lists:
#