summaryrefslogtreecommitdiff
path: root/apps/plugins/imageviewer/imageviewer.make
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/imageviewer/imageviewer.make')
-rw-r--r--apps/plugins/imageviewer/imageviewer.make45
1 files changed, 44 insertions, 1 deletions
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 @@
10IMGVSRCDIR := $(APPSDIR)/plugins/imageviewer 10IMGVSRCDIR := $(APPSDIR)/plugins/imageviewer
11IMGVBUILDDIR := $(BUILDDIR)/apps/plugins/imageviewer 11IMGVBUILDDIR := $(BUILDDIR)/apps/plugins/imageviewer
12 12
13# include actual viewer's make file 13ROCKS += $(IMGVBUILDDIR)/imageviewer.rock
14
15IMGV_SRC := $(call preprocess, $(IMGVSRCDIR)/SOURCES)
16IMGV_OBJ := $(call c2obj, $(IMGV_SRC))
17
18# add source files to OTHER_SRC to get automatic dependencies
19OTHER_SRC += $(IMGV_SRC)
20
21$(IMGVBUILDDIR)/imageviewer.rock: $(IMGV_OBJ)
22
23IMGDECFLAGS = $(PLUGINFLAGS) -DIMGDEC
24
25# include decoder's make from each subdir
14IMGVSUBDIRS := $(call preprocess, $(IMGVSRCDIR)/SUBDIRS) 26IMGVSUBDIRS := $(call preprocess, $(IMGVSRCDIR)/SUBDIRS)
15$(foreach dir,$(IMGVSUBDIRS),$(eval include $(dir)/$(notdir $(dir)).make)) 27$(foreach dir,$(IMGVSUBDIRS),$(eval include $(dir)/$(notdir $(dir)).make))
16 28
29IMGDECLDFLAGS = -T$(PLUGINLINK_LDS) -Wl,--gc-sections -Wl,-Map,$(IMGVBUILDDIR)/$*.refmap
30
31ifndef APP_TYPE
32 IMGDEC_OUTLDS = $(IMGVBUILDDIR)/%.link
33 IMGDEC_OVLFLAGS = -T$(IMGVBUILDDIR)/$*.link -Wl,--gc-sections -Wl,-Map,$(IMGVBUILDDIR)/$*.map
34else
35 IMGDEC_OVLFLAGS = $(PLUGINLDFLAGS)
36endif
37
38$(IMGVBUILDDIR)/%.ovl: $(IMGDEC_OUTLDS)
39 $(call PRINTS,LD $(@F))$(CC) $(IMGDECFLAGS) -o $(IMGVBUILDDIR)/$*.elf \
40 $(filter-out $(PLUGIN_CRT0),$(filter %.o, $^)) \
41 $(filter %.a, $+) \
42 -lgcc $(IMGDEC_OVLFLAGS)
43ifdef APP_TYPE
44 $(SILENT)cp $(IMGVBUILDDIR)/$*.elf $@
45else
46 $(SILENT)$(OC) -O binary $(IMGVBUILDDIR)/$*.elf $@
47endif
48
49# rule to create reference map for image decoder
50$(IMGVBUILDDIR)/%.refmap: $(APPSDIR)/plugin.h $(IMGVSRCDIR)/imageviewer.h $(PLUGINLINK_LDS) $(PLUGINLIB) $(PLUGINBITMAPLIB)
51 $(call PRINTS,LD $(@F))$(CC) $(IMGDECFLAGS) -o /dev/null \
52 $(filter %.o, $^) \
53 $(filter %.a, $+) \
54 -lgcc $(IMGDECLDFLAGS)
55
56$(IMGVBUILDDIR)/%.link: $(PLUGIN_LDS) $(IMGVBUILDDIR)/%.refmap
57 $(call PRINTS,PP $(@F))$(call preprocess2file,$<,$@,-DIMGVDECODER_OFFSET=$(shell \
58 $(TOOLSDIR)/ovl_offset.pl $(IMGVBUILDDIR)/$*.refmap))
59