############################################################################
# drivers/note/Make.defs
#
# SPDX-License-Identifier: Apache-2.0
#
# 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.
#
############################################################################

CFLAGS += ${INCDIR_PREFIX}${TOPDIR}/sched

NOTE_CSRCS =

ifeq ($(CONFIG_DRIVERS_NOTE),y)
  NOTE_CSRCS += note_driver.c
  NOTE_CSRCS += note_initialize.c
endif

ifneq ($(CONFIG_DRIVERS_NOTEFILE)$(CONFIG_DRIVERS_NOTELOWEROUT),)
  NOTE_CSRCS += notestream_driver.c
endif

ifeq ($(CONFIG_DRIVERS_NOTERAM),y)
  NOTE_CSRCS += noteram_driver.c
endif

ifeq ($(CONFIG_DRIVERS_NOTELOG),y)
  NOTE_CSRCS += notelog_driver.c
endif

ifeq ($(CONFIG_DRIVERS_NOTECTL),y)
  NOTE_CSRCS += notectl_driver.c
endif

ifeq ($(CONFIG_DRIVERS_NOTESNAP),y)
  NOTE_CSRCS += notesnap_driver.c
endif

ifeq ($(CONFIG_DRIVERS_NOTEITM),y)
  NOTE_CSRCS += noteitm_driver.c
endif

ifeq ($(CONFIG_DRIVERS_NOTERPMSG_SERVER),y)
  NOTE_CSRCS += noterpmsg_server.c
endif

ifeq ($(CONFIG_DRIVERS_NOTERPMSG),y)
  NOTE_CSRCS += noterpmsg_driver.c
endif

CSRCS += $(NOTE_CSRCS)

ifneq ($(CONFIG_DRIVERS_NOTERAM_SECTION),"")
  CFLAGS += ${DEFINE_PREFIX}DRIVERS_NOTERAM_SECTION
endif

# Disable instrumentation for note driver to avoid infinite recursion.
# sched_note_event_ip is called by __cyg_profile_func_enter/exit callbacks.

ifeq ($(CONFIG_ARCH_INSTRUMENT_ALL),y)
$(foreach src, $(NOTE_CSRCS), $(eval note/$(src)_CFLAGS += -fno-instrument-functions))
endif

DEPPATH += --dep-path note
VPATH += :note