-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathMakefile
103 lines (92 loc) · 3.02 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
### Copyright (c) 2014, The Tor Project, Inc.
### See src/LICENSE for licensing information.
EXT_NAME=tor-launcher
VERSION:=`grep em:version src/install.rdf | sed -e 's/[<>]/ /g' | cut -f3`
XPI_NAME:=$(shell echo "$(EXT_NAME)-$(VERSION).xpi")
STANDALONE_NAME=$(EXT_NAME)-standalone
STANDALONE_TARBALL=$(shell echo "$(STANDALONE_NAME)-$(VERSION).tar.gz")
REQUIRED_TRANSLATION_FILES=$(shell ls -1 src/chrome/locale/en/)
AVAIL_TARGETS=help package standalone import-translations clean
ifeq ($(VERBOSE),1)
ZIP=zip
TAR=tar -v
else
ZIP=zip -q
TAR=tar
endif
help:
@echo "Available targets:"; \
for t in $(AVAIL_TARGETS); do \
echo " make $$t"; \
done
pkg-prepare: clean
@mkdir -p pkg
$(eval TMP="$(shell mktemp -d "/tmp/$(EXT_NAME).XXXXXX")")
@cp -a "src" "$(TMP)/$(EXT_NAME)"
@if [ -n "$(TL_LOGO)" ]; then \
if [ "$(TL_LOGO)" = "-" ]; then \
rm "$(TMP)/$(EXT_NAME)/chrome/skin/tbb-logo.png"; \
else \
cp -p "$(TL_LOGO)" "$(TMP)/$(EXT_NAME)/chrome/skin/tbb-logo.png"; \
fi \
fi
@cp -a chrome.manifest.in "$(TMP)/$(EXT_NAME)"/chrome.manifest
@mv "$(TMP)/$(EXT_NAME)"/chrome/locale/en \
"$(TMP)/$(EXT_NAME)"/chrome/locale/en-US
@for d in "$(TMP)/$(EXT_NAME)"/chrome/locale/*; do \
if [ "`basename "$${d}"`" = "en-US" ]; then \
continue; \
fi; \
for f in $(REQUIRED_TRANSLATION_FILES); do \
if [ ! -e "$${d}/$${f}" ] || \
( \
[ -n "$(BUNDLE_LOCALES)" ] && \
! echo $(BUNDLE_LOCALES) | grep -qw `basename "$${d}"` \
); then \
echo "Removing locale $${d} (missing resource $${f})"; \
rm -rf "$${d}"; \
break; \
fi \
done \
done
@for l in $(BUNDLE_LOCALES); do \
if [ ! -d "$(TMP)/$(EXT_NAME)"/chrome/locale/"$${l}" ]; then \
echo "Requested locale '$${l}' is missing or incomplete" >&2; \
exit 1; \
fi \
done
@for d in "$(TMP)/$(EXT_NAME)"/chrome/locale/*; do \
locale="`basename $${d}`"; \
echo "locale torlauncher $${locale} chrome/locale/$${locale}/" >> \
"$(TMP)/$(EXT_NAME)"/chrome.manifest; \
done
package: pkg-prepare
@( \
CURDIR="$(shell pwd)"; \
cd "$(TMP)/$(EXT_NAME)"; \
$(ZIP) -X9r "$(CURDIR)/pkg/$(XPI_NAME)" ./ -x "*.diff" \
)
@rm -rf "$(TMP)"
@echo "Created package pkg/$(XPI_NAME)"
standalone: pkg-prepare
@mv "$(TMP)/$(EXT_NAME)" "$(TMP)/$(STANDALONE_NAME)"
@cp application.ini.in "$(TMP)/$(STANDALONE_NAME)/application.ini"
@sed -i -e "s/__VERSION__/$(VERSION)/" \
-e "s/__DATE__/`date '+%Y%m%d'`/" \
"$(TMP)/$(STANDALONE_NAME)/application.ini"
@$(TAR) --exclude "*.diff" -czf "pkg/$(STANDALONE_TARBALL)" \
-C "$(TMP)" "$(STANDALONE_NAME)"
@rm -rf "$(TMP)"
@echo "Created standalone package pkg/$(STANDALONE_TARBALL)"
import-translations:
@( cd localization && ./import-translations.sh )
clean:
@rm -f "pkg/$(XPI_NAME)" \
"pkg/$(STANDALONE_TARBALL)"
zip:
@TMPFILE=/tmp/$(EXT_NAME)-`date '+%Y-%m-%d-%s'`.zip; \
CURDIR=`pwd`; \
BASEDIR=`basename $$CURDIR`; \
cd ..; zip -q -r $$TMPFILE $$BASEDIR -x $$BASEDIR/build/\*; \
rm $$TMPFILE
.PHONY: help clean zip