-
Notifications
You must be signed in to change notification settings - Fork 64
/
Copy pathMakefile
92 lines (73 loc) · 2.86 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
MAKE ?= make
AWK ?= gawk
DOCDIR := docs
SITEDIR := ../docs
FAUSTLIBS ?= ../../faustlibraries
SRC := $(shell cat $(FAUSTLIBS)/all.lib | grep import | sed -e 's/[^"]*"\(..*\.lib\).*/\1/')
MD := $(SRC:%.lib=$(DOCDIR)/libs/%.md)
LIST := $(SRC:%.lib=%)
####################################################################
help:
@echo "========================================================================"
@echo " Faust Libraries Documentation"
@echo "This Makefile is intended to generate the faust libraries documentation"
@echo "========================================================================"
@echo "Available targets are:"
@echo " install : install the required components"
@echo " build : build the web site"
@echo " serve : launch the mkdoc server"
@echo "Development specific targets are available:"
@echo " md : build the md files"
@echo " pdf : build the PDF documentation"
@echo " index : build the index file"
@echo " clean : removes the output of the md target"
@echo " list : list libraries (ready to be included in mkdocs.yml menu)"
test:
@echo MD: $(MD)
####################################################################
build:
$(MAKE) md
$(MAKE) index
mkdocs build
git checkout $(SITEDIR)/CNAME
serve:
@echo "you can browse the site at http://localhost:8000"
mkdocs serve
list:
@echo $(foreach e, $(LIST), " - '" $e "': libs/"$e.md"\n")
pdf:
pandoc --pdf-engine=xelatex --toc docs/index.md docs/organization.md docs/standardFunctions.md docs/contributing.md docs/about.md docs/libs/*.md -o library.pdf
clean:
rm -f $(MD)
####################################################################
# building md files
md : $(DOCDIR)/libs $(MD)
$(DOCDIR)/libs :
mkdir $(DOCDIR)/libs
$(DOCDIR)/libs/%.md:$(FAUSTLIBS)/%.lib
@echo ========= building $<
cat $< | $(AWK) -f scripts/faustlib2md.awk > $@
####################################################################
# building index
index: $(DOCDIR)/libs/index.md
$(DOCDIR)/libs/index.md : $(MD)
$(AWK) -f scripts/makeindex.awk $(MD) > $@
####################################################################
$(FAUSTDIR):
@echo "FAUSTLIBS not found ! ($(FAUSTLIBS))"
@echo "you should either:"
@echo " - set FAUSTLIBS to the faust projet location in this Makefile"
@echo " - call $(MAKE) FAUSTLIBS=faust_projet_path"
@false;
####################################################################
install:
pip install mkdocs==1.5.3
pip install mkdocs-pdf-export-plugin
pip install markdown-include
pip install mkdocs-bootswatch
pip install python-markdown-math
uninstall:
pip uninstall -y mkdocs-material
pip uninstall -y pymdown-extensions
pip uninstall -y markdown-blockdiag
pip uninstall -y mkdocs-pdf-export-plugin