summaryrefslogtreecommitdiff
path: root/apps/plugins/doom/doom.make
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/doom/doom.make
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/doom/doom.make')
-rw-r--r--apps/plugins/doom/doom.make54
1 files changed, 54 insertions, 0 deletions
diff --git a/apps/plugins/doom/doom.make b/apps/plugins/doom/doom.make
new file mode 100644
index 0000000000..d566f5307b
--- /dev/null
+++ b/apps/plugins/doom/doom.make
@@ -0,0 +1,54 @@
1# __________ __ ___.
2# Open \______ \ ____ ____ | | _\_ |__ _______ ___
3# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
4# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
5# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
6# \/ \/ \/ \/ \/
7# $Id: Makefile 19082 2008-11-10 23:54:24Z zagor $
8#
9
10DOOMSRCDIR := $(APPSDIR)/plugins/doom
11DOOMBUILDDIR := $(BUILDDIR)/apps/plugins/doom
12
13ROCKS += $(DOOMBUILDDIR)/doom.rock
14
15DOOM_SRC := $(call preprocess, $(DOOMSRCDIR)/SOURCES)
16DOOM_OBJ := $(call c2obj, $(DOOM_SRC))
17DOOM_OBJ += $(DOOMBUILDDIR)/sscanf.o
18
19# add source files to OTHER_SRC to get automatic dependencies
20OTHER_SRC += $(DOOM_SRC)
21
22DOOMCFLAGS = $(PLUGINFLAGS) -Wno-strict-prototypes
23
24# The arm code compiles too large for the plugin buffer when set to optimize for speed
25ifeq ($(CPU), arm)
26 DOOMCFLAGS += -Os
27ifndef SIMVER
28ifeq ($(TARGET), IRIVER_H100)
29 DOOMCCFLAGS += -mstructure-size-boundary=8
30endif
31endif
32else
33 DOOMCFLAGS += -O2
34endif
35
36$(DOOMBUILDDIR)/sscanf.c: $(FIRMDIR)/common/sscanf.c
37 $(SILENT)mkdir -p $(dir $@)
38 $(call PRINTS,CP $<)cp $< $@
39
40$(DOOMBUILDDIR)/sscanf.o: $(DOOMBUILDDIR)/sscanf.c
41
42$(DOOMBUILDDIR)/doom.rock: $(DOOM_OBJ)
43# for some reason, this doesn't match the implicit rule in plugins.make,
44# so we have to duplicate the link command here
45 $(SILENT)$(CC) $(PLUGINFLAGS) -o $*.elf \
46 $(filter %.o, $^) \
47 $(filter %.a, $^) \
48 -lgcc $(PLUGINLDFLAGS)
49 $(call PRINTS,LD $(@F))$(OC) -O binary $*.elf $@
50
51# new rule needed to use extra compile flags
52$(DOOMBUILDDIR)/%.o: $(DOOMSRCDIR)/%.c $(DOOMSRCDIR)/doom.make
53 $(SILENT)mkdir -p $(dir $@)
54 $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(DOOMCFLAGS) -c $< -o $@