# Cooperative DBA

ifeq ("$(OS_KERNEL)", "linux")

MOD_NAME = coop_dba_linux
MOD_TYPE = linux_module
MOD_DEPS = coop_dba

srcs = bcmolt_coop_dba_linux.c

MOD_INC_DIRS = $(SRC_DIR) $(MODEL_OUT_DIR)

# If called by linux kernel builder - add include paths manually.
# It is not elegant, but we'll not have many linux modules
ifneq ("$(KBUILD_SRC)", "")
	-include $(OUT_DIR_BASE)/Makefile.config.$(MOD_NAME)
endif
    ifeq ("$(RELEASE_BUILD)", "y")
	    KBUILD_EXTRA_SYMBOLS += $(TOP_DIR)/host_driver/dev_ctrl/linux/Module.symvers
    	EXTRA_CFLAGS += -I$(TOP_DIR)/host_driver/common_gpon \
-I$(TOP_DIR)/host_driver/transport/pcie_sw_queue \
-I$(TOP_DIR)/host_driver/pcie \
-I$(TOP_DIR)/host_driver/api \
-I$(TOP_DIR)/host_driver/utils \
-I$(TOP_DIR)/host_reference/dev_log \
-I$(TOP_DIR)/host_driver/transport/mux 
    else
	    KBUILD_EXTRA_SYMBOLS += $(TOP_DIR)/host/dev_ctrl/linux/Module.symvers
	    EXTRA_CFLAGS += -I$(TOP_DIR)/common/gpon \
-I$(TOP_DIR)/common/model/maple \
-I$(TOP_DIR)/common/transport/driver/maple/pcie_sw_queue \
-I$(TOP_DIR)/common/drivers/maple/pcie \
-I$(TOP_DIR)/common/api \
-I$(TOP_DIR)/common/utils \
-I$(TOP_DIR)/common/dev_log \
-I$(TOP_DIR)/host/transport/driver/maple/mux
    endif
endif