summaryrefslogtreecommitdiff
path: root/src/libs/mynewt-nimble/porting/npl/linux/test/Makefile
diff options
context:
space:
mode:
authorJF <jf@codingfield.com>2020-04-26 10:25:59 +0200
committerJF <jf@codingfield.com>2020-04-26 10:25:59 +0200
commitbdc10744fb338ae197692713a0b48a7ccc36f566 (patch)
treeaf7a8f2f16ddd2e5483758effec15c7683f6c453 /src/libs/mynewt-nimble/porting/npl/linux/test/Makefile
parent032fad094c6411ad3ff4321ad61ceed95d7dc4ff (diff)
Add Nimble in libs directory
Diffstat (limited to 'src/libs/mynewt-nimble/porting/npl/linux/test/Makefile')
-rw-r--r--src/libs/mynewt-nimble/porting/npl/linux/test/Makefile120
1 files changed, 120 insertions, 0 deletions
diff --git a/src/libs/mynewt-nimble/porting/npl/linux/test/Makefile b/src/libs/mynewt-nimble/porting/npl/linux/test/Makefile
new file mode 100644
index 00000000..c0be3d5f
--- /dev/null
+++ b/src/libs/mynewt-nimble/porting/npl/linux/test/Makefile
@@ -0,0 +1,120 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+# * http://www.apache.org/licenses/LICENSE-2.0
+# * Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+# Makefile
+
+PROJ_ROOT = ../../../..
+
+### ===== Toolchain =====
+
+CROSS_COMPILE ?=
+CC = ccache $(CROSS_COMPILE)gcc
+CPP = ccache $(CROSS_COMPILE)g++
+LD = $(CROSS_COMPILE)gcc
+AR = $(CROSS_COMPILE)ar
+
+### ===== Compiler Flags =====
+
+INCLUDES = \
+ -I. \
+ -I$(PROJ_ROOT)/nimble/include \
+ -I$(PROJ_ROOT)/porting/npl/linux/include \
+ -I$(PROJ_ROOT)/porting/npl/linux/src \
+ -I$(PROJ_ROOT)/porting/nimble/include \
+ $(NULL)
+
+DEFINES =
+
+CFLAGS = \
+ $(INCLUDES) $(DEFINES) \
+ -g \
+ -D_GNU_SOURCE \
+ $(NULL)
+
+LIBS = -lrt -lpthread -lstdc++
+
+LDFLAGS =
+
+### ===== Sources =====
+
+OSAL_PATH = $(PROJ_ROOT)/porting/npl/linux/src
+
+SRCS = $(shell find $(OSAL_PATH) -maxdepth 1 -name '*.c')
+SRCS += $(shell find $(OSAL_PATH) -maxdepth 1 -name '*.cc')
+SRCS += $(PROJ_ROOT)/porting/nimble/src/os_mempool.c
+
+OBJS = $(patsubst %.c, %.o,$(filter %.c, $(SRCS)))
+OBJS += $(patsubst %.cc,%.o,$(filter %.cc, $(SRCS)))
+
+TEST_SRCS = $(shell find . -maxdepth 1 -name '*.c')
+TEST_SRCS += $(shell find . -maxdepth 1 -name '*.cc')
+
+TEST_OBJS = $(patsubst %.c, %.o,$(filter %.c, $(SRCS)))
+TEST_OBJS += $(patsubst %.cc,%.o,$(filter %.cc, $(SRCS)))
+
+### ===== Rules =====
+
+all: depend \
+ test_npl_task.exe \
+ test_npl_callout.exe \
+ test_npl_eventq.exe \
+ test_npl_sem.exe \
+ $(NULL)
+
+test_npl_task.exe: test_npl_task.o $(OBJS)
+ $(LD) -o $@ $^ $(LDFLAGS) $(LIBS)
+
+test_npl_eventq.exe: test_npl_eventq.o $(OBJS)
+ $(LD) -o $@ $^ $(LDFLAGS) $(LIBS)
+
+test_npl_callout.exe: test_npl_callout.o $(OBJS)
+ $(LD) -o $@ $^ $(LDFLAGS) $(LIBS)
+
+test_npl_sem.exe: test_npl_sem.o $(OBJS)
+ $(LD) -o $@ $^ $(LDFLAGS) $(LIBS)
+
+test: all
+ ./test_npl_task.exe
+ ./test_npl_callout.exe
+ ./test_npl_eventq.exe
+ ./test_npl_sem.exe
+
+show_objs:
+ @echo $(OBJS)
+
+### ===== Clean =====
+clean:
+ @echo "Cleaning artifacts."
+ rm *~ .depend $(OBJS) *.o *.exe
+
+### ===== Dependencies =====
+### Rebuild if headers change
+depend: .depend
+
+.depend: $(SRCS) $(TEST_SRCS)
+ @echo "Building dependencies."
+ rm -f ./.depend
+ $(CC) $(CFLAGS) -MM $^ > ./.depend;
+
+include .depend
+
+### Generic rules based on extension
+%.o: %.c
+ $(CC) -c $(CFLAGS) $< -o $@
+
+%.o: %.cc
+ $(CPP) -c $(CFLAGS) $< -o $@