kbpgp
Version:
Keybase's PGP Implementation
134 lines (117 loc) • 3.09 kB
Plain Text
ICED=node_modules/.bin/iced
BUILD_STAMP=build-stamp
TEST_STAMP=test-stamp
UGLIFYJS=node_modules/.bin/uglifyjs
WD=`pwd`
BROWSERIFY=node_modules/.bin/browserify
default: build
all: build
lib/%.js: src/%.iced
$(ICED) -I browserify -c -o `dirname $@` $<
BROWSER=browser/kbpgp.js
$(BUILD_STAMP): \
lib/asymmetric.js \
lib/basekeypair.js \
lib/basex.js \
lib/bn.js \
lib/const.js \
lib/dsa.js \
lib/ecc/base.js \
lib/ecc/curves.js \
lib/ecc/ecdh.js \
lib/ecc/ecdsa.js \
lib/ecc/eddsa.js \
lib/ecc/main.js \
lib/elgamal.js \
lib/elgamalse.js \
lib/errors.js \
lib/hash.js \
lib/header.js \
lib/keybase/encode.js \
lib/keybase/hilev.js \
lib/keybase/packet/alloc.js \
lib/keybase/packet/base.js \
lib/keybase/packet/encryption.js \
lib/keybase/packet/p3skb.js \
lib/keybase/packet/signature.js \
lib/keybase/util.js \
lib/keyfetch.js \
lib/keyring.js \
lib/keywrapper.js \
lib/kmi.js \
lib/main.js \
lib/nacl/base.js \
lib/nacl/main.js \
lib/nacl/eddsa.js \
lib/nacl/dh.js \
lib/openpgp/armor.js \
lib/openpgp/baseburner.js \
lib/openpgp/buffer.js \
lib/openpgp/burner.js \
lib/openpgp/cast5.js \
lib/openpgp/cfb.js \
lib/openpgp/clearsign.js \
lib/openpgp/detachsign.js \
lib/openpgp/hilev.js \
lib/openpgp/keymanager.js \
lib/openpgp/ocfb.js \
lib/openpgp/packet/all.js \
lib/openpgp/packet/base.js \
lib/openpgp/packet/compressed.js \
lib/openpgp/packet/generic.js \
lib/openpgp/packet/literal.js \
lib/openpgp/packet/keymaterial.js \
lib/openpgp/packet/one_pass_sig.js \
lib/openpgp/packet/packetsigs.js \
lib/openpgp/packet/sess.js \
lib/openpgp/packet/signature.js \
lib/openpgp/packet/userid.js \
lib/openpgp/packet/user_attribute.js \
lib/openpgp/parser.js \
lib/openpgp/processor.js \
lib/openpgp/sigeng.js \
lib/openpgp/s2k.js \
lib/openpgp/util.js \
lib/openpgp/verifier.js \
lib/pad.js \
lib/primegen.js \
lib/primes.js \
lib/rand.js \
lib/rfc3394.js \
lib/rsa.js \
lib/symmetric.js \
lib/ukm.js \
lib/util.js \
lib/verify.js
date > $@
build: $(BUILD_STAMP)
test-server: $(BUILD_STAMP)
$(ICED) test/run.iced
test-browser: $(TEST_STAMP) $(BUILD_STAMP)
@echo "Please visit in your favorite browser --> file://$(WD)/test/browser/index.html"
test/browser/test.js: test/browser/main.iced $(BUILD_STAMP)
$(BROWSERIFY) -i sodium -t icsify $< > $@
test/benchmark/keybase.js: bench/main.js $(BUILD_STAMP)
$(BROWSERIFY) -i sodium -s keybase $< > $@
$(TEST_STAMP): test/browser/test.js
date > $@
test: test-server test-browser
$(BROWSER): lib/main.js $(BUILD_STAMP)
$(BROWSERIFY) -i sodium -s kbpgp $< > $@
release: $(BROWSER)
V=`jq -r .version package.json` ; \
cp $< rel/kbpgp-$$V.js ; \
$(UGLIFYJS) -c < rel/kbpgp-$$V.js > rel/kbpgp-$$V-min.js ; \
rm -rf rel/kbpgp-$$V-signed-release.zip ; \
rm -rf rel/kbpgp ; \
mkdir rel/kbpgp ; \
cp rel/kbpgp-$$V.js rel/kbpgp/ ; \
cp rel/kbpgp-$$V-min.js rel/kbpgp/ ; \
pushd rel/ ; \
popd ; \
rm -rf rel/kbpgp
clean:
rm -rf lib/* $(BUILD_STAMP) $(TEST_STAMP) test/browser/test.js
setup:
npm install -d
.PHONY: clean setup test test-browser