tazpkg annotate Makefile @ rev 845

install: rebuild fs/ tree respecting destination symlinks before installing files and folders to filesystem
author Aleksej Bobylev <al.bobylev@gmail.com>
date Tue Oct 06 15:46:41 2015 +0300 (2015-10-06)
parents 4fbdffec7f48
children d2e1b7133079
rev   line source
al@633 1 # Makefile for TazPkg.
pankso@5 2 #
al@840 3 prefix ?= /usr
al@840 4 exec_prefix ?= $(prefix)
al@840 5 bindir ?= $(exec_prefix)/bin
al@840 6 libexecdir ?= $(exec_prefix)/libexec
al@840 7 datarootdir ?= $(prefix)/share
al@840 8 sysconfdir ?= /etc
al@840 9 docdir ?= $(datarootdir)/doc/tazpkg
al@840 10 libdir ?= $(exec_prefix)/lib
al@840 11 localedir ?= $(datarootdir)/locale
al@840 12 iconsdir ?= $(datarootdir)/icons
al@822 13
al@840 14 DESTDIR ?=
al@840 15 LINGUAS ?= el es fr pl pt_BR ru sv zh_CN zh_TW
al@840 16 MODULES := $(shell ls modules)
pankso@5 17
al@840 18 VERSION := 5.0
al@822 19 ICONS = $(DESTDIR)$(iconsdir)/hicolor/32x32
pankso@452 20
erjo@529 21 tmpdir = tar-install/tazpkg-$(VERSION)
erjo@529 22 tarball = tazpkg-$(VERSION).tar.gz
erjo@529 23
al@840 24 .PHONY: all pot msgmerge msgfmt install uninstall clean targz help
al@840 25
pankso@500 26 all: msgfmt
al@840 27 mkdir build
al@840 28 cp -a tazpkg tazpkg-box tazpkg-notify \
al@840 29 modules/* tazpanel/pkgs.cgi tazpanel/pkgs.css \
al@840 30 build
al@840 31 ./stripall.sh
al@633 32
al@840 33 # Substitute "@@MODULES@@" with modules path
al@840 34 find build -type f -exec sed -i "s|@@MODULES@@|$(libexecdir)/tazpkg|g" \{\} \;
al@695 35
pankso@343 36 # i18n.
pankso@343 37
pankso@343 38 pot:
al@633 39 xgettext -o po/tazpkg.pot -L Shell \
al@633 40 --package-name=TazPkg \
al@828 41 --package-version="$(VERSION)" -kaction -ktitle -kdie -k_ -k_n -k_p:1,2 \
al@840 42 tazpkg \
al@840 43 $(foreach module, $(MODULES), modules/$(module) ) \
al@840 44 tazpkg-box tazpkg-notify tazpanel/pkgs.cgi
al@633 45
pankso@343 46 msgmerge:
pankso@343 47 @for l in $(LINGUAS); do \
al@633 48 if [ -f "po/$$l.po" ]; then \
pankso@472 49 echo -n "Updating $$l po file."; \
al@633 50 msgmerge -U po/$$l.po po/tazpkg.pot ; \
pankso@471 51 fi; \
pankso@499 52 done
pankso@343 53
pankso@343 54 msgfmt:
pankso@343 55 @for l in $(LINGUAS); do \
al@633 56 if [ -f "po/$$l.po" ]; then \
pankso@500 57 echo -n "Compiling tazpkg $$l mo file... "; \
pankso@472 58 mkdir -p po/mo/$$l/LC_MESSAGES; \
pankso@472 59 msgfmt -o po/mo/$$l/LC_MESSAGES/tazpkg.mo \
al@633 60 po/$$l.po ; \
pankso@500 61 echo "done"; \
pankso@472 62 fi; \
pankso@343 63 done;
pankso@343 64
al@695 65
pankso@343 66 # Installation.
pankso@343 67
erjo@529 68 install: msgfmt
al@633 69 # TazPkg command line interface
al@840 70 install -m 0755 -d $(DESTDIR)$(bindir)
al@840 71 install -m 0755 build/tazpkg $(DESTDIR)$(bindir)
al@822 72
al@822 73 # TazPkg modules
al@840 74 install -m 0755 -d $(DESTDIR)$(libexecdir)/tazpkg
al@840 75 $(foreach module, $(MODULES), install -m 0755 build/$(module) $(DESTDIR)$(libexecdir)/tazpkg;)
al@695 76
al@633 77 # TazPkg-box GUI
al@840 78 install -m 0777 build/tazpkg-notify $(DESTDIR)$(bindir)
al@840 79 install -m 0777 build/tazpkg-box $(DESTDIR)$(bindir)
al@695 80
pankso@345 81 # Configuration files
al@822 82 install -m 0755 -d $(DESTDIR)$(sysconfdir)/slitaz
al@822 83 install -m 0644 tazpkg.conf $(DESTDIR)$(sysconfdir)/slitaz
al@840 84 sed -i "s|@@sysconfdir@@|$(sysconfdir)|g" $(DESTDIR)$(sysconfdir)/slitaz/tazpkg.conf
al@695 85
pankso@345 86 # Documentation
al@822 87 install -m 0755 -d $(DESTDIR)$(docdir)
al@822 88 cp -a doc/* $(DESTDIR)$(docdir)
al@695 89
al@633 90 # TazPanel files
al@840 91 install -m 0755 -d $(DESTDIR)/var/www/tazpanel/menu.d
al@840 92 install -m 0755 build/pkgs.cgi $(DESTDIR)/var/www/tazpanel
al@840 93 ln -fs ../pkgs.cgi $(DESTDIR)/var/www/tazpanel/menu.d/pkgs
al@840 94 install -m 0755 -d $(DESTDIR)/var/www/tazpanel/styles/default
al@840 95 install -m 0644 build/gz/pkgs.css.gz $(DESTDIR)/var/www/tazpanel/styles/default
al@695 96
pankso@345 97 # The i18n files
al@822 98 install -m 0755 -d $(DESTDIR)$(localedir)
al@822 99 cp -a po/mo/* $(DESTDIR)$(localedir)
al@695 100
pankso@343 101 # Desktop integration
al@822 102 install -m 0755 -d $(DESTDIR)$(datarootdir)/applications
al@822 103 install -m 0644 applications/*.desktop $(DESTDIR)$(datarootdir)/applications
al@822 104 #cp -a mime $(DESTDIR)$(datarootdir) # moved to shared-mime-info package
al@710 105
al@710 106 # Default icons
al@710 107 install -m 0755 -d $(ICONS)/apps
al@710 108 install -m 0755 -d $(ICONS)/actions
al@710 109 install -m 0755 -d $(ICONS)/status
al@804 110 install -m 0644 pixmaps/tazpkg.png $(ICONS)/apps
al@804 111 install -m 0644 pixmaps/tazpkg-up.png $(ICONS)/actions
al@804 112 install -m 0644 pixmaps/tazpkg-installed.png $(ICONS)/status
al@840 113 #ln -fs tazpkg.png $(ICONS)/apps/TazPkg.png # icon for Yad
al@695 114
al@695 115 # TazPkg Notify XDG autostart
al@822 116 mkdir -p $(DESTDIR)$(sysconfdir)/xdg
al@822 117 cp -a xdg/autostart $(DESTDIR)$(sysconfdir)/xdg
al@695 118
pankso@343 119
pankso@343 120 # Uninstallation and clean-up commands.
pankso@5 121
pankso@5 122 uninstall:
al@822 123 rm -f $(DESTDIR)$(bindir)/tazpkg
al@824 124 rm -rf $(DESTDIR)$(libexecdir)/tazpkg
al@695 125
al@822 126 rm -f $(DESTDIR)$(bindir)/tazpkg-notify
al@822 127 rm -f $(DESTDIR)$(bindir)/tazpkg-box
al@695 128
al@822 129 rm -f $(DESTDIR)$(sysconfdir)/slitaz/tazpkg.conf
al@695 130
al@822 131 rm -rf $(DESTDIR)$(docdir)/tazpkg*.html
al@822 132 rm $(DESTDIR)$(docdir)
al@695 133
al@695 134 rm -f $(DESTDIR)/var/www/tazpanel/pkgs.cgi
al@695 135 rm -f $(DESTDIR)/var/www/tazpanel/menu.d/pkgs
al@822 136 rm -f $(DESTDIR)/var/www/tazpanel/styles/default/pkgs.css
al@695 137
al@822 138 rm -rf $(DESTDIR)$(localedir)/*/LC_MESSAGES/tazpkg.mo
al@695 139
al@822 140 rm -f $(DESTDIR)$(datarootdir)/applications/tazpkg-*.desktop
al@822 141 rm -f $(DESTDIR)$(datarootdir)/applications/tazpanel-pkgs.desktop
al@695 142
al@710 143 rm -f $(ICONS)/apps/tazpkg.png
al@710 144 rm -f $(ICONS)/actions/tazpkg-up.png
al@710 145 rm -f $(ICONS)/status/tazpkg-installed.png
al@695 146
al@822 147 rm -f $(DESTDIR)$(sysconfdir)/xdg/autostart/tazpkg-notify.desktop
al@695 148
erjo@259 149
pankso@343 150 clean:
al@840 151 rm -rf build
pankso@343 152 rm -rf _pkg
erjo@529 153 rm -rf tar-install
pankso@343 154 rm -rf po/mo
al@633 155 rm -f po/*~
al@633 156 rm -f po/*.mo
al@695 157
erjo@529 158
erjo@529 159 targz:
erjo@529 160 rm -rf ${tmpdir}
erjo@529 161 mkdir -p ${tmpdir}
al@695 162
erjo@529 163 make DESTDIR=${tmpdir} install
al@695 164
erjo@529 165 cd tar-install ; \
al@822 166 tar -cvzf ${tarball} tazpkg-$(VERSION) ; \
erjo@529 167 cd -
al@695 168
erjo@529 169 @echo "** Tarball successfully created in tar-install/${tarball}"
al@633 170
al@695 171
al@633 172 help:
al@633 173 @echo "make [ pot | msgmerge | msgfmt | all | install | uninstall | clear | targz ]"