2 # Open \______ \ ____ ____ | | _\_ |__ _______ ___
3 # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
4 # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
5 # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
10 CHESSBOX_SRCDIR
= $(APPSDIR
)/plugins
/chessbox
11 CHESSBOX_OBJDIR
= $(BUILDDIR
)/apps
/plugins
/chessbox
13 CHESSBOX_SRC
:= $(call preprocess
, $(CHESSBOX_SRCDIR
)/SOURCES
)
14 CHESSBOX_OBJ
:= $(call c2obj
, $(CHESSBOX_SRC
))
16 OTHER_SRC
+= $(CHESSBOX_SRC
)
19 ifneq (,$(strip $(foreach tgt
,RECORDER ONDIO
,$(findstring $(tgt
),$(TARGET
)))))
21 ROCKS
+= $(CHESSBOX_OBJDIR
)/chessbox.ovl
22 CHESSBOX_OUTLDS
= $(CHESSBOX_OBJDIR
)/chessbox.link
23 CHESSBOX_OVLFLAGS
= -T
$(CHESSBOX_OUTLDS
) -Wl
,--gc-sections
-Wl
,-Map
,$(basename $@
).map
26 ROCKS
+= $(CHESSBOX_OBJDIR
)/chessbox.rock
30 ROCKS
+= $(CHESSBOX_OBJDIR
)/chessbox.rock
34 # sh need to retain its' -Os
35 CHESSBOXFLAGS
= $(PLUGINFLAGS
)
37 CHESSBOXFLAGS
= $(filter-out -O
%,$(PLUGINFLAGS
)) -O2
40 $(CHESSBOX_OBJDIR
)/chessbox.rock
: $(CHESSBOX_OBJ
)
42 $(CHESSBOX_OBJDIR
)/chessbox.refmap
: $(CHESSBOX_OBJ
)
44 $(CHESSBOX_OUTLDS
): $(PLUGIN_LDS
) $(CHESSBOX_OBJDIR
)/chessbox.refmap
45 $(call PRINTS
,PP
$(@F
))$(call preprocess2file
,$<,$@
,-DOVERLAY_OFFSET
=$(shell \
46 $(TOOLSDIR
)/ovl_offset.pl
$(CHESSBOX_OBJDIR
)/chessbox.refmap
))
48 $(CHESSBOX_OBJDIR
)/chessbox.ovl
: $(CHESSBOX_OBJ
) $(CHESSBOX_OUTLDS
)
49 $(SILENT
)$(CC
) $(PLUGINFLAGS
) -o
$(basename $@
).elf \
52 -lgcc
$(CHESSBOX_OVLFLAGS
)
53 $(call PRINTS
,LD
$(@F
))$(OC
) -O binary
$(basename $@
).elf
$@
55 # special pattern rule for compiling chessbox with extra flags
56 $(CHESSBOX_OBJDIR
)/%.o
: $(CHESSBOX_SRCDIR
)/%.c
$(CHESSBOX_SRCDIR
)/chessbox.make
57 $(SILENT
)mkdir
-p
$(dir $@
)
58 $(call PRINTS
,CC
$(subst $(ROOTDIR
)/,,$<))$(CC
) -I
$(dir $<) $(CHESSBOXFLAGS
) -c
$< -o
$@