forked from rosenbrockc/fortpy-el
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
executable file
·125 lines (94 loc) · 3.13 KB
/
Makefile
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
ENV = env
VIRTUALENV_SYSTEM_SITE_PACKAGES ?= true
VIRTUALENV = \
VIRTUALENV_SYSTEM_SITE_PACKAGES=$(VIRTUALENV_SYSTEM_SITE_PACKAGES) \
virtualenv --python=$(PYTHON)
PIP_INSTALL = $(ENV)/$(BINDIR)/pip install
PYTHON ?= python
CASK ?= cask
export EMACS ?= emacs
BINDIR ?= bin
ELPA_DIR = \
.cask/$(shell ${EMACS} -Q --batch --eval '(princ emacs-version)')/elpa
# See: cask-elpa-dir
VIRTUAL_EMACS = ${CASK} exec ${EMACS} -Q \
--eval "(setq python-environment--verbose t)" \
--eval "(setq fortpy:environment-root \"$(PWD)/$(ENV)\")"
.PHONY : tryout clean-elpa env clean-env clean \
print-deps
compile: elpa clean-elc
${VIRTUAL_EMACS} -batch \
-L . -f batch-byte-compile *.el
clean-elc:
rm -rf *.elc
tryout: compile env
${VIRTUAL_EMACS} -L . -l tryout-fortpy.el
ensure-git:
test -d .git # Running task that can be run only in git repository
elpa: ${ELPA_DIR}
${ELPA_DIR}: Cask
${CASK} install
test -d $@
touch $@
clean-elpa:
rm -rf ${ELPA_DIR}
env: $(ENV)/$(BINDIR)/fortpyepcserver
$(ENV)/$(BINDIR)/fortpyepcserver: ${ELPA_DIR} fortpyepcserver.py setup.py
${VIRTUAL_EMACS} -batch -l fortpy.el -f "fortpy:install-server-block"
test -f $@
clean-env:
rm -rf $(ENV)
clean-el: clean-elpa clean-elc
clean: clean-env clean-el
rm -rf .cask
print-deps: elpa env
@echo "----------------------- Dependencies -----------------------"
$(EMACS) --version
${VIRTUAL_EMACS} -batch -l fortpy.el -f fortpy:print-fortpy-version
ls -d $(ENV)/*/python*/site-packages/*egg-info
@echo "------------------------------------------------------------"
### Packaging
#
# Create dist/${PACKAGE}-${VERSION}.tar.gz ready for distribution.
#
# See: (info "(elisp) Multi-file Packages")
PACKAGE = fortpy
VERSION = $(shell grep ';; Version:' fortpy.el | sed 's/^.* \([0-9].*\)$$/\1/')
DIST_FILES = fortpy-pkg.el fortpy.el fortpyepcserver.py \
Makefile tryout-fortpy.el
.PHONY: dist ${PACKAGE}-${VERSION}.tar.gz ${PACKAGE}-${VERSION} \
clean-dist clean-dist-all
dist: clean-dist
${MAKE} dist-1
dist-1: dist/${PACKAGE}-${VERSION}.tar dist/${PACKAGE}-${VERSION}.tar.gz
dist/${PACKAGE}-${VERSION}.tar: ${PACKAGE}-${VERSION}.tar
${PACKAGE}-${VERSION}.tar: ${PACKAGE}-${VERSION}
tar --directory dist -cvf dist/$@ $<
dist/${PACKAGE}-${VERSION}.tar.gz: ${PACKAGE}-${VERSION}.tar.gz
${PACKAGE}-${VERSION}.tar.gz: ${PACKAGE}-${VERSION}
tar --directory dist -cvzf dist/$@ $<
${PACKAGE}-${VERSION}: dist/${PACKAGE}-${VERSION}
dist/${PACKAGE}-${VERSION}:
mkdir -p $@
cp -v ${DIST_FILES} $@
clean-dist:
rm -rf dist/${PACKAGE}-${VERSION}*
clean-dist-all:
rm -rf dist
### Package installation
PACKAGE_USER_DIR =
TEST_PACKAGE_DIR = dist/test
install-dist:
test -d '${PACKAGE_USER_DIR}'
${EMACS} --batch -Q \
-l package \
--eval " \
(add-to-list 'package-archives \
'(\"marmalade\" . \"http://marmalade-repo.org/packages/\") t)" \
--eval '(setq package-user-dir "${PWD}/${PACKAGE_USER_DIR}")' \
--eval '(package-list-packages)' \
--eval '(package-install-file "${PWD}/dist/${PACKAGE}-${VERSION}.tar")'
test-install: dist/${PACKAGE}-${VERSION}.tar
rm -rf ${TEST_PACKAGE_DIR}
mkdir -p ${TEST_PACKAGE_DIR}
${MAKE} install-dist PACKAGE_USER_DIR=${TEST_PACKAGE_DIR}