diff options
Diffstat (limited to 'src/libs/mynewt-nimble/porting/npl/linux/test/Makefile')
-rw-r--r-- | src/libs/mynewt-nimble/porting/npl/linux/test/Makefile | 120 |
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 $@ |