-
Notifications
You must be signed in to change notification settings - Fork 23
/
Makefile
57 lines (47 loc) · 1.27 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# Default target
all-but-emacs: bin java git-hooks
# This is not the default target, because it isn't strictly necessary to
# compile the .el files and because errors can arise. For example, to
# compile or use bbdb-mew requires that the non-standard mew package is
# installed.
all: all-but-emacs emacs
# Default target in bin/ runs tests
.PHONY: bin
bin:
${MAKE} -C bin
# Compile Java files
.PHONY: java jar
java:
${MAKE} -C java all
jar:
${MAKE} -C java jar
.PHONY: git-hooks
git-hooks: .git/hooks/pre-commit .git/hooks/post-merge
.git/hooks/pre-commit:
ln -s ../../bin/plume-lib.pre-commit $@
.git/hooks/post-merge: bin/plume-lib.post-merge
ln -s ../../bin/plume-lib.post-merge $@
# Compile Emacs Lisp files
.PHONY: emacs
emacs:
${MAKE} -C emacs
check:
${MAKE} -C bin check-python
ifneq (,$(findstring 1.8.,$(shell java -version 2>&1)))
${MAKE} -C java check-format
endif
# Tags
tags: TAGS
TAGS:
cd java && $(MAKE) tags
etags --include=java/TAGS
# Remove files that should not appear in the release.
# Don't run this unless making a release! And don't run it in your main clone!
# It removes files that appear in the version control system.
.PHONY: release-clean
release-clean:
rm -rf .git .gitignore
${MAKE} -C java release_clean
.PHONY: clean
clean:
${MAKE} -C java clean