Switching to asn1c defns library
[ric-app/hw.git] / test / Makefile
1 CXX:= g++ --std=c++14 -O2 -L/usr/local/lib
2 CC:= gcc -O2 -L/usr/local/lib
3
4 TEST:=./
5 SRC:=../src
6 UTILSRC=../src/xapp-utils
7 MGMTSRC:=../src/xapp-mgmt
8
9 ASNSRC:=../defs_hwe2sm
10 E2APSRC:=../src/xapp-asn/e2ap
11 E2SMSRC:=../src/xapp-asn/e2sm
12
13 ####### Logging library and flags
14 CLOGFLAGS:= `pkg-config mdclog --cflags`
15 LOG_LIBS:= `pkg-config mdclog --libs`
16 CURL_LIBS:= `pkg-config libcurl --libs`
17 RNIB_LIBS:= -pthread /usr/local/include/rnib/rnibreader.a
18 GTEST_LIBS:= -lgtest -lgtest_main
19 ######## Keep include dirs separate so we have transparency
20
21
22 BASEFLAGS=  -Wall -std=c++14 $(CLOGFLAGS) 
23 C_BASEFLAGS= -Wall $(CLOGFLAGS) -DASN_DISABLE_OER_SUPPORT
24
25 XAPPFLAGS= -I$(SRC)
26 UTILFLAGS= -I$(UTILSRC)
27 MGMTFLAGS= -I$(MGMTSRC)
28
29 ASNFLAGS=-I$(ASNSRC) -I/usr/local/include/riclibe2ap -DASN_DISABLE_OER_SUPPORT
30 E2APFLAGS = -I$(E2APSRC)
31 E2SMFLAGS = -I$(E2SMSRC)
32
33 ########libs
34
35 LIBS= -lsdl -lrmr_si -lriclibe2ap -lpthread -lm $(LOG_LIBS) $(CURL_LIBS) $(RNIB_LIBS) $(GTEST_LIBS)
36 COV_FLAGS= -fprofile-arcs -ftest-coverage
37
38 #######
39 TEST_SRC= hw_unit_tests.cc
40 XAPP_SRC= ../src/xapp.cc
41 TEST_HDR=$(wildcard $(TEST)/*.h)
42 UTIL_SRC= $(wildcard $(UTILSRC)/*.cc)
43 MGMT_SRC= $(wildcard $(MGMTSRC)/*.cc)
44
45 E2AP_SRC= $(wildcard $(E2APSRC)/*.cc)
46 E2SM_SRC= $(wildcard $(E2SMSRC)/*.cc)
47 ASN1C_SRC= $(wildcard $(ASNSRC)/*.c)
48
49 ##############Objects
50 UTIL_OBJ=${UTIL_SRC:.cc=.o}
51 MGMT_OBJ=${MGMT_SRC:.cc=.o}
52 XAPP_OBJ=${XAPP_SRC:.cc=.o}
53 TEST_OBJ=${TEST_SRC:.cc=.o} 
54
55 E2AP_OBJ = $(E2AP_SRC:.cc=.o)
56 E2SM_OBJ = $(E2SM_SRC:.cc=.o)
57
58 ASN1C_MODULES = $(ASN1C_SRC:.c=.o)
59 $(ASN1C_MODULES): export CFLAGS = $(C_BASEFLAGS) $(ASNFLAGS)
60
61 $(UTIL_OBJ):export CPPFLAGS=$(BASEFLAGS) $(UTILFLAGS) $(MGMTFLAGS)
62 $(MGMT_OBJ):export CPPFLAGS=$(BASEFLAGS) $(MGMTFLAGS) $(ASNFLAGS) $(E2APFLAGS) $(E2SMFLAGS)
63
64 $(E2AP_OBJ): export CPPFLAGS = $(BASEFLAGS) $(ASNFLAGS) $(E2APFLAGS)
65 $(E2SM_OBJ): export CPPFLAGS = $(BASEFLAGS) $(ASNFLAGS) $(E2SMFLAGS)
66 $(XAPP_OBJ): export CPPFLAGS = $(BASEFLAGS) $(XAPPFLAGS) $(UTILFLAGS) $(MGMTFLAGS) $(E2APFLAGS) $(E2SMFLAGS) $(ASNFLAGS)
67
68 $(TEST_OBJ):export CPPFLAGS=$(BASEFLAGS) $(XAPPFLAGS) $(UTILFLAGS) $(MGMTFLAGS) $(E2APFLAGS) $(E2SMFLAGS) $(ASNFLAGS)
69 $(TEST_OBJ) = $(TEST_HDR) $(TEST_OBJ) 
70
71
72 OBJ= $(TEST_OBJ) $(UTIL_OBJ) $(MGMT_OBJ)  $(ASN1C_MODULES) $(E2AP_OBJ) $(E2SM_OBJ) $(XAPP_OBJ)
73
74 print-%  : ; @echo $* = $($*)
75
76 hw_unit_tests: $(OBJ)
77         $(CXX) -o $@  $(OBJ) $(LIBS) $(RNIBFLAGS) $(CPPFLAGS) $(CLOGFLAGS)
78
79 install: hw_unit_tests
80         install  -D hw_unit_tests  /usr/local/bin/hw_unit_tests
81
82 clean:
83         -rm *.o $(E2APSRC)/*.o $(UTILSRC)/*.o $(E2SMSRC)/*.o  $(MGMTSRC)/*.o $(SRC)/*.o hw_unit_tests