1include config.mak
2
3VERSION_FILE = ChangeLog
4
5DIRS    = src data filter icons man menu scripts
6
7ifeq ($(ECHO),)
8ECHO  := $(shell whereis -b echo | awk '{print $$2}')
9ifeq ($(ECHO),)
10ECHO   = echo
11endif
12endif
13
14ifeq ($(USE_I18N),Y)
15DIRS   += po
16endif
17
18.PHONY: all
19all:
20	@for d in $(DIRS); do $(ECHO) -e "\x1b[1;33m** processing $$d\x1b[0m"; \
21	   $(MAKE) -C $$d || exit 1; \
22	done
23
24.PHONY: install
25install:
26	@for d in $(DIRS); do $(ECHO) -e "\x1b[1;32m** installing $$d\x1b[0m"; \
27	   $(MAKE) -C $$d install || exit 1; \
28	done
29	install -d "$(DOC_DIR)"; \
30	install -m 644 $(VERSION_FILE) "$(DOC_DIR)"
31
32.PHONY: uninstall
33uninstall:
34	@for d in $(DIRS); do $(ECHO) -e "\x1b[1;32m** uninstalling $$d\x1b[0m"; \
35	   $(MAKE) -C $$d uninstall || exit 1; \
36	done
37
38.PHONY: clean
39clean:
40	@touch src/.depend
41	@for d in $(DIRS); do $(ECHO) -e "\x1b[1;31m** cleanup $$d\x1b[0m"; \
42	   $(MAKE) -C $$d clean; \
43	done
44
45.PHONY: distclean
46distclean:
47	@$(MAKE) clean
48	@rm -f config.mak
49
50config.mak: $(VERSION_FILE) configure
51	@$(ECHO) "regenerate $@ ..."
52	./configure
53
54.PHONY: clang-format
55clang-format:
56	clang-format --version
57	clang-format -i {src,data}/*.[ch] \
58		src/{gtk-im,im-client,modules}/*.[ch] \
59		src/qt5-im/*.h \
60		src/qt5-im/*.cpp \
61		--verbose
62