aboutsummaryrefslogtreecommitdiffstats
path: root/GNUmakefile
blob: 3bbf1c30e72969e98789cfc6888f7f3b986f191f (plain)
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
FILES := $(wildcard oni-*.el)

PACKAGE_TARGETS := $(addprefix package-,$(FILES))

define upload =
	emacs --batch \
	    --load oni-package.el \
	    --funcall package-initialize \
	    --eval "(package-upload-file $1)"
endef

define upload-multi-file =
	$(call upload,(car (sort (file-expand-wildcards \"$1/dist/*.tar\") #'string>)))
	cp $1/dist/$1-readme.txt bin/
endef

package: $(PACKAGE_TARGETS) package-oni-conf package-oni-css package-oni-elisp \
    package-oni-haml package-oni-html package-oni-nxml package-oni-org \
    package-oni-php package-oni-python package-oni-ruby package-oni-twig \
    package-oni-csharp package-oni-bats

package-%: %
	$(call upload,\"$^\")

package-oni-bats:
	$(call upload-multi-file,oni-bats)

package-oni-conf:
	$(call upload-multi-file,oni-conf)

package-oni-css:
	$(call upload-multi-file,oni-css)

package-oni-elisp:
	$(call upload-multi-file,oni-elisp)

package-oni-haml:
	$(call upload-multi-file,oni-haml)

package-oni-html:
	$(call upload-multi-file,oni-html)

package-oni-nxml:
	$(call upload-multi-file,oni-nxml)

package-oni-org:
	$(call upload-multi-file,oni-org)

package-oni-php:
	$(call upload-multi-file,oni-php)

package-oni-python:
	$(call upload-multi-file,oni-python)

package-oni-ruby:
	$(call upload-multi-file,oni-ruby)

package-oni-twig:
	$(call upload-multi-file,oni-twig)

package-oni-csharp:
	$(call upload-multi-file,oni-csharp)

install-%:
	emacs --batch \
	    --load oni-package.el \
	    --funcall package-initialize \
	    --eval "(add-to-list 'package-archives '(\"test\" . \"$(TEST_ARCHIVE)\"))" \
	    --eval '(package-refresh-contents)' \
	    --eval "(package-install '$*)"

unit-test-%: install-%
	emacs --batch \
	    --load oni-package.el \
	    --funcall package-initialize \
	    --load ert \
	    --load "test/$*-test.el" \
	    --eval "(setq ert-batch-backtrace-right-margin nil)" \
	    --funcall ert-run-tests-batch-and-exit

integration-test-%: install-%
	bats test/integration/$*.bats

clean:
	rm -fv $(FILES)