-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathMakefile
More file actions
76 lines (61 loc) · 2.97 KB
/
Makefile
File metadata and controls
76 lines (61 loc) · 2.97 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
PRJ_NAME := tiny
PRJ_BRANCH := 1.0
PRJ_VERSION := $(PRJ_BRANCH).0
PRJ_TYPE := lib
DEV_ROOT := ../../..
FIXPP_DIR := ../..
PE_PRJ_DIR := $(DEV_ROOT)/pe
ifneq ($(wildcard $(PE_PRJ_DIR)),)
TestPerf_EXTRA_CPP_FLAGS := -I$(PE_PRJ_DIR)/src
TestPerf_EXTRA_LD_PATH := $(PE_PRJ_DIR)/build/lib/release
TestPerf_EXTRA_LINK_FLAGS := -L$(TestPerf_EXTRA_LD_PATH) -lpe-1.0
TestPerf_EXTRA_DEPENDENCY := $(PE_PRJ_DIR)/build/lib/release/libpe-1.0.so
TestPerf_EXTRA_LAUNCHER := LD_PRELOAD=$(PE_PRJ_DIR)/build/lib/release/libPePreload-1.0.so
TestSenderPerf_EXTRA_CPP_FLAGS := $(TestPerf_EXTRA_CPP_FLAGS)
TestSenderPerf_EXTRA_LD_PATH := $(TestPerf_EXTRA_LD_PATH)
TestSenderPerf_EXTRA_LINK_FLAGS := $(TestPerf_EXTRA_LINK_FLAGS)
TestSenderPerf_EXTRA_DEPENDENCY := $(TestPerf_EXTRA_DEPENDENCY)
TestSenderPerf_EXTRA_LAUNCHER := LD_PRELOAD=$(PE_PRJ_DIR)/build/lib/release/libPePreload-1.0.so
TestSendForexPerf_EXTRA_CPP_FLAGS := $(TestPerf_EXTRA_CPP_FLAGS)
TestSendForexPerf_EXTRA_LD_PATH := $(TestPerf_EXTRA_LD_PATH)
TestSendForexPerf_EXTRA_LINK_FLAGS := $(TestPerf_EXTRA_LINK_FLAGS)
TestSendForexPerf_EXTRA_DEPENDENCY := $(TestPerf_EXTRA_DEPENDENCY)
else
ifneq ($(findstring test-,$(MAKECMDGOALS))$(findstring check,$(MAKECMDGOALS)),)
$(warning TestPerf and TestSenderPerf are disabled: visit https://github.com/sashamakarenko/pe)
$(warning Next to fixpp: git clone https://github.com/sashamakarenko/pe.git pe)
endif
DISABLED_TESTS = Perf SenderPerf SendForexPerf
endif
CPP_DEFINES=-DFIXPP_GROUPS_CPP_INCLUDE=\<tiny/InitialGroupSizes.h\> -Iinclude
TEST_DEFINES = -DEXIT_ON_ERROR
CPP_EXTRA_FLAGS = -Wall -Wextra -Wno-unused-parameter -Werror
-include $(DEV_ROOT)/makefile/Makefile
ifeq ($(COMPILER),c++)
CPP_EXTRA_FLAGS += -fmax-errors=1
else
# clang
CPP_EXTRA_FLAGS += -Wno-unknown-pragmas -Wno-string-plus-int -Wno-c++20-extensions
endif
$(DEV_ROOT)/makefile/Makefile:
@echo "cloning makefile..."
@cd $(DEV_ROOT); git clone https://github.com/sashamakarenko/makefile.git makefile
ifneq ($(MAKECMDGOALS),clean)
-include build/fixgenerated.mk
build/fixgenerated.mk: src/$(PRJ_NAME)/FixApi.h
$(V)mkdir -p $(@D)
$(V)touch $@
OUTBOUND_MESAGES=LOGON NEW_ORDER_SINGLE
generate: build/fixgenerated.mk
src/$(PRJ_NAME)/FixApi.h: $(wildcard src/spec/*.def) $(wildcard $(FIXPP_DIR)/src/*.*) $(FIXPP_DIR)/generate.sh
$(V)$(FIXPP_DIR)/generate.sh --clean-fields -d $$PWD/src/$(PRJ_NAME) -s $$PWD/src/spec -i $(PRJ_NAME) -n $(PRJ_NAME) -p $$PWD/src/gdb
$(V)for mt in $(OUTBOUND_MESAGES); do\
sed "/case-begin-$$mt/,/case-end-$$mt/d" -i src/$(PRJ_NAME)/Messages.cpp;\
sed "/on-message-begin-$$mt/,/on-message-end-$$mt/d" -i src/$(PRJ_NAME)/Messages.h;\
sed "/on-message-begin-$$mt/,/on-message-end-$$mt/d" -i src/$(PRJ_NAME)/Messages.cpp;\
done
endif
$(TestPerf_EXTRA_DEPENDENCY):
$(REMAKE) -C $(PE_PRJ_DIR)
clean::
$(V)rm -rf src/gdb src/$(PRJ_NAME) mdfr.html