2 # Open \______ \ ____ ____ | | _\_ |__ _______ ___
3 # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
4 # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
5 # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 # $Id: Makefile 19082 2008-11-10 23:54:24Z zagor $
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
)))))
20 ## archos recorder targets
21 CHESSBOX_INLDS
:= $(CHESSBOX_SRCDIR
)/archos.lds
22 ROCKS
+= $(CHESSBOX_OBJDIR
)/chessbox.ovl
25 CHESSBOX_INLDS
:= $(APPSDIR
)/plugins
/plugin.lds
26 ROCKS
+= $(CHESSBOX_OBJDIR
)/chessbox.rock
28 CHESSBOX_OVLFLAGS
= -T
$(CHESSBOX_OUTLDS
) -Wl
,--gc-sections
-Wl
,-Map
,$*.map
29 CHESSBOX_OUTLDS
= $(CHESSBOX_OBJDIR
)/chessbox.lds
32 ROCKS
+= $(CHESSBOX_OBJDIR
)/chessbox.rock
33 CHESSBOX_OVLFLAGS
= $(SHARED_FLAG
) # <-- from Makefile
37 # sh need to retain its' -Os
38 CHESSBOXFLAGS
= $(PLUGINFLAGS
)
40 CHESSBOXFLAGS
= $(filter-out -O
%,$(PLUGINFLAGS
)) -O2
43 $(CHESSBOX_OUTLDS
): $(CHESSBOX_INLDS
) $(CHESSBOX_OBJ
)
44 $(call PRINTS
,PP
$(<F
))$(call preprocess2file
,$<,$@
)
46 $(CHESSBOX_OBJDIR
)/chessbox.rock
: $(CHESSBOX_OBJ
) $(CHESSBOX_OUTLDS
) $(PLUGINBITMAPLIB
)
48 $(CHESSBOX_OBJDIR
)/chessbox.ovl
: $(CHESSBOX_OBJ
) $(CHESSBOX_OUTLDS
) $(PLUGINBITMAPLIB
)
49 $(SILENT
)$(CC
) $(PLUGINFLAGS
) -o
$(CHESSBOX_OBJDIR
)/$*.elf \
52 -lgcc
$(CHESSBOX_OVLFLAGS
)
53 $(call PRINTS
,LD
$(@F
))$(OC
) -O binary
$(CHESSBOX_OBJDIR
)/$*.elf
$@
55 # special pattern rule for compiling chessbox with extra flags
56 $(CHESSBOX_OBJDIR
)/%.o
: $(CHESSBOX_SRCDIR
)/%.c
$(PLUGINBITMAPLIB
) $(CHESSBOX_SRCDIR
)/chessbox.make
57 $(SILENT
)mkdir
-p
$(dir $@
)
58 $(call PRINTS
,CC
$(subst $(ROOTDIR
)/,,$<))$(CC
) -I
$(dir $<) $(CHESSBOXFLAGS
) -c
$< -o
$@