rendered paste bodyPREFIX ?= /usr/local
LIBINSTALLDIR ?= /lib
XDGCONFDIR ?= /etc/xdg
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:
python -m compileall -q xl xlgui
-python -O -m compileall -q xl xlgui
$(MAKE) -C plugins compile
make-install-dirs:
mkdir -p $(DESTDIR)$(PREFIX)/bin
mkdir -p $(EXAILELIBDIR)
mkdir -p $(EXAILELIBDIR)/xl
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/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/applications
mkdir -p $(DESTDIR)$(PREFIX)/share/man/man1
mkdir -p $(EXAILECONFDIR)
uninstall:
rm -f $(DESTDIR)$(PREFIX)/bin/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
$(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/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/48x48/exaile.png \
$(DESTDIR)$(PREFIX)/share/pixmaps/exaile.png
install -m 644 data/ui/*.ui $(EXAILESHAREDIR)/data/ui
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 exaile.1.gz $(DESTDIR)$(PREFIX)/share/man/man1/
install -m 644 data/config/settings.ini $(EXAILECONFDIR)
tools/generate-launcher "$(DESTDIR)" "$(PREFIX)" "$(LIBINSTALLDIR)" && \
chmod 755 $(DESTDIR)$(PREFIX)/bin/exaile
$(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.
# The sed call in -v removes the ASCII art from Exaile's --version and
# prints out the proper "$program $version" text.
manpage:
help2man -n "music manager and player" -N \
-h './exaile --help | sed "s/^ //"' \
-v './exaile --version | sed -n "4 s/.* v\\(.*\\)/exaile \\1/ p"' \
./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
bzr export dist/copy/
./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