]> rtime.felk.cvut.cz Git - pes-rpp/rpp-lib.git/blob - Makefile
Update uncrustify target to use git attributes
[pes-rpp/rpp-lib.git] / Makefile
1 # This makefile tries to build all RPP projects in this repository.
2
3 SUBDIRS = Debug POSIX apps/rpp-test-suite/Debug apps/rpp-test-suite/POSIX
4
5 subdir-targets = $(SUBDIRS:%=subdir-%)
6
7 all: $(subdir-targets)
8
9 clean: $(subdir-targets)
10
11 lib: # Build only the library
12         $(MAKE) -C Debug
13
14 doc: # Build API documentation (Doxygen)
15         $(MAKE) -C rpp/doc/api/
16
17 .PHONY: all clean lib
18
19 # Multiple submakes are invoked in the same directory - e.g.
20 # rpp-test-suite/Debug/GNUmakefile invokes Debug/GNUmakefile. We don't
21 # want these targets to be invoked twice so we forbid parallel
22 # invocation in this Makefile. Note that the submakes still run in
23 # parallel.
24 .NOTPARALLEL:
25
26 subdir-% subdir-apps/%:
27         $(MAKE) -C $(@:subdir-%=%) $(MAKECMDGOALS)
28
29
30 UNCRUSTIFY_FILES = $(shell git ls-files|git check-attr --stdin uncrustify|awk -F: '/uncrustify: set$$/ {print $$1}')
31 define UNCRUSTIFY_ALL
32 $(foreach i,$(UNCRUSTIFY_FILES),git show HEAD:$i | uncrustify -c etc/uncrustify.cfg -o $i
33 )
34 endef
35
36 # Usage: Run 'make uncrustify' and then 'git add -p' to commit the
37 # changes you agree with.
38 uncrustify:
39         git diff --quiet # Check that the tree is clean
40         $(UNCRUSTIFY_ALL)