2019-03-19 22:20:34 +00:00
VERSION ?= $( shell cat .version)
2019-03-19 21:51:15 +00:00
2019-04-08 21:42:53 +00:00
CLEAN_FILES := chromium firefox dist dist-webstore
2019-03-19 21:51:15 +00:00
CHROME := $( shell which chromium 2>/dev/null || which chromium-browser 2>/dev/null || which chrome 2>/dev/null || which google-chrome 2>/dev/null || which google-chrome-stable 2>/dev/null)
#######################
# For local development
2018-04-19 11:57:51 +00:00
.PHONY : all
2019-03-16 00:25:33 +00:00
all : extension chromium firefox
2018-04-19 11:57:51 +00:00
.PHONY : extension
extension :
$( MAKE) -C src
2019-03-16 00:25:33 +00:00
EXTENSION_FILES := \
src/*.png \
2019-04-09 15:04:16 +00:00
src/*.svg \
2019-03-30 00:12:24 +00:00
src/fonts/* \
2019-03-16 00:25:33 +00:00
src/popup/*.html \
src/popup/*.svg \
src/options/*.html
EXTENSION_FILES := \
$( wildcard $( EXTENSION_FILES) ) \
src/css/popup.dist.css \
src/css/options.dist.css \
src/js/background.dist.js \
src/js/popup.dist.js \
src/js/options.dist.js \
src/js/inject.dist.js
CHROMIUM_FILES := $( patsubst src/%,chromium/%, $( EXTENSION_FILES) )
FIREFOX_FILES := $( patsubst src/%,firefox/%, $( EXTENSION_FILES) )
.PHONY : chromium
chromium : extension $( CHROMIUM_FILES ) chromium /manifest .json
$(CHROMIUM_FILES) : chromium /% : src /%
[ -d $( dir $@ ) ] || mkdir -p $( dir $@ )
cp $< $@
chromium/manifest.json : src /manifest -chromium .json
[ -d $( dir $@ ) ] || mkdir -p $( dir $@ )
cp $< $@
.PHONY : firefox
firefox : extension $( FIREFOX_FILES ) firefox /manifest .json
$(FIREFOX_FILES) : firefox /% : src /%
[ -d $( dir $@ ) ] || mkdir -p $( dir $@ )
cp $< $@
firefox/manifest.json : src /manifest -firefox .json
2018-04-19 11:57:51 +00:00
[ -d $( dir $@ ) ] || mkdir -p $( dir $@ )
cp $< $@
2019-03-19 21:51:15 +00:00
#######################
# For official releases
2018-04-19 11:57:51 +00:00
.PHONY : clean
clean :
rm -rf $( CLEAN_FILES)
$( MAKE) -C src clean
2019-03-19 21:51:15 +00:00
2019-04-04 08:31:32 +00:00
.PHONY : crx -webstore
crx-webstore :
" $( CHROME) " --disable-gpu --pack-extension= ./chromium --pack-extension-key= webstore.pem
mv chromium.crx browserpass-webstore.crx
.PHONY : crx -github
crx-github :
" $( CHROME) " --disable-gpu --pack-extension= ./chromium --pack-extension-key= github.pem
mv chromium.crx browserpass-github.crx
2019-03-19 21:51:15 +00:00
.PHONY : dist
2019-04-04 08:31:32 +00:00
dist : clean extension chromium firefox crx -webstore crx -github
2019-03-19 21:51:15 +00:00
mkdir -p dist
2019-04-08 22:07:48 +00:00
git archive -o dist/browserpass-extension-$( VERSION) .tar.gz --format tar.gz --prefix= browserpass-extension-$( VERSION) / $( VERSION)
2019-03-22 20:34:11 +00:00
2019-04-09 15:20:04 +00:00
( cd chromium && zip -r ../dist/browserpass-chromium-$( VERSION) .zip *)
( cd firefox && zip -r ../dist/browserpass-firefox-$( VERSION) .zip *)
2019-03-22 20:34:11 +00:00
2019-04-09 15:20:04 +00:00
mv browserpass-webstore.crx dist/browserpass-webstore-$( VERSION) .crx
mv browserpass-github.crx dist/browserpass-github-$( VERSION) .crx
2019-03-19 21:51:15 +00:00
for file in dist/*; do \
2019-04-09 15:31:00 +00:00
gpg --detach-sign --armor " $$ file " ; \
2019-03-19 21:51:15 +00:00
done
2019-04-08 21:42:53 +00:00
mkdir -p dist-webstore
2019-04-13 18:08:36 +00:00
2019-04-13 18:18:27 +00:00
cp dist/browserpass-firefox-$( VERSION) .zip dist-webstore/firefox-$( VERSION) .zip
2019-04-13 18:08:36 +00:00
mv dist/browserpass-extension-$( VERSION) .tar.gz dist-webstore/firefox-$( VERSION) -src.tar.gz
2019-04-08 21:42:53 +00:00
cp -a chromium dist-webstore/
sed -i '/"key"/d' dist-webstore/chromium/manifest.json
2019-04-09 15:20:04 +00:00
( cd dist-webstore/chromium && zip -r ../chrome-$( VERSION) .zip *)
2019-04-08 21:42:53 +00:00
rm -rf dist-webstore/chromium