Files
Upsilon/ion/Makefile

49 lines
1.4 KiB
Makefile

GIT := $(shell command -v git 2> /dev/null)
PATCH_LEVEL = NONE
ifdef GIT
PATCH_LEVEL = $(shell git rev-parse HEAD | head -c 7)
endif
SFLAGS += -Iion/include -DKD_CONFIG_H=1
ifndef ION_KEYBOARD_LAYOUT
$(error platform.mak should define ION_KEYBOARD_LAYOUT)
endif
SFLAGS += -Iion/include/ion/keyboard/$(ION_KEYBOARD_LAYOUT)
include ion/src/$(PLATFORM)/Makefile
include ion/src/shared/tools/Makefile
# We need to work around a GCC bug (concerning versions < 5.1). It is valid in
# C++11 to initialize a character array by providing a string litteral (e.g.
# char test[4]= "ab"; is valid and should initialize test to 'a','b',0,0).
# Older versions of GCC are not conformant so we resort to an initializer list.
initializer_list = $(shell echo $(1) | sed "s/\(.\)/'\1',/g")0
$(call object_for,ion/src/shared/platform_info.cpp): SFLAGS += -DPATCH_LEVEL="$(call initializer_list,$(PATCH_LEVEL))" -DEPSILON_VERSION="$(call initializer_list,$(EPSILON_VERSION))"
src += $(addprefix ion/src/shared/, \
crc32_padded.cpp \
decompress.cpp \
events.cpp \
led.cpp \
platform_info.cpp \
storage.cpp \
)
src += ion/src/external/lz4/lz4.c
tests += $(addprefix ion/test/,\
crc32.cpp\
events.cpp\
keyboard.cpp\
storage.cpp\
)
TEST_EXT_FLASH ?= 0
ifeq ($(TEST_EXT_FLASH),1)
SFLAGS += -DTEST_EXT_FLASH=1
tests += ion/test/external_flash.cpp
TEST_EXT_FLASH_REPROGRAM ?= 0
SFLAGS += -DTEST_EXT_FLASH_REPROGRAM=$(TEST_EXT_FLASH_REPROGRAM)
endif