~exaile-devel/exaile/github-translations-export

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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
PYTHON2_CMD	?= `command -v python2`

PREFIX 		?= /usr/local
LIBINSTALLDIR 	?= /lib
XDGCONFDIR 	?= /etc/xdg

EXAILEBINDIR  = ${DESTDIR}${PREFIX}/bin
EXAILELIBDIR 	= ${DESTDIR}${PREFIX}${LIBINSTALLDIR}/exaile
EXAILESHAREDIR 	= ${DESTDIR}${PREFIX}/share/exaile
EXAILECONFDIR 	= ${DESTDIR}${XDGCONFDIR}/exaile

.PHONY: dist test coverage clean sanitycheck

all: compile locale manpage
	@echo "Ready to install..."

# The no_locale stuff is by request of BSD people, please ensure
# all methods that deal with locale stuff have a no_locale variant
all_no_locale: compile
	@echo "Ready to install..."

compile:
	${PYTHON2_CMD} -m compileall -q xl xlgui
	-${PYTHON2_CMD} -O -m compileall -q xl xlgui
	${MAKE} -C plugins compile

make-install-dirs:
	mkdir -p ${EXAILEBINDIR}
	mkdir -p ${EXAILELIBDIR}
	mkdir -p ${EXAILELIBDIR}/xl
	mkdir -p ${EXAILELIBDIR}/xl/externals
	mkdir -p ${EXAILELIBDIR}/xl/metadata
	mkdir -p ${EXAILELIBDIR}/xl/player
	mkdir -p ${EXAILELIBDIR}/xl/migrations
	mkdir -p ${EXAILELIBDIR}/xl/migrations/database
	mkdir -p ${EXAILELIBDIR}/xl/migrations/settings
	mkdir -p ${EXAILELIBDIR}/xl/trax
	mkdir -p ${EXAILELIBDIR}/xlgui
	mkdir -p ${EXAILELIBDIR}/xlgui/panel
	mkdir -p ${EXAILELIBDIR}/xlgui/preferences
	mkdir -p ${EXAILELIBDIR}/xlgui/widgets
	mkdir -p ${EXAILESHAREDIR}
	mkdir -p ${EXAILESHAREDIR}/data
	mkdir -p ${EXAILESHAREDIR}/data/images/16x16
	mkdir -p ${EXAILESHAREDIR}/data/images/22x22
	mkdir -p ${EXAILESHAREDIR}/data/images/24x24
	mkdir -p ${EXAILESHAREDIR}/data/images/32x32
	mkdir -p ${EXAILESHAREDIR}/data/images/48x48
	mkdir -p ${EXAILESHAREDIR}/data/images/scalable
	mkdir -p ${EXAILESHAREDIR}/data/ui
	mkdir -p ${EXAILESHAREDIR}/data/ui/panel
	mkdir -p ${EXAILESHAREDIR}/data/ui/preferences
	mkdir -p ${EXAILESHAREDIR}/data/ui/widgets
	mkdir -p ${EXAILESHAREDIR}/data/migrations
	mkdir -p ${EXAILESHAREDIR}/data/migrations/migration_200907100931
	mkdir -p ${DESTDIR}${PREFIX}/share/pixmaps
	mkdir -p ${DESTDIR}${PREFIX}/share/appdata
	mkdir -p ${DESTDIR}${PREFIX}/share/applications
	mkdir -p ${DESTDIR}${PREFIX}/share/man/man1
	mkdir -p ${DESTDIR}${PREFIX}/share/dbus-1/services
	mkdir -p ${EXAILECONFDIR}

uninstall:
	rm -f  ${EXAILEBINDIR}/exaile
	rm -rf ${EXAILELIBDIR}
	rm -rf ${EXAILESHAREDIR}
	rm -rf ${EXAILECONFDIR}/exaile
	rm -f ${DESTDIR}${PREFIX}/share/applications/exaile.desktop
	rm -f ${DESTDIR}${PREFIX}/share/pixmaps/exaile.png
	rm -f ${DESTDIR}${PREFIX}/share/man/man1/exaile.1.gz
	rm -f ${DESTDIR}${PREFIX}/share/dbus-1/services/org.exaile.Exaile.service
	${MAKE} -C plugins uninstall

