Refactor and unify objcopy calls in the build system. Also now properly handles DEBUG...
[maemo-rb.git] / apps / plugins / chessbox / chessbox.make
blobee4940de8b679240a71282a4efc5cb72a3c6a820
1 # __________ __ ___.
2 # Open \______ \ ____ ____ | | _\_ |__ _______ ___
3 # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
4 # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
5 # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
6 # \/ \/ \/ \/ \/
7 # $Id$
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)
18 ifeq ($(findstring YES, $(call preprocess, $(APPSDIR)/plugins/BUILD_OVERLAY)), YES)
19 ### lowmem targets
20 ROCKS += $(CHESSBOX_OBJDIR)/chessbox.ovl
21 CHESSBOX_OUTLDS = $(CHESSBOX_OBJDIR)/chessbox.link
22 CHESSBOX_OVLFLAGS = -T$(CHESSBOX_OUTLDS) -Wl,--gc-sections -Wl,-Map,$(basename $@).map
23 else
24 ROCKS += $(CHESSBOX_OBJDIR)/chessbox.rock
25 endif
27 ifeq ($(CPU),sh)
28 # sh need to retain its' -Os
29 CHESSBOXFLAGS = $(PLUGINFLAGS)
30 else
31 CHESSBOXFLAGS = $(filter-out -O%,$(PLUGINFLAGS)) -O2
32 endif
34 $(CHESSBOX_OBJDIR)/chessbox.rock: $(CHESSBOX_OBJ)
36 $(CHESSBOX_OBJDIR)/chessbox.refmap: $(CHESSBOX_OBJ)
38 $(CHESSBOX_OUTLDS): $(PLUGIN_LDS) $(CHESSBOX_OBJDIR)/chessbox.refmap
39 $(call PRINTS,PP $(@F))$(call preprocess2file,$<,$@,-DOVERLAY_OFFSET=$(shell \
40 $(TOOLSDIR)/ovl_offset.pl $(CHESSBOX_OBJDIR)/chessbox.refmap))
42 $(CHESSBOX_OBJDIR)/chessbox.ovl: $(CHESSBOX_OBJ) $(CHESSBOX_OUTLDS)
43 $(SILENT)$(CC) $(PLUGINFLAGS) -o $(basename $@).elf \
44 $(filter %.o, $^) \
45 $(filter %.a, $+) \
46 -lgcc $(CHESSBOX_OVLFLAGS)
47 $(call PRINTS,LD $(@F))$(call objcopy,$(basename $@).elf,$@)
49 # special pattern rule for compiling chessbox with extra flags
50 $(CHESSBOX_OBJDIR)/%.o: $(CHESSBOX_SRCDIR)/%.c $(CHESSBOX_SRCDIR)/chessbox.make
51 $(SILENT)mkdir -p $(dir $@)
52 $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) -I$(dir $<) $(CHESSBOXFLAGS) -c $< -o $@