forked from cinatic/stocks-extension
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
78 lines (55 loc) · 1.9 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
#!/usr/bin/make -f
# Copyright (C) 2018 Florijan Hamzic <fh[at]infinicode.de>
# This file is distributed under the same license as the stocks-extension package.
.PHONY: clean mrproper
EXTENSION_NAME := stocks
UUID := $(EXTENSION_NAME)@infinicode.de
AUTHOR_MAIL := fh@infinicode.de
VERSION := 3
BUILD_DIR := _build
SRC_DIR := $(UUID)
SCHEMAS_DIR := $(SRC_DIR)/schemas
PO_DIR := $(SRC_DIR)/po
LOCALE_DIR := $(SRC_DIR)/locale
JS_FILES := $(wildcard $(SRC_DIR)/*.js)
UI_FILES := $(wildcard $(SRC_DIR)/*.ui)
FILES := $(SRC_DIR)/* README.md
COMPILED_SCHEMAS := $(SCHEMAS_DIR)/gschemas.compiled
PO_FILES := $(wildcard $(PO_DIR)/*.po)
MO_FILES := $(PO_FILES:$(PO_DIR)/%.po=$(LOCALE_DIR)/%/LC_MESSAGES/$(UUID).mo)
MO_DIR := $(PO_FILES:$(PO_DIR)/%.po=$(LOCALE_DIR)/%/LC_MESSAGES)
POT_FILE := $(PO_DIR)/$(UUID).pot
TOLOCALIZE := $(JS_FILES:$(SRC_DIR)/%.js=%.js) $(UI_FILES:$(SRC_DIR)/%.ui=%.ui)
ifeq ($(strip $(DESTDIR)),)
INSTALLBASE := $(HOME)/.local
else
INSTALLBASE := $(DESTDIR)/usr
endif
INSTALLBASE := $(INSTALLBASE)/share/gnome-shell/extensions
INSTALL_DIR := $(INSTALLBASE)/$(UUID)
default: build
$(BUILD_DIR):
mkdir -p $@
$(COMPILED_SCHEMAS):
glib-compile-schemas $(SCHEMAS_DIR)
$(LOCALE_DIR)/%/LC_MESSAGES:
mkdir -p $@
$(PO_DIR):
mkdir -p $@
$(PO_DIR)/%.po: $(POT_FILE) $(PO_DIR)
msgmerge -m -U --backup=none $@ $<
$(LOCALE_DIR)/%/LC_MESSAGES/$(UUID).mo: $(PO_DIR)/%.po $(MO_DIR)
msgfmt -c $< -o $@
$(POT_FILE): $(PO_DIR)
cd $(SRC_DIR) && xgettext --from-code=UTF-8 --package-name "gnome-shell-extension-$(EXTENSION_NAME)" --package-version=$(VERSION) --msgid-bugs-address=$(AUTHOR_MAIL) -k_ -kN_ -o po/$(UUID).pot $(TOLOCALIZE) && cd -
build: $(BUILD_DIR) $(COMPILED_SCHEMAS) $(MO_FILES)
cp -r $(FILES) $<
install: build
rm -rf $(INSTALL_DIR)
mkdir -p $(INSTALL_DIR)
cp -r $(BUILD_DIR)/* $(INSTALL_DIR)
clean:
rm -f $(COMPILED_SCHEMAS) $(POT_FILE)
rm -rf $(LOCALE_DIR)
mrproper: clean
rm -rf $(BUILD_DIR)