84 lines
2.7 KiB
Makefile
84 lines
2.7 KiB
Makefile
|
############################################################################
|
||
|
# apps/canutils/libdronecan/Makefile
|
||
|
#
|
||
|
# 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.
|
||
|
#
|
||
|
############################################################################
|
||
|
|
||
|
include $(APPDIR)/Make.defs
|
||
|
|
||
|
WD := ${shell echo $(CURDIR) | sed -e 's/ /\\ /g'}
|
||
|
|
||
|
UNPACK = unzip
|
||
|
PACKEXT = .zip
|
||
|
|
||
|
LIBDRONECAN_URL = $(patsubst "%",%,$(strip $(CONFIG_LIBDRONECAN_URL)))
|
||
|
LIBDRONECAN_VERSION = $(patsubst "%",%,$(strip $(CONFIG_LIBDRONECAN_VERSION)))
|
||
|
|
||
|
LIBDRONECAN_PACKNAME = $(LIBDRONECAN_UNPACKNAME)$(PACKEXT)
|
||
|
LIBDRONECAN_UNPACKNAME = libcanard-$(LIBDRONECAN_VERSION)
|
||
|
LIBDRONECAN_SRCNAME = libcanard
|
||
|
|
||
|
LIBDRONECAN_SRCDIR = $(WD)/$(LIBDRONECAN_SRCNAME)
|
||
|
LIBDRONECAN_DRVDIR = $(LIBDRONECAN_SRCDIR)$(DELIM)drivers$(DELIM)nuttx
|
||
|
LIBDRONECAN_SOCKETCANDIR = $(LIBDRONECAN_SRCDIR)$(DELIM)drivers$(DELIM)socketcan
|
||
|
|
||
|
# Conflict with Cyphal's libcanard
|
||
|
ifeq ($(CONFIG_CANUTILS_LIBOPENCYPHAL),y)
|
||
|
CFLAGS += -DcanardInit=dronecanardInit
|
||
|
endif
|
||
|
|
||
|
CFLAGS += -std=c99 -DCANARD_ASSERT=DEBUGASSERT
|
||
|
CFLAGS += ${INCDIR_PREFIX}$(APPDIR)/canutils/libdronecan/libcanard
|
||
|
|
||
|
ifeq ($(CONFIG_LIBDRONECAN_CANFD),y)
|
||
|
CFLAGS += -DCANARD_ENABLE_CANFD=1
|
||
|
endif
|
||
|
|
||
|
CSRCS = $(LIBDRONECAN_SRCDIR)$(DELIM)canard.c
|
||
|
|
||
|
ifeq ($(CONFIG_NET_CAN),y)
|
||
|
CSRCS += $(LIBDRONECAN_SOCKETCANDIR)$(DELIM)socketcan.c
|
||
|
else
|
||
|
CSRCS += $(LIBDRONECAN_DRVDIR)$(DELIM)canard_nuttx.c
|
||
|
endif
|
||
|
|
||
|
# Download and unpack tarball if no git repo found
|
||
|
ifeq ($(wildcard $(LIBDRONECAN_SRCNAME)/.git),)
|
||
|
$(LIBDRONECAN_PACKNAME):
|
||
|
@echo "Downloading: $@"
|
||
|
$(Q) curl -o $@ -L $(LIBDRONECAN_URL)$(DELIM)$(LIBDRONECAN_VERSION)$(PACKEXT)
|
||
|
|
||
|
$(LIBDRONECAN_SRCNAME): $(LIBDRONECAN_PACKNAME)
|
||
|
@echo "Unpacking: $< -> $@"
|
||
|
$(call DELDIR, $@)
|
||
|
$(Q) $(UNPACK) $<
|
||
|
$(Q) mv $(LIBDRONECAN_UNPACKNAME) $(LIBDRONECAN_SRCNAME)
|
||
|
$(Q) touch $@
|
||
|
|
||
|
$(LIBDRONECAN_SRCDIR)$(DELIM)canard.c: $(LIBDRONECAN_SRCNAME)
|
||
|
endif
|
||
|
|
||
|
context:: $(LIBDRONECAN_SRCNAME)
|
||
|
|
||
|
distclean::
|
||
|
ifeq ($(wildcard $(LIBDRONECAN_SRCNAME)/.git),)
|
||
|
$(call DELDIR, $(LIBDRONECAN_SRCNAME))
|
||
|
$(call DELFILE, $(LIBDRONECAN_PACKNAME))
|
||
|
endif
|
||
|
|
||
|
include $(APPDIR)/Application.mk
|