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)
# Main services
SRV_MENU = 1
SRV_POWER = 1
SRV_BT = 1
SRV_CLI = 1
SRV_SD_FILESYSTEM = 1
SRV_INTERNAL_STORAGE = 1
SRV_DOLPHIN = 1
SRV_NOTIFICATION = 1

# Main Apps
APP_IRDA  = 1
APP_SUBGHZ = 1
APP_LF_RFID = 1
APP_NFC = 1
APP_GPIO_DEMO = 1
APP_MUSIC_PLAYER = 1
APP_IBUTTON = 1
APP_ARCHIVE = 1

# Debug and misc
APP_GUI_TEST = 1
APP_KEYPAD_TEST = 1
APP_ACCESSOR = 1
APP_SD_TEST = 1
APP_VIBRO_DEMO = 1
APP_SPEAKER_DEMO = 1
APP_EXAMPLE_BLINK = 1
APP_EXAMPLE_UART_WRITE = 1
APP_EXAMPLE_INPUT_DUMP = 1
APP_UNIT_TESTS = 0
APP_IRDA_MONITOR = 1
APP_VERTICAL_SCREEN = 1
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_BT ?= 0
ifeq ($(SRV_BT), 1)
SRV_CLI		= 1
CFLAGS		+= -DSRV_BT
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_VERTICAL_SCREEN	?= 0
ifeq ($(APP_VERTICAL_SCREEN), 1)
CFLAGS		+= -DAPP_VERTICAL_SCREEN
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_EXAMPLE_BLINK ?= 0
ifeq ($(SRV_EXAMPLE_BLINK), 1)
CFLAGS		+= -DSRV_EXAMPLE_BLINK
APP_EXAMPLE_BLINK = 1
endif
APP_EXAMPLE_BLINK ?= 0
ifeq ($(APP_EXAMPLE_BLINK), 1)
CFLAGS		+= -DAPP_EXAMPLE_BLINK
SRV_INPUT = 1
endif

SRV_EXAMPLE_UART_WRITE ?= 0
ifeq ($(SRV_EXAMPLE_UART_WRITE), 1)
CFLAGS		+= -DSRV_EXAMPLE_UART_WRITE
APP_EXAMPLE_UART_WRITE = 1
endif
APP_EXAMPLE_UART_WRITE ?= 0
ifeq ($(APP_EXAMPLE_UART_WRITE), 1)
CFLAGS		+= -DAPP_EXAMPLE_UART_WRITE
endif

SRV_EXAMPLE_IPC ?= 0
ifeq ($(SRV_EXAMPLE_IPC), 1)
CFLAGS		+= -DSRV_EXAMPLE_IPC
APP_EXAMPLE_IPC = 1
endif
APP_EXAMPLE_IPC ?= 0
ifeq ($(APP_EXAMPLE_IPC), 1)
CFLAGS		+= -DAPP_EXAMPLE_IPC
endif

SRV_EXAMPLE_INPUT_DUMP ?= 0
ifeq ($(SRV_EXAMPLE_INPUT_DUMP), 1)
CFLAGS		+= -DSRV_EXAMPLE_INPUT_DUMP
APP_EXAMPLE_INPUT_DUMP = 1
endif
APP_EXAMPLE_INPUT_DUMP ?= 0
ifeq ($(APP_EXAMPLE_INPUT_DUMP), 1)
CFLAGS		+= -DAPP_EXAMPLE_INPUT_DUMP
SRV_INPUT = 1
endif

SRV_EXAMPLE_QRCODE ?= 0
ifeq ($(SRV_EXAMPLE_QRCODE), 1)
CFLAGS		+= -DSRV_EXAMPLE_QRCODE
APP_EXAMPLE_QRCODE = 1
endif
APP_EXAMPLE_QRCODE ?= 0
ifeq ($(APP_EXAMPLE_QRCODE), 1)
CFLAGS		+= -DAPP_EXAMPLE_QRCODE
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

SRV_SD_TEST ?= 0
ifeq ($(SRV_SD_TEST), 1)
CFLAGS		+= -DSRV_SD_TEST
APP_SD_TEST = 1
endif
APP_SD_TEST ?= 0
ifeq ($(APP_SD_TEST), 1)
CFLAGS		+= -DAPP_SD_TEST
SRV_INPUT = 1
SRV_GUI = 1
SRV_SD_FILESYSTEM = 1
endif

SRV_SPEAKER_DEMO ?= 0
ifeq ($(SRV_SPEAKER_DEMO), 1)
CFLAGS		+= -DSRV_SPEAKER_DEMO
APP_SPEAKER_DEMO = 1
endif
APP_SPEAKER_DEMO ?= 0
ifeq ($(APP_SPEAKER_DEMO), 1)
CFLAGS		+= -DAPP_SPEAKER_DEMO
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_DEMO ?= 0
ifeq ($(SRV_GPIO_DEMO), 1)
CFLAGS		+= -DSRV_GPIO_DEMO
APP_GPIO_DEMO = 1
endif
APP_GPIO_DEMO ?= 0
ifeq ($(APP_GPIO_DEMO), 1)
CFLAGS		+= -DAPP_GPIO_DEMO
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

SRV_GUI_TEST ?= 0
ifeq ($(SRV_GUI_TEST), 1)
CFLAGS		+= -DSRV_GUI_TEST
APP_GUI_TEST = 1
endif
APP_GUI_TEST ?= 0
ifeq ($(APP_GUI_TEST), 1)
CFLAGS		+= -DAPP_GUI_TEST
endif

SRV_SDNFC ?= 0
ifeq ($(SRV_SDNFC), 1)
CFLAGS		+= -DSRV_SDNFC
APP_SDNFC = 1
endif
APP_SDNFC ?= 0
ifeq ($(APP_SDNFC), 1)
CFLAGS		+= -DAPP_SDNFC
endif
# device drivers

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

SRV_SD_FILESYSTEM ?= 0
ifeq ($(SRV_SD_FILESYSTEM), 1)
CFLAGS		+= -DSRV_SD_FILESYSTEM
endif

SRV_INTERNAL_STORAGE ?= 0
ifeq ($(SRV_INTERNAL_STORAGE), 1)
CFLAGS		+= -DSRV_INTERNAL_STORAGE
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
