From e5b1a7d4237a9006b6c49c9c1c13b292ca4ecf7c Mon Sep 17 00:00:00 2001 From: Teruaki Kawashima Date: Sun, 21 Nov 2010 13:47:56 +0000 Subject: FS#6321: Universal Image Viewer This unifies jpeg viewer, png viewer, and bmp viewer to one plugin, image viewer, so that you can navigate through different image formats. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28626 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/imageviewer/imageviewer.make | 45 ++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) (limited to 'apps/plugins/imageviewer/imageviewer.make') diff --git a/apps/plugins/imageviewer/imageviewer.make b/apps/plugins/imageviewer/imageviewer.make index 76af8d24e5..d06bbfd571 100644 --- a/apps/plugins/imageviewer/imageviewer.make +++ b/apps/plugins/imageviewer/imageviewer.make @@ -10,7 +10,50 @@ IMGVSRCDIR := $(APPSDIR)/plugins/imageviewer IMGVBUILDDIR := $(BUILDDIR)/apps/plugins/imageviewer -# include actual viewer's make file +ROCKS += $(IMGVBUILDDIR)/imageviewer.rock + +IMGV_SRC := $(call preprocess, $(IMGVSRCDIR)/SOURCES) +IMGV_OBJ := $(call c2obj, $(IMGV_SRC)) + +# add source files to OTHER_SRC to get automatic dependencies +OTHER_SRC += $(IMGV_SRC) + +$(IMGVBUILDDIR)/imageviewer.rock: $(IMGV_OBJ) + +IMGDECFLAGS = $(PLUGINFLAGS) -DIMGDEC + +# include decoder's make from each subdir IMGVSUBDIRS := $(call preprocess, $(IMGVSRCDIR)/SUBDIRS) $(foreach dir,$(IMGVSUBDIRS),$(eval include $(dir)/$(notdir $(dir)).make)) +IMGDECLDFLAGS = -T$(PLUGINLINK_LDS) -Wl,--gc-sections -Wl,-Map,$(IMGVBUILDDIR)/$*.refmap + +ifndef APP_TYPE + IMGDEC_OUTLDS = $(IMGVBUILDDIR)/%.link + IMGDEC_OVLFLAGS = -T$(IMGVBUILDDIR)/$*.link -Wl,--gc-sections -Wl,-Map,$(IMGVBUILDDIR)/$*.map +else + IMGDEC_OVLFLAGS = $(PLUGINLDFLAGS) +endif + +$(IMGVBUILDDIR)/%.ovl: $(IMGDEC_OUTLDS) + $(call PRINTS,LD $(@F))$(CC) $(IMGDECFLAGS) -o $(IMGVBUILDDIR)/$*.elf \ + $(filter-out $(PLUGIN_CRT0),$(filter %.o, $^)) \ + $(filter %.a, $+) \ + -lgcc $(IMGDEC_OVLFLAGS) +ifdef APP_TYPE + $(SILENT)cp $(IMGVBUILDDIR)/$*.elf $@ +else + $(SILENT)$(OC) -O binary $(IMGVBUILDDIR)/$*.elf $@ +endif + +# rule to create reference map for image decoder +$(IMGVBUILDDIR)/%.refmap: $(APPSDIR)/plugin.h $(IMGVSRCDIR)/imageviewer.h $(PLUGINLINK_LDS) $(PLUGINLIB) $(PLUGINBITMAPLIB) + $(call PRINTS,LD $(@F))$(CC) $(IMGDECFLAGS) -o /dev/null \ + $(filter %.o, $^) \ + $(filter %.a, $+) \ + -lgcc $(IMGDECLDFLAGS) + +$(IMGVBUILDDIR)/%.link: $(PLUGIN_LDS) $(IMGVBUILDDIR)/%.refmap + $(call PRINTS,PP $(@F))$(call preprocess2file,$<,$@,-DIMGVDECODER_OFFSET=$(shell \ + $(TOOLSDIR)/ovl_offset.pl $(IMGVBUILDDIR)/$*.refmap)) + -- cgit v1.2.3