-# Mudela_rules.make
+.SUFFIXES: .doc .tely .texi .ly
-.SUFFIXES: .doc .dvi .mudtex .tely .texi .ly
+# TODO: fix hardcoded out/ ?
+LYS_OUTPUT_OPTION= --lily-output-dir $(LYS_OUTPUT_DIR)
+LYS_OUTPUT_DIR=$(top-build-dir)/out/lybook-db
+LILYPOND_BOOK_FLAGS += $(LYS_OUTPUT_OPTION)
+$(outdir)/%.latex: %.doc $(INIT_LY_SOURCES) $(SCHEME_SOURCES)
+ LILYPOND_VERSION=$(TOPLEVEL_VERSION) PDFTEX=$(PDFTEX) PDFLATEX=$(PDFLATEX) $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BOOK_PROCESS) $(LILYPOND_BOOK_LILYPOND_FLAGS)' --output=$(outdir) $(LILYPOND_BOOK_FLAGS) --redirect-lilypond-output $<
-$(outdir)/%.latex: %.doc
- -chmod a+w $@
- $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) $(LILYPOND_BOOK_FLAGS) --verbose --dependencies --outdir=$(outdir) $<
- chmod -w $@
+# This allows -j make option while making sure only one lilypond-book instance
+# is running at the same time, using GNU make's order-only prerequisites so
+# as to not create superficial dependencies between unrelated manuals.
+define CHAIN_RULE
+| $(i)
+$(i):
+endef
+
+$(eval $(firstword $(TEXI_FILES_FROM_TELY)):\
+ $(foreach i, $(wordlist 2, $(words $(TEXI_FILES_FROM_TELY)),\
+ $(TEXI_FILES_FROM_TELY)),$(CHAIN_RULE)))
# don't do ``cd $(outdir)'', and assume that $(outdir)/.. is the src dir.
# it is not, for --srcdir builds
-$(outdir)/%.texi: %.tely
- -chmod a+w $@
- set|egrep '(TEX|LILY)' # ugh, what's this?
- $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --dependencies --outdir=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) --verbose $(LILYPOND_BOOK_FLAGS) $<
- chmod -w $@
-
-$(outdir)/%.texi: $(outdir)/%.tely
- -chmod a+w $@
-# debugging:
-# set|egrep '(TEX|LILY)'
- $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --dependencies --outdir=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) --verbose $(LILYPOND_BOOK_FLAGS) $<
-#
-# DON'T REMOVE SOURCE FILES, otherwise the .TEXI ALWAYS OUT OF DATE.
-# rm -f $<
- chmod -w $@
-
-# nexi: no-lily texi
-# for plain info doco: don't run lily
-$(outdir)/%.nexi: %.tely
- -chmod a+w $@
- $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --dependencies --outdir=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) --no-lily $(LILYPOND_BOOK_FLAGS) -o $(notdir $@) $<
- chmod -w $@
-
-# nfo: info from non-lily texi
-$(outdir)/%.info: $(outdir)/%.nexi
- $(MAKEINFO) --output=$(outdir)/$(*F).info $<
+$(outdir)/%.texi: %.tely $(outdir)/version.itexi $(DOCUMENTATION_LOCALE_TARGET) $(INIT_LY_SOURCES) $(SCHEME_SOURCES)
+ LILYPOND_VERSION=$(TOPLEVEL_VERSION) PDFTEX=$(PDFTEX) PDFLATEX=$(PDFLATEX) $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BOOK_PROCESS) $(LILYPOND_BOOK_LILYPOND_FLAGS)' --output=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) $(LILYPOND_BOOK_FLAGS) --redirect-lilypond-output $<
-# nfo: info from non-lily texi
-#$(outdir)/%.nfo: $(outdir)/%.nexi
-# $(MAKEINFO) --output=$(outdir)/$(*F).info $<
-#
-# let's not do this: this interferes with the lilypond-book dependency mechanism.
-#
-##$(outdir)/%.tex: $(outdir)/%.ly
-## $(LILYPOND) $(LILYPOND_BOOK_INCLUDES) -o $@ $<
-
-#
-# Timothy's booklet
-#
-$(outdir)/%-book.ps: $(outdir)/%.ps
- psbook $< $<.tmp
- pstops '2:0L@.7(21cm,0)+1L@.7(21cm,14.85cm)' $<.tmp $@
-
-$(outdir)/%.pdf: $(outdir)/%.dvi
- dvips -u +lilypond.map -o $@.pdfps -t $(DVIPS_PAPERSIZE) -Ppdf $<
- ps2pdf -sPAPERSIZE=$(DVIPS_PAPERSIZE) $@.pdfps $@
+$(outdir)/%.texi: $(outdir)/%.tely $(outdir)/version.itexi $(DOCUMENTATION_LOCALE_TARGET) $(INIT_LY_SOURCES) $(SCHEME_SOURCES)
+ LILYPOND_VERSION=$(TOPLEVEL_VERSION) PDFTEX=$(PDFTEX) PDFLATEX=$(PDFLATEX) $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BOOK_PROCESS) $(LILYPOND_BOOK_INCLUDES) $(LILYPOND_BOOK_LILYPOND_FLAGS)' --output=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) $(LILYPOND_BOOK_FLAGS) --redirect-lilypond-output $<
$(outdir)/%.html.omf: %.tely
$(outdir)/%.pdf.omf: %.tely
$(call GENERATE_OMF,pdf)
-$(outdir)/%.ps.gz.omf: %.tely
- $(call GENERATE_OMF,ps.gz)
-
-
-$(outdir)/%.html.omf: $(outdir)/%.texi
+$(outdir)/%.html.omf: $(outdir)/%.texi | $(OUT_TEXINFO_MANUALS)
$(call GENERATE_OMF,html)
-$(outdir)/%.pdf.omf: $(outdir)/%.texi
+$(outdir)/%.pdf.omf: $(outdir)/%.texi | $(OUT_TEXINFO_MANUALS)
$(call GENERATE_OMF,pdf)
-$(outdir)/%.ps.gz.omf: $(outdir)/%.texi
- $(call GENERATE_OMF,ps.gz)
+$(outdir)/others-did.itexi $(outdir)/we-wrote.itexi: $(outdir)/%.itexi: $(top-src-dir)/Documentation/web/%.bib $(top-src-dir)/Documentation/lily-bib.bst
+ BSTINPUTS=$(top-src-dir)/Documentation/web/ $(buildscript-dir)/bib2texi \
+ -s $(top-src-dir)/Documentation/lily-bib \
+ -o $(outdir)/$*.itexi \
+ -q \
+ $(top-src-dir)/Documentation/web/$*.bib