install: install-target install-locale

install_no_locale: install-target

install-target: make-install-dirs
	install -m 644 exaile.py ${EXAILELIBDIR}	
	-install -m 644 xl/*.py[co] ${EXAILELIBDIR}/xl
	install -m 644 xl/*.py ${EXAILELIBDIR}/xl
	-install -m 644 xl/metadata/*.py[co] ${EXAILELIBDIR}/xl/externals
	install -m 644 xl/metadata/*.py ${EXAILELIBDIR}/xl/externals
	-install -m 644 xl/metadata/*.py[co] ${EXAILELIBDIR}/xl/metadata
	install -m 644 xl/metadata/*.py ${EXAILELIBDIR}/xl/metadata
	-install -m 644 xl/player/*.py[co] ${EXAILELIBDIR}/xl/player
	install -m 644 xl/player/*.py ${EXAILELIBDIR}/xl/player
	-install -m 644 xl/migrations/*.py[co] ${EXAILELIBDIR}/xl/migrations
	install -m 644 xl/migrations/*.py ${EXAILELIBDIR}/xl/migrations
	-install -m 644 xl/migrations/database/*.py[co] ${EXAILELIBDIR}/xl/migrations/database/
	install -m 644 xl/migrations/database/*.py ${EXAILELIBDIR}/xl/migrations/database/
	-install -m 644 xl/migrations/settings/*.py[co] ${EXAILELIBDIR}/xl/migrations/settings/
	install -m 644 xl/migrations/settings/*.py ${EXAILELIBDIR}/xl/migrations/settings/
	-install -m 644 xl/trax/*.py[co] ${EXAILELIBDIR}/xl/trax
	install -m 644 xl/trax/*.py ${EXAILELIBDIR}/xl/trax
	-install -m 644 xlgui/*.py[co] ${EXAILELIBDIR}/xlgui
	install -m 644 xlgui/*.py ${EXAILELIBDIR}/xlgui
	-install -m 644 xlgui/panel/*.py[co] ${EXAILELIBDIR}/xlgui/panel
	install -m 644 xlgui/panel/*.py ${EXAILELIBDIR}/xlgui/panel
	-install -m 644 xlgui/preferences/*.py[co] ${EXAILELIBDIR}/xlgui/preferences
	install -m 644 xlgui/preferences/*.py ${EXAILELIBDIR}/xlgui/preferences
	-install -m 644 xlgui/widgets/*.py[co] ${EXAILELIBDIR}/xlgui/widgets
	install -m 644 xlgui/widgets/*.py ${EXAILELIBDIR}/xlgui/widgets
	install -m 644 data/images/16x16/*.png ${EXAILESHAREDIR}/data/images/16x16
	install -m 644 data/images/22x22/*.png ${EXAILESHAREDIR}/data/images/22x22
	install -m 644 data/images/24x24/*.png ${EXAILESHAREDIR}/data/images/24x24
	install -m 644 data/images/32x32/*.png ${EXAILESHAREDIR}/data/images/32x32
	install -m 644 data/images/48x48/*.png ${EXAILESHAREDIR}/data/images/48x48
	install -m 644 data/images/scalable/*.svg ${EXAILESHAREDIR}/data/images/scalable
	install -m 644 data/images/*.png ${EXAILESHAREDIR}/data/images
	install -m 644 data/images/128x128/exaile.png \
		${DESTDIR}${PREFIX}/share/pixmaps/exaile.png
	install -m 644 data/ui/*.ui ${EXAILESHAREDIR}/data/ui
	install -m 644 data/ui/panel/*.ui ${EXAILESHAREDIR}/data/ui/panel
	install -m 644 data/ui/preferences/*.ui ${EXAILESHAREDIR}/data/ui/preferences
	install -m 644 data/ui/widgets/*.ui ${EXAILESHAREDIR}/data/ui/widgets
	install -m 644 data/migrations/*.py ${EXAILESHAREDIR}/data/migrations/
	install -m 644 data/migrations/migration_200907100931/*.py \
	    	${EXAILESHAREDIR}/data/migrations/migration_200907100931/
	install -m 644 data/exaile.desktop \
		${DESTDIR}${PREFIX}/share/applications/
	install -m 644 data/exaile.appdata.xml \
		${DESTDIR}${PREFIX}/share/appdata/	
	-install -m 644 exaile.1.gz ${DESTDIR}${PREFIX}/share/man/man1/
	install -m 644 data/config/settings.ini ${EXAILECONFDIR}
	tools/generate-launcher "${DESTDIR}" "${PREFIX}" "${LIBINSTALLDIR}" \
		"${PYTHON2_CMD}" && \
	  chmod 755 ${DESTDIR}${PREFIX}/bin/exaile
	sed "s|\@bindir\@|${PREFIX}/bin|" data/org.exaile.Exaile.service.in > \
		${DESTDIR}${PREFIX}/share/dbus-1/services/org.exaile.Exaile.service
	${MAKE} -C plugins install

locale:
	${MAKE} -C po locale

install-locale:
	for f in `find po -name exaile.mo` ; do \
	  install -d -m 755 \
	    `echo $$f | sed "s|^po|${DESTDIR}${PREFIX}/share/locale|" | \
	      xargs dirname` && \
	  install -m 644 $$f \
	    `echo $$f | sed "s|^po|${DESTDIR}${PREFIX}/share/locale|"` ; \
	  done

plugins_dist:
	${MAKE} -C plugins dist

# The sed call in -h removes the indent from group headers to work around
# help2man's incompatibility with optparse's grouping.
manpage:
	help2man -n "music manager and player" -N \
	  -h './exaile --help | sed "s/^  //"' \
	  ./exaile \
	  | gzip -9 > exaile.1.gz

clean:
	-find . -name "*.~[0-9]~" -exec rm -f {} \;
	-find . -name "*.py[co]" -exec rm -f {} \;
	find po/* -depth -type d -exec rm -r {} \;
	rm -f exaile.1.gz
	${MAKE} -C plugins clean

# The "[type: gettext/glade]" helps intltool recognize .ui files as glade format
pot:
	echo "[encoding: UTF-8]" > po/POTFILES.in && \
	  find xl -name "*.py" >> po/POTFILES.in && \
	  find xlgui -name "*.py" >> po/POTFILES.in && \
	  find data/ui/ -name "*.ui" | sed 's/^/[type: gettext\/glade]/' >> po/POTFILES.in && \
	  find plugins -name "*.py" | grep -v treeviewtest >> po/POTFILES.in && \
	  find plugins -name "*.ui" | grep -v treeviewtest | sed 's/^/[type: gettext\/glade]/' >> po/POTFILES.in && \
	  find plugins -name PLUGININFO | grep -v treeviewtest >> po/POTFILES.in && \
	  cd po && XGETTEXT_ARGS="--language=Python --add-comments=TRANSLATORS" \
	    intltool-update --pot --gettext-package=messages --verbose && cd ..

potball:
	tar --bzip2 --format=posix -cf build/exaile-po.tar.bz2 po/ \
	    --transform s/po/./


dist:
	mkdir -p dist
	rm -rf dist/copy
	git archive HEAD --prefix=copy/ | tar -x -C dist
	./tools/dist.sh
	rm -rf dist/copy

test:
	nosetests -w tests

test_coverage:
	rm -rf coverage/
	rm -f .coverage
	nosetests -w tests --with-coverage --cover-package=xl; \
	mkdir -p coverage; \
	coverage html -d coverage

lint_errors:
	-pylint -e --rcfile tools/pylint.cfg xl xlgui 2> /dev/null

sanitycheck: lint_errors test