File: Makefile

package info (click to toggle)
gnome-shell-extension-dashtodock 100-2
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 1,528 kB
  • sloc: javascript: 10,017; xml: 642; makefile: 143
file content (159 lines) | stat: -rw-r--r-- 4,513 bytes parent folder | download | duplicates (2)
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
# Basic Makefile

UUID = dash-to-dock@micxgx.gmail.com
BASE_MODULES = extension.js \
               metadata.json \
               COPYING \
               README.md \
               $(NULL)

EXTRA_MODULES = \
                appSpread.js \
                dash.js \
                docking.js \
                appIcons.js \
				appIconsDecorator.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 \
			  docking.js \
              appIcons.js \
              appIconsDecorator.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 = dash-to-dock@micxgx.gmail.com

# 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
	rm -f ./po/*.mo

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_USE_FLAT_CONFIG=false $(ESLINT) $(ESLINT_ARGS) .