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.zip
rockbox-c6b3d38a156dd624760a8eb1bb374affd43b4f2a.tar.gz
rockbox-c6b3d38a156dd624760a8eb1bb374affd43b4f2a.tar.bz2
rockbox-c6b3d38a156dd624760a8eb1bb374affd43b4f2a.tar.xz
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 0000000..d566f53
--- /dev/null
+++ b/apps/plugins/doom/doom.make
@@ -0,0 +1,54 @@
+# __________ __ ___.
+# Open \______ \ ____ ____ | | _\_ |__ _______ ___
+# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+# \/ \/ \/ \/ \/
+# $Id: Makefile 19082 2008-11-10 23:54:24Z zagor $
+#
+
+DOOMSRCDIR := $(APPSDIR)/plugins/doom
+DOOMBUILDDIR := $(BUILDDIR)/apps/plugins/doom
+
+ROCKS += $(DOOMBUILDDIR)/doom.rock
+
+DOOM_SRC := $(call preprocess, $(DOOMSRCDIR)/SOURCES)
+DOOM_OBJ := $(call c2obj, $(DOOM_SRC))
+DOOM_OBJ += $(DOOMBUILDDIR)/sscanf.o
+
+# add source files to OTHER_SRC to get automatic dependencies
+OTHER_SRC += $(DOOM_SRC)
+
+DOOMCFLAGS = $(PLUGINFLAGS) -Wno-strict-prototypes
+
+# The arm code compiles too large for the plugin buffer when set to optimize for speed
+ifeq ($(CPU), arm)
+ DOOMCFLAGS += -Os
+ifndef SIMVER
+ifeq ($(TARGET), IRIVER_H100)
+ DOOMCCFLAGS += -mstructure-size-boundary=8
+endif
+endif
+else
+ DOOMCFLAGS += -O2
+endif
+
+$(DOOMBUILDDIR)/sscanf.c: $(FIRMDIR)/common/sscanf.c
+ $(SILENT)mkdir -p $(dir $@)
+ $(call PRINTS,CP $<)cp $< $@
+
+$(DOOMBUILDDIR)/sscanf.o: $(DOOMBUILDDIR)/sscanf.c
+
+$(DOOMBUILDDIR)/doom.rock: $(DOOM_OBJ)
+# for some reason, this doesn't match the implicit rule in plugins.make,
+# so we have to duplicate the link command here
+ $(SILENT)$(CC) $(PLUGINFLAGS) -o $*.elf \
+ $(filter %.o, $^) \
+ $(filter %.a, $^) \
+ -lgcc $(PLUGINLDFLAGS)
+ $(call PRINTS,LD $(@F))$(OC) -O binary $*.elf $@
+
+# new rule needed to use extra compile flags
+$(DOOMBUILDDIR)/%.o: $(DOOMSRCDIR)/%.c $(DOOMSRCDIR)/doom.make
+ $(SILENT)mkdir -p $(dir $@)
+ $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(DOOMCFLAGS) -c $< -o $@