]> git.decadent.org.uk Git - ion3-doc.git/blobdiff - Makefile
Add 20080411-1.
[ion3-doc.git] / Makefile
index aa203d8939c946cd6d2803e3f6174d70becd457d..138a4ed64e3a0587a517eec97c5baf5b1a61bf15 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -15,9 +15,15 @@ L2H=latex2html -show_section_numbers -short_index -local_icons -noaddress \
 
 DOCS=ionconf ionnotes
 
-FNTEXES=ioncore-fns.tex mod_tiling-fns.tex \
-       mod_query-fns.tex de-fns.tex mod_menu-fns.tex \
-       mod_dock-fns.tex mod_sp-fns.tex mod_statusbar-fns.tex
+FNTEXES=ioncore.exports mod_tiling.exports \
+       mod_query.exports de.exports mod_menu.exports \
+       mod_dock.exports mod_sp.exports mod_statusbar.exports
+
+RUBBER_DVI=rubber
+RUBBER_PS=rubber -p
+RUBBER_PDF=rubber -d
+
+TARGETS = ionconf ionnotes
 
 # Generic rules
 ######################################
@@ -25,14 +31,14 @@ FNTEXES=ioncore-fns.tex mod_tiling-fns.tex \
 nothing:
        @ echo "Please read the README first."
 
-%.ps: %.dvi
-       dvips $<
+%-dvi:
+       $(RUBBER_DVI) $*
+       
+%-ps:
+       $(RUBBER_PS) $*
 
-%.pdf: %.dvi
-       dvipdfm -p a4 $<
-
-%.dvi: %.tex
-       latex $<
+%-pdf:
+       $(RUBBER_PDF) $*
 
 # Install
 ######################################
@@ -51,43 +57,34 @@ install:
 
 # ionconf rules
 ######################################
-ionconf-dvi-full:
-       latex ionconf
-       latex ionconf
-       latex ionconf
-       makeindex ionconf.idx
-       latex ionconf
-
-ionconf-html: 
-       $(L2H) -split 3 ionconf
 
-fntexes: $(FNTEXES)
+ionconf-dvi: fnlist.tex
+ionconf-ps: fnlist.tex
+ionconf-pdf: fnlist.tex
 
-ionconf-all: fntexes fnlist.tex ionconf-dvi-full ionconf-html
+ionconf-html: $(FNTEXES)
+       $(L2H) -split 3 ionconf
 
 # ionnotes rules
 ######################################
 
-ionnotes-dvi-full:
-       latex ionnotes
-       latex ionnotes
-       latex ionnotes
-       makeindex ionnotes.idx
-       latex ionnotes
-
 ionnotes-html: 
        $(L2H) -split 4 ionnotes
 
-ionnotes-all: ionnotes-dvi-full ionnotes-html
-
 # More generic rules
 ######################################
 
-all: ionconf-all ionnotes-all
+.PHONY: all all-dvi all-ps all-pdf all-html
+
+all: all-dvi all-ps all-pdf all-html
 
-all-ps: ionconf.ps ionnotes.ps
+all-dvi: $(patsubst %,%-dvi,$(TARGETS))
 
-all-pdf: ionconf.pdf ionnotes.pdf
+all-ps: $(patsubst %, %-ps, $(TARGETS))
+
+all-pdf: $(patsubst %, %-pdf, $(TARGETS))
+
+all-html: $(patsubst %, %-html, $(TARGETS))
 
 
 # Clean
@@ -106,29 +103,13 @@ realclean: clean
 # Function reference rules
 ######################################
 
-ioncore-fns.tex: $(TOPDIR)/ioncore/*.c $(TOPDIR)/ioncore/*.lua
-       $(MKEXPORTS) -module ioncore -mkdoc -o $@ $+
-
-mod_tiling-fns.tex: $(TOPDIR)/mod_tiling/*.c
-       $(MKEXPORTS) -module mod_tiling -mkdoc -o $@ $+
-
-mod_query-fns.tex: $(TOPDIR)/mod_query/*.c $(TOPDIR)/mod_query/mod_query.lua
-       $(MKEXPORTS) -module mod_query -mkdoc -o $@ $+
-
-mod_menu-fns.tex: $(TOPDIR)/mod_menu/*.c $(TOPDIR)/mod_menu/mod_menu.lua
-       $(MKEXPORTS) -module mod_menu -mkdoc -o $@ $+
-
-mod_dock-fns.tex: $(TOPDIR)/mod_dock/*.c
-       $(MKEXPORTS) -module mod_dock -mkdoc -o $@ $+
-
-mod_sp-fns.tex: $(TOPDIR)/mod_sp/*.c
-       $(MKEXPORTS) -module mod_sp -mkdoc -o $@ $+
+include $(TOPDIR)/libmainloop/rx.mk
 
-mod_statusbar-fns.tex: $(TOPDIR)/mod_statusbar/*.c
-       $(MKEXPORTS) -module mod_statusbar -mkdoc -o $@ $+
+$(TOPDIR)/%/exports.tex:
+       $(MAKE) -C $$(dirname $@) _exports_doc
 
-de-fns.tex: $(TOPDIR)/de/*.c
-       $(MKEXPORTS) -module de -mkdoc -o $@ $+
+%.exports: $(TOPDIR)/%/exports.tex
+       cp $< $@
 
 # Function list
 ######################################