OUT_TEXI_FILES=$(ITEXI_FILES:%.itexi=$(outdir)/%.texi)\
$(ITELY_FILES:%.itely=$(outdir)/%.texi)
+
+MASTER_TEXI_FILES = $(TELY_FILES:%.tely=$(outdir)/%.texi)\
+ $(outdir)/lilypond-internals.texi
+
HTML_FILES = $(TELY_FILES:%.tely=$(outdir)/%-big-page.html)\
$(outdir)/lilypond-internals-big-page.html
# todo: add latex.
-PDF_FILES = $(TELY_FILES:%.tely=$(outdir)/%.pdf)
+PDF_FILES = $(TELY_FILES:%.tely=$(outdir)/%.pdf)\
+ $(outdir)/lilypond-internals.pdf
MAIN_INFO_DOC = lilypond
INFO_DOCS = lilypond lilypond-internals music-glossary lilypond-program lilypond-learning
xml: $(outdir)/lilypond/lilypond.xml $(outdir)/lilypond-internals/lilypond-internals.xml
- # All web targets, except info image symlinks and info docs are
- # installed in non-recursing target from TOP-SRC-DIR
- local-install-WWW: local-install-info
- local-uninstall-WWW: local-uninstall-info
-
local-clean:
rm -f $(INFO_IMAGES_DIR)
xml update Docbook xml documentation\n\
"
-# Generic rule using % twice not possible?
-# $(outdir)/%/%.html: $(outdir)/%.texi
$(outdir)/lilypond.texi: $(outdir)/lilypond-internals.texi
#
# Symlinks to refer to external source documents from split and non-split HTML
source-links = $(outdir)/source $(outdir)/lilypond/source $(outdir)/music-glossary/source \
- $(outdir)/lilypond-program/source $(outdir)/lilypond-learning/source
+ $(outdir)/lilypond-program/source $(outdir)/lilypond-learning/source $(outdir)/lilypond-internals/source
$(outdir)/source:
@rm -f $(@)
mkdir -p $(dir $@)
ln -sf $(depth)/.. $(@)
-local-WWW: $(HTML_FILES) $(DEEP_HTML_FILES)\
- $(datafiles) $(PDF_FILES) $(source-links) info
+local-WWW-1: $(MASTER_TEXI_FILES) $(PDF_FILES) info
+
+local-WWW-2: $(HTML_FILES) $(DEEP_HTML_FILES) $(source-links)
$(outdir)/%.bib: %.bib
ln -f $< $@
-
# lilypond.texi deps
$(top-build-dir)/mf/$(outconfbase)/feta16list.ly:
$(MAKE) -C $(top-src-dir)/mf
$(outdir)/lilypond-internals.texi: $(LILYPOND_BINARY)
cd $(outdir) && $(LILYPOND_BINARY) --verbose $(top-src-dir)/ly/generate-documentation
-
-## unused
-$(outdir)/interfaces.itexi: dummy
- cd $(outdir) && lilypond $(top-src-dir)/ly/generate-interface-doc
-
.SECONDARY:
doc:
$(MAKE) -C Documentation
+ install-help2man:
+ $(MAKE) -C scripts man install-help2man
+ $(MAKE) -C lily man install-help2man
+
+ # All web targets, except info image symlinks and info docs are
+ # installed in non-recursing target from TOP-SRC-DIR
install-WWW:
-$(INSTALL) -m 755 -d $(DESTDIR)$(webdir)
rsync -rl $(outdir)/offline-root/ $(DESTDIR)$(webdir)
- $(MAKE) -C Documentation/user local-install-WWW
$(MAKE) -C Documentation/user install-info
$(MAKE) -C input/lsr install-info
- install-help2man:
- $(MAKE) -C scripts man install-help2man
- $(MAKE) -C lily man install-help2man
-
web-install:
$(MAKE) out=www install-WWW
uninstall-WWW:
- echo TODO
+ rm -rf $(DESTDIR)$(webdir)
+ -rmdir $(package_docdir)
+ $(MAKE) -C Documentation/user uninstall
+ $(MAKE) -C input/lsr uninstall
web-uninstall:
$(MAKE) out=www uninstall-WWW
# For both online and offline docs, issue `make web WEB_TARGETS="offline online"'
WEB_TARGETS = offline
-local-WWW-post:
+WWW-post:
# need UTF8 setting in case this is hosted on a website.
echo -e 'AddDefaultCharset utf-8\nAddCharset utf-8 .html\nAddCharset utf-8 .en\nAddCharset utf-8 .nl\nAddCharset utf-8 .txt\n' > $(top-build-dir)/.htaccess
$(PYTHON) $(buildscript-dir)/mutopia-index.py -o $(outdir)/examples.html input/
find $(outdir) -name '*-root' | xargs rm -rf
- $(PYTHON) $(buildscript-dir)/www_post.py $(PACKAGE_NAME) $(TOPLEVEL_VERSION) $(buildscript-dir) $(outdir) "$(WEB_TARGETS)"
+ $(PYTHON) $(buildscript-dir)/www_post.py $(PACKAGE_NAME) $(TOPLEVEL_VERSION) $(outdir) "$(WEB_TARGETS)"
find $(outdir)/offline-root -type l -delete
-.PHONY : all clean bin-clean config default dist doc exe help\
- html lib TAGS po
+.PHONY : all clean bin-clean config default dist doc exe help html lib TAGS\
+ po web web-1 WWW-1 WWW-2 WWW-post local-WWW-1 local-WWW-2\
+ web-install
all: default
$(LOOP)
exe update all executables\n\
help this help\n\
install * install programs and data (prefix=$(prefix))\n\
+ uninstall* uninstall programs and data\n\
lib update all libraries\n\
web * update website in directory \`out-www'\n\
web-install * install website documentation in (webdir=$(webdir))\n\
touch $@ # do something for multiple simultaneous configs.
-################ website.
+#### Documentation (website and tarball)
-local-WWW:
-local-WWW-post:
+# documentation is built in two stages,
+# plus WWW-post (only at toplevel)
+# see INSTALL for more information.
+
+local-WWW-1:
+local-WWW-2:
web-install:
+WWW-post:
-WWW: local-WWW
+WWW-1: local-WWW-1
$(LOOP)
-WWW-post: local-WWW-post
+WWW-2: local-WWW-2
$(LOOP)
web:
- $(MAKE) out=www WWW
+ $(MAKE) out=www WWW-1
+ $(MAKE) out=www WWW-2
$(MAKE) out=www WWW-post
+web-1:
+ $(MAKE) out=www WWW-1
+
web-clean:
- find -name out-www | xargs rm -rf
$(MAKE) out=www clean
# prerequisite, otherwise %.info are always outdated (because older
# than $(outdir), hence this .dep file
- $(outdir)/$(INFO_IMAGES_DIR).info-images-dir.dep: $(INFO_DOCS:%=$(outdir)/%.texi)
+ $(outdir)/$(INFO_IMAGES_DIR).info-images-dir-dep: $(INFO_DOCS:%=$(outdir)/%.texi)
ifneq ($(INFO_IMAGES_DIR),)
rm -f $(INFO_IMAGES_DIR)
ln -s $(outdir) $(INFO_IMAGES_DIR)
endif
touch $@
- $(outdir)/%.info: $(outdir)/%.texi $(outdir)/$(INFO_IMAGES_DIR).info-images-dir.dep $(outdir)/version.itexi
+ $(outdir)/%.info: $(outdir)/%.texi $(outdir)/$(INFO_IMAGES_DIR).info-images-dir-dep $(outdir)/version.itexi
$(MAKEINFO) -I$(outdir) --output=$@ $<
-$(outdir)/%-big-page.html: $(outdir)/%.texi $(outdir)/version.itexi
- $(MAKEINFO) -I $(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split -D bigpage --no-headers $<
+$(outdir)/%-big-page.html: $(outdir)/%.texi $(XREF_MAPS_DIR)/%.xref-map $(outdir)/version.itexi
+ $(TEXI2HTML) --I=$(outdir) -D bigpage --output=$@ $(TEXI2HTML_INIT) $<
+ cp $(top-src-dir)/Documentation/lilypond*.css $(dir $@)
-$(outdir)/%.html: $(outdir)/%.texi $(outdir)/version.itexi
- $(MAKEINFO) -I $(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split --no-headers $<
+
+$(outdir)/%.html: $(outdir)/%.texi $(XREF_MAPS_DIR)/%.xref-map $(outdir)/version.itexi
+ $(TEXI2HTML) --I=$(outdir) --output=$@ $(TEXI2HTML_INIT) $<
+ cp $(top-src-dir)/Documentation/lilypond*.css $(dir $@)
$(outdir)/%.html.omf: %.texi
$(call GENERATE_OMF,html)
$(outdir)/%.ps.gz.omf: %.texi
$(call GENERATE_OMF,ps.gz)
-$(outdir)/%/index.html: $(outdir)/%.texi $(outdir)/version.itexi
+$(outdir)/%/index.html: $(outdir)/%.texi $(XREF_MAPS_DIR)/%.xref-map $(outdir)/version.itexi
mkdir -p $(dir $@)
- $(MAKEINFO) -I $(outdir) --output=$(dir $@) --css-include=$(top-src-dir)/Documentation/texinfo.css --html $<
+ $(TEXI2HTML) --I=$(outdir) --output=$(dir $@) --prefix=index --split=section $(TEXI2HTML_INIT) $<
+ cp $(top-src-dir)/Documentation/lilypond*.css $(dir $@)
$(outdir)/%.pdf: $(outdir)/%.texi $(outdir)/version.itexi
cd $(outdir); texi2pdf $(TEXI2PDF_FLAGS) --batch $(TEXINFO_PAPERSIZE_OPTION) $(<F)
rm -f $@
cp $< $@
+$(XREF_MAPS_DIR)/%.xref-map: $(outdir)/%.texi
+ $(PYTHON) $(buildscript-dir)/extract_texi_filenames.py -o $(XREF_MAPS_DIR) $<
+
+
$(outdir)/version.%: $(top-src-dir)/VERSION
echo '@macro version'> $@
echo $(TOPLEVEL_VERSION)>> $@
echo '@end macro'>> $@
- .SECONDARY: $(outdir)/version.itexi $(outdir)/version.texi
+ .SECONDARY: $(outdir)/version.itexi $(outdir)/version.texi \
+ $(outdir)/$(INFO_IMAGES_DIR).info-images-dir-dep
default: $(INFO_FILES)
-local-WWW: $(addprefix $(outdir)/,$(TEXI_FILES:.texi=.html))
+local-WWW-1: $(XREF_MAPS_FILES)
local-doc: $(OUTTXT_FILES)
# This builds all .info targets with images, in out-www.
# Viewable with a recent Emacs, doing: C-u C-h i out-www/lilypond.info
- local-install-info: info
- -$(INSTALL) -d $(DESTDIR)$(infodir)
ifneq ($(patsubst %/local,%,$(DESTDIR)$(prefix)),/usr)
## Can not have absolute symlinks because some binary packages build schemes
## install files in nonstandard root. Best we can do is to notify the
## builder or packager.
+ local-install-info: info
+ -$(INSTALL) -d $(DESTDIR)$(infodir)
@echo
@echo "***************************************************************"
@echo "Please add or update the LilyPond direntries, do"
@echo " (cd $(infodir) && ln -sfT ../doc/lilypond/html/$(DEST_INFO_IMAGES_SUBDIR) $(INFO_IMAGES_DIR))"
@echo "or add something like that to the postinstall script."
@echo
+
+ local-uninstall-info:
+ -rmdir $(DESTDIR)$(infodir)
+
else # installing directly into standard /usr/...
+ local-install-info: info
-$(INSTALL) -d $(DESTDIR)$(infodir)
$(foreach f,$(INFO_FILES),install-info --remove --info-dir=$(infodir) $(f) ; )true
install-info --info-dir=$(infodir) $(outdir)/$(MAIN_INFO_DOC).info
cd $(infodir) && ln -sfT $(webdir)/$(DEST_INFO_IMAGES_SUBDIR) $(INFO_IMAGES_DIR)
- endif # installing directly into standard /usr/...
- local-uninstall-WWW:
+ local-uninstall-info:
+ $(foreach f,$(INFO_FILES),install-info --remove --info-dir=$(infodir) $(f) ; )true
rm -f $(infodir)/$(INFO_IMAGES_DIR)
+ endif # installing directly into standard /usr/...
+
else # out!=www
ifneq ($(patsubst %/local,%,$(DESTDIR)$(prefix)),/usr)
## install files in nonstandard root. Best we can do is to notify the
## builder or packager.
local-install-info: info
- -$(INSTALL) -d $(DESTDIR)$(package_infodir)
+ -$(INSTALL) -d $(DESTDIR)$(infodir)
@echo
@echo "***************************************************************"
@echo "Please add or update the LilyPond direntries, do"
@echo
local-uninstall-info:
- -rmdir $(DESTDIR)$(package_infodir)
+ -rmdir $(DESTDIR)$(infodir)
else # installing directly into standard /usr/...
local-install-info: info
- -$(INSTALL) -d $(DESTDIR)$(package_infodir)
-$(INSTALL) -d $(DESTDIR)$(infodir)
$(foreach f,$(INFO_FILES),install-info --remove --info-dir=$(infodir) $(f) ; )true
install-info --info-dir=$(infodir) $(outdir)/$(MAIN_INFO_DOC).info
local-uninstall-info:
$(foreach f,$(INFO_FILES),install-info --remove --info-dir=$(infodir) $(f) ; )true
- -rmdir $(DESTDIR)$(infodir)
- -rmdir $(DESTDIR)$(package_infodir)
endif # installing into standard /usr/* root
-
TEXI_FILES = $(call src-wildcard,*.texi)
ALL_SOURCES += $(TEXI_FILES)
MAKEINFO_FLAGS = --enable-encoding
MAKEINFO = LANG= $(MAKEINFO_PROGRAM) $(MAKEINFO_FLAGS)
+# texi2html xref map files
+XREF_MAPS_DIR=$(top-build-dir)/out/xref-maps
+XREF_MAPS_FILES=$(INFO_DOCS:%=$(XREF_MAPS_DIR)/%.xref-map)
+
+# texi2html flags
+ifneq ($(ISOLANG),)
+TEXI2HTML_LANG = --lang=$(ISOLANG)
+endif
+TEXI2HTML_FLAGS += --css-ref=lilypond.css $(DOCUMENTATION_INCLUDES) \
+ --I=$(XREF_MAPS_DIR)
+TEXI2HTML_INIT = --init-file=$(top-src-dir)/lilypond-texi2html.init
+TEXI2HTML = $(TEXI2HTML_PROGRAM) $(TEXI2HTML_FLAGS) $(TEXI2HTML_LANG)
+
+ ifdef QUIET_BUILD
TEXI2PDF_FLAGS += -q
+ endif
# info stuff
INFO_INSTALL_FILES = $(wildcard $(addsuffix *, $(INFO_FILES)))