APP_DIR		= $(PROJECT_ROOT)/applications
LIB_DIR 	= $(PROJECT_ROOT)/lib

CFLAGS		+= -I$(APP_DIR)
C_SOURCES   += $(shell find $(APP_DIR) -name *.c)
CPP_SOURCES += $(shell find $(APP_DIR) -name *.cpp)


# Use SRV_* for autostart app
# Use APP_* for add app to build

APP_RELEASE ?= 1
ifeq ($(APP_RELEASE), 1)
# Services
SRV_BT = 1
SRV_CLI = 1
SRV_DIALOGS = 1
SRV_DOLPHIN = 1
SRV_GUI = 1
SRV_INPUT = 1
SRV_MENU = 1
SRV_NOTIFICATION = 1
SRV_POWER = 1
SRV_POWER_OBSERVER = 1
SRV_STORAGE = 1

# Apps
APP_ARCHIVE = 1
APP_GPIO_TEST = 1
APP_IBUTTON = 1
APP_IRDA  = 1
APP_LF_RFID = 1
APP_NFC = 1
APP_SUBGHZ = 1

# Plugins
APP_MUSIC_PLAYER = 1

# Debug
APP_ACCESSOR = 1
APP_BLINK = 1
APP_IRDA_MONITOR = 1
APP_KEYPAD_TEST = 1
APP_SD_TEST = 1
APP_UNIT_TESTS = 0
APP_VIBRO_DEMO = 1
endif


SRV_BT ?= 0
ifeq ($(SRV_BT), 1)
SRV_CLI		= 1
CFLAGS		+= -DSRV_BT
endif

SRV_DOLPHIN ?= 0
ifeq ($(SRV_DOLPHIN), 1)
SRV_MENU	= 1
CFLAGS		+= -DSRV_DOLPHIN
endif

SRV_POWER ?= 0
ifeq ($(SRV_POWER), 1)
SRV_GUI		= 1
SRV_CLI		= 1
CFLAGS		+= -DSRV_POWER
endif

SRV_POWER_OBSERVER ?= 0
ifeq ($(SRV_POWER_OBSERVER), 1)
SRV_POWER	= 1
CFLAGS		+= -DSRV_POWER_OBSERVER
endif

SRV_MENU ?= 0
ifeq ($(SRV_MENU), 1)
CFLAGS += -DSRV_MENU
APP_MENU = 1
endif
APP_MENU ?= 0
ifeq ($(APP_MENU), 1)
SRV_INPUT	= 1
SRV_GUI		= 1
CFLAGS		+= -DAPP_MENU
endif

APP_IRDA_MONITOR	?= 0
ifeq ($(APP_IRDA_MONITOR), 1)
CFLAGS		+= -DAPP_IRDA_MONITOR
endif

APP_UNIT_TESTS	?= 0
ifeq ($(APP_UNIT_TESTS), 1)
CFLAGS		+= -DAPP_UNIT_TESTS
endif

APP_ARCHIVE ?= 0
ifeq ($(APP_NFC), 1)
CFLAGS		+= -DAPP_ARCHIVE
APP_ARCHIVE = 1
endif

SRV_BLINK ?= 0
ifeq ($(SRV_BLINK), 1)
CFLAGS		+= -DSRV_BLINK
APP_BLINK = 1
endif
APP_BLINK ?= 0
ifeq ($(APP_BLINK), 1)
CFLAGS		+= -DAPP_BLINK
SRV_INPUT = 1
endif

SRV_UART_WRITE ?= 0
ifeq ($(SRV_UART_WRITE), 1)
CFLAGS		+= -DSRV_UART_WRITE
APP_UART_WRITE = 1
endif
APP_UART_WRITE ?= 0
ifeq ($(APP_UART_WRITE), 1)
CFLAGS		+= -DAPP_UART_WRITE
endif

SRV_IPC ?= 0
ifeq ($(SRV_IPC), 1)
CFLAGS		+= -DSRV_IPC
APP_IPC = 1
endif
APP_IPC ?= 0
ifeq ($(APP_IPC), 1)
CFLAGS		+= -DAPP_IPC
endif

ifeq ($(APP_SUBGHZ), 1)
CFLAGS		+= -DAPP_SUBGHZ
SRV_INPUT = 1
SRV_GUI = 1
SRV_CLI = 1
endif

SRV_LF_RFID ?= 0
ifeq ($(SRV_LF_RFID), 1)
CFLAGS		+= -DSRV_LF_RFID
APP_LF_RFID = 1
endif
APP_LF_RFID ?= 0
ifeq ($(APP_LF_RFID), 1)
CFLAGS		+= -DAPP_LF_RFID
SRV_INPUT = 1
SRV_GUI = 1
endif

APP_NFC ?= 0
ifeq ($(APP_NFC), 1)
CFLAGS		+= -DAPP_NFC
SRV_MENU = 1
SRV_INPUT = 1
SRV_GUI = 1
endif

SRV_IRDA ?= 0
ifeq ($(SRV_IRDA), 1)
CFLAGS		+= -DSRV_IRDA
APP_IRDA = 1
endif
APP_IRDA ?= 0
ifeq ($(APP_IRDA), 1)
CFLAGS		+= -DAPP_IRDA
SRV_INPUT = 1
SRV_GUI = 1
endif

APP_VIBRO_DEMO ?= 0
ifeq ($(APP_VIBRO_DEMO), 1)
CFLAGS		+= -DAPP_VIBRO_DEMO
SRV_INPUT = 1
endif

SRV_KEYPAD_TEST ?= 0
ifeq ($(SRV_KEYPAD_TEST), 1)
CFLAGS		+= -DSRV_KEYPAD_TEST
APP_KEYPAD_TEST = 1
endif
APP_KEYPAD_TEST ?= 0
ifeq ($(APP_KEYPAD_TEST), 1)
CFLAGS		+= -DAPP_KEYPAD_TEST
APP_KEYPAD_TEST = 1
endif

SRV_ACCESSOR ?= 0
ifeq ($(SRV_ACCESSOR), 1)
CFLAGS		+= -DSRV_ACCESSOR
APP_ACCESSOR = 1
endif
APP_ACCESSOR ?= 0
ifeq ($(APP_ACCESSOR), 1)
CFLAGS		+= -DAPP_ACCESSOR
APP_ACCESSOR = 1
endif

SRV_GPIO_TEST ?= 0
ifeq ($(SRV_GPIO_TEST), 1)
CFLAGS		+= -DSRV_GPIO_TEST
APP_GPIO_TEST = 1
endif
APP_GPIO_TEST ?= 0
ifeq ($(APP_GPIO_TEST), 1)
CFLAGS		+= -DAPP_GPIO_TEST
endif

SRV_MUSIC_PLAYER ?= 0
ifeq ($(SRV_MUSIC_PLAYER), 1)
CFLAGS		+= -DSRV_MUSIC_PLAYER
APP_MUSIC_PLAYER = 1
endif
APP_MUSIC_PLAYER ?= 0
ifeq ($(APP_MUSIC_PLAYER), 1)
CFLAGS		+= -DAPP_MUSIC_PLAYER
endif

SRV_IBUTTON ?= 0
ifeq ($(SRV_IBUTTON), 1)
CFLAGS		+= -DSRV_IBUTTON
APP_IBUTTON = 1
endif
APP_IBUTTON ?= 0
ifeq ($(APP_IBUTTON), 1)
CFLAGS		+= -DAPP_IBUTTON
endif

#
# Essential services
#

SRV_GUI	?= 0
ifeq ($(SRV_GUI), 1)
CFLAGS		+= -DSRV_GUI
endif

SRV_INPUT	?= 0
ifeq ($(SRV_INPUT), 1)
CFLAGS		+= -DSRV_INPUT
endif

SRV_CLI ?= 0
ifeq ($(SRV_CLI), 1)
SRV_GUI		= 1
CFLAGS		+= -DSRV_CLI
endif

SRV_NOTIFICATION ?= 0
ifeq ($(SRV_NOTIFICATION), 1)
CFLAGS		+= -DSRV_NOTIFICATION
endif

SRV_STORAGE ?= 0
ifeq ($(SRV_STORAGE), 1)
CFLAGS		+= -DSRV_STORAGE
endif

SRV_DIALOGS ?= 0
ifeq ($(SRV_DIALOGS), 1)
CFLAGS		+= -DSRV_DIALOGS
endif