diff options
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 131 |
1 files changed, 44 insertions, 87 deletions
@@ -1,109 +1,66 @@ -EMACS ?= emacs +.PHONY: all clean distclean bytecompile test check melpa cask-install -# Handle the mess when inside Emacs. -unexport INSIDE_EMACS #cask not like this. -ifeq ($(EMACS), t) -EMACS = emacs -endif +VERSION=$(shell sed -ne 's/^;\+ *Version: *\([0-9.]\)/\1/p' lisp/pdf-tools.el) +PACKAGE=pdf-tools-$(VERSION).tar -EMACS_VERSION = $(shell $(EMACS) -Q --batch --eval '(princ emacs-version)') -EFLAGS = -Q --batch +all: $(PACKAGE) -# Note: If you change this, also change it in lisp/pdf-tools.el and -# server/configure.ac . -PACKAGE_VERSION = 0.80 -PKGFILE_CONTENT = (define-package "pdf-tools" "$(PACKAGE_VERSION)" \ - "Support library for PDF documents." \ - (quote ((emacs "24.3") (let-alist "1.0.4") \ - (tablist "0.70"))) \ - :keywords \ - (quote ("files" "multimedia"))) +# Create a elpa package including the server +$(PACKAGE): .cask server/epdfinfo lisp/*.el + cask package . -PACKAGE_NAME = pdf-tools-$(PACKAGE_VERSION) -PACKAGE_DIR = $(PACKAGE_NAME) +# Compile the Lisp sources +bytecompile: .cask + cask exec emacs --batch -L lisp -f batch-byte-compile lisp/*.el -.PHONY: all clean distclean package bytecompile test check melpa cask-install +# Run ERT tests +test: all + cask exec emacs --batch -l test/run-tests.el $(PACKAGE) +check: test -all: package +# Run the autobuild script tests in docker +test-autobuild: server-test -clean: - rm -rf -- $(PACKAGE_DIR) - rm -f -- $(PACKAGE_NAME).tar - rm -f -- lisp/*.elc - ! [ -f server/Makefile ] || $(MAKE) -C server clean +# Run all tests +test-all: test test-autobuild -distclean: clean - rm -rf .cask - ! [ -f server/Makefile ] || $(MAKE) -C server distclean +# Init cask +.cask: + cask install -package: $(PACKAGE_NAME).tar +# Run the autobuild script (installing depends and compiling) +autobuild: + cd server && ./autobuild -$(PACKAGE_NAME).tar: server/epdfinfo lisp/*.el - mkdir -p '$(PACKAGE_DIR)' - cp lisp/*.el README server/epdfinfo '$(PACKAGE_DIR)' - echo '$(PKGFILE_CONTENT)' > '$(PACKAGE_DIR)/pdf-tools-pkg.el' - tar cf '$(PACKAGE_NAME).tar' '$(PACKAGE_DIR)' +# Soon to be obsolete targets +melpa-build: autobuild + cp build/epdfinfo . +install-server-deps: ; -melpa-package: - $(MAKE) distclean - mkdir -p '$(PACKAGE_DIR)/build' - cp lisp/*.el README '$(PACKAGE_DIR)' - cp -r Makefile server '$(PACKAGE_DIR)/build' - echo '$(PKGFILE_CONTENT)' > '$(PACKAGE_DIR)/pdf-tools-pkg.el' - tar cf '$(PACKAGE_NAME).tar' '$(PACKAGE_DIR)' +# Various clean targets +clean: server-clean + rm -f -- $(PACKAGE) + rm -f -- lisp/*.elc + rm -f -- pdf-tools-readme.txt -install-package: package - $(EMACS) $(EFLAGS) --eval \ - "(progn (package-initialize) \ - (package-install-file \ - \"$(PACKAGE_NAME).tar\"))" +distclean: clean server-distclean + rm -rf -- .cask +# Server targets server/epdfinfo: server/Makefile $(MAKE) -C server + server/Makefile: server/configure cd server && ./configure -q + server/configure: server/configure.ac cd server && ./autogen.sh -bytecompile: cask-install - cask exec $(EMACS) $(EFLAGS) -L $(PWD)/lisp -f batch-byte-compile lisp/*.el - -test: all cask-install - cask exec $(EMACS) $(EFLAGS) -l test/run-tests.el $(PACKAGE_NAME).tar +server-test: server/Makefile + $(MAKE) -C server check -cask-install: .cask/$(EMACS_VERSION) - -.cask/$(EMACS_VERSION): - cask install +server-clean: + ! [ -f server/Makefile ] || $(MAKE) -C server clean -check: bytecompile test - -print-version: - @[ -n '$(PACKAGE_VERSION)' ] && echo '$(PACKAGE_VERSION)' - -install-server-deps: - sudo apt-get install gcc g++ make automake autoconf \ - libpng-dev libz-dev libpoppler-glib-dev - -sudo apt-get install libpoppler-private-dev - -sudo apt-get install gtklp - -melpa-build: server/epdfinfo - -cp -p server/epdfinfo .. - @if [ "$(shell uname -o)" = "Msys" ]; then \ - for f in $(shell ldd server/epdfinfo | awk '/mingw/ {print $$3}'); do \ - cp $$f ..; \ - done; \ - fi - $(MAKE) distclean - @if [ -x ../epdfinfo ]; then \ - echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~"; \ - echo "Server successfully build. "; \ - echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~"; \ - else \ - echo "Server not build, maybe due to missing dependencies (See README)."; \ - echo "Required: gcc g++ make automake autoconf libpng-dev libz-dev libpoppler-glib-dev libpoppler-private-dev"; \ - false; \ - fi - -autobuild: - cd server && ./autobuild +server-distclean: + ! [ -f server/Makefile ] || $(MAKE) -C server distclean |
