From c6b3d38a156dd624760a8eb1bb374affd43b4f2a Mon Sep 17 00:00:00 2001 From: Björn Stenberg Date: Thu, 20 Nov 2008 11:27:31 +0000 Subject: 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 --- apps/plugins/doom/doom.make | 54 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 apps/plugins/doom/doom.make (limited to 'apps/plugins/doom/doom.make') 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 @@ +# __________ __ ___. +# 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 $@ -- cgit v1.2.3