nuttx-apps/canutils/libdronecan/Makefile
Peter van der Perk fa26bab6b2 DroneCAN add socketcan support, rename to DroneCAN
Rename canardv1 to OpenCyphal

Apply suggestions from code review

Co-authored-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2023-04-25 18:24:41 +08:00

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