path: root/apps/lang/lang.make
diff options
authorDominik Riebeling <>2012-05-19 17:14:35 +0200
committerDominik Riebeling <>2012-06-09 22:44:56 +0200
commitd6ef5a0d8057bd6a0f9925d1002cc1a3207ff3b7 (patch)
tree4a87f6b59b203d54d931e4351d851fa00b540ae2 /apps/lang/lang.make
parent1e2c6506fbf503bace8356f90cd54a5b01a32f88 (diff)
Create binary voice string archive on target.
Extend genlang to create files holding the voice strings in a binary format similar to lng. Create such files for all languages during a normal build, put them in a zip file and add them to so they are installed with a main build. Creating a voice file requires access to the voice strings, which are currently not distributed with Rockbox. Therefore it is necessary to either have access to the source code of the installed build or to use a build the genlang service on can retrieve the strings for, making it impossible for normal users to generate a voice file for custom builds, test builds and older builds that aren't supported by the script. It also requires a network connection when creating voice files with Rockbox Utility even if creating a voice file by itself isn't network related. Furthermore, putting the voice strings on the target is also a prerequisite for eventually supporting a TTS on the player. Strip voice strings path. Change-Id: Ic2f86130909b3b257986a348e5cfcf618c4500c3
Diffstat (limited to 'apps/lang/lang.make')
1 files changed, 8 insertions, 3 deletions
diff --git a/apps/lang/lang.make b/apps/lang/lang.make
index d0dac71e95..a1351cee67 100644
--- a/apps/lang/lang.make
+++ b/apps/lang/lang.make
@@ -9,6 +9,7 @@
LANGS := $(call preprocess, $(APPSDIR)/lang/SOURCES)
LANGOBJ := $(LANGS:$(ROOTDIR)/%.lang=$(BUILDDIR)/%.lng)
+VOICEOBJ := $(LANGS:$(ROOTDIR)/%.lang=$(BUILDDIR)/%.vstrings)
LANG_O = $(BUILDDIR)/lang/lang_core.o
CLEANOBJS += $(BUILDDIR)/lang/max_language_size.h $(BUILDDIR)/lang/lang*
@@ -23,7 +24,7 @@ CLEANOBJS += $(BUILDDIR)/lang/max_language_size.h $(BUILDDIR)/lang/lang*
# TODO: In the future generate this file within genlang or another script
# in order to only calculate the maximum size based on the core strings.
-$(BUILDDIR)/lang/max_language_size.h: $(LANGOBJ)
+$(BUILDDIR)/lang/max_language_size.h: $(LANGOBJ) $(BUILDDIR)/apps/lang/
$(call PRINTS,GEN $(subst $(BUILDDIR)/,,$@))
$(SILENT)echo "#define MAX_LANGUAGE_SIZE `ls -ln $(BUILDDIR)/apps/lang/* | awk '{print $$5-10}' | sort -n | tail -1`" > $@
@@ -34,7 +35,11 @@ $(BUILDDIR)/lang/lang_core.o: $(APPSDIR)/lang/$(LANGUAGE).lang $(BUILDDIR)/apps/
$(BUILDDIR)/lang/lang.h: $(BUILDDIR)/lang/lang_core.o
-$(BUILDDIR)/%.lng : $(ROOTDIR)/%.lang $(BUILDDIR)/apps/genlang-features
+$(BUILDDIR)/%.lng $(BUILDDIR)/%.vstrings: $(ROOTDIR)/%.lang $(BUILDDIR)/apps/genlang-features
$(call PRINTS,GENLANG $(subst $(ROOTDIR)/,,$<))
$(SILENT)mkdir -p $(dir $@)
- $(SILENT)$(TOOLSDIR)/genlang -e=$(APPSDIR)/lang/english.lang -t=$(MODELNAME):`cat $(BUILDDIR)/apps/genlang-features` -i=$(TARGET_ID) -b=$@ $<
+ $(SILENT)$(TOOLSDIR)/genlang -e=$(APPSDIR)/lang/english.lang -t=$(MODELNAME):`cat $(BUILDDIR)/apps/genlang-features` -i=$(TARGET_ID) -b=$*.lng -c=$*.vstrings $<
+$(BUILDDIR)/apps/lang/ $(VOICEOBJ)
+ $(call PRINTS,ZIP $(subst $(BUILDDIR)/,,$@))
+ $(SILENT)zip -9 -q $@ $(subst $(BUILDDIR)/,,$^)