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
8 NAMES
= $(NAME
) program2
11 ################################################################################
13 # You may override these when calling make
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 \
25 build
: mess-build
$(NAMES
)
27 rebuild
: mess-rebuild
$(NAMES
)
29 test: mess-test
$(TESTS
)
33 $(MAKE
) -C src
/$@
$(MAKECMDGOALS
) --no-print-directory \
34 PREFIX
=$(PREFIX
) DEBUG
=$(DEBUG
) dstdir
=$(abspath
$(dstdir
))
38 @
$(MAKE
) -f man.d
$(MAKECMDGOALS
) NAME
=$(NAME
)
42 @
$(MAKE
) -f doc.d
$(MAKECMDGOALS
) NAME
=$(NAME
)
48 run-test
: mess-run-test
$(TESTS
)
49 run-test-more
: mess-run-test-more
$(TESTS
)
55 $(MAKE
) $(MAKECMDGOALS
) PREFIX
=$(PREFIX
) NAME
=$(NAME
) DEBUG
=1
58 clean: mess-clean doc man
$(TESTS
) $(NAMES
)
60 mrpropre
: mess-propre
$(TESTS
) $(NAMES
) doc man
63 install: mess-install
$(NAMES
) man
64 uninstall: mess-uninstall
$(NAMES
) man
69 @echo
">>>>>>>>>> Building $(NAMES) in $(dstdir)..."
72 @echo
">>>>>>>>>> Reilding $(NAMES) in $(dstdir)..."
75 @echo
">>>>>>>>>> Running $(NAME)..."
78 @echo
">>>>>>>>>> Cleaning $(NAMES) $(TESTS)..."
81 @echo
">>>>>>>>>> Calling Mr Propre..."
84 @echo
">>>>>>>>>> Documentation of $(NAME): $(MAKECMDGOALS)..."
87 @echo
">>>>>>>>>> Manual of $(NAME): $(MAKECMDGOALS)..."
90 @echo
">>>>>>>>>> Building all tests in $(dstdir): $(TESTS)..."
93 @echo
">>>>>>>>>> Running tests: $(TESTS)..."
96 @echo
">>>>>>>>>> Running more tests: $(TESTS)..."
99 @echo
">>>>>>>>>> Installing $(NAME) into $(PREFIX)..."
102 @echo
">>>>>>>>>> Uninstalling $(NAME) from $(PREFIX)..."