You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

elpkg.mk 1.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. ################################################################################
  2. CORE_FILE ?= lisp/$(NAME).el
  3. ELPKG ?= elpkg
  4. VERSION ?= $(shell $(ELPKG)/version.sh $(CORE_FILE))
  5. PACKAGE ?= $(NAME)-$(VERSION)
  6. TARBALL ?= $(PACKAGE).tar
  7. PKG_FILES ?= $(shell git ls-files|egrep -vi '.git|makefile|elpkg')
  8. EL_FILES ?= $(shell git ls-files|egrep '\.el$$')
  9. ################################################################################
  10. EMACS = emacs
  11. EMACS_FLAGS = --batch -Q
  12. EMACS_FLAGS += --eval "(add-to-list 'load-path \"lisp\")"
  13. EMACS_FLAGS += -f package-initialize
  14. EMACS_FLAGS += -f batch-byte-compile
  15. ################################################################################
  16. .PHONEY: all clean test compile
  17. ################################################################################
  18. all: $(TARBALL)
  19. ################################################################################
  20. compile: $(EL_FILES:.el=.elc)
  21. ################################################################################
  22. clean:
  23. rm -rf $(TARBALL) $(PACKAGE) $(PACKAGE).elpa
  24. rm -f $(EL_FILES:.el=.elc)
  25. ################################################################################
  26. test: $(TARBALL)
  27. $(EMACS) --batch -Q -l $(ELPKG)/pkgtest.el \
  28. --eval '(elpkg-test-package "$(CURDIR)/$(TARBALL)")'
  29. ################################################################################
  30. $(PACKAGE): $(PKG_FILES)
  31. rm -rf $@
  32. mkdir -p $@
  33. cp $(PKG_FILES) $@
  34. $(ELPKG)/defpkg.sh $(NAME) $@/$(notdir $(CORE_FILE)) > $@/$(NAME)-pkg.el
  35. ################################################################################
  36. $(TARBALL): $(PACKAGE)
  37. tar -cf $@ $<
  38. ################################################################################
  39. %.elc: %.el
  40. @ echo emacs compile $<
  41. @ $(EMACS) $(EMACS_FLAGS) $<