d5cc74ebd8
We should be using global optimization flags, and -Os is already our default. Change-Id: Iaba511b2b4fa2ee0f1eb1ad28024be954f4c5f03
82 lines
3 KiB
Makefile
82 lines
3 KiB
Makefile
# __________ __ ___.
|
|
# Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
# \/ \/ \/ \/ \/
|
|
# $Id$
|
|
#
|
|
|
|
INCLUDES += -I$(FIRMDIR)/include -I$(FIRMDIR)/export $(TARGET_INC) -I$(BUILDDIR) -I$(APPSDIR)
|
|
|
|
SIMFLAGS += $(INCLUDES) $(DEFINES) -DHAVE_CONFIG_H $(GCCOPTS)
|
|
|
|
# bootloader build is sligtly different
|
|
ifneq (,$(findstring bootloader,$(APPSDIR)))
|
|
|
|
SRC += $(call preprocess, $(APPSDIR)/SOURCES)
|
|
CLEANOBJS += $(BUILDDIR)/bootloader.*
|
|
|
|
endif #bootloader
|
|
|
|
.SECONDEXPANSION: # $$(OBJ) is not populated until after this
|
|
|
|
# bootloader build is sligtly different
|
|
ifneq (,$(findstring bootloader,$(APPSDIR)))
|
|
|
|
# We install a second font along the bootloader because sysfont is too small
|
|
# for our purpose
|
|
BL_FONT = $(ROOTDIR)/fonts/27-Adobe-Helvetica.bdf
|
|
|
|
# Limits for the bootloader sysfont: ASCII
|
|
BL_MAXCHAR = 127
|
|
|
|
# Function that adds a single file to a tar and explicitely set the name
|
|
# in the archive (which can be completely different from the original filename)
|
|
# their devices
|
|
# arguments:
|
|
# $(1) = tar file
|
|
# $(2) = archive file name
|
|
# $(3) = file to add
|
|
tar_add_file = \
|
|
tar -Prf $(1) --transform="s|.*|$(strip $(2))|" $(3)
|
|
|
|
$(BUILDDIR)/bootloader.fnt: $(BL_FONT) $(TOOLS)
|
|
$(call PRINTS,CONVBDF $(subst $(ROOTDIR)/,,$<))$(TOOLSDIR)/convbdf -l $(MAXCHAR) -f -o $@ $<
|
|
|
|
$(BUILDDIR)/bootloader.elf : $$(OBJ) $(FIRMLIB) $(CORE_LIBS)
|
|
$(call PRINTS,LD $(@F))$(CC) $(GCCOPTS) -o $@ $(OBJ) \
|
|
-L$(BUILDDIR)/firmware -lfirmware \
|
|
-L$(BUILDDIR)/lib $(call a2lnk,$(CORE_LIBS)) \
|
|
$(LDOPTS) $(GLOBAL_LDOPTS) -Wl,--gc-sections -Wl,-Map,$(BUILDDIR)/bootloader.map
|
|
|
|
$(BUILDDIR)/$(BINARY): $(BUILDDIR)/bootloader.elf $(BUILDDIR)/bootloader.fnt
|
|
# NOTE: the install script will call a command like
|
|
# tar -C $(ROOTFS_MOUNT_POINT) -f bootloader.tar
|
|
# thus the names in the archive must be of the form ./absolute/path
|
|
#
|
|
# NOTE 2: Sony uses unusual user IDs (500 on somes devices, 1002 on others)
|
|
# so make sure the files are readable/executable by anyone
|
|
$(SILENT)rm -rf $(BUILDDIR)/bootloader.tar
|
|
$(SILENT)$(call tar_add_file, $(BUILDDIR)/bootloader.tar,\
|
|
./usr/local/bin/SpiderApp, \
|
|
$(BUILDDIR)/bootloader.elf)
|
|
$(SILENT)$(call tar_add_file, $(BUILDDIR)/bootloader.tar, \
|
|
./usr/local/share/rockbox/bootloader.fnt, \
|
|
$(BUILDDIR)/bootloader.fnt)
|
|
$(call PRINTS,SCRAMBLE $(notdir $@))$(MKFIRMWARE) $(BUILDDIR)/bootloader.tar $@;
|
|
|
|
else # bootloader
|
|
|
|
$(BUILDDIR)/rockbox.elf : $$(OBJ) $(FIRMLIB) $(VOICESPEEXLIB) $(CORE_LIBS)
|
|
$(call PRINTS,LD $(@F))$(CC) $(GCCOPTS) -o $@ $(OBJ) \
|
|
-L$(BUILDDIR)/firmware -lfirmware \
|
|
-L$(RBCODEC_BLD)/codecs $(call a2lnk, $(VOICESPEEXLIB)) \
|
|
-L$(BUILDDIR)/lib $(call a2lnk,$(CORE_LIBS)) \
|
|
$(LDOPTS) $(GLOBAL_LDOPTS) -Wl,-Map,$(BUILDDIR)/rockbox.map
|
|
|
|
$(BUILDDIR)/rockbox.sony : $(BUILDDIR)/rockbox.elf
|
|
$(call PRINTS,OC $(@F))$(call objcopy,$^,$@)
|
|
|
|
endif # bootloader
|
|
|