Makefile 1.24 KB
include ion/src/device/boot/Makefile
include ion/src/device/bench/Makefile
include ion/src/device/usb/Makefile

ion/src/shared/platform_info.o: SFLAGS += -DHEADER_SECTION="__attribute__((section(\".header\")))"

objs += $(addprefix ion/src/shared/, \
  console_line.o \
  events_modifier.o \
)

# If you need to profile execution, you can replace events_keyboard with
# events_replay.o and dummy/events_modifier.o

objs += $(addprefix ion/src/device/, \
  backlight.o \
  battery.o\
  base64.o\
  console.o \
  device.o\
  display.o\
  events.o\
  flash.o\
  keyboard.o\
  led.o\
  power.o\
  sd_card.o\
  swd.o \
  usb.o \
  wakeup.o \
)

# When using the register.h C++ file in production mode, we expect the compiler
# to completely inline all bit manipulations. For some reason, if we build using
# the -Os optimization flag, GCC doesn't inline everything and and ends up
# emitting calls to aeabi_llsl for 64-bits registers. This is very sub-optimal
# so we're enforcing -O3 for this specific file.

ifneq ($(DEBUG),1)
ifneq ($(COMPILER),llvm)
ion/src/device/led.o: SFLAGS+=-O3
ion/src/device/console.o: SFLAGS+=-O3
ion/src/device/display.o: SFLAGS+=-O3
ion/src/device/swd.o: SFLAGS+=-O3
endif
endif

#objs += $(addprefix ion/src/device/keyboard/, keyboard.o)