############################################################################
# drivers/segger/Make.defs
#
# 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.
#
############################################################################

TARGET_ZIP =
SGDIR      = segger

ifeq ($(CONFIG_SEGGER_RTT),y)
  CSRCS += segger/SystemView/SEGGER/SEGGER_RTT.c

  CFLAGS += -Wno-shadow -Wno-pointer-to-int-cast

  ifneq ($(CONFIG_SEGGER_RTT_SECTION),"")
    CFLAGS += ${DEFINE_PREFIX}SEGGER_RTT_SECTION=CONFIG_SEGGER_RTT_SECTION
  endif

  ifneq ($(CONFIG_SEGGER_RTT_BUFFER_SECTION),"")
    CFLAGS += ${DEFINE_PREFIX}SEGGER_RTT_BUFFER_SECTION=CONFIG_SEGGER_RTT_BUFFER_SECTION
  endif

  CFLAGS += ${INCDIR_PREFIX}segger$(DELIM)config

  ifeq ($(CONFIG_ARCH_ARMV7M),y)
    AFLAGS += ${INCDIR_PREFIX}segger$(DELIM)config
    ASRCS += segger/SystemView/SEGGER/SEGGER_RTT_ASM_ARMv7M.S
  endif
endif

ifeq ($(CONFIG_STREAM_RTT),y)
  CSRCS += segger/stream_rtt.c
endif

ifeq ($(CONFIG_SYSLOG_RTT),y)
  CSRCS += segger/syslog_rtt.c
endif

ifeq ($(CONFIG_NOTE_RTT),y)
  CSRCS += segger/note_rtt.c
endif

ifeq ($(CONFIG_SERIAL_RTT),y)
  CSRCS += segger/serial_rtt.c
endif

ifeq ($(CONFIG_SEGGER_SYSVIEW),y)
  CSRCS += segger/note_sysview.c
  CSRCS += segger/SystemView/SEGGER/SEGGER_SYSVIEW.c

  CFLAGS += ${INCDIR_PREFIX}$(TOPDIR)$(DELIM)sched
endif

# Common settings for RTT and SYSTEMVIEW
ifneq ($(CONFIG_SEGGER_RTT)$(CONFIG_SEGGER_SYSVIEW),)
  CFLAGS += ${INCDIR_PREFIX}segger$(DELIM)SystemView$(DELIM)SEGGER

  SYSVIEW_VERSION ?= 354
  SYSVIEW_ZIP = SystemView_Src_V$(SYSVIEW_VERSION).zip

# Download and unpack tarball if no git repo found
ifeq ($(wildcard $(SGDIR)/SystemView/.git),)
TARGET_ZIP = $(SGDIR)/$(SYSVIEW_ZIP)

$(SGDIR)/$(SYSVIEW_ZIP):
	$(call DOWNLOAD,https://www.segger.com/downloads/systemview,$(SYSVIEW_ZIP),$(TARGET_ZIP))
	$(Q) unzip -o $(TARGET_ZIP) -d $(SGDIR)/SystemView
endif

endif

context:: $(TARGET_ZIP)

distclean::
ifeq ($(wildcard $(SGDIR)/SystemView/.git),)
	$(call DELDIR, $(SGDIR)/SystemView)
endif
	$(call DELFILE, $(TARGET_ZIP))