-# -*- makefile -*-
-#
-# Makefile for the cc65 documentation
-#
-
-# You can put navigation-arrow pictures (next, back, contents) into HTML files
-# by setting this variable, either here or on make's command-line.
-# (You will need to copy the .png files from "share/doc/linuxdoc-tools*/html/".)
-#
-#BUTTONS=-I
-
-# These options decide how text files are made:
-# -f -- removes the backspace-overtyping that makes bold text
-# in the more/less commands and on typewriter-printers
-# -m -- makes Unix manual pages
-#
-#TXT_OPTIONS=-f -m
-
-SGML = apple2.sgml \
- apple2enh.sgml \
- ar65.sgml \
- atari.sgml \
- atmos.sgml \
- c128.sgml \
- c16.sgml \
- c64.sgml \
- ca65.sgml \
- ca65html.sgml \
- cbm510.sgml \
- cbm610.sgml \
- cc65.sgml \
- cl65.sgml \
- co65.sgml \
- coding.sgml \
- customizing.sgml\
- da65.sgml \
- debugging.sgml \
- dio.sgml \
- funcref.sgml \
- geos.sgml \
- grc.sgml \
- index.sgml \
- intro.sgml \
- ld65.sgml \
- library.sgml \
- lynx.sgml \
- make.sgml \
- nes.sgml \
- pet.sgml \
- plus4.sgml \
- supervision.sgml\
- vic20.sgml
-
-TXT = $(SGML:.sgml=.txt)
-HTML = $(SGML:.sgml=.html)
-INFO = $(SGML:.sgml=.info)
-DVI = $(SGML:.sgml=.dvi)
-TEX = $(SGML:.sgml=.tex)
-
-# ------------------------------------------------------------------------------
-# Pattern-rules, to make targets
-
-%.txt: %.sgml
- linuxdoc -B txt -f $(TXT_OPTIONS) $<
-
-%.html: %.sgml
- linuxdoc -B html --split=1 $(BUTTONS) $<
-
-%.info: %.sgml
- linuxdoc -B info $<
-
-%.dvi: %.sgml
- linuxdoc -B latex --output=dvi $<
-
-%.tex: %.sgml
- linuxdoc -B latex --output=tex $<
-
-# ------------------------------------------------------------------------------
-# Targets
-
-.PHONY: all
-all: txt html info dvi
-
-.PHONY: txt
-txt: linuxdoc $(TXT)
-
-.PHONY: html
-html: linuxdoc $(HTML)
-
-.PHONY: info
-info: linuxdoc $(INFO)
-
-.PHONY: dvi
-dvi: linuxdoc $(DVI)
-
-.PHONY: tex
-tex: linuxdoc $(TEX)
-
-.PHONY: linuxdoc
-linuxdoc:
- @sgmlcheck index >/dev/null 2>&1 || { \
- echo; \
- echo '"LinuxDoc Tools" does not exist on this system.'; \
- echo 'So, most of the documentation might not have been built.'; \
- echo; \
- false;}
-
-.PHONY: clean
+ifneq ($(shell echo),)
+ CMD_EXE = 1
+endif
+
+.PHONY: all mostlyclean clean install zip doc html info gh-pages
+
+.SUFFIXES:
+
+all mostlyclean install:
+
+ifdef CMD_EXE
+
+clean zip doc:
+
+else # CMD_EXE
+
+SGMLS := $(wildcard *.sgml)
+
+../html/coding.html ../html/index.html: \
+TOC_LEVEL = 0
+
+TOC_LEVEL = 2
+
clean:
- $(RM) *~
+ $(RM) -r ../html ../info
+
+zip:
+ @cd .. && zip cc65 html/*.*
+
+doc: html info
+
+html: $(addprefix ../html/,$(SGMLS:.sgml=.html) doc.css doc.png)
+
+info: $(addprefix ../info/,$(SGMLS:.sgml=.info))
-.PHONY: zap
-zap: clean
- $(RM) $(TXT) $(TEX) $(DVI) *.htm* *.inf* *.man
+../html ../info:
+ @mkdir $@
-# ------------------------------------------------------------------------------
-# Special target rules
+../html/%.html: %.sgml header.html | ../html
+ @cd ../html && linuxdoc -B html -s 0 -T $(TOC_LEVEL) -H ../doc/header.html ../doc/$<
-coding.html: coding.sgml
- sgml2html --split=0 $<
+../html/doc.%: doc.% | ../html
+ cp $< ../html
-# funcref.sgml's third section is huge.
-# So, funcref.html is split into sub-section files.
-#
-funcref.html: funcref.sgml
- sgml2html --split=2 $(BUTTONS) $<
+../info/%.info: %.sgml | ../info
+ @cd ../info && linuxdoc -B info ../doc/$<
-# The index.html target is special:
-# It is only a table of contents. So, it should not be split.
-#
-index.html: index.sgml
- sgml2html --split=0 $<
+endif # CMD_EXE