summaryrefslogtreecommitdiff
path: root/apps/plugins/plugins.make
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2009-03-04 23:41:58 +0000
committerJens Arnold <amiconn@rockbox.org>2009-03-04 23:41:58 +0000
commitf82c9449121617386884b3047fba3e18a1c7bc76 (patch)
treed1f4280b040acaae6f311e1442e2f5a6a93e54a0 /apps/plugins/plugins.make
parent67c6f6048e3e7f81e337793f141c19a3d57c2c78 (diff)
downloadrockbox-f82c9449121617386884b3047fba3e18a1c7bc76.tar.gz
rockbox-f82c9449121617386884b3047fba3e18a1c7bc76.zip
Use a static pattern rule to restrict the dependency on [pluginname].o to single-file plugins. This allows the pattern rule for %.rock (with all dependencies defined elsewhere) to pick up multi-file plugins with no [pluginname].o file, and get rid of the duplication in (doom|midi|reversi).make.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20205 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/plugins.make')
-rw-r--r--apps/plugins/plugins.make14
1 files changed, 10 insertions, 4 deletions
diff --git a/apps/plugins/plugins.make b/apps/plugins/plugins.make
index f6b1b003a0..0d486c6fe3 100644
--- a/apps/plugins/plugins.make
+++ b/apps/plugins/plugins.make
@@ -10,8 +10,10 @@
10# single-file plugins: 10# single-file plugins:
11PLUGINS_SRC = $(call preprocess, $(APPSDIR)/plugins/SOURCES) 11PLUGINS_SRC = $(call preprocess, $(APPSDIR)/plugins/SOURCES)
12OTHER_SRC += $(PLUGINS_SRC) 12OTHER_SRC += $(PLUGINS_SRC)
13ROCKS := $(PLUGINS_SRC:.c=.rock) 13ROCKS1 := $(PLUGINS_SRC:.c=.rock)
14ROCKS := $(subst $(ROOTDIR),$(BUILDDIR),$(ROCKS)) 14ROCKS1 := $(subst $(ROOTDIR),$(BUILDDIR),$(ROCKS1))
15
16ROCKS := $(ROCKS1)
15 17
16# libplugin.a 18# libplugin.a
17PLUGINLIB := $(BUILDDIR)/apps/plugins/libplugin.a 19PLUGINLIB := $(BUILDDIR)/apps/plugins/libplugin.a
@@ -44,6 +46,10 @@ OTHER_INC += -I$(APPSDIR)/plugins -I$(APPSDIR)/plugins/lib
44# special compile flags for plugins: 46# special compile flags for plugins:
45PLUGINFLAGS = -I$(APPSDIR)/plugins -DPLUGIN $(CFLAGS) 47PLUGINFLAGS = -I$(APPSDIR)/plugins -DPLUGIN $(CFLAGS)
46 48
49# single-file plugins depend on their respective .o
50$(ROCKS1): $(BUILDDIR)/%.rock: $(BUILDDIR)/%.o
51
52# dependency for all plugins
47$(ROCKS): $(APPSDIR)/plugin.h $(PLUGINLINK_LDS) $(PLUGINLIB) $(PLUGINBITMAPLIB) 53$(ROCKS): $(APPSDIR)/plugin.h $(PLUGINLINK_LDS) $(PLUGINLIB) $(PLUGINBITMAPLIB)
48 54
49$(PLUGINLIB): $(PLUGINLIB_OBJ) 55$(PLUGINLIB): $(PLUGINLIB_OBJ)
@@ -83,7 +89,7 @@ else
83 OVERLAYLDFLAGS = -T$(OVERLAYREF_LDS) -Wl,--gc-sections -Wl,-Map,$*.refmap 89 OVERLAYLDFLAGS = -T$(OVERLAYREF_LDS) -Wl,--gc-sections -Wl,-Map,$*.refmap
84endif 90endif
85 91
86$(BUILDDIR)/%.rock: $(BUILDDIR)/%.o 92$(BUILDDIR)/%.rock:
87 $(call PRINTS,LD $(@F))$(CC) $(PLUGINFLAGS) -o $(BUILDDIR)/$*.elf \ 93 $(call PRINTS,LD $(@F))$(CC) $(PLUGINFLAGS) -o $(BUILDDIR)/$*.elf \
88 $(filter %.o, $^) \ 94 $(filter %.o, $^) \
89 $(filter %.a, $+) \ 95 $(filter %.a, $+) \
@@ -94,7 +100,7 @@ else
94 $(SILENT)$(OC) -O binary $(BUILDDIR)/$*.elf $@ 100 $(SILENT)$(OC) -O binary $(BUILDDIR)/$*.elf $@
95endif 101endif
96 102
97$(BUILDDIR)/%.refmap: $(BUILDDIR)/%.o $(APPSDIR)/plugin.h $(OVERLAYREF_LDS) $(PLUGINLIB) $(PLUGINBITMAPLIB) 103$(BUILDDIR)/%.refmap: $(APPSDIR)/plugin.h $(OVERLAYREF_LDS) $(PLUGINLIB) $(PLUGINBITMAPLIB)
98 $(call PRINTS,LD $(@F))$(CC) $(PLUGINFLAGS) -o /dev/null \ 104 $(call PRINTS,LD $(@F))$(CC) $(PLUGINFLAGS) -o /dev/null \
99 $(filter %.o, $^) \ 105 $(filter %.o, $^) \
100 $(filter %.a, $+) \ 106 $(filter %.a, $+) \