Fix makefile and install.rdf template.
[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 head -n1 Changelog | 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
37 # main rule
38 all: clean $(TARGET)
39
40 # main target: .xpi file
41
42 $(TARGET): clean install.rdf
43         mkdir -p $(TEMPDIR)
44         cp -r $(PREFIX)/{$(FILES_TO_PACKAGE)} $(TEMPDIR)/
45         (cd $(TEMPDIR) && zip -r $(TARGET) ./)
46         rm -rf $(TEMPDIR)
47         (cd build/ && sha512sum $(PKGNAME) > SHA512SUMS && gpg -a --default-key $(DEFAULTKEY) --detach-sign SHA512SUMS)
48
49 signed: clean
50         mkdir -p $(TEMPDIR)
51         cp -r $(PREFIX)/{$(FILES_TO_PACKAGE)} $(TEMPDIR)/
52         signtool -d $(CERTDIR) -k $(CERTNAME) $(TEMPDIR)/
53         (cd $(TEMPDIR) && zip $(TARGET) ./$(RSA_FILE) && zip -r -D $(TARGET) ./ -x ./$(RSA_FILE))
54         rm -rf $(TEMPDIR)
55         (cd build/ && sha512sum $(PKGNAME) > SHA512SUMS && gpg -a --default-key $(DEFAULTKEY) --detach-sign SHA512SUMS)
56
57 clean:
58         rm -f $(TARGET) build/*
59         rm -f install.rdf
60
61 upload:
62         ssh downloads.leap.se rm -rf /var/www/leap-downloads/public/thunderbird_extension/*
63         scp build/* downloads.leap.se:/var/www/leap-downloads/public/thunderbird_extension/
64
65 debian-package:
66         git buildpackage -us -uc
67
68 install.rdf: install.rdf.template Changelog
69         sed 's/__VERSION__/$(VERSION)/' < $< > $@
70
71 .PHONY: all clean signed