1include app.mk
2
3###-----------------------------------------------------------------------------
4### APPLICATION LAYOUT
5###-----------------------------------------------------------------------------
6APPNAME = common_lib
7ERLS = $(patsubst src/%.erl,%.erl,$(wildcard src/*.erl))
8MODS = $(subst $(space),$(comma)$(space),$(ERLS:.erl=))
9DOCS = $(patsubst doc/%.ndoc,%.ndoc,$(wildcard doc/*.ndoc))
10MANS = $(DOCS:.ndoc=.3)
11HTMS = $(DOCS:.ndoc=.html)
12TEXS = $(DOCS:.ndoc=.tex)
13PDFS = $(DOCS:.ndoc=.pdf)
14
15### Dependecy Search Paths
16VPATH = src:include:ebin:doc
17
18.PHONY: compile clean clobber test doc
19.SUFFIXES: .erl .hrl .beam .app.src .app .rel .ndoc
20
21###-----------------------------------------------------------------------------
22### TARGETS
23###-----------------------------------------------------------------------------
24compile:
25	./rebar compile
26
27clean:
28	./rebar clean
29
30clobber: clean
31	@$(RM) -R doc/html
32	@$(RM) -R doc/man
33	@$(RM) -R doc/pdf
34	@$(RM) -R logs
35	@$(RM) -R test/*.beam
36
37test:
38	./rebar ct
39
40doc: dirs man
41
42dirs:
43	@$(MKDIR) doc/man
44
45man: $(MANS)
46	@$(MV) doc/man/$(APPNAME)_overview.3 doc/man/$(APPNAME).1
47
48html: $(HTMS)
49	@$(MV) doc/html/$(APPNAME)_overview.html doc/html/index.html
50
51pdf: $(PDFS)
52
53## Rules
54%.3: %.ndoc
55	@$(CD) doc; $(SED) "s|%MODULES%|`echo $(MODS)`|g" ../$^ | \
56	$(SED) "s|%VSN%|$(VSN)|g" | $(SED) "s|%APPLICATION%|$(APPNAME)|g" | \
57	$(ERLDOC) -i - -t man --no-toc -o man/$@; $(CD) ..
58
59%.html: %.ndoc
60	@$(CD) doc; $(SED) "s|%MODULES%|`echo $(MODS)`|g" ../$^ | \
61	$(SED) "s|%VSN%|$(VSN)|g" | $(SED) "s|%APPLICATION%|$(APPNAME)|g" | \
62	$(ERLDOC) -i - -t xhtml -o html/$@; $(CD) ..
63
64%.pdf: %.ndoc
65	@$(CD) doc; $(SED) "s|%MODULES%|`echo $(MODS)`|g" ../$^ | \
66	$(SED) "s|%VSN%|$(VSN)|g" | $(SED) "s|%APPLICATION%|$(APPNAME)|g" | \
67	$(ERLDOC) -i - -t pdf --no-toc -o pdf/$@; $(CD) ..
68