]> git.llucax.com Git - software/mutest.git/blob - Makefile
doc: Highlight syntax of code examples
[software/mutest.git] / Makefile
1 #
2 # This file is part of mutest, a simple micro unit testing framework for C.
3 #
4 # mutest was written by Leandro Lucarella <llucax@gmail.com> and is released
5 # under the BOLA license, please see the LICENSE file or visit:
6 # http://blitiri.com.ar/p/bola/
7 #
8 # This is the main Makefile.
9 #
10 # Please, read the README file for more details.
11 #
12
13 MANUAL_SRC=README
14 MANUAL_HTML=manual.html
15 MANUAL_PDF=manual.pdf
16 SAMPLES = sample/factorial.c sample/factorial_test.c sample/exception_test.cpp
17 MANUAL_GARBAGE = manual.aux manual.log manual.out
18 # Programs
19 RST2HTML = rst2html
20 RST2PDF = rst2pdf
21 INSTALL = install
22 LN = ln
23 MKDIR = mkdir
24 CHMOD = chmod
25 GIT = git
26 # Directories
27 prefix = /usr/local
28 BIN_DIR = bin
29 INC_DIR = include
30 DOC_DIR = shared/doc/mutest
31
32 all:
33
34 doc: doc-html doc-pdf
35
36 doc-html: $(MANUAL_HTML)
37
38 $(MANUAL_HTML): $(MANUAL_SRC) $(SAMPLES)
39         $(RST2HTML) $< > $@
40
41 doc-pdf: $(MANUAL_PDF)
42
43 $(MANUAL_PDF): $(MANUAL_SRC)
44         $(RST2PDF) $< -o $@
45
46 install-readme:
47         $(INSTALL) -m 755 -d $(prefix)/$(DOC_DIR)
48         $(INSTALL) -m 644 $(MANUAL_SRC) $(prefix)/$(DOC_DIR)/$(MANUAL_SRC)
49
50 install-html: $(MANUAL_HTML)
51         $(INSTALL) -m 755 -d $(prefix)/$(DOC_DIR)
52         $(INSTALL) -m 644 $(MANUAL_HTML) $(prefix)/$(DOC_DIR)/$(MANUAL_HTML)
53
54 install-pdf: $(MANUAL_PDF)
55         $(INSTALL) -m 755 -d $(prefix)/$(DOC_DIR)
56         $(INSTALL) -m 644 $(MANUAL_PDF) $(prefix)/$(DOC_DIR)/$(MANUAL_PDF)
57
58 install-c:
59         $(INSTALL) -m 755 -d $(prefix)/$(BIN_DIR)
60         $(INSTALL) -m 755 -d $(prefix)/$(INC_DIR)
61         $(INSTALL) -m 644 mutest.c $(prefix)/$(INC_DIR)/mutest.c
62         $(INSTALL) -m 644 mutest.h $(prefix)/$(INC_DIR)/mutest.h
63         $(INSTALL) -m 755 mkmutest $(prefix)/$(BIN_DIR)/mkmutest
64
65 install-py:
66         $(INSTALL) -m 755 -d $(prefix)/$(BIN_DIR)
67         $(INSTALL) -m 755 -d $(prefix)/$(INC_DIR)
68         $(INSTALL) -m 644 mutest.h $(prefix)/$(INC_DIR)/mutest.h
69         $(INSTALL) -m 755 mutest $(prefix)/$(BIN_DIR)/mutest
70
71 install-doc: install-readme install-html install-pdf
72
73 install: install-c install-py install-doc
74
75 test:
76         $(MAKE) -k -C sample test test-py
77
78 # You shouldn't use this target
79 ifeq ($(MAKECMDGOALS),release)
80 ifeq ($(VERSION),)
81 $(error You have to specify a VERSION when using the 'release' target)
82 endif
83 endif
84 release: doc
85         $(RM) $(MANUAL_GARBAGE)
86         $(GIT) tag -f $(VERSION)
87         $(GIT) push --tags
88         $(MKDIR) -p releases
89         $(CHMOD) 755 releases
90         $(GIT) archive --format=tar --prefix=mutest-$(VERSION)/ $(VERSION) \
91                         | gzip > releases/mutest-$(VERSION).tar.gz
92         $(CHMOD) 644 releases/mutest-$(VERSION).tar.gz
93         $(LN) -sf mutest-$(VERSION).tar.gz releases/mutest.tar.gz
94         $(INSTALL) -m 644 manual.html releases/manual-$(VERSION).html
95         $(LN) -sf manual-$(VERSION).html releases/manual.html
96         $(INSTALL) -m 644 manual.pdf releases/manual-$(VERSION).pdf
97         $(LN) -sf manual-$(VERSION).pdf releases/manual.pdf
98
99 clean:
100         $(RM) $(MANUAL_HTML) $(MANUAL_PDF) $(MANUAL_GARBAGE)
101
102 .PHONY: all doc doc-html doc-pdf \
103                 install-readme install-html install-pdf install-doc \
104                 install-c install-py install \
105                 release test clean
106