forked from ctubio/Krypto-trading-bot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
68 lines (57 loc) · 2.53 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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
V_UWS := 0.14.3
V_QF := v.1.14.4
G_SHARED_ARGS := -lsqlite3 -DUSE_LIBUV -O3 -shared -fPIC -Ibuild/node-$(NODEv)/include/node \
-Ibuild/uWebSockets-$(V_UWS)/src build/uWebSockets-$(V_UWS)/src/Extensions.cpp \
build/uWebSockets-$(V_UWS)/src/Group.cpp build/uWebSockets-$(V_UWS)/src/Networking.cpp \
build/uWebSockets-$(V_UWS)/src/Hub.cpp build/uWebSockets-$(V_UWS)/src/Node.cpp \
build/uWebSockets-$(V_UWS)/src/WebSocket.cpp build/uWebSockets-$(V_UWS)/src/HTTPSocket.cpp \
build/uWebSockets-$(V_UWS)/src/Socket.cpp build/uWebSockets-$(V_UWS)/src/Epoll.cpp \
-std=c++11 src/lib/K.cc
all: K
help:
#
# Available commands inside K top level directory:
# make help - show this help
#
# make - compile K node module
# make K - compile K node module
# make node - download node src files
# make uws - download uws src files
# make quickfix - download quickfix src files
# make clean - remove external src files
K:
mkdir -p build app/server/lib
$(MAKE) quickfix
$(MAKE) uws
NODEv=v7.1.0 ABIv=51 $(MAKE) node `(uname -s)`
NODEv=v8.1.2 ABIv=57 $(MAKE) node `(uname -s)`
for K in app/server/lib/K*node; do chmod +x $$K; done
node:
ifndef NODEv
@NODEv=v7.1.0 $(MAKE) $@
@NODEv=v8.1.2 $(MAKE) $@
else
test -d build/node-$(NODEv) || curl https://nodejs.org/dist/$(NODEv)/node-$(NODEv)-headers.tar.gz | tar xz -C build
endif
uws:
test -d build/uWebSockets-$(V_UWS) || curl -L https://github.com/uNetworking/uWebSockets/archive/v$(V_UWS).tar.gz | tar xz -C build
quickfix:
(test -f /usr/local/lib/libquickfix.so || test -f /usr/local/lib/libquickfix.dylib) || ( \
curl -L https://github.com/quickfix/quickfix/archive/$(V_QF).tar.gz | tar xz -C build \
&& cd build/quickfix-$(V_QF) && ./bootstrap && ./configure && make \
&& sudo make install && sudo cp config.h /usr/local/include/quickfix/ \
&& (test -f /sbin/ldconfig && sudo ldconfig || :) \
)
Linux:
ifdef ABIv
g++ $(G_SHARED_ARGS) -static-libstdc++ -static-libgcc -s -o app/server/lib/K.linux.$(ABIv).node
endif
Darwin:
ifdef ABIv
g++ $(G_SHARED_ARGS) -stdlib=libc++ -mmacosx-version-min=10.7 -undefined dynamic_lookup -o app/server/lib/K.darwin.$(ABIv).node
endif
clean:
rm -rf build
asandwich:
@test `whoami` = 'root' && echo OK || echo make it yourself!
.PHONY: K quickfix uws node Linux Darwin clean asandwich