-
-
Notifications
You must be signed in to change notification settings - Fork 75
Expand file tree
/
Copy pathinit.mk
More file actions
126 lines (111 loc) · 4.41 KB
/
Copy pathinit.mk
File metadata and controls
126 lines (111 loc) · 4.41 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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
BRANCH := $(shell git symbolic-ref HEAD | cut -d/ -f3-)
COMMIT := $(shell git rev-parse --short HEAD)
VERSION := $(shell git describe --tags | cut -d- -f1)
CURRENT_YEAR := $(shell date +%Y)
ZEN_SOURCES := src/zenroom.o src/zen_error.o src/lua_functions.o \
src/lua_modules.o src/lualibs_detected.o src/lua_shims.o \
src/encoding.o src/base58.o src/rmd160.o src/segwit_addr.o \
src/zen_memory.o src/mutt_sprintf.o src/varint.o src/zen_varint.o \
src/zen_io.o src/zen_parse.o src/zen_config.o src/zen_octet.o \
src/zen_ecp.o src/zen_ecp2.o src/zen_big.o src/zen_fp12.o \
src/zen_random.o src/zen_hash.o src/zen_ecdh_factory.o \
src/zen_ecdh.o src/zen_x509.o src/zen_aes.o src/zen_qp.o \
src/zen_ed.o src/zen_float.o src/zen_time.o src/api_hash.o \
src/api_sign.o src/randombytes.o src/zen_fuzzer.o src/cortex_m.o \
src/p256-m.o src/zen_p256.o src/zen_rsa.o src/zen_bbs.o \
src/zen_longfellow.o
ZEN_INCLUDES += -Isrc -Ilib/lua54/src -Ilib -I/usr/local/include \
-Ilib/milagro-crypto-c/build/include -Ilib/milagro-crypto-c/include \
-Ilib/ed25519-donna -Wall -Wextra
BUILD_DEPS ?= apply-patches milagro lua54 embed-lua mlkem \
quantum-proof ed25519-donna longfellow-zk zstd
pwd := $(shell pwd)
mil := ${pwd}/build/milagro
website := ${pwd}/docs
# libs defaults
luasrc := ${pwd}/lib/lua54/src
ldadd := ${pwd}/lib/lua54/src/liblua.a
lua_embed_opts := ""
ecdh_curve ?= SECP256K1
ecp_curve ?= BLS381
milib := ${pwd}/lib/milagro-crypto-c/build/lib
ldadd += ${milib}/libamcl_curve_${ecp_curve}.a
ldadd += ${milib}/libamcl_pairing_${ecp_curve}.a
ldadd += ${milib}/libamcl_curve_${ecdh_curve}.a
ldadd += ${milib}/libamcl_rsa_2048.a ${milib}/libamcl_rsa_4096.a
ldadd += ${milib}/libamcl_x509.a
ldadd += ${milib}/libamcl_core.a
ldadd += ${pwd}/lib/pqclean/libqpz.a
ldadd += ${pwd}/lib/ed25519-donna/libed25519.a
ldadd += ${pwd}/lib/mlkem/test/build/libmlkem.a
# ldadd += /usr/local/lib/libmdoc.a
ldadd += ${pwd}/lib/longfellow-zk/liblongfellow-zk.a
ldadd += ${pwd}/lib/zstd/libzstd.a
ldadd += -lstdc++
# ----------------
# zenroom defaults
cc := gcc
cxx := g++
zenroom_cc := ${cc}
# defined further below
# quantum_proof_cc := ${cc}
# ed25519_cc := ${cc}
# lua_cc := ${cc}
ld := ld
ar := $(shell which ar) # cmake requires full path
ranlib := ranlib
cflags_protection := -fstack-protector-all -D_FORTIFY_SOURCE=2 -fno-strict-overflow
cflags_asan := -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=float-cast-overflow -fsanitize=leak
cflags_debug := -Og -ggdb -DDEBUG=1 -Wall -Wextra -pedantic
cflags := ${ZEN_INCLUDES}
musl := build/musl
platform := posix
##########################
# {{{ Dependency settings
# ------------
# lua settings
lua_cc ?= ${cc}
lua_cflags := -DLUA_COMPAT_5_3 -DLUA_COMPAT_MODULE -DLUA_COMPAT_BITLIB -I${pwd}/lib/milagro-crypto-c/build/include -I${pwd}/src -I${pwd}/lib/milagro-crypto-c/build/include
# ----------------
# milagro settings
rsa_bits := "2048,4096"
# other ecdh curves := ED25519 C25519 NIST256 BRAINPOOL ANSSI HIFIVE
# GOLDILOCKS NIST384 C41417 NIST521 NUMS256W NUMS256E NUMS384W
# NUMS384E NUMS512W NUMS512E SECP256K1 BN254 BN254CX BLS381 BLS383
# BLS24 BLS48 FP256BN FP512BN BLS461
# see lib/milagro-crypto-c/cmake/AMCLParameters.cmake
milagro_cmake_flags += -DBUILD_SHARED_LIBS=OFF -DBUILD_PYTHON=OFF -DBUILD_DOXYGEN=OFF -DBUILD_DOCS=OFF -DBUILD_BENCHMARKS=OFF -DBUILD_EXAMPLES=OFF -DWORD_SIZE=32 -DBUILD_PAILLIER=OFF -DBUILD_X509=ON -DBUILD_WCC=OFF -DBUILD_MPIN=OFF -DAMCL_CURVE=${ecdh_curve},${ecp_curve} -DAMCL_RSA=${rsa_bits} -DAMCL_PREFIX=AMCL_ -DCMAKE_SHARED_LIBRARY_LINK_FLAGS="" -DC99=1 -DPAIRING_FRIENDLY_BLS381='BLS' -DCOMBA=1 -DBUILD_TESTING=OFF
#-----------------
# quantum-proof
quantum_proof_cc ?= ${cc}
quantum_proof_cflags ?= -I ${pwd}/src -I.
#-----------------
# ed25519 settings
ed25519_cc ?= ${cc}
#-----------------
# mlkem settings
mlkem_cc ?= ${cc}
#-----------------
# longfellow-zk settings
longfellow_cxx ?= ${cxx}
longfellow_cflags += -I ${pwd}/src -I. -I../zstd -fPIC -DLIBRARY
ARCH ?= $(shell uname -m)
ifeq ($(shell uname -s),Darwin)
longfellow_cflags += -Xarch_x86_64 -mpclmul -Xarch_arm64 ""
endif
ifeq ($(ARCH),x86_64)
longfellow_cflags += -mpclmul
endif
ifeq ($(ARCH),i686)
longfellow_cflags += -mpclmul
endif
ifeq ($(ARCH),aarch64)
longfellow_cflags += -march=armv8-a+crypto
endif
ifeq ($(ARCH),armv7l)
longfellow_cflags += -march=armv7-a -mfpu=neon
endif
#-----------------
# zstd settings
zstd_cc ?= ${cc}
# }}}