diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/Makefile | 186 | ||||
-rw-r--r-- | apps/plugins/Makefile | 51 | ||||
-rw-r--r-- | apps/plugins/lib/Makefile | 74 |
3 files changed, 66 insertions, 245 deletions
diff --git a/apps/Makefile b/apps/Makefile index 7afcdc35bd..e140172607 100644 --- a/apps/Makefile +++ b/apps/Makefile @@ -7,47 +7,11 @@ # $Id$ # -# $@ is the name to the left of the colon -# $> is the first name to the right of the colon +INCLUDES= -I$(FIRMDIR)/include -I$(FIRMDIR)/export -I. -I$(OBJDIR) -CC = sh-elf-gcc -LD = sh-elf-ld -AR = sh-elf-ar -AS = sh-elf-as -OC = sh-elf-objcopy - -LANGUAGE = english - -FIRMWARE := ../firmware -DOCSDIR := ../docs - -INCLUDES= -I$(FIRMWARE)/include -I$(FIRMWARE)/export -I. -I$(OBJDIR) - -CFLAGS = -O -W -Wall -m1 -nostdlib -ffreestanding -Wstrict-prototypes \ --fomit-frame-pointer -fschedule-insns $(INCLUDES) $(TARGET) $(DEFINES) \ --DAPPSVERSION=\"$(VERSION)\" $(EXTRA_DEFINES) -DMEM=${MEM} -AFLAGS += -small -relax - -# Check if this is a kind of Recorder -ANYREC = $(findstring RECORDER, $(TARGET)) - -# Check if this is an Ondio model -ANYONDIO = $(findstring ONDIO, $(TARGET)) - -# scramble tool -TOOL = scramble - -ifndef MEM - # if MEM is not set, assume 2MB - MEM=2 -endif - -ifdef ARCHOS_ROM - ROMBUILD=-DARCHOS_ROM -endif - -LDS := $(FIRMWARE)/app.lds -ROMLDS := $(FIRMWARE)/rom.lds +DEPFILE = $(OBJDIR)/dep-apps +LDS := $(FIRMDIR)/app.lds +ROMLDS := $(FIRMDIR)/rom.lds ifdef DEBUG DEFINES := -DDEBUG @@ -55,103 +19,64 @@ ifdef DEBUG endif SRC := $(wildcard *.c) +DIRS = . -ifeq ($(TARGET), -DARCHOS_FMRECORDER) - TOOL_OPT = -fm -endif -ifeq ($(TARGET), -DARCHOS_RECORDERV2) - TOOL_OPT = -v2 -endif -ifeq ($(TARGET), -DARCHOS_ONDIOSP) - TOOL_OPT = -osp -endif -ifeq ($(TARGET), -DARCHOS_ONDIOFM) - TOOL_OPT = -ofm -endif - +# set the ROMTARGET here +ROMTARGET := $(ARCHOSROM) -ifeq ($(ANYREC), RECORDER) - SRC += $(wildcard recorder/*.c) - CFLAGS += -Irecorder - OUTNAME = ajbrec.ajz - # set the ROMTARGET here to make this get built only on recorders - ROMTARGET := $(OBJDIR)/rombox.ucl -else -ifeq ($(TARGET), -DARCHOS_PLAYER) - SRC += $(wildcard player/*.c) - CFLAGS += -Iplayer - OUTNAME = archos.mod -else -ifeq ($(ANYONDIO), ONDIO) -# use the recorder tree for now - SRC += $(wildcard recorder/*.c) - CFLAGS += -Irecorder - OUTNAME = ajbrec.ajz -else -# some kind of Neo - SRC += $(wildcard neo/*.c) - CFLAGS += -Ineo - OUTNAME = Rockbox.bin - TOOL_OPT = -neo -endif -endif +ifdef APPEXTRA + SRC += $(wildcard $(APPEXTRA)/*.c) + DIRS += $(APPEXTRA) + INCLUDES += -I$(APPEXTRA) endif -OBJS := $(OBJDIR)/lang.o $(SRC:%.c=$(OBJDIR)/%.o) +CFLAGS = -O -W -Wall -m1 -nostdlib -ffreestanding -Wstrict-prototypes \ +-fomit-frame-pointer -fschedule-insns $(INCLUDES) $(TARGET) $(DEFINES) \ +-DAPPSVERSION=\"$(VERSION)\" $(EXTRA_DEFINES) -DMEM=${MEMORYSIZE} +OBJS := $(OBJDIR)/lang.o $(SRC:%.c=$(OBJDIR)/%.o) +SOURCES = $(SRC) LINKFILE = $(OBJDIR)/linkage.lds LINKROM = $(OBJDIR)/linkrom.lds - -ifndef OBJDIR -no_configure: - @echo "Don't run make here. Run the tools/configure script from your own build" - @echo "directory, then run make there." - @echo - @echo "More help on how to build rockbox can be found here:" - @echo "http://rockbox.haxx.se/docs/how_to_compile.html" -endif - -ifndef TOOLSDIR - TOOLSDIR=../tools -endif - MAXINFILE = $(OBJDIR)/romstart.temp MAXOUTFILE = $(OBJDIR)/romstart ifdef DEBUG -all : $(OBJDIR)/rockbox.elf rocks +all: $(OBJDIR)/rockbox.elf rocks else -all : $(OBJDIR)/$(OUTNAME) $(OBJDIR)/rockbox.ucl rocks $(ROMTARGET) +all: $(OBJDIR)/$(BINARY) $(OBJDIR)/rockbox.ucl rocks $(ROMTARGET) endif +dep: $(DEPFILE) + rocks: - $(MAKE) -C plugins/lib TARGET=$(TARGET) DEBUG=$(DEBUG) OBJDIR=$(OBJDIR) VERSION=$(VERSION) EXTRA_DEFINES="$(EXTRA_DEFINES)" MEM=${MEM} - $(MAKE) -C plugins TARGET=$(TARGET) DEBUG=$(DEBUG) OBJDIR=$(OBJDIR) VERSION=$(VERSION) EXTRA_DEFINES="$(EXTRA_DEFINES)" MEM=${MEM} + @$(MAKE) -C plugins/lib + @$(MAKE) -C plugins $(OBJDIR)/librockbox.a: - make -C $(FIRMWARE) TARGET=$(TARGET) DEBUG=$(DEBUG) OBJDIR=$(OBJDIR) + @$(MAKE) -C $(FIRMDIR) -# MEM should be passed on to this makefile with the chosen memory size given -# in number of MB $(LINKFILE): $(LDS) - cat $< | $(CC) -DMEMORYSIZE=$(MEM) $(INCLUDES) $(TARGET) $(DEFINES) -E -P $(ROMBUILD) - >$@ + @echo "Build LDS file" + @cat $< | $(CC) -DMEMORYSIZE=$(MEMORYSIZE) $(INCLUDES) $(TARGET) $(DEFINES) -E -P $(ROMBUILD) - >$@ $(LINKROM): $(ROMLDS) - cat $< | $(CC) -DMEMORYSIZE=$(MEM) $(INCLUDES) $(TARGET) $(DEFINES) -E -P $(ROMBUILD) - >$@ + @echo "Build LDS file for Rombox" + @cat $< | $(CC) -DMEMORYSIZE=$(MEMORYSIZE) $(INCLUDES) $(TARGET) $(DEFINES) -E -P $(ROMBUILD) - >$@ $(MAXOUTFILE): @echo '#include "config.h"' > $(MAXINFILE) @echo "ROM_START" >> $(MAXINFILE) - @cat $(MAXINFILE) | $(CC) -DMEMORYSIZE=$(MEM) $(INCLUDES) $(TARGET) $(DEFINES) -E -P $(ROMBUILD) - > $(MAXOUTFILE) + @cat $(MAXINFILE) | $(CC) -DMEMORYSIZE=$(MEMORYSIZE) $(INCLUDES) $(TARGET) $(DEFINES) -E -P $(ROMBUILD) - > $(MAXOUTFILE) @rm $(MAXINFILE) $(OBJDIR)/rombox.elf : $(OBJS) $(LINKROM) $(OBJDIR)/librockbox.a @echo "LD rombox.elf" - @$(CC) -Os -nostdlib -o $@ $(OBJS) -L$(OBJDIR) -lrockbox -lgcc -L$(FIRMWARE) -T$(LINKROM) -Wl,-Map,$(OBJDIR)/rombox.map + @$(CC) -Os -nostdlib -o $@ $(OBJS) -L$(OBJDIR) -lrockbox -lgcc -L$(FIRMDIR) -T$(LINKROM) -Wl,-Map,$(OBJDIR)/rombox.map $(OBJDIR)/rockbox.elf : $(OBJS) $(LINKFILE) $(OBJDIR)/librockbox.a @echo "LD rockbox.elf" - @$(CC) -Os -nostdlib -o $@ $(OBJS) -L$(OBJDIR) -lrockbox -lgcc -L$(FIRMWARE) -T$(LINKFILE) -Wl,-Map,$(OBJDIR)/rockbox.map + @$(CC) -Os -nostdlib -o $@ $(OBJS) -L$(OBJDIR) -lrockbox -lgcc -L$(FIRMDIR) -T$(LINKFILE) -Wl,-Map,$(OBJDIR)/rockbox.map $(OBJDIR)/rockbox.bin : $(OBJDIR)/rockbox.elf @echo "OBJCOPY $<" @@ -164,8 +89,9 @@ $(OBJDIR)/rombox.bin : $(OBJDIR)/rombox.elf $(OBJDIR)/rockbox.asm: $(OBJDIR)/rockbox.bin $(TOOLSDIR)/sh2d -sh1 $< > $@ -$(OBJDIR)/$(OUTNAME) : $(OBJDIR)/rockbox.bin - $(TOOLSDIR)/$(TOOL) $(TOOL_OPT) $< $@ +$(OBJDIR)/$(BINARY) : $(OBJDIR)/rockbox.bin $(DEPFILE) + @echo "Build firmware file" + @$(MKFIRMWARE) $< $@ $(OBJDIR)/rockbox.ucl: $(OBJDIR)/rockbox.bin @a=`uclpack -h 2>/dev/null`; \ @@ -177,7 +103,7 @@ $(OBJDIR)/rockbox.ucl: $(OBJDIR)/rockbox.bin echo "fake" > $@; \ fi -$(OBJDIR)/rombox.ucl: $(OBJDIR)/rombox.bin $(MAXOUTFILE) +$(ARCHOSROM): $(OBJDIR)/rombox.bin $(MAXOUTFILE) @a=`uclpack -h 2>/dev/null`; \ if test -n "$$a"; then \ echo "UCLPACK rombox" ; \ @@ -205,10 +131,7 @@ $(OBJDIR)/credits.o: credits.c credits.h $(OBJDIR)/credits.raw @echo "CC $<" @$(CC) $(CFLAGS) -c $< -o $@ -$(OBJDIR)/%.o: %.c - @mkdir -p `dirname $@` - @echo "CC $<" - @$(CC) $(CFLAGS) -c $< -o $@ +include $(TOOLSDIR)/make.inc $(OBJDIR)/build.lang: lang/$(LANGUAGE).lang $(TOOLSDIR)/uplang @echo "UPLANG" @@ -222,44 +145,13 @@ $(OBJDIR)/lang.o: $(OBJDIR)/build.lang $(TOOLSDIR)/genlang clean: @echo "cleaning apps" - @-rm -f $(OBJS) $(OBJDIR)/$(OUTNAME) $(OBJDIR)/rockbox.asm \ + @-rm -f $(OBJS) $(OBJDIR)/$(BINARY) $(OBJDIR)/rockbox.asm \ $(OBJDIR)/rockbox.bin $(OBJDIR)/rockbox.elf $(OBJDIR)/*.map \ $(OBJDIR)/lang.o $(OBJDIR)/build.lang $(OBJDIR)/lang.[ch] \ $(OBJDIR)/credits.raw $(LINKFILE) $(OBJDIR)/rockbox.ucl \ $(LINKROM) $(OBJDIR)/rombox.ucl $(OBJDIR)/rombox.bin \ - $(OBJDIR)/rombox.elf $(MAXOUTFILE) - @-$(RM) -r $(OBJDIR)/$(DEPS) + $(OBJDIR)/rombox.elf $(MAXOUTFILE) $(DEPFILE) @$(MAKE) -C plugins clean + @rm -rf $(OBJDIR)/recorder $(OBJDIR)/player -DEPS:=.deps -DEPDIRS:=$(DEPS) -ifeq ($(ANYREC), RECORDER) - DEPDIRS += $(DEPS)/recorder -else -ifeq ($(TARGET), -DARCHOS_PLAYER) - DEPDIRS += $(DEPS)/player -else -ifeq ($(ANYONDIO), ONDIO) -# use the recorder tree for now - DEPDIRS += $(DEPS)/recorder -else -# some kind of Neo - DEPDIRS += $(DEPS)/neo -endif -endif -endif - -DIRS = $(subst $(DEPS),".",$(DEPDIRS)) - -tags: - @$(SHELL) -c 'for d in $(DIRS); do { etags -o $(OBJDIR)/TAGS -a $$d/*.[ch]; }; done' - -$(OBJDIR)/$(DEPS)/%.d: %.c - @$(SHELL) -c 'for d in $(DEPDIRS); do { if [ ! -d $(OBJDIR)/$$d ]; then mkdir $(OBJDIR)/$$d; fi; }; done' - @$(SHELL) -ec '$(CC) -MM $(CFLAGS) $< 2>/dev/null \ - |sed '\''s|\($*\)\.o[ :]*|$(OBJDIR)/\1.o $(<:%.c=%.d) : |g'\'' > $@; \ - [ -s $@ ] || rm -f $@' - -ifdef OBJDIR - -include $(SRC:%.c=$(OBJDIR)/$(DEPS)/%.d) -endif +-include $(DEPFILE) diff --git a/apps/plugins/Makefile b/apps/plugins/Makefile index ded54e8a4b..6eb51df5d3 100644 --- a/apps/plugins/Makefile +++ b/apps/plugins/Makefile @@ -7,46 +7,27 @@ # $Id$ # -CC = sh-elf-gcc -OC = sh-elf-objcopy - -FIRMWARE = ../../firmware - -# Check if this is a kind of Recorder -ANYREC = $(findstring RECORDER, $(TARGET)) - -# Check if this is an Ondio model -ANYONDIO = $(findstring ONDIO, $(TARGET)) - -INCLUDES = -I$(FIRMWARE)/include -I$(FIRMWARE)/export -I$(FIRMWARE)/common \ --I$(FIRMWARE)/drivers -I.. -Ilib +INCLUDES = -I$(FIRMDIR)/include -I$(FIRMDIR)/export -I$(FIRMDIR)/common \ +-I$(FIRMDIR)/drivers -I$(APPSDIR) -Ilib CFLAGS = -O -W -Wall -m1 -nostdlib -ffreestanding -Wstrict-prototypes \ -$(INCLUDES) $(TARGET) $(EXTRA_DEFINES) -DMEM=${MEM} -DPLUGIN +$(INCLUDES) $(TARGET) $(EXTRA_DEFINES) -DMEM=${MEMORYSIZE} -DPLUGIN -ifeq ($(ANYREC), RECORDER) -INCLUDES += -I../recorder -endif -ifeq ($(ANYONDIO), ONDIO) -# use the recorder tree for now -INCLUDES += -I../recorder +ifdef APPEXTRA + INCLUDES += -I$(APPSDIR)/$(APPEXTRA) endif LDS := plugin.lds LINKFILE := $(OBJDIR)/pluginlink.lds +DEPFILE = $(OBJDIR)/dep-plugins SRC := $(wildcard *.c) ROCKS := $(SRC:%.c=$(OBJDIR)/%.rock) +SOURCES = $(SRC) +ELFS := $(SRC:%.c=$(OBJDIR)/%.elf) +OBJS := $(SRC:%.c=$(OBJDIR)/%.o) +DIRS = . -ifndef OBJDIR -no_configure: - @echo "Don't run make here. Run the tools/configure script from your own build" - @echo "directory, then run make there." - @echo - @echo "More help on how to build rockbox can be found here:" - @echo "http://rockbox.haxx.se/docs/how_to_compile.html" -endif - -$(OBJDIR)/%.elf: $(OBJDIR)/%.o $(LINKFILE) $(OBJDIR)/libplugin.a +$(OBJDIR)/%.elf: $(OBJDIR)/%.o $(LINKFILE) $(OBJDIR)/libplugin.a $(DEPFILE) @echo "LD $@" @$(CC) -O -nostdlib -o $@ $< -L$(OBJDIR) -lplugin -lgcc -T$(LINKFILE) -Wl,-Map,$(OBJDIR)/$*.map @@ -54,9 +35,7 @@ $(OBJDIR)/%.rock : $(OBJDIR)/%.elf @echo "OBJCOPY $<" @$(OC) -O binary $< $@ -$(OBJDIR)/%.o: %.c ../plugin.h Makefile - @echo "CC $<" - @$(CC) $(CFLAGS) -c $< -o $@ +include $(TOOLSDIR)/make.inc ifeq ($(ANYONDIO), ONDIO) all: @@ -68,15 +47,15 @@ endif $(OBJDIR)/libplugin.a: @echo "MAKE in lib" - @$(MAKE) -C lib TARGET=$(TARGET) DEBUG=$(DEBUG) OBJDIR=$(OBJDIR) VERSION=$(VERSION) EXTRA_DEFINES="$(EXTRA_DEFINES)" MEM=${MEM} + @$(MAKE) -C lib TARGET=$(TARGET) DEBUG=$(DEBUG) OBJDIR=$(OBJDIR) VERSION=$(VERSION) EXTRA_DEFINES="$(EXTRA_DEFINES)" MEM=${MEMORYSIZE} # MEM should be passed on to this makefile with the chosen memory size given # in number of MB $(LINKFILE): $(LDS) @echo "build $@" - @$(CC) -DMEMORYSIZE=$(MEM) $(DEFINES) -x c -E -P $< >$@ + @$(CC) -DMEMORYSIZE=$(MEMORYSIZE) $(DEFINES) -x c -E -P $< >$@ clean: @echo "cleaning plugins" - @-rm -f $(ROCKS) $(LINKFILE) $(OBJDIR)/*.rock + @rm -f $(ROCKS) $(LINKFILE) $(OBJDIR)/*.rock $(DEPFILE) $(ELFS) $(OBJS) @$(MAKE) -C lib clean diff --git a/apps/plugins/lib/Makefile b/apps/plugins/lib/Makefile index 45de4b32e9..8b2eccfb50 100644 --- a/apps/plugins/lib/Makefile +++ b/apps/plugins/lib/Makefile @@ -7,42 +7,18 @@ # $Id$ # -CC = sh-elf-gcc -LD = sh-elf-ld -AR = sh-elf-ar -AS = sh-elf-as -OC = sh-elf-objcopy - -FIRMWARE = ../../../firmware - -# Check if this is a kind of Recorder -ANYREC = $(findstring RECORDER, $(TARGET)) - -# Check if this is an Ondio model -ANYONDIO = $(findstring ONDIO, $(TARGET)) - # ../.. for the plugin.h in the apps dir # .. for stuff in the plugins dir # . for stuff in the pluginlib dir -INCLUDES=-I../.. -I.. -I. -I$(FIRMWARE)/include -I$(FIRMWARE)/export \ - -I$(FIRMWARE)/common -I$(FIRMWARE)/drivers +INCLUDES=-I$(APPSDIR) -I.. -I. -I$(FIRMDIR)/include -I$(FIRMDIR)/export \ + -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -ifeq ($(ANYREC), RECORDER) -INCLUDES += -I../../recorder +ifdef APPEXTRA +INCLUDES += -I$(APPSDIR)/$(APPEXTRA) endif -ifeq ($(ANYONDIO), ONDIO) -# use the recorder tree for now -INCLUDES += -I../../recorder -endif - CFLAGS = -W -Wall -O -m1 -nostdlib -ffreestanding -Wstrict-prototypes \ -$(INCLUDES) $(TARGET) $(EXTRA_DEFINES) -DMEM=${MEM} - -ifndef MEM - # if MEM is not set, assume 2MB - MEM=2 -endif +$(INCLUDES) $(TARGET) $(EXTRA_DEFINES) -DMEM=${MEMORYSIZE} ifdef DEBUG CFLAGS += -g -DDEBUG @@ -51,51 +27,25 @@ CFLAGS += -fomit-frame-pointer -fschedule-insns endif SRC := $(wildcard *.c) - +SOURCES = $(SRC) OBJS := $(SRC:%.c=$(OBJDIR)/%.o) -DEPS:=.deps -DEPDIRS:=$(DEPS) - -DIRS = $(subst $(DEPS),".",$(DEPDIRS)) +DEPFILE = $(OBJDIR)/dep-pluginlib +DIRS = . OUTPUT = $(OBJDIR)/libplugin.a -ifndef OBJDIR -no_configure: - @echo "Don't run make here. Run the tools/configure script from your own build" - @echo "directory, then run make there." - @echo - @echo "More help on how to build rockbox can be found here:" - @echo "http://rockbox.haxx.se/docs/how_to_compile.html" -endif - all: $(OUTPUT) - @echo "lib done" $(OUTPUT): $(OBJS) @echo "AR $@" - @$(AR) ruv $@ $+ >/dev/null - -$(OBJDIR)/%.o: %.c - @mkdir -p `dirname $@` - @echo "CC $<" - @$(CC) $(CFLAGS) -c $< -o $@ + @$(AR) ruv $@ $+ >/dev/null 2>&1 -tags: - @$(SHELL) -c 'for d in $(DIRS); do { etags -o $(OBJDIR)/TAGS -a $$d/*.[ch]; }; done' +include $(TOOLSDIR)/make.inc clean: @echo "cleaning lib" - @rm -f $(OBJS) $(OUTPUT) - @rm -rf $(OBJDIR)/$(DEPS) + @rm -f $(OBJS) $(OUTPUT) $(DEPFILE) -$(OBJDIR)/$(DEPS)/%.d: %.c - @$(SHELL) -c 'for d in $(DEPDIRS); do { if [ ! -d $(OBJDIR)/$$d ]; then mkdir $(OBJDIR)/$$d; fi; }; done' - @$(SHELL) -ec '$(CC) -MM $(CFLAGS) $< 2>/dev/null \ - |sed '\''s|\($*\)\.o[ :]*|$(OBJDIR)/\1.o $(<:%.c=%.d) : |g'\'' > $@; \ - [ -s $@ ] || rm -f $@' +-include $(DEPFILE) -ifdef OBJDIR - -include $(SRC:%.c=$(OBJDIR)/$(DEPS)/%.d) -endif |