forked from jedisct1/libsodium.js
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
55 lines (42 loc) · 2.63 KB
/
Makefile
File metadata and controls
55 lines (42 loc) · 2.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
OUT_DIR=./dist
MODULES_DIR=$(OUT_DIR)/modules
BROWSERS_DIR=$(OUT_DIR)/browsers
LIBSODIUM_DIR=./libsodium
LIBSODIUM_JS_DIR=$(LIBSODIUM_DIR)/libsodium-js
all: $(MODULES_DIR)/libsodium.js $(MODULES_DIR)/libsodium-wrappers.js $(BROWSERS_DIR)/combined/sodium.js $(BROWSERS_DIR)/combined/sodium.min.js $(BROWSERS_DIR)/combined/sodium.min.js.gz
@echo
ls -l $(MODULES_DIR)/ $(BROWSERS_DIR)/combined/
$(BROWSERS_DIR)/combined/sodium.min.js.gz: $(BROWSERS_DIR)/combined/sodium.min.js
ln -f $(BROWSERS_DIR)/combined/sodium.min.js $(BROWSERS_DIR)/combined/sodium.min.js.tmp
zopfli $(BROWSERS_DIR)/combined/sodium.min.js.tmp || gzip -9 $(BROWSERS_DIR)/combined/sodium.min.js.tmp
rm -f $(BROWSERS_DIR)/combined/sodium.min.js.tmp
mv $(BROWSERS_DIR)/combined/sodium.min.js.tmp.gz $(BROWSERS_DIR)/combined/sodium.min.js.gz
$(BROWSERS_DIR)/combined/sodium.min.js: $(MODULES_DIR)/libsodium.js $(MODULES_DIR)/libsodium-wrappers.js wrapper/modinit.js
mkdir -p $(BROWSERS_DIR)/combined
uglifyjs --stats --mangle --compress sequences=true,dead_code=true,conditionals=true,booleans=true,unused=true,if_return=true,join_vars=true,drop_console=true -- $(MODULES_DIR)/libsodium-wrappers.js > $(MODULES_DIR)/libsodium-wrappers.min.js.tmp
cat wrapper/modinit.js $(MODULES_DIR)/libsodium.js $(MODULES_DIR)/libsodium-wrappers.min.js.tmp > $(BROWSERS_DIR)/combined/sodium.min.js
rm -f $(MODULES_DIR)/libsodium-wrappers.min.js.tmp
$(BROWSERS_DIR)/combined/sodium.js: $(MODULES_DIR)/libsodium.js $(MODULES_DIR)/libsodium-wrappers.js wrapper/modinit.js
mkdir -p $(BROWSERS_DIR)/combined
cat wrapper/modinit.js $(MODULES_DIR)/libsodium.js $(MODULES_DIR)/libsodium-wrappers.js > $(BROWSERS_DIR)/combined/sodium.js
$(MODULES_DIR)/libsodium.js: $(LIBSODIUM_DIR)/test/js.done wrapper/libsodium-pre.js wrapper/libsodium-post.js
mkdir -p $(MODULES_DIR)
cat wrapper/libsodium-pre.js $(LIBSODIUM_JS_DIR)/lib/libsodium.js wrapper/libsodium-post.js > $(MODULES_DIR)/libsodium.js
$(MODULES_DIR)/libsodium-wrappers.js: $(LIBSODIUM_DIR)/test/js.done wrapper/build-wrapper.js wrapper/build-doc.js wrapper/wrap-template.js
mkdir -p $(MODULES_DIR)
iojs wrapper/build-wrapper.js || nodejs wrapper/build-wrapper.js || node wrapper/build-wrapper.js
$(LIBSODIUM_DIR)/test/js.done: $(LIBSODIUM_DIR)/configure
cd $(LIBSODIUM_DIR) && ./dist-build/emscripten.sh
$(LIBSODIUM_DIR)/configure: $(LIBSODIUM_DIR)/configure.ac
cd $(LIBSODIUM_DIR) && ./autogen.sh
$(LIBSODIUM_DIR)/configure.ac: .gitmodules
git submodule update --init --recursive
clean:
rm -f $(LIBSODIUM_DIR)/test/js.done
rm -rf $(LIBSODIUM_JS_DIR)
rm -rf $(OUT_DIR)
-cd $(LIBSODIUM_DIR) && make distclean
distclean: clean
rewrap:
rm -fr $(OUT_DIR)
make