FILES := $(wildcard *.el)

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

package: $(PACKAGE_TARGETS) package-oni-conf

package-%: %
	emacs --batch \
	    --load oni-package.el \
	    --funcall package-initialize \
	    --eval '(package-upload-file "$^")'

package-oni-conf:
	emacs --batch \
	    --load oni-package.el \
	    --funcall package-initialize \
	    --eval '(package-upload-file (car (file-expand-wildcards "oni-conf/dist/*.tar")))'

install-%:
	emacs --batch \
	    --load oni-package.el \
	    --funcall package-initialize \
	    --eval '(package-refresh-contents)' \
	    $(foreach DEP,$(DEPS),--eval "(package-install-file \"$(DEP).el\")") \
	    --eval "(package-install-file \"$*.el\")" \

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

clean:
	rm -fv $(FILES)