summaryrefslogtreecommitdiff
path: root/apps/plugins/rockboy
diff options
context:
space:
mode:
authorBjörn Stenberg <bjorn@haxx.se>2008-11-20 11:27:31 +0000
committerBjörn Stenberg <bjorn@haxx.se>2008-11-20 11:27:31 +0000
commitc6b3d38a156dd624760a8eb1bb374affd43b4f2a (patch)
tree493eba929e2396d86cf4f077709aa09fe172cd35 /apps/plugins/rockboy
parentf66c30346783a400a029bedcd60ab67c81c34a07 (diff)
downloadrockbox-c6b3d38a156dd624760a8eb1bb374affd43b4f2a.tar.gz
rockbox-c6b3d38a156dd624760a8eb1bb374affd43b4f2a.zip
New makefile solution: A single invocation of 'make' to build the entire tree. Fully controlled dependencies give faster and more correct recompiles.
Many #include lines adjusted to conform to the new standards. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19146 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/rockboy')
-rw-r--r--apps/plugins/rockboy/Makefile119
-rw-r--r--apps/plugins/rockboy/SOURCES16
-rw-r--r--apps/plugins/rockboy/rockboy.make53
3 files changed, 69 insertions, 119 deletions
diff --git a/apps/plugins/rockboy/Makefile b/apps/plugins/rockboy/Makefile
deleted file mode 100644
index 4aa8526125..0000000000
--- a/apps/plugins/rockboy/Makefile
+++ /dev/null
@@ -1,119 +0,0 @@
1# __________ __ ___.
2# Open \______ \ ____ ____ | | _\_ |__ _______ ___
3# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
4# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
5# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
6# \/ \/ \/ \/ \/
7# $Id$
8#
9
10INCLUDES = -I$(APPSDIR) -I.. -I. $(TARGET_INC) -I$(FIRMDIR)/include -I$(FIRMDIR)/export \
11 -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(OUTDIR) -I$(BUILDDIR)
12CFLAGS = $(INCLUDES) $(GCCOPTS) -O2 $(TARGET) $(EXTRA_DEFINES) \
13 -DTARGET_ID=$(TARGET_ID) -DMEM=${MEMORYSIZE} -DPLUGIN -finline-functions
14
15ifdef APPEXTRA
16 INCLUDES += $(patsubst %,-I$(APPSDIR)/%,$(subst :, ,$(APPEXTRA)))
17endif
18
19LINKFILE := $(OBJDIR)/link.lds
20DEPFILE = $(OBJDIR)/dep-rockboy
21SRC = cpu.c emu.c events.c fastmem.c hw.c lcd.c lcdc.c loader.c \
22 mem.c menu.c rbsound.c rockboy.c rtc.c save.c sound.c sys_rockbox.c \
23 ../../../firmware/common/sscanf.c
24
25#CFLAGS += -DDYNAREC
26#SRC += dynarec.c
27
28SOURCES = $(SRC)
29OBJS := $(SRC:%.c=$(OBJDIR)/%.o)
30DIRS = .
31
32ifndef SIMVER
33ifneq (,$(findstring RECORDER,$(TARGET))) ## Archos recorder targets
34 LDS := archos.lds
35 OUTPUT = $(OUTDIR)/rockboy.ovl
36else ## iRiver target
37 LDS := ../plugin.lds
38 OUTPUT = $(OUTDIR)/rockboy.rock
39endif
40else ## simulators
41 OUTPUT = $(OUTDIR)/rockboy.rock
42endif
43
44all: $(OUTPUT)
45
46ifndef SIMVER
47$(OBJDIR)/rockboy.elf: $(OBJS) $(LINKFILE)
48 $(call PRINTS,LD $(@F))$(CC) $(CFLAGS) -o $@ $(OBJS) -L$(BUILDDIR) -lplugin -fast -lgcc \
49 -T$(LINKFILE) -Wl,--gc-sections -Wl,-Map,$(OBJDIR)/rockboy.map
50
51$(OUTPUT): $(OBJDIR)/rockboy.elf
52 $(call PRINTS,OBJCOPY $(@F))$(OC) -O binary $< $@
53else
54
55ifeq ($(SIMVER), x11)
56###################################################
57# This is the X11 simulator version
58
59$(OUTPUT): $(OBJS)
60 $(call PRINTS,LD $(@F))$(CC) $(CFLAGS) $(SHARED_FLAG) $(OBJS) -L$(BUILDDIR) -lplugin -o $@
61ifeq ($(findstring CYGWIN,$(UNAME)),CYGWIN)
62# 'x' must be kept or you'll have "Win32 error 5"
63# $ fgrep 5 /usr/include/w32api/winerror.h | head -1
64# #define ERROR_ACCESS_DENIED 5L
65else
66 @chmod -x $@
67endif
68
69else # end of x11-simulator
70ifeq ($(SIMVER), sdl)
71###################################################
72# This is the sdl simulator version
73
74$(OUTPUT): $(OBJS)
75 $(call PRINTS,LD $(@F))$(CC) $(CFLAGS) $(SHARED_FLAG) $(OBJS) -L$(BUILDDIR) -lplugin -o $@
76ifeq ($(findstring CYGWIN,$(UNAME)),CYGWIN)
77# 'x' must be kept or you'll have "Win32 error 5"
78# $ fgrep 5 /usr/include/w32api/winerror.h | head -1
79# #define ERROR_ACCESS_DENIED 5L
80else
81 @chmod -x $@
82endif
83
84else # end of sdl-simulator
85###################################################
86# This is the win32 simulator version
87DLLTOOLFLAGS = --export-all
88DLLWRAPFLAGS = -s --entry _DllMain@12 --target=i386-mingw32 -mno-cygwin
89
90$(OUTPUT): $(OBJS)
91 $(call PRINTS,DLL $(@F))$(DLLTOOL) $(DLLTOOLFLAGS) -z $(OBJDIR)/$*.def $(OBJS)
92 $(SILENT)$(DLLWRAP) $(DLLWRAPFLAGS) --def $(OBJDIR)/$*.def $(OBJS) \
93 $(BUILDDIR)/libplugin.a -o $@
94ifeq ($(findstring CYGWIN,$(UNAME)),CYGWIN)
95# 'x' must be kept or you'll have "Win32 error 5"
96# $ fgrep 5 /usr/include/w32api/winerror.h | head -1
97# #define ERROR_ACCESS_DENIED 5L
98else
99 @chmod -x $@
100endif
101endif # end of win32-simulator
102endif
103endif # end of simulator section
104
105
106include $(TOOLSDIR)/make.inc
107
108# MEMORYSIZE should be passed on to this makefile with the chosen memory size
109# given in number of MB
110$(LINKFILE): $(LDS)
111 $(call PRINTS,build $(@F))cat $< | $(CC) -DMEMORYSIZE=$(MEMORYSIZE) $(INCLUDES) $(TARGET) $(DEFINES) \
112 -E -P - >$@
113
114clean:
115 $(call PRINTS,cleaning rockboy)rm -rf $(OBJDIR)/rockboy
116 $(SILENT)rm -f $(OBJDIR)/rockboy.* $(DEPFILE)
117
118-include $(DEPFILE)
119
diff --git a/apps/plugins/rockboy/SOURCES b/apps/plugins/rockboy/SOURCES
new file mode 100644
index 0000000000..8806b58389
--- /dev/null
+++ b/apps/plugins/rockboy/SOURCES
@@ -0,0 +1,16 @@
1cpu.c
2emu.c
3events.c
4fastmem.c
5hw.c
6lcd.c
7lcdc.c
8loader.c
9mem.c
10menu.c
11rbsound.c
12rockboy.c
13rtc.c
14save.c
15sound.c
16sys_rockbox.c
diff --git a/apps/plugins/rockboy/rockboy.make b/apps/plugins/rockboy/rockboy.make
new file mode 100644
index 0000000000..62196cf0b7
--- /dev/null
+++ b/apps/plugins/rockboy/rockboy.make
@@ -0,0 +1,53 @@
1# __________ __ ___.
2# Open \______ \ ____ ____ | | _\_ |__ _______ ___
3# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
4# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
5# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
6# \/ \/ \/ \/ \/
7# $Id: Makefile 19082 2008-11-10 23:54:24Z zagor $
8#
9
10ROCKBOY_SRCDIR = $(APPSDIR)/plugins/rockboy
11ROCKBOY_OBJDIR = $(BUILDDIR)/apps/plugins/rockboy
12
13ROCKBOY_SRC := $(call preprocess, $(ROCKBOY_SRCDIR)/SOURCES)
14ROCKBOY_OBJ := $(call c2obj, $(ROCKBOY_SRC))
15ROCKBOY_OBJ += $(ROCKBOY_OBJDIR)/sscanf.o
16
17OTHER_SRC += $(ROCKBOY_SRC)
18
19ifndef SIMVER
20ifneq (,$(findstring RECORDER,$(TARGET)))
21 ## archos recorder targets
22 ROCKBOY_INLDS := $(ROCKBOY_SRCDIR)/archos.lds
23 ROCKS += $(ROCKBOY_OBJDIR)/rockboy.ovl
24else
25 ### all other targets
26 ROCKBOY_INLDS := $(APPSDIR)/plugins/plugin.lds
27 ROCKS += $(ROCKBOY_OBJDIR)/rockboy.rock
28endif
29 ROCKBOY_OVLFLAGS = -T$(ROCKBOY_OUTLDS) -Wl,--gc-sections -Wl,-Map,$(ROCKBOY_OBJDIR)/$*.map
30 ROCKBOY_OUTLDS = $(ROCKBOY_OBJDIR)/rockboy.lds
31else
32 ### simulator
33 ROCKS += $(ROCKBOY_OBJDIR)/rockboy.rock
34 ROCKBOY_OVLFLAGS = $(SHARED_FLAG) # <-- from Makefile
35endif
36
37$(ROCKBOY_OBJDIR)/sscanf.c: $(FIRMDIR)/common/sscanf.c
38 $(SILENT)mkdir -p $(dir $@)
39 $(call PRINTS,CP $<)cp $< $@
40
41$(ROCKBOY_OBJDIR)/sscanf.o: $(ROCKBOY_OBJDIR)/sscanf.c
42
43$(ROCKBOY_OUTLDS): $(ROCKBOY_INLDS) $(ROCKBOY_OBJ)
44 $(call PRINTS,PP $(<F))$(call preprocess2file,$<,$@)
45
46$(ROCKBOY_OBJDIR)/rockboy.rock: $(ROCKBOY_OBJ) $(ROCKBOY_OUTLDS) $(PLUGINBITMAPLIB)
47
48$(ROCKBOY_OBJDIR)/rockboy.ovl: $(ROCKBOY_OBJ) $(ROCKBOY_OUTLDS) $(PLUGINBITMAPLIB)
49 $(SILENT)$(CC) $(PLUGINFLAGS) -o $(ROCKBOY_OBJDIR)/$*.elf \
50 $(filter %.o, $^) \
51 $(filter %.a, $^) \
52 -lgcc $(ROCKBOY_OVLFLAGS)
53 $(call PRINTS,LD $(@F))$(OC) -O binary $(ROCKBOY_OBJDIR)/$*.elf $@