-
Notifications
You must be signed in to change notification settings - Fork 209
/
Makefile
51 lines (37 loc) · 2.13 KB
/
Makefile
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
CFLAGS := -Wall -Werror -I. -DARGON2_NO_THREADS
EMCC := emcc
UGLIFY := uglifyjs
DISTDIR := ../../dist
EMCC_BASE_FLAGS := -s NO_FILESYSTEM=1 -s ASSERTIONS=0 -s USE_CLOSURE_COMPILER=1 -s EXPORTED_RUNTIME_METHODS=[]
EMCC_WASM_FLAGS := -s WASM=1 -s DEMANGLE_SUPPORT=0 -s WARN_UNALIGNED=1
EMCC_LIB_FLAGS := -s NO_EXIT_RUNTIME=1 -s MODULARIZE=1 \
-s 'EXPORTED_FUNCTIONS=["_nimiq_blake2","_nimiq_argon2","_nimiq_argon2_no_wipe","_nimiq_argon2_verify","_nimiq_argon2_target","_nimiq_kdf_legacy","_nimiq_kdf","_nimiq_sha256","_nimiq_sha512","_ed25519_sign","_ed25519_verify","_get_static_memory_start","_get_static_memory_size","_ed25519_public_key_derive","_ed25519_create_commitment","_ed25519_add_scalars","_ed25519_aggregate_commitments","_ed25519_hash_public_keys","_ed25519_delinearize_public_key","_ed25519_aggregate_delinearized_public_keys","_ed25519_derive_delinearized_private_key","_ed25519_delinearized_partial_sign"]'
EMCC_OPT_FLAGS := -msse2
BASE_FILES := nimiq_native.c \
argon2.c core.c encoding.c \
blake2/blake2b.c \
sha256.c \
ed25519/collective.c ed25519/fe.c ed25519/ge.c ed25519/keypair.c \
ed25519/memory.c ed25519/sc.c ed25519/sha512.c ed25519/sign.c ed25519/verify.c
ALL_TARGETS := test.html test.js test.wasm test worker-wasm.js worker-wasm.wasm worker-js.js
ALL_INSTALL := $(DISTDIR)/worker-wasm.js $(DISTDIR)/worker-js.js $(DISTDIR)/worker-wasm.wasm
default: worker-wasm.js worker-js.js
install: $(ALL_INSTALL)
installclean:
rm -f $(ALL_INSTALL)
$(DISTDIR)/worker-wasm.js: worker-wasm.js suffix.js
$(UGLIFY) $^ > $@
$(DISTDIR)/worker-js.js: worker-js.js suffix.js
$(UGLIFY) $^ > $@
$(DISTDIR)/worker-wasm.wasm: worker-wasm.js
cp worker-wasm.wasm $@
worker-wasm.js: $(BASE_FILES)
$(EMCC) $(CFLAGS) -O3 -g $(EMCC_BASE_FLAGS) $(EMCC_LIB_FLAGS) $(EMCC_WASM_FLAGS) -o $@ $^ ref.c
worker-js.js: $(BASE_FILES)
$(EMCC) $(CFLAGS) -O1 $(EMCC_BASE_FLAGS) $(EMCC_LIB_FLAGS) -o $@ $^ ref.c
test.html: $(BASE_FILES) nimiq_run.c
$(EMCC) $(CFLAGS) -O3 -g $(EMCC_BASE_FLAGS) $(EMCC_WASM_FLAGS) -o $@ $^ ref.c
test: $(BASE_FILES) nimiq_run.c
$(CC) -O3 -g $(CFLAGS) -march=native -mtune=native -o $@ $^ opt.c
clean:
rm -f $(ALL_TARGETS)