add extension logos
[bitmask_thunderbird.git] / Makefile
1 EXTNAME  := bitmask-thunderbird
2 PREFIX   := .
3 FILES_TO_PACKAGE := chrome,chrome.manifest,install.rdf
4 RSA_FILE := META-INF/zigbert.rsa
5
6 # the following variables are updated automatically
7 COMMIT   := $(shell git --no-pager log -1 --format=format:%h)
8 VERSION  := $(shell grep \<em:version\> $(PREFIX)/install.rdf | sed -e s/[^\>]\\\+\>// -e s/\<[^\>]\\\+\>//)
9 PKGNAME  := $(EXTNAME)-$(VERSION)-$(COMMIT).xpi
10 TARGET   := $(CURDIR)/build/$(PKGNAME)
11 TEMPDIR  := $(shell mktemp -d -u)
12
13 # make sure CERTDIR and CERTNAME are defined for signing
14 USAGE    := "Usage: make CERTDIR=<certificate directory> CERTNAME=<certificate name> DEFAULTKEY=<key id>"
15 ifeq ($(MAKECMDGOALS),signed)
16 ifndef CERTDIR
17   $(error $(USAGE))
18 endif
19 ifndef CERTNAME
20   $(error $(USAGE))
21 endif
22 ifndef DEFAULTKEY
23   $(error $(USAGE))
24 endif
25 endif
26
27 # make sure DEFAULTKEY was given to sign the calculated hashes
28 ifneq ($(MAKECMDGOALS),clean)
29 ifneq ($(MAKECMDGOALS),upload)
30 ifndef DEFAULTKEY
31   $(error "Usage: make DEFAULTKEY=<key id>")
32 endif
33 endif
34 endif
35
36 # main rule
37 all: clean $(TARGET)
38
39 # main target: .xpi file
40
41 $(TARGET): clean
42         mkdir -p $(TEMPDIR)
43         cp -r $(PREFIX)/{$(FILES_TO_PACKAGE)} $(TEMPDIR)/
44         (cd $(TEMPDIR) && zip -r $(TARGET) ./)
45         rm -rf $(TEMPDIR)
46         (cd build/ && sha512sum $(PKGNAME) > SHA512SUMS && gpg -a --default-key $(DEFAULTKEY) --detach-sign SHA512SUMS)
47
48 signed: clean
49         mkdir -p $(TEMPDIR)
50         cp -r $(PREFIX)/{$(FILES_TO_PACKAGE)} $(TEMPDIR)/
51         signtool -d $(CERTDIR) -k $(CERTNAME) $(TEMPDIR)/
52         (cd $(TEMPDIR) && zip $(TARGET) ./$(RSA_FILE) && zip -r -D $(TARGET) ./ -x ./$(RSA_FILE))
53         rm -rf $(TEMPDIR)
54         (cd build/ && sha512sum $(PKGNAME) > SHA512SUMS && gpg -a --default-key $(DEFAULTKEY) --detach-sign SHA512SUMS)
55
56 clean:
57         rm -f $(TARGET) build/*
58
59 upload:
60         ssh downloads.leap.se rm -rf /var/www/leap-downloads/public/thunderbird_extension/*
61         scp build/* downloads.leap.se:/var/www/leap-downloads/public/thunderbird_extension/
62
63 .PHONY: all clean signed