xref: /nrf52832-nimble/packages/NimBLE-latest/porting/examples/linux/Makefile (revision 042d53a763ad75cb1465103098bb88c245d95138)
1*042d53a7SEvalZero# Toolchain commands
2*042d53a7SEvalZeroCROSS_COMPILE ?=
3*042d53a7SEvalZeroCC      := ccache $(CROSS_COMPLIE)gcc
4*042d53a7SEvalZeroCXX     := ccache $(CROSS_COMPILE)g++
5*042d53a7SEvalZeroLD      := $(CROSS_COMPILE)gcc
6*042d53a7SEvalZeroAR      := $(CROSS_COMPILE)ar
7*042d53a7SEvalZeroAS      := $(CROSS_COMPILE)as
8*042d53a7SEvalZeroNM      := $(CROSS_COMPILE)nm
9*042d53a7SEvalZeroOBJDUMP := $(CROSS_COMPILE)objdump
10*042d53a7SEvalZeroOBJCOPY := $(CROSS_COMPILE)objcopy
11*042d53a7SEvalZeroSIZE    := $(CROSS_COMPILE)size
12*042d53a7SEvalZero
13*042d53a7SEvalZero# Configure NimBLE variables
14*042d53a7SEvalZeroNIMBLE_ROOT := ../../..
15*042d53a7SEvalZeroNIMBLE_CFG_TINYCRYPT := 1
16*042d53a7SEvalZeroinclude $(NIMBLE_ROOT)/porting/nimble/Makefile.defs
17*042d53a7SEvalZero
18*042d53a7SEvalZeroSRC := 	$(NIMBLE_SRC)
19*042d53a7SEvalZero
20*042d53a7SEvalZero# Source files for NPL OSAL
21*042d53a7SEvalZeroSRC += \
22*042d53a7SEvalZero	$(NIMBLE_ROOT)/porting/npl/linux/src/os_atomic.c   \
23*042d53a7SEvalZero	$(NIMBLE_ROOT)/porting/npl/linux/src/os_callout.c  \
24*042d53a7SEvalZero	$(NIMBLE_ROOT)/porting/npl/linux/src/os_eventq.cc  \
25*042d53a7SEvalZero	$(NIMBLE_ROOT)/porting/npl/linux/src/os_mutex.c    \
26*042d53a7SEvalZero	$(NIMBLE_ROOT)/porting/npl/linux/src/os_sem.c      \
27*042d53a7SEvalZero	$(NIMBLE_ROOT)/porting/npl/linux/src/os_task.c     \
28*042d53a7SEvalZero	$(NIMBLE_ROOT)/porting/npl/linux/src/os_time.c     \
29*042d53a7SEvalZero	$(NIMBLE_ROOT)/nimble/transport/socket/src/ble_hci_socket.c \
30*042d53a7SEvalZero	$(TINYCRYPT_SRC) \
31*042d53a7SEvalZero	$(NULL)
32*042d53a7SEvalZero
33*042d53a7SEvalZero# Source files for demo app
34*042d53a7SEvalZeroSRC += \
35*042d53a7SEvalZero	./ble.c \
36*042d53a7SEvalZero	./main.c \
37*042d53a7SEvalZero	$(NULL)
38*042d53a7SEvalZero
39*042d53a7SEvalZero# Add NPL and all NimBLE directories to include paths
40*042d53a7SEvalZeroINC = \
41*042d53a7SEvalZero    ./include \
42*042d53a7SEvalZero	$(NIMBLE_ROOT)/porting/npl/linux/include \
43*042d53a7SEvalZero	$(NIMBLE_ROOT)/porting/npl/linux/src \
44*042d53a7SEvalZero	$(NIMBLE_ROOT)/nimble/transport/socket/include \
45*042d53a7SEvalZero	$(NIMBLE_INCLUDE) \
46*042d53a7SEvalZero	$(TINYCRYPT_INCLUDE) \
47*042d53a7SEvalZero	$(NULL)
48*042d53a7SEvalZero
49*042d53a7SEvalZeroINCLUDES := $(addprefix -I, $(INC))
50*042d53a7SEvalZero
51*042d53a7SEvalZeroSRC_C  = $(filter %.c,  $(SRC))
52*042d53a7SEvalZeroSRC_CC = $(filter %.cc, $(SRC))
53*042d53a7SEvalZero
54*042d53a7SEvalZeroOBJ := $(SRC_C:.c=.o)
55*042d53a7SEvalZeroOBJ += $(SRC_CC:.cc=.o)
56*042d53a7SEvalZero
57*042d53a7SEvalZeroTINYCRYPT_OBJ := $(TINYCRYPT_SRC:.c=.o)
58*042d53a7SEvalZero
59*042d53a7SEvalZeroCFLAGS =                    \
60*042d53a7SEvalZero    $(NIMBLE_CFLAGS)        \
61*042d53a7SEvalZero    $(INCLUDES)             \
62*042d53a7SEvalZero    -g                      \
63*042d53a7SEvalZero    -D_GNU_SOURCE           \
64*042d53a7SEvalZero    $(NULL)
65*042d53a7SEvalZero
66*042d53a7SEvalZeroLIBS := -lrt -lpthread -lstdc++
67*042d53a7SEvalZero
68*042d53a7SEvalZero.PHONY: all clean
69*042d53a7SEvalZero.DEFAULT: all
70*042d53a7SEvalZero
71*042d53a7SEvalZeroall: nimble-linux
72*042d53a7SEvalZero
73*042d53a7SEvalZeroclean:
74*042d53a7SEvalZero	rm $(OBJ) -f
75*042d53a7SEvalZero	rm dummy -f
76*042d53a7SEvalZero
77*042d53a7SEvalZero$(TINYCRYPT_OBJ): CFLAGS+=$(TINYCRYPT_CFLAGS)
78*042d53a7SEvalZero
79*042d53a7SEvalZero%.o: %.c
80*042d53a7SEvalZero	$(CC) -c $(INCLUDES) $(CFLAGS) -o $@ $<
81*042d53a7SEvalZero
82*042d53a7SEvalZero%.o: %.cc
83*042d53a7SEvalZero	$(CXX) -c $(INCLUDES) $(CFLAGS) -o $@ $<
84*042d53a7SEvalZero
85*042d53a7SEvalZeronimble-linux: $(OBJ) $(TINYCRYPT_OBJ)
86*042d53a7SEvalZero	$(LD) -o $@ $^ $(LIBS)
87*042d53a7SEvalZero	$(SIZE) $@
88