C.6. The Do-Everything makefile in doc/o/

This makefile can make up all forms of the documentation from start to finish (a process which takes at least an hour). It is also useful for generating just the HTML, or just the QNX Helpviewer, or just the PDF docs. It is located at doc/o/Makefile.

# Makefile
#
# Builds all documentation for distribution, according to desired
# output format: HTML, QNX Helpviewer, or PDF.

# The "all" command assumes that none of the docs have been generated.
# It makes the html version of each document twice, to make sure the
# indices are generated correctly.  If you don't need this, do a make
# of "html", "help", or "pdf" as needed.

# The "most" command is for generating just the docs we are currently
# distributing.  It assumes that a working html version of each book has
# been generated, which is normally the case when the book is being edited.

# All documents (except ARTS and OTHER) are created in HTML, and at least 
# one of the other two output formats. The OTHER documents are not for
# distribution, but are included for the sake of the "fresh", "clean",
# and "empty" targets, and to make "html" once.


SET     = cogent-set

SST     = drsd-book drmb-book

GTK	= gtkgamma-book

BOOKS 	= gamguide-book gamref1-book gamref2-book \
          phgamguide-book phgamref1-book phgamref2-book \
          sqlgamma-book qse-book dhw-book dh-book ccw-book  \
          drcf-book drdn-book drpb-book drsd-book drmb-book \
          hi-book tl-book api-book tu-book wp-book gl-book sr-book

ARTS	= p1-art p2-art p3-art p4-art p5-art p6-art

OTHER 	= testfile testfile2 testfile3 \
          gamma-book phgamma-book \
          prepdoc-book drgn-book

ALLDOCS = $(SET) $(GTK) $(BOOKS) $(ARTS) $(OTHER)

HTML	= fresh html

HELP    = fresh html fresh html help4 help6

PDF	= fresh html fresh html pdf

HELPLITE = help4 help6

PDFLITE  = pdf


.PHONY: $(SET) $(SST) $(GTK) $(BOOKS) $(ARTS) $(OTHER)

default: html

echo:
	: SET   : $(SET)
	: SST   : $(SST)
	: GTK   : $(GTK)
	: BOOKS : $(BOOKS)
	: ARTS  : $(ARTS)
	: OTHER : $(OTHER)

all:
	for t in $(HELP); do \
                make $(SET) TARGET=$$t; \
                make $(SST) TARGET=$$t; \
                make $(GTK) TARGET=$$t; \
	done

	for t in $(PDF); do \
                make $(BOOKS) TARGET=$$t; \
	done
	make  wp-book TARGET=articles

	for t in $(HTML); do \
                make $(OTHER) TARGET=$$t; \
                make $(GTK) TARGET=$$t; \
	done

most:
	for t in $(HTML); do \
                make $(SET) TARGET=$$t; \
	done

	for t in $(HELPLITE); do \
                make $(SET) TARGET=$$t; \
                make $(SST) TARGET=$$t; \
	done

	for t in $(PDFLITE); do \
                make $(BOOKS) TARGET=$$t; \
	done
	make  wp-book TARGET=articles


$(ALLDOCS) :
	make -C $@ $(TARGET)

html:
	make $(SET) TARGET=html
	make $(GTK) TARGET=html
	make $(BOOKS) TARGET=html
	make $(OTHER) TARGET=html

help4 help6:
	make $(SET) TARGET=$@
	make $(SST) TARGET=$@
	make $(GTK) TARGET=$@

pdf:
	make $(BOOKS) TARGET=pdf
	make  wp-book TARGET=articles

fresh:
	make $(ALLDOCS) TARGET=fresh

clean:
	make $(ALLDOCS) TARGET=clean

empty:
	make $(ALLDOCS) TARGET=empty