2 # Open \______ \ ____ ____ | | _\_ |__ _______ ___
3 # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
4 # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
5 # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
10 IMGVSRCDIR
:= $(APPSDIR
)/plugins
/imageviewer
11 IMGVBUILDDIR
:= $(BUILDDIR
)/apps
/plugins
/imageviewer
13 ROCKS
+= $(IMGVBUILDDIR
)/imageviewer.rock
15 IMGV_SRC
:= $(call preprocess
, $(IMGVSRCDIR
)/SOURCES
)
16 IMGV_OBJ
:= $(call c2obj
, $(IMGV_SRC
))
18 # add source files to OTHER_SRC to get automatic dependencies
19 OTHER_SRC
+= $(IMGV_SRC
)
21 $(IMGVBUILDDIR
)/imageviewer.rock
: $(IMGV_OBJ
)
23 IMGDECFLAGS
= $(PLUGINFLAGS
) -DIMGDEC
25 # include decoder's make from each subdir
26 IMGVSUBDIRS
:= $(call preprocess
, $(IMGVSRCDIR
)/SUBDIRS
)
27 $(foreach dir,$(IMGVSUBDIRS
),$(eval
include $(dir)/$(notdir $(dir)).make
))
29 IMGDECLDFLAGS
= -T
$(PLUGINLINK_LDS
) -Wl
,--gc-sections
-Wl
,-Map
,$(IMGVBUILDDIR
)/$*.refmap
32 IMGDEC_OUTLDS
= $(IMGVBUILDDIR
)/%.link
33 IMGDEC_OVLFLAGS
= -T
$(IMGVBUILDDIR
)/$*.link
-Wl
,--gc-sections
-Wl
,-Map
,$(IMGVBUILDDIR
)/$*.map
35 IMGDEC_OVLFLAGS
= $(PLUGINLDFLAGS
) -Wl
,-Map
,$(IMGVBUILDDIR
)/$*.map
38 $(IMGVBUILDDIR
)/%.ovl
: $(IMGDEC_OUTLDS
)
39 $(call PRINTS
,LD
$(@F
))$(CC
) $(IMGDECFLAGS
) -o
$(IMGVBUILDDIR
)/$*.elf \
40 $(filter-out $(PLUGIN_CRT0
),$(filter %.o
, $^
)) \
42 -lgcc
$(IMGDEC_OVLFLAGS
)
43 $(SILENT
)$(call objcopy
,$(IMGVBUILDDIR
)/$*.elf
,$@
)
45 # rule to create reference map for image decoder
46 $(IMGVBUILDDIR
)/%.refmap
: $(APPSDIR
)/plugin.h
$(IMGVSRCDIR
)/imageviewer.h
$(PLUGINLINK_LDS
) $(PLUGIN_LIBS
)
47 $(call PRINTS
,LD
$(@F
))$(CC
) $(IMGDECFLAGS
) -o
/dev
/null \
50 -lgcc
$(IMGDECLDFLAGS
)
52 $(IMGVBUILDDIR
)/%.link
: $(PLUGIN_LDS
) $(IMGVBUILDDIR
)/%.refmap
53 $(call PRINTS
,PP
$(@F
))$(call preprocess2file
,$<,$@
,-DIMGVDECODER_OFFSET
=$(shell \
54 $(TOOLSDIR
)/ovl_offset.pl
$(IMGVBUILDDIR
)/$*.refmap
))