| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- #
- # 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 $@
|