summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2004-09-22 08:58:50 +0000
committerDaniel Stenberg <daniel@haxx.se>2004-09-22 08:58:50 +0000
commitfc1e925c16c417f08453509926b1186baa0c6228 (patch)
treeb9ed06d3a23cca7aeb98573efac23f751c19665e /apps
parentceceba6d3b835e9e8abe9d3ba117f876a848a3df (diff)
Rearranged makefiles again to move platform-specific stuff from the Makefiles
to either the configure script or to be ifdefed in the sources. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5103 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/Makefile186
-rw-r--r--apps/plugins/Makefile51
-rw-r--r--apps/plugins/lib/Makefile74
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