init c-master
[nikiroo-utils.git] / Makefile
1 #
2 # Simple makefile that will forward all commands to src/xxx
3 # > NAME: main program (for 'man' and 'run')
4 # > NAMES: list of all the programs to compile
5 # > TESTS: list of all test programs to compile and run
6 #
7 NAME = program
8 NAMES = $(NAME) program2
9 TESTS = tests-program
10
11 ################################################################################
12
13 # You may override these when calling make
14 PREFIX = /usr/local
15 dstdir = bin
16
17 .PHONY: all build rebuild run clean mrpropre mrpropre love debug doc man \
18 test run-test run-test-more \
19 mess-build mess-run mess-clean mess-propre mess-doc mess-man \
20 mess-test mess-run-test mess-run-test-more \
21 $(NAMES) $(TESTS)
22
23 all: build
24
25 build: mess-build $(NAMES)
26
27 rebuild: mess-rebuild $(NAMES)
28
29 test: mess-test $(TESTS)
30
31 # Main buildables
32 $(NAMES) $(TESTS):
33 $(MAKE) -C src/$@ $(MAKECMDGOALS) --no-print-directory \
34 PREFIX=$(PREFIX) DEBUG=$(DEBUG) dstdir=$(abspath $(dstdir))
35
36 # Manual
37 man: mess-man
38 @$(MAKE) -f man.d $(MAKECMDGOALS) NAME=$(NAME)
39
40 # Doc
41 doc: mess-doc
42 @$(MAKE) -f doc.d $(MAKECMDGOALS) NAME=$(NAME)
43
44 # Run
45 run: mess-run $(NAME)
46
47 # Run main test
48 run-test: mess-run-test $(TESTS)
49 run-test-more: mess-run-test-more $(TESTS)
50
51 # Misc
52 love:
53 @echo " ...not war."
54 debug:
55 $(MAKE) $(MAKECMDGOALS) PREFIX=$(PREFIX) NAME=$(NAME) DEBUG=1
56
57 # Clean
58 clean: mess-clean doc man $(TESTS) $(NAMES)
59 mrproper: mrpropre
60 mrpropre: mess-propre $(TESTS) $(NAMES) doc man
61
62 # Install/uninstall
63 install: mess-install $(NAMES) man
64 uninstall: mess-uninstall $(NAMES) man
65
66 # Messages
67 mess-build:
68 @echo
69 @echo ">>>>>>>>>> Building $(NAMES) in $(dstdir)..."
70 mess-rebuild:
71 @echo
72 @echo ">>>>>>>>>> Reilding $(NAMES) in $(dstdir)..."
73 mess-run:
74 @echo
75 @echo ">>>>>>>>>> Running $(NAME)..."
76 mess-clean:
77 @echo
78 @echo ">>>>>>>>>> Cleaning $(NAMES) $(TESTS)..."
79 mess-propre:
80 @echo
81 @echo ">>>>>>>>>> Calling Mr Propre..."
82 mess-doc:
83 @echo
84 @echo ">>>>>>>>>> Documentation of $(NAME): $(MAKECMDGOALS)..."
85 mess-man:
86 @echo
87 @echo ">>>>>>>>>> Manual of $(NAME): $(MAKECMDGOALS)..."
88 mess-test:
89 @echo
90 @echo ">>>>>>>>>> Building all tests in $(dstdir): $(TESTS)..."
91 mess-run-test:
92 @echo
93 @echo ">>>>>>>>>> Running tests: $(TESTS)..."
94 mess-run-test-more:
95 @echo
96 @echo ">>>>>>>>>> Running more tests: $(TESTS)..."
97 mess-install:
98 @echo
99 @echo ">>>>>>>>>> Installing $(NAME) into $(PREFIX)..."
100 mess-uninstall:
101 @echo
102 @echo ">>>>>>>>>> Uninstalling $(NAME) from $(PREFIX)..."
103