-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
180 lines (137 loc) · 5.09 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
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
# Makefile for TazPkg.
#
prefix ?= /usr
exec_prefix ?= $(prefix)
bindir ?= $(exec_prefix)/bin
libexecdir ?= $(exec_prefix)/libexec
datarootdir ?= $(prefix)/share
sysconfdir ?= /etc
docdir ?= $(datarootdir)/doc/tazpkg
libdir ?= $(exec_prefix)/lib
localedir ?= $(datarootdir)/locale
iconsdir ?= $(datarootdir)/icons
CC ?= gcc
DESTDIR ?=
LINGUAS ?= de el es fr it ja pl pt_BR ru sv zh_CN zh_TW
MODULES := $(shell ls modules)
VERSION := 5.0
ICONS = $(DESTDIR)$(iconsdir)/hicolor/32x32
tmpdir = tar-install/tazpkg-$(VERSION)
tarball = tazpkg-$(VERSION).tar.gz
.PHONY: all pot msgmerge msgfmt install uninstall clean targz help
all: msgfmt notify
mkdir build
cp -a tazpkg tazpkg-box tazpkg-notify \
modules/* tazpanel/pkgs.cgi tazpanel/pkgs.css \
doc/tazpkg.*.html build
./stripall.sh
# Substitute "@@MODULES@@" with modules path
find build -type f -exec sed -i "s|@@MODULES@@|$(libexecdir)/tazpkg|g" \{\} \;
# i18n.
pot:
xgettext -o po/tazpkg.pot -L Shell \
--package-name=TazPkg \
--package-version="$(VERSION)" -kaction -ktitle -kdie -k_ -k_n -k_p:1,2 \
tazpkg \
$(foreach module, $(MODULES), modules/$(module) ) \
tazpkg-box tazpkg-notify tazpanel/pkgs.cgi
msgmerge:
@for l in $(LINGUAS); do \
if [ -f "po/$$l.po" ]; then \
echo -n "Updating $$l po file."; \
msgmerge -U po/$$l.po po/tazpkg.pot ; \
fi; \
done
msgfmt:
@for l in $(LINGUAS); do \
if [ -f "po/$$l.po" ]; then \
echo -n "Compiling tazpkg $$l mo file... "; \
mkdir -p po/mo/$$l/LC_MESSAGES; \
msgfmt -o po/mo/$$l/LC_MESSAGES/tazpkg.mo \
po/$$l.po ; \
echo "done"; \
fi; \
done;
notify:
$(CC) tazpkg-notification.c -o tazpkg-notification $(CFLAGS) \
$(shell pkg-config --cflags --libs libnotify)
# Installation.
install: msgfmt
# TazPkg command line interface
install -m 0755 -d $(DESTDIR)$(bindir)
install -m 0755 build/tazpkg $(DESTDIR)$(bindir)
# TazPkg modules
install -m 0755 -d $(DESTDIR)$(libexecdir)/tazpkg
$(foreach module, $(MODULES), install -m 0755 build/$(module) $(DESTDIR)$(libexecdir)/tazpkg;)
# TazPkg-box GUI
install -m 0755 build/tazpkg-notify $(DESTDIR)$(bindir)
install -m 0755 tazpkg-notification $(DESTDIR)$(libexecdir)
install -m 0755 build/tazpkg-box $(DESTDIR)$(bindir)
# Configuration files
install -m 0755 -d $(DESTDIR)$(sysconfdir)/slitaz
install -m 0644 tazpkg.conf $(DESTDIR)$(sysconfdir)/slitaz
sed -i "s|@@sysconfdir@@|$(sysconfdir)|g" $(DESTDIR)$(sysconfdir)/slitaz/tazpkg.conf
# Documentation
install -m 0755 -d $(DESTDIR)$(docdir)
cp -a build/tazpkg.*.html $(DESTDIR)$(docdir)
ln -sf tazpkg.en.html $(DESTDIR)$(docdir)/tazpkg.html
# TazPanel files
install -m 0755 -d $(DESTDIR)/var/www/tazpanel/menu.d
install -m 0755 build/pkgs.cgi $(DESTDIR)/var/www/tazpanel
ln -fs ../pkgs.cgi $(DESTDIR)/var/www/tazpanel/menu.d/pkgs
install -m 0755 -d $(DESTDIR)/var/www/tazpanel/styles/default
install -m 0644 build/gz/pkgs.css.gz $(DESTDIR)/var/www/tazpanel/styles/default
# The i18n files
install -m 0755 -d $(DESTDIR)$(localedir)
cp -a po/mo/* $(DESTDIR)$(localedir)
# Desktop integration
install -m 0755 -d $(DESTDIR)$(datarootdir)/applications
install -m 0644 applications/*.desktop $(DESTDIR)$(datarootdir)/applications
#cp -a mime $(DESTDIR)$(datarootdir) # moved to shared-mime-info package
# Default icons
install -m 0755 -d $(ICONS)/apps
install -m 0755 -d $(ICONS)/actions
install -m 0755 -d $(ICONS)/status
install -m 0644 pixmaps/tazpkg.png $(ICONS)/apps
install -m 0644 pixmaps/tazpkg-up.png $(ICONS)/actions
install -m 0644 pixmaps/tazpkg-installed.png $(ICONS)/status
#ln -fs tazpkg.png $(ICONS)/apps/TazPkg.png # icon for Yad
# TazPkg Notify XDG autostart
mkdir -p $(DESTDIR)$(sysconfdir)/xdg
cp -a xdg/autostart $(DESTDIR)$(sysconfdir)/xdg
# Uninstallation and clean-up commands.
uninstall:
rm -f $(DESTDIR)$(bindir)/tazpkg
rm -rf $(DESTDIR)$(libexecdir)/tazpkg
rm -f $(DESTDIR)$(bindir)/tazpkg-notify
rm -f $(DESTDIR)$(bindir)/tazpkg-box
rm -f $(DESTDIR)$(sysconfdir)/slitaz/tazpkg.conf
rm -rf $(DESTDIR)$(docdir)/tazpkg*.html
rm $(DESTDIR)$(docdir)
rm -f $(DESTDIR)/var/www/tazpanel/pkgs.cgi
rm -f $(DESTDIR)/var/www/tazpanel/menu.d/pkgs
rm -f $(DESTDIR)/var/www/tazpanel/styles/default/pkgs.css
rm -rf $(DESTDIR)$(localedir)/*/LC_MESSAGES/tazpkg.mo
rm -f $(DESTDIR)$(datarootdir)/applications/tazpkg-*.desktop
rm -f $(DESTDIR)$(datarootdir)/applications/tazpanel-pkgs.desktop
rm -f $(ICONS)/apps/tazpkg.png
rm -f $(ICONS)/actions/tazpkg-up.png
rm -f $(ICONS)/status/tazpkg-installed.png
rm -f $(DESTDIR)$(sysconfdir)/xdg/autostart/tazpkg-notify.desktop
clean:
rm -rf build
rm -rf _pkg
rm -rf tar-install
rm -rf po/mo
rm -f po/*~
rm -f po/*.mo
targz:
rm -rf ${tmpdir}
mkdir -p ${tmpdir}
make DESTDIR=${tmpdir} install
cd tar-install ; \
tar -cvzf ${tarball} tazpkg-$(VERSION) ; \
cd -
@echo "** Tarball successfully created in tar-install/${tarball}"
help:
@echo "make [ pot | msgmerge | msgfmt | all | install | uninstall | clear | targz ]"