summaryrefslogtreecommitdiff
path: root/src/libs/mynewt-nimble/porting/examples/linux/Makefile
diff options
context:
space:
mode:
authorJF <jf@codingfield.com>2020-05-17 10:29:13 +0200
committerGitea <gitea@fake.local>2020-05-17 10:29:13 +0200
commit8a94750e30399bfb204cbec59a769d9d1b6b5baa (patch)
tree8a1a58beae54e238d28aff116c900f3b428b7db4 /src/libs/mynewt-nimble/porting/examples/linux/Makefile
parent86d5732b960fbe7f81ed711b2de7e6b79293c96a (diff)
parentbe1ad9b07083e656a649d223750ff4b14b781b7b (diff)
Merge branch 'develop' of JF/PineTime into master
Diffstat (limited to 'src/libs/mynewt-nimble/porting/examples/linux/Makefile')
-rw-r--r--src/libs/mynewt-nimble/porting/examples/linux/Makefile105
1 files changed, 105 insertions, 0 deletions
diff --git a/src/libs/mynewt-nimble/porting/examples/linux/Makefile b/src/libs/mynewt-nimble/porting/examples/linux/Makefile
new file mode 100644
index 00000000..4217ea3a
--- /dev/null
+++ b/src/libs/mynewt-nimble/porting/examples/linux/Makefile
@@ -0,0 +1,105 @@
+#
+# 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.
+#
+
+# Toolchain commands
+CROSS_COMPILE ?=
+CC := ccache $(CROSS_COMPLIE)gcc
+CXX := ccache $(CROSS_COMPILE)g++
+LD := $(CROSS_COMPILE)gcc
+AR := $(CROSS_COMPILE)ar
+AS := $(CROSS_COMPILE)as
+NM := $(CROSS_COMPILE)nm
+OBJDUMP := $(CROSS_COMPILE)objdump
+OBJCOPY := $(CROSS_COMPILE)objcopy
+SIZE := $(CROSS_COMPILE)size
+
+# Configure NimBLE variables
+NIMBLE_ROOT := ../../..
+NIMBLE_CFG_TINYCRYPT := 1
+
+# Skip files that don't build for this port
+NIMBLE_IGNORE := $(NIMBLE_ROOT)/porting/nimble/src/hal_timer.c \
+ $(NIMBLE_ROOT)/porting/nimble/src/os_cputime.c \
+ $(NIMBLE_ROOT)/porting/nimble/src/os_cputime_pwr2.c \
+ $(NULL)
+
+include $(NIMBLE_ROOT)/porting/nimble/Makefile.defs
+
+SRC := $(NIMBLE_SRC)
+
+# Source files for NPL OSAL
+SRC += \
+ $(wildcard $(NIMBLE_ROOT)/porting/npl/linux/src/*.c) \
+ $(wildcard $(NIMBLE_ROOT)/porting/npl/linux/src/*.cc) \
+ $(wildcard $(NIMBLE_ROOT)/nimble/transport/socket/src/*.c) \
+ $(TINYCRYPT_SRC) \
+ $(NULL)
+
+# Source files for demo app
+SRC += \
+ ./ble.c \
+ ./main.c \
+ $(NULL)
+
+# Add NPL and all NimBLE directories to include paths
+INC = \
+ ./include \
+ $(NIMBLE_ROOT)/porting/npl/linux/include \
+ $(NIMBLE_ROOT)/nimble/transport/socket/include \
+ $(NIMBLE_INCLUDE) \
+ $(TINYCRYPT_INCLUDE) \
+ $(NULL)
+
+INCLUDES := $(addprefix -I, $(INC))
+
+SRC_C = $(filter %.c, $(SRC))
+SRC_CC = $(filter %.cc, $(SRC))
+
+OBJ := $(SRC_C:.c=.o)
+OBJ += $(SRC_CC:.cc=.o)
+
+TINYCRYPT_OBJ := $(TINYCRYPT_SRC:.c=.o)
+
+CFLAGS = \
+ $(NIMBLE_CFLAGS) \
+ $(INCLUDES) \
+ -g \
+ -D_GNU_SOURCE \
+ $(NULL)
+
+LIBS := -lrt -lpthread -lstdc++
+
+.PHONY: all clean
+.DEFAULT: all
+
+all: nimble-linux
+
+clean:
+ rm $(OBJ) -f
+ rm nimble-linux -f
+
+$(TINYCRYPT_OBJ): CFLAGS+=$(TINYCRYPT_CFLAGS)
+
+%.o: %.c
+ $(CC) -c $(INCLUDES) $(CFLAGS) -o $@ $<
+
+%.o: %.cc
+ $(CXX) -c $(INCLUDES) $(CFLAGS) -o $@ $<
+
+nimble-linux: $(OBJ) $(TINYCRYPT_OBJ)
+ $(LD) -o $@ $^ $(LIBS)
+ $(SIZE) $@