init c-master
[fanfix.git] / Makefile
CommitLineData
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#
7NAME = program
8NAMES = $(NAME) program2
9TESTS = tests-program
10
11################################################################################
12
13# You may override these when calling make
14PREFIX = /usr/local
15dstdir = 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
23all: build
24
25build: mess-build $(NAMES)
26
27rebuild: mess-rebuild $(NAMES)
28
29test: 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
37man: mess-man
38 @$(MAKE) -f man.d $(MAKECMDGOALS) NAME=$(NAME)
39
40# Doc
41doc: mess-doc
42 @$(MAKE) -f doc.d $(MAKECMDGOALS) NAME=$(NAME)
43
44# Run
45run: mess-run $(NAME)
46
47# Run main test
48run-test: mess-run-test $(TESTS)
49run-test-more: mess-run-test-more $(TESTS)
50
51# Misc
52love:
53 @echo " ...not war."
54debug:
55 $(MAKE) $(MAKECMDGOALS) PREFIX=$(PREFIX) NAME=$(NAME) DEBUG=1
56
57# Clean
58clean: mess-clean doc man $(TESTS) $(NAMES)
59mrproper: mrpropre
60mrpropre: mess-propre $(TESTS) $(NAMES) doc man
61
62# Install/uninstall
63install: mess-install $(NAMES) man
64uninstall: mess-uninstall $(NAMES) man
65
66# Messages
67mess-build:
68 @echo
69 @echo ">>>>>>>>>> Building $(NAMES) in $(dstdir)..."
70mess-rebuild:
71 @echo
72 @echo ">>>>>>>>>> Reilding $(NAMES) in $(dstdir)..."
73mess-run:
74 @echo
75 @echo ">>>>>>>>>> Running $(NAME)..."
76mess-clean:
77 @echo
78 @echo ">>>>>>>>>> Cleaning $(NAMES) $(TESTS)..."
79mess-propre:
80 @echo
81 @echo ">>>>>>>>>> Calling Mr Propre..."
82mess-doc:
83 @echo
84 @echo ">>>>>>>>>> Documentation of $(NAME): $(MAKECMDGOALS)..."
85mess-man:
86 @echo
87 @echo ">>>>>>>>>> Manual of $(NAME): $(MAKECMDGOALS)..."
88mess-test:
89 @echo
90 @echo ">>>>>>>>>> Building all tests in $(dstdir): $(TESTS)..."
91mess-run-test:
92 @echo
93 @echo ">>>>>>>>>> Running tests: $(TESTS)..."
94mess-run-test-more:
95 @echo
96 @echo ">>>>>>>>>> Running more tests: $(TESTS)..."
97mess-install:
98 @echo
99 @echo ">>>>>>>>>> Installing $(NAME) into $(PREFIX)..."
100mess-uninstall:
101 @echo
102 @echo ">>>>>>>>>> Uninstalling $(NAME) from $(PREFIX)..."
103