-COMMANDS=$(wildcard ../cmd*.c)
-OBJS=$(COMMANDS:../%.c=%.o) docgen.o
+include ../../../rpp-lib/Makefile.config
+include ../../../rpp-lib/common.mk # for UPPERCASE
+include ../../Makefile.var
-CFLAGS=-Wall -std=c99 -I../.. -I../../cmdproc/include -I../../rpp-lib/rpp/include -DDOCGEN -DNULL=0 -D'CMD_HANDLER(x)=0'
+COMMANDS=$(notdir $(filter commands/cmd%,$(SOURCES)))
+OBJS=$(COMMANDS:%.c=%.o) docgen.o
-all: print-doc
+CFLAGS = -Wall -std=c99 -I../.. -I../../cmdproc/include -I../../rpp-lib/rpp/include -DDOCGEN -DNULL=0 -D'CMD_HANDLER(x)=0'
+CFLAGS += -DTARGET_$(call UPPERCASE,$(TARGET))
+
+
+all:print-doc
print-doc: docgen
./docgen
%.o: ../%.c
$(CC) $(CFLAGS) -c -o $@ $<
-clean:
+clean::
rm -f $(OBJS) docgen
+markdown = $(shell if pandoc -h|grep -q markdown_strict; then echo markdown_strict; else echo markdown; fi)
+
+doc.mw: docgen
+ (echo '<div class="toclimit-2" style="float: right; margin-left: 1em;">__TOC__</div>'; ./docgen wiki) | pandoc -f $(markdown) -t mediawiki > $@
+
+doc.mdwn: docgen Makefile
+# ./docgen wiki | pandoc -f markdown_strict -t markdown_strict > $@
+ ./docgen wiki > $@
+
+doc.html: docgen Makefile
+ ./docgen wiki | pandoc -f $(markdown) -t html --base-header-level=2 > $@
+
+
+doc.tex: docgen Makefile
+ ./docgen pdfdoc > $@.1
+ pandoc -f $(markdown) -t latex --base-header-level=1 $@.1 -o $@.2
+ sed -e 's/\\subsection/\\newpage\\subsection/' $@.2 > $@
+ rm $@.?
+
+upload: upload-mw upload-web
+
+upload-mw: doc.mw
+ cat $< | ./wiki-edit.pl TestCommands -
-upload: docgen
- ./docgen wiki | ./wiki-edit.pl TestCommands -
+WEB=../../../../web/
+WEBDST=$(WEB)test-sw-commands/rpp-test-sw.mdwn
+upload-web: doc.mdwn
+ifneq ($(wildcard $(WEBDST)),)
+ cp $< $(WEBDST)
+ make -C $(WEB)
+ git -C $(WEB) add $(WEBDST:$(WEB)%=%)
+ if ! git -C $(WEB) diff --cached --quiet; then git -C $(WEB) commit -m 'Automatic update of command reference' $(WEBDST:$(WEB)%=%) && git -C $(WEB) push; fi
+endif
FORCE: