Use upstream's email wizard javascript utilities.
[bitmask_thunderbird.git] / Makefile
1 EXTNAME  := bitmask-thunderbird
2 XPINAME  := bitmask.xpi  # debian package will use this name
3 PREFIX   := .
4 FILES_TO_PACKAGE := chrome,chrome.manifest,install.rdf
5 RSA_FILE := META-INF/zigbert.rsa
6
7 # the following variables are updated automatically
8 COMMIT   := $(shell git --no-pager log -1 --format=format:%h)
9 VERSION  := $(shell head -n1 CHANGELOG | cut -d" " -f1)
10 PKGNAME  := $(EXTNAME)-$(VERSION)-$(COMMIT).xpi
11 TARGET   := $(CURDIR)/build/$(PKGNAME)
12 TEMPDIR  := $(shell mktemp -d -u)
13
14 XPI_CONTENTS := $(shell find chrome -name "*.html" -o -name "*.xhtml" -o -name "*.css" -o -name "*.png" -o -name "*.gif" -o -name "*.js" -o -name "*.jsm" -o -name "*.dtd" -o -name "*.xul" -o -name "messages" -o -name "*.properties") chrome.manifest install.rdf COPYING
15
16
17 #-----------------------------------------------------------------------------
18 # debhelper targets
19 #-----------------------------------------------------------------------------
20
21 $(XPINAME): $(XPI_CONTENTS)
22         zip $@ $(XPI_CONTENTS)
23
24 install.rdf: install.rdf.template Changelog
25         sed 's/__VERSION__/$(VERSION)/' < $< > $@
26
27 xpi_release:
28         ln -s $(XPINAME) $(PKGNAME) 
29
30 debian-package:
31         git buildpackage -us -uc
32
33
34 #-----------------------------------------------------------------------------
35 # unsigned XPI file
36 #-----------------------------------------------------------------------------
37
38 # make sure DEFAULTKEY is defined to sign the calculated hashes
39 ifeq ($(MAKECMDGOALS),unsigned)
40 ifndef DEFAULTKEY
41   $(error "Usage: make DEFAULTKEY=<key id>")
42 endif
43 endif
44
45 unsigned: clean install.rdf
46         mkdir -p $(TEMPDIR)
47         mkdir -p `dirname $@`
48         cp -r $(PREFIX)/{$(FILES_TO_PACKAGE)} $(TEMPDIR)/
49         rm -rf $(TEMPDIR)/.gitignore
50         (cd $(TEMPDIR) && zip -r $(TARGET) ./)
51         rm -rf $(TEMPDIR)
52         (cd build/ && sha512sum $(PKGNAME) > SHA512SUMS && gpg -a --default-key $(DEFAULTKEY) --detach-sign SHA512SUMS)
53
54
55 #-----------------------------------------------------------------------------
56 # signed XPI file
57 #-----------------------------------------------------------------------------
58
59 # make sure CERTDIR, CERTNAME and DEFAULTKEY are defined for signing
60 ifeq ($(MAKECMDGOALS),signed)
61 USAGE    := "Usage: make CERTDIR=<certificate directory> CERTNAME=<certificate name> DEFAULTKEY=<key id>"
62 ifndef CERTDIR
63   $(error $(USAGE))
64 endif
65 ifndef CERTNAME
66   $(error $(USAGE))
67 endif
68 ifndef DEFAULTKEY
69   $(error $(USAGE))
70 endif
71 endif
72
73 signed: clean install.rdf
74         mkdir -p $(TEMPDIR)
75         mkdir -p `dirname $@`
76         cp -r $(PREFIX)/{$(FILES_TO_PACKAGE)} $(TEMPDIR)/
77         rm -rf $(TEMPDIR)/.gitignore
78         signtool -d $(CERTDIR) -k $(CERTNAME) $(TEMPDIR)/
79         (cd $(TEMPDIR) && zip $(TARGET) ./$(RSA_FILE) && zip -D $@ $(XPI_CONTENTS) -x ./$(RSA_FILE))
80         rm -rf $(TEMPDIR)
81         (cd build/ && sha512sum $(PKGNAME) > SHA512SUMS && gpg -a --default-key $(DEFAULTKEY) --detach-sign SHA512SUMS)
82
83 upload:
84         ssh downloads.leap.se rm -rf /var/www/leap-downloads/public/thunderbird_extension/*
85         scp build/* downloads.leap.se:/var/www/leap-downloads/public/thunderbird_extension/
86
87 clean:
88         rm -f $(TARGET) build/*
89         rm -f *.xpi
90         rm -f install.rdf
91
92 .PHONY: all clean xpi_release unsigned signed upload debian-package