-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
55 lines (44 loc) · 1.19 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
EMACS ?= emacs
EMACSFLAGS += --directory .
CASK ?= cask
PKGDIR := $(shell EMACS=$(EMACS) $(CASK) package-directory)
DESTDIR ?= dist
EMACSBATCH := $(EMACS) --no-site-file --no-site-lisp --quick --batch $(EMACSFLAGS)
# Export Emacs to goals, mainly for CASK
CASK_EMACS := $(EMACS)
export EMACS
export CASK_EMACS
SRCS := flycheck-swiftx.el
OBJS := $(SRCS:.el=.elc)
TEST_DIR := test
TEST_SRCS := flycheck-swiftx-test.el
SWIFT_MODE_SRCS := swift-mode.el
XCODE_PROJECT_SRCS := xcode-project.el
.PHONY : all
all : $(OBJS)
.PHONY : clean
clean :
rm -rf $(OBJS)
.PHONY : distclean
distclean : clean
rm -rf $(DESTDIR)
rm -rf .cask
rm -rf $(SWIFT_MODE_SRCS:%=$(TEST_DIR)/%)
.PHONY : dist
dist :
$(CASK) package $(DESTDIR)
.PHONY : test
test : all $(SWIFT_MODE_SRCS)
$(CASK) exec $(EMACSBATCH) \
$(TEST_SRCS:%=--load $(TEST_DIR)/%) \
$(SWIFT_MODE_SRCS:%=--load $(TEST_DIR)/%) \
$(XCODE_PROJECT_SRCS:%=--load %) \
--funcall ert-run-tests-batch-and-exit
$(PKGDIR) : Cask
$(CASK) install
touch $(@)
%.elc : %.el $(PKGDIR)
$(CASK) exec $(EMACSBATCH) \
-f batch-byte-compile $<
$(SWIFT_MODE_SRCS) :
curl --silent --output $(TEST_DIR)/$(@) 'https://raw.githubusercontent.com/apple/swift/master/utils/$(@)'