forked from micheleg/dash-to-dock
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
155 lines (133 loc) · 4.28 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
# Basic Makefile
UUID = [email protected]
BASE_MODULES = extension.js \
metadata.json \
COPYING \
README.md \
$(NULL)
EXTRA_MODULES = \
appSpread.js \
dash.js \
docking.js \
appIcons.js \
appIconIndicators.js \
fileManager1API.js \
imports.js \
launcherAPI.js \
locations.js \
locationsWorker.js \
notificationsMonitor.js \
windowPreview.js \
intellihide.js \
prefs.js \
theming.js \
utils.js \
dbusmenuUtils.js \
desktopIconsIntegration.js \
Settings.ui \
$(NULL)
EXTRA_MEDIA = logo.svg \
glossy.svg \
highlight_stacked_bg.svg \
highlight_stacked_bg_h.svg \
$(NULL)
TOLOCALIZE = prefs.js \
appIcons.js \
locations.js \
$(NULL)
MSGSRC = $(wildcard po/*.po)
ifeq ($(strip $(DESTDIR)),)
INSTALLTYPE = local
INSTALLBASE = $(HOME)/.local/share/gnome-shell/extensions
else
INSTALLTYPE = system
SHARE_PREFIX = $(DESTDIR)/usr/share
INSTALLBASE = $(SHARE_PREFIX)/gnome-shell/extensions
endif
INSTALLNAME = [email protected]
# The command line passed variable VERSION is used to set the version string
# in the metadata and in the generated zip-file. If no VERSION is passed, the
# current commit SHA1 is used as version number in the metadata while the
# generated zip file has no string attached.
ifdef VERSION
VSTRING = _v$(VERSION)
else
VERSION = $(shell git rev-parse HEAD)
VSTRING =
endif
all: extension
clean:
rm -f ./schemas/gschemas.compiled
rm -f stylesheet.css
rm -rf _build
extension: ./schemas/gschemas.compiled ./stylesheet.css $(MSGSRC:.po=.mo)
./schemas/gschemas.compiled: ./schemas/org.gnome.shell.extensions.dash-to-dock.gschema.xml
glib-compile-schemas ./schemas/
potfile: ./po/dashtodock.pot
mergepo: potfile
for l in $(MSGSRC); do \
msgmerge -U $$l ./po/dashtodock.pot; \
done;
./po/dashtodock.pot: $(TOLOCALIZE) Settings.ui
mkdir -p po
xgettext --keyword=__ --keyword=N__ --add-comments='Translators:' -o po/dashtodock.pot --package-name "Dash to Dock" --from-code=utf-8 $(TOLOCALIZE)
intltool-extract --type=gettext/glade Settings.ui
xgettext --keyword=_ --keyword=N_ --join-existing -o po/dashtodock.pot Settings.ui.h
./po/%.mo: ./po/%.po
msgfmt -c $< -o $@
./stylesheet.css: ./_stylesheet.scss
ifeq ($(SASS), ruby)
sass --sourcemap=none --no-cache --scss _stylesheet.scss stylesheet.css
else ifeq ($(SASS), dart)
sass --no-source-map _stylesheet.scss stylesheet.css
else ifeq ($(SASS), sassc)
sassc --omit-map-comment _stylesheet.scss stylesheet.css
else
sassc --omit-map-comment _stylesheet.scss stylesheet.css
endif
install: install-local
install-local: _build
rm -rf $(INSTALLBASE)/$(INSTALLNAME)
mkdir -p $(INSTALLBASE)/$(INSTALLNAME)
cp -r ./_build/* $(INSTALLBASE)/$(INSTALLNAME)/
ifeq ($(INSTALLTYPE),system)
# system-wide settings and locale files
rm -r $(INSTALLBASE)/$(INSTALLNAME)/schemas $(INSTALLBASE)/$(INSTALLNAME)/locale
mkdir -p $(SHARE_PREFIX)/glib-2.0/schemas $(SHARE_PREFIX)/locale
cp -r ./schemas/*gschema.* $(SHARE_PREFIX)/glib-2.0/schemas
cp -r ./_build/locale/* $(SHARE_PREFIX)/locale
endif
-rm -fR _build
echo done
zip-file: _build check
cd _build ; \
zip -qr "$(UUID)$(VSTRING).zip" .
mv _build/$(UUID)$(VSTRING).zip ./
-rm -fR _build
_build: all
-rm -fR ./_build
mkdir -p _build
cp $(BASE_MODULES) $(EXTRA_MODULES) _build
cp -a dependencies _build
cp stylesheet.css _build
mkdir -p _build/media
cd media ; cp $(EXTRA_MEDIA) ../_build/media/
mkdir -p _build/schemas
cp schemas/*.xml _build/schemas/
cp schemas/gschemas.compiled _build/schemas/
mkdir -p _build/locale
for l in $(MSGSRC:.po=.mo) ; do \
lf=_build/locale/`basename $$l .mo`; \
mkdir -p $$lf; \
mkdir -p $$lf/LC_MESSAGES; \
cp $$l $$lf/LC_MESSAGES/dashtodock.mo; \
done;
sed -i 's/"version": -1/"version": "$(VERSION)"/' _build/metadata.json;
ifeq ($(strip $(ESLINT)),)
ESLINT = eslint
endif
ifneq ($(strip $(ESLINT_TAP)),)
ESLINT_ARGS = -f tap
endif
check:
$(ESLINT) $(ESLINT_ARGS) .