Mercurial > hg > Members > kokubo > emacs
diff .emacs.d/haskell-mode/Makefile @ 0:2764b4f45f9f
1st commit
author | Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 21 Apr 2014 04:30:59 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.emacs.d/haskell-mode/Makefile Mon Apr 21 04:30:59 2014 +0900 @@ -0,0 +1,124 @@ +VERSION = $(shell git describe --tags --match 'v[0-9]*' --abbrev=0 | sed 's/^v//;s/\.0*/./g') +GIT_VERSION = $(shell git describe --tags --match 'v[0-9]*' --long --dirty | sed 's/^v//') + +INSTALL_INFO = install-info +EMACS = emacs +EFLAGS = +BATCH = $(EMACS) $(EFLAGS) --batch -Q -L . +SUBST_ATAT = sed -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g;s/@GIT_VERSION@/$(GIT_VERSION)/g;s/@@VERSION@@/$(VERSION)/g;s/@VERSION@/$(VERSION)/g' + +ELFILES = \ + ghc-core.el \ + haskell-align-imports.el \ + haskell-c.el \ + haskell-cabal.el \ + haskell-checkers.el \ + haskell-compat.el \ + haskell-compile.el \ + haskell-decl-scan.el \ + haskell-doc.el \ + haskell-font-lock.el \ + haskell-indent.el \ + haskell-indentation.el \ + haskell-interactive-mode.el \ + haskell-menu.el \ + haskell-mode.el \ + haskell-move-nested.el \ + haskell-navigate-imports.el \ + haskell-package.el \ + haskell-process.el \ + haskell-session.el \ + haskell-show.el \ + haskell-simple-indent.el \ + haskell-sort-imports.el \ + haskell-string.el \ + haskell-str.el \ + haskell-unicode-input-method.el \ + haskell-utils.el \ + haskell-yas.el \ + haskell-presentation-mode.el \ + inf-haskell.el + +ELCFILES = $(ELFILES:.el=.elc) +AUTOLOADS = haskell-mode-autoloads.el + +PKG_DIST_FILES = $(ELFILES) logo.svg NEWS haskell-mode.info dir +PKG_TAR = haskell-mode-$(VERSION).tar +ELCHECKS=$(addprefix check-, $(ELFILES:.el=)) + +%.elc: %.el + @$(BATCH) \ + --eval "(byte-compile-disable-warning 'cl-functions)" \ + -f batch-byte-compile $< + +.PHONY: all compile info clean check $(ELCHECKS) elpa package + +all: compile $(AUTOLOADS) info + +compile: $(ELCFILES) + +$(ELCHECKS): check-%: %.el + @$(BATCH) --eval '(when (check-declare-file "$*.el") (error "check-declare failed"))' + @$(BATCH) \ + --eval "(setq byte-compile-error-on-warn t)" \ + --eval "(byte-compile-disable-warning 'cl-functions)" \ + -f batch-byte-compile $*.el + @$(RM) $*.elc + @if [ -f "$(<:%.el=tests/%-tests.el)" ]; then \ + if $(BATCH) --eval "(require 'ert)" 2> /dev/null; then \ + echo; \ + $(BATCH) -l "$(<:%.el=tests/%-tests.el)" -f ert-run-tests-batch-and-exit; \ + else \ + echo "ERT not available, skipping unit tests"; \ + fi; \ + fi + @echo "--" + +check: clean $(ELCHECKS) + @echo "checks passed!" + +clean: + $(RM) $(ELCFILES) $(AUTOLOADS) $(AUTOLOADS:.el=.elc) $(PKG_TAR) haskell-mode.tmp.texi haskell-mode.info dir + +info: haskell-mode.info dir + +dir: haskell-mode.info + $(INSTALL_INFO) --dir=$@ $< + +haskell-mode.tmp.texi: haskell-mode.texi + $(SUBST_ATAT) < haskell-mode.texi > haskell-mode.tmp.texi + +haskell-mode.info: haskell-mode.tmp.texi + $(MAKEINFO) $(MAKEINFO_FLAGS) -o $@ $< + +haskell-mode.html: haskell-mode.tmp.texi + $(MAKEINFO) $(MAKEINFO_FLAGS) --html --no-split -o $@ $< + +# Generate ELPA-compatible package +package: $(PKG_TAR) +elpa: $(PKG_TAR) + +$(PKG_TAR): $(PKG_DIST_FILES) haskell-mode-pkg.el.in + rm -rf haskell-mode-$(VERSION) + mkdir haskell-mode-$(VERSION) + cp $(PKG_DIST_FILES) haskell-mode-$(VERSION)/ + $(SUBST_ATAT) < haskell-mode-pkg.el.in > haskell-mode-$(VERSION)/haskell-mode-pkg.el + $(SUBST_ATAT) < haskell-mode.el > haskell-mode-$(VERSION)/haskell-mode.el + (sed -n -e '/^;;; Commentary/,/^;;;/p' | egrep '^;;( |$$)' | cut -c4-) < haskell-mode.el > haskell-mode-$(VERSION)/README + tar cvf $@ haskell-mode-$(VERSION) + rm -rf haskell-mode-$(VERSION) + @echo + @echo "Created ELPA compatible distribution package '$@' from $(GIT_VERSION)" + +$(AUTOLOADS): $(ELFILES) haskell-mode.elc + $(BATCH) \ + --eval '(setq make-backup-files nil)' \ + --eval '(setq generated-autoload-file "$(CURDIR)/$@")' \ + -f batch-update-autoloads "." + +# HACK: embed version number into .elc file +haskell-mode.elc: haskell-mode.el + $(SUBST_ATAT) < haskell-mode.el > haskell-mode.tmp.el + @$(BATCH) --eval "(byte-compile-disable-warning 'cl-functions)" -f batch-byte-compile haskell-mode.tmp.el + mv haskell-mode.tmp.elc haskell-mode.elc + $(RM) haskell-mode.tmp.el