Commit | Line | Data |
---|---|---|
8dd68dca NR |
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 |