summaryrefslogtreecommitdiff
path: root/tools/root.make
diff options
context:
space:
mode:
Diffstat (limited to 'tools/root.make')
-rw-r--r--tools/root.make28
1 files changed, 21 insertions, 7 deletions
diff --git a/tools/root.make b/tools/root.make
index c2d061b0eb..6d623595fa 100644
--- a/tools/root.make
+++ b/tools/root.make
@@ -17,6 +17,7 @@ INCLUDES = -I$(BUILDDIR) -I$(BUILDDIR)/lang $(TARGET_INC)
17CFLAGS = $(INCLUDES) $(DEFINES) $(GCCOPTS) 17CFLAGS = $(INCLUDES) $(DEFINES) $(GCCOPTS)
18PPCFLAGS = $(filter-out -g -Dmain=SDL_main,$(CFLAGS)) # cygwin sdl-config fix 18PPCFLAGS = $(filter-out -g -Dmain=SDL_main,$(CFLAGS)) # cygwin sdl-config fix
19ASMFLAGS = -D__ASSEMBLER__ # work around gcc 3.4.x bug with -std=gnu99, only meant for .S files 19ASMFLAGS = -D__ASSEMBLER__ # work around gcc 3.4.x bug with -std=gnu99, only meant for .S files
20CORE_LDOPTS = $(GLOBAL_LDOPTS) # linker ops specifically for core build
20 21
21TOOLS = $(TOOLSDIR)/rdf2binary $(TOOLSDIR)/convbdf \ 22TOOLS = $(TOOLSDIR)/rdf2binary $(TOOLSDIR)/convbdf \
22 $(TOOLSDIR)/codepages $(TOOLSDIR)/scramble $(TOOLSDIR)/bmp2rb \ 23 $(TOOLSDIR)/codepages $(TOOLSDIR)/scramble $(TOOLSDIR)/bmp2rb \
@@ -90,10 +91,15 @@ ifndef APP_TYPE
90 endif 91 endif
91endif 92endif
92 93
94ifeq (,$(findstring bootloader,$(APPSDIR)))
95 ifeq (,$(findstring checkwps,$(APP_TYPE)))
96 include $(ROOTDIR)/lib/fixedpoint/fixedpoint.make
97 endif
98endif
99
93ifneq (,$(findstring bootloader,$(APPSDIR))) 100ifneq (,$(findstring bootloader,$(APPSDIR)))
94 include $(APPSDIR)/bootloader.make 101 include $(APPSDIR)/bootloader.make
95else ifneq (,$(findstring bootbox,$(APPSDIR))) 102else ifneq (,$(findstring bootbox,$(APPSDIR)))
96 BOOTBOXLDOPTS = -Wl,--gc-sections
97 include $(APPSDIR)/bootbox.make 103 include $(APPSDIR)/bootbox.make
98else ifneq (,$(findstring checkwps,$(APP_TYPE))) 104else ifneq (,$(findstring checkwps,$(APP_TYPE)))
99 include $(APPSDIR)/checkwps.make 105 include $(APPSDIR)/checkwps.make
@@ -104,10 +110,10 @@ else ifneq (,$(findstring warble,$(APP_TYPE)))
104 include $(ROOTDIR)/lib/rbcodec/test/warble.make 110 include $(ROOTDIR)/lib/rbcodec/test/warble.make
105 include $(ROOTDIR)/lib/tlsf/libtlsf.make 111 include $(ROOTDIR)/lib/tlsf/libtlsf.make
106 include $(ROOTDIR)/lib/rbcodec/rbcodec.make 112 include $(ROOTDIR)/lib/rbcodec/rbcodec.make
107else 113else # core
108 include $(APPSDIR)/apps.make 114 include $(APPSDIR)/apps.make
109 include $(ROOTDIR)/lib/rbcodec/rbcodec.make
110 include $(APPSDIR)/lang/lang.make 115 include $(APPSDIR)/lang/lang.make
116 include $(ROOTDIR)/lib/rbcodec/rbcodec.make
111 117
112 ifdef ENABLEDPLUGINS 118 ifdef ENABLEDPLUGINS
113 include $(APPSDIR)/plugins/bitmaps/pluginbitmaps.make 119 include $(APPSDIR)/plugins/bitmaps/pluginbitmaps.make
@@ -132,6 +138,14 @@ else
132 138
133endif # bootloader 139endif # bootloader
134 140
141# One or more subdir makefiles requested --gc-sections?
142ifdef CORE_GCSECTIONS
143 # Do not use '--gc-sections' when compiling sdl-sim
144 ifneq ($(findstring sdl-sim, $(APP_TYPE)), sdl-sim)
145 CORE_LDOPTS += -Wl,--gc-sections
146 endif
147endif # CORE_GCSECTIONS
148
135OBJ := $(SRC:.c=.o) 149OBJ := $(SRC:.c=.o)
136OBJ := $(OBJ:.S=.o) 150OBJ := $(OBJ:.S=.o)
137OBJ += $(BMP:.bmp=.o) 151OBJ += $(BMP:.bmp=.o)
@@ -205,16 +219,16 @@ $(BUILDDIR)/rockbox.elf : $$(OBJ) $(FIRMLIB) $(VOICESPEEXLIB) $(CORE_LIBS) $$(LI
205 -L$(BUILDDIR)/firmware -lfirmware \ 219 -L$(BUILDDIR)/firmware -lfirmware \
206 -L$(RBCODEC_BLD)/codecs $(call a2lnk, $(VOICESPEEXLIB)) \ 220 -L$(RBCODEC_BLD)/codecs $(call a2lnk, $(VOICESPEEXLIB)) \
207 -L$(BUILDDIR)/lib $(call a2lnk, $(CORE_LIBS)) \ 221 -L$(BUILDDIR)/lib $(call a2lnk, $(CORE_LIBS)) \
208 -lgcc $(BOOTBOXLDOPTS) $(GLOBAL_LDOPTS) \ 222 -lgcc -T$(LINKRAM) \
209 -T$(LINKRAM) -Wl,-Map,$(BUILDDIR)/rockbox.map 223 $(CORE_LDOPTS) -Wl,-Map,$(BUILDDIR)/rockbox.map
210 224
211$(BUILDDIR)/rombox.elf : $$(OBJ) $(FIRMLIB) $(VOICESPEEXLIB) $(CORE_LIBS) $$(LINKROM) 225$(BUILDDIR)/rombox.elf : $$(OBJ) $(FIRMLIB) $(VOICESPEEXLIB) $(CORE_LIBS) $$(LINKROM)
212 $(call PRINTS,LD $(@F))$(CC) $(GCCOPTS) -Os -nostdlib -o $@ $(OBJ) \ 226 $(call PRINTS,LD $(@F))$(CC) $(GCCOPTS) -Os -nostdlib -o $@ $(OBJ) \
213 -L$(BUILDDIR)/firmware -lfirmware \ 227 -L$(BUILDDIR)/firmware -lfirmware \
214 -L$(RBCODEC_BLD)/codecs $(call a2lnk, $(VOICESPEEXLIB)) \ 228 -L$(RBCODEC_BLD)/codecs $(call a2lnk, $(VOICESPEEXLIB)) \
215 -L$(BUILDDIR)/lib $(call a2lnk, $(CORE_LIBS)) \ 229 -L$(BUILDDIR)/lib $(call a2lnk, $(CORE_LIBS)) \
216 -lgcc $(BOOTBOXLDOPTS) $(GLOBAL_LDOPTS) \ 230 -lgcc -T$(LINKROM) \
217 -T$(LINKROM) -Wl,-Map,$(BUILDDIR)/rombox.map 231 $(CORE_LDOPTS) -Wl,-Map,$(BUILDDIR)/rombox.map
218 232
219$(BUILDDIR)/rockbox.bin : $(BUILDDIR)/rockbox.elf 233$(BUILDDIR)/rockbox.bin : $(BUILDDIR)/rockbox.elf
220 $(call PRINTS,OC $(@F))$(call objcopy,$<,$@) 234 $(call PRINTS,OC $(@F))$(call objcopy,$<,$@)