Init folder for HW Xapp
[ric-app/hw.git] / src / Makefile
1 CXX:= g++ --std=c++14 -O2
2 CC:= gcc -O2
3
4 SRC:=./
5 HWSRC:=./
6 UTILSRC=./xapp-utils
7 MSGSRC:=./xapp-mgmt
8
9 ASNSRC:=../asn1c_defs
10 E2APSRC:=./xapp-asn/e2ap
11 E2SMSRC:=./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
18 ######## Keep include dirs separate so we have transparency
19 BASEFLAGS=  -Wall  -std=c++14 $(CLOGFLAGS) 
20 C_BASEFLAGS= -Wall $(CLOGFLAGS) -DASN_DISABLE_OER_SUPPORT
21
22 XAPPFLAGS= -I./
23 HWFLAGS= -I./
24 UTILFLAGS= -I$(UTILSRC)
25 MSGFLAGS= -I$(MSGSRC)
26
27 ASNFLAGS=-I$(ASNSRC) -DASN_DISABLE_OER_SUPPORT
28 E2APFLAGS = -I$(E2APSRC)
29 E2SMFLAGS = -I$(E2SMSRC)
30
31 ########libs
32 LIBS= -lsdl -lrmr_nng  -lnng -lpthread -lm $(LOG_LIBS) $(CURL_LIBS) 
33 COV_FLAGS= -fprofile-arcs -ftest-coverage
34
35 #######
36 HWXAPP_SRC= hw_xapp_main.cc
37 XAPP_SRC= xapp.cc
38 UTIL_SRC= $(wildcard $(UTILSRC)/*.cc)
39 MSG_SRC= $(wildcard $(MSGSRC)/*.cc)
40
41 E2AP_SRC= $(wildcard $(E2APSRC)/*.cc)
42 E2SM_SRC= $(wildcard $(E2SMSRC)/*.cc)
43 ASN1C_SRC= $(wildcard $(ASNSRC)/*.c)
44
45 ##############Objects
46 UTIL_OBJ=${UTIL_SRC:.cc=.o}
47 XAPP_OBJ=${XAPP_SRC:.cc=.o}
48 HWXAPP_OBJ= ${HWXAPP_SRC:.cc=.o} 
49 MSG_OBJ= ${MSG_SRC:.cc=.o}
50
51 E2AP_OBJ = $(E2AP_SRC:.cc=.o)
52 E2SM_OBJ = $(E2SM_SRC:.cc=.o)
53 ASN1C_MODULES = $(ASN1C_SRC:.c=.o)
54
55 $(ASN1C_MODULES): export CFLAGS = $(C_BASEFLAGS) $(ASNFLAGS)
56 $(UTIL_OBJ):export CPPFLAGS=$(BASEFLAGS) $(UTILFLAGS) $(E2APFLAGS) $(E2SMFLAGS) $(ASNFLAGS) $(MSGFLAGS)
57
58 $(MSG_OBJ):export CPPFLAGS=$(BASEFLAGS) $(MSGFLAGS) $(ASNFLAGS) $(E2APFLAGS) $(E2SMFLAGS)
59 $(E2AP_OBJ): export CPPFLAGS = $(BASEFLAGS) $(ASNFLAGS) $(E2APFLAGS)
60 $(E2SM_OBJ): export CPPFLAGS = $(BASEFLAGS) $(ASNFLAGS) $(E2SMFLAGS)
61 $(XAPP_OBJ): export CPPFLAGS = $(BASEFLAGS) $(XAPPFLAGS) $(UTILFLAGS) $(MSGFLAGS) $(E2APFLAGS) $(E2SMFLAGS) $(ASNFLAGS)
62
63 $(HWXAPP_OBJ):export CPPFLAGS=$(BASEFLAGS) $(HWFLAGS) $(XAPPFLAGS) $(UTILFLAGS) $(MSGFLAGS) $(E2APFLAGS) $(E2SMFLAGS) $(ASNFLAGS)
64
65 OBJ= $(HWXAPP_OBJ) $(UTIL_OBJ) $(MSG_OBJ)  $(ASN1C_MODULES) $(E2AP_OBJ) $(E2SM_OBJ) $(XAPP_OBJ)
66
67 print-%  : ; @echo $* = $($*)
68
69 hw_xapp_main: $(OBJ)
70         $(CXX) -o $@  $(OBJ) $(LIBS) $(CPPFLAGS) $(CLOGFLAGS) 
71
72 install: hw_xapp_main
73         install  -D hw_xapp_main  /usr/local/bin/hw_xapp_main
74
75 clean:
76         -rm *.o $(ASNSRC)/*.o $(E2APSRC)/*.o $(UTILSRC)/*.o $(E2SMSRC)/*.o  $(MSGSRC)/*.o $(SRC)/*.o hw_xapp_main