-.SUFFIXES: .doc .dvi .tely .texi .ly
+.SUFFIXES: .doc .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
+ $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BOOK_PROCESS) $(LILYPOND_BOOK_LILYPOND_FLAGS)' --output=$(outdir) $(LILYPOND_BOOK_FLAGS) $<
-$(outdir)/%.latex $(outdir)/%.fonts.ps: %.doc
- $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND) $(LILYPOND_BOOK_INCLUDES)' --output=$(outdir) --verbose $(LILYPOND_BOOK_FLAGS) $<
+
+# This allows -j make option while making sure only one lilypond-book instance
+# is running at the same time
+define CHAIN_RULE
+$(i)
+$(i):
+endef
+
+$(eval $(firstword $(MASTER_TEXI_FILES)): $(foreach i, $(wordlist 2, $(words $(MASTER_TEXI_FILES)), $(MASTER_TEXI_FILES)),$(CHAIN_RULE)))
# don't do ``cd $(outdir)'', and assume that $(outdir)/.. is the src dir.
# it is not, for --srcdir builds
-$(outdir)/%.texi: %.tely
- rm -f $$(grep -LF '% eof' $(outdir)/lily-*systems.tex 2>/dev/null)
- $(PYTHON) $(LILYPOND_BOOK) --psfonts=$(basename $<).fonts.ps $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND) $(LILYPOND_BOOK_INCLUDES)' --output=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) --verbose $(LILYPOND_BOOK_FLAGS) $<
-
-$(outdir)/%.texi: $(outdir)/%.tely
- rm -f $$(grep -LF '% eof' $(outdir)/lily-*systems.tex 2>/dev/null)
- $(PYTHON) $(LILYPOND_BOOK) --psfonts=$(basename $<).fonts.ps $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND) $(LILYPOND_BOOK_INCLUDES)' --output=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) --verbose $(LILYPOND_BOOK_FLAGS) $<
-#
-# DON'T REMOVE SOURCE FILES, otherwise the .TEXI ALWAYS OUT OF DATE.
-# rm -f $<
-
-# nexi: n[o-lilypond t]exi
-# for plain info doco: don't run lilypond
-$(outdir)/%.nexi: %.tely
- rm -f $(outdir)/$*.texi
- $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --output=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) --verbose $(LILYPOND_BOOK_FLAGS) --process='true' $<
- mv $(outdir)/$*.texinfo $@ 2>/dev/null || mv $(outdir)/$*.texi $@
-
-$(outdir)/%.info: $(outdir)/%.nexi
- $(MAKEINFO) -I $(outdir) --output=$(outdir)/$(*F).info $<
-
-# 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 $(DVIPS_FLAGS) -o $@.pdfps -t $(DVIPS_PAPERSIZE) $<
-# without -dSAFER
-# gs 8.15 complains of safety of loading a ttf directly
- gs -dCompatibilityLevel=1.2 -sPAPERSIZE=a4 -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=$@ -dCompatibilityLevel=1.2 -sPAPERSIZE=a4 -c .setpdfwrite -f $@.pdfps
+$(outdir)/%.texi: %.tely $(outdir)/version.itexi $(DOCUMENTATION_LOCALE_TARGET)
+ $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BOOK_PROCESS) $(LILYPOND_BOOK_LILYPOND_FLAGS)' --output=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) $(LILYPOND_BOOK_FLAGS) $<
+
+
+$(outdir)/%.texi: $(outdir)/%.tely $(outdir)/version.itexi $(DOCUMENTATION_LOCALE_TARGET)
+ $(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) $<
+
$(outdir)/%.html.omf: %.tely
$(call GENERATE_OMF,html)
$(call GENERATE_OMF,pdf)
$(outdir)/%.ps.gz.omf: %.tely
- $(call GENERATE_OMF,ps.gz)
+ $(call GENERATE_OMF,ps.gz)
$(outdir)/%.html.omf: $(outdir)/%.texi
$(call GENERATE_OMF,html)
$(call GENERATE_OMF,pdf)
$(outdir)/%.ps.gz.omf: $(outdir)/%.texi
- $(call GENERATE_OMF,ps.gz)
+ $(call GENERATE_OMF,ps.gz)