forked from diodechain/libsecp256k1
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
69 lines (51 loc) · 1.79 KB
/
Makefile
File metadata and controls
69 lines (51 loc) · 1.79 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
MIX = mix
LIBTOOL ?= libtool
ERLANG_PATH ?= $(shell erl -eval 'io:format("~s", [lists:concat([code:root_dir(), "/erts-", erlang:system_info(version), "/include"])])' -s init stop -noshell)
CFLAGS += -I"$(ERLANG_PATH)"
CFLAGS += -I c_src/secp256k1 -I c_src/secp256k1/src -I c_src/secp256k1/include
CFLAGS += -I c_src/gmp-6.2.1/
CFLAGS += -I$(../libsecp256k1)/src
ifneq ($(OS),Windows_NT)
CFLAGS += -fPIC
endif
LIBSECP256K1 = c_src/secp256k1/.libs/libsecp256k1.a
LIBGMP = c_src/gmp-6.2.1/.libs/libgmp.a
GMPFLAGS = --with-pic=yes --disable-shared
ifneq (,$(findstring ios,$(HOST)))
GMPFLAGS += --disable-assembly
endif
ifneq (,$(HOST))
HOSTFLAG = --host=$(HOST)
endif
EXTRALIBS += $(LIBSECP256K1) $(LIBGMP)
.PHONY: clean
ifeq ($(STATIC_ERLANG_NIF),)
ifeq ($(shell uname),Darwin)
LDFLAGS += -dynamiclib -undefined dynamic_lookup
endif
all: priv/libsecp256k1_nif.so
else
CFLAGS += -DSTATIC_ERLANG_NIF=1
CXXFLAGS += -DSTATIC_ERLANG_NIF=1
# For static libs the basename "libsecp256k1" and the nif name in ERL_NIF_INIT() must match
all: priv/libsecp256k1.a
endif
priv/libsecp256k1_nif.so: c_src/libsecp256k1_nif.c $(EXTRALIBS)
$(CC) $(CFLAGS) -shared -o $@ c_src/libsecp256k1_nif.c $(EXTRALIBS) $(LDFLAGS)
c_src/libsecp256k1_nif.o: $(EXTRALIBS)
priv/libsecp256k1.a: c_src/libsecp256k1_nif.o
$(LIBTOOL) -static -o $@ c_src/libsecp256k1_nif.o $(EXTRALIBS)
$(LIBSECP256K1): c_src/secp256k1
cd c_src/secp256k1 && ./autogen.sh && ./configure --enable-module-recovery $(HOSTFLAG)
$(MAKE) -C c_src/secp256k1
c_src/secp256k1:
cd c_src && tar xJf secp256k1.tar.xz
$(LIBGMP): c_src/gmp-6.2.1
cd c_src/gmp-6.2.1 && ./configure $(HOSTFLAG) $(GMPFLAGS)
$(MAKE) -C c_src/gmp-6.2.1
c_src/gmp-6.2.1:
cd c_src && tar xJf gmp-6.2.1.tar.xz
clean:
$(MIX) clean
-rm -rf c_src/secp256k1 c_src/gmp-6.2.1
$(RM) priv/libsecp256k1_nif.so