FS#8482:
Build system tweak that builds all languages first, to make the system able to use a buffer size that fits the larger language only. Parts of this work done by Jonas Haggqvist, but all the mistakes are my own! git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16337 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
8c81e789cc
commit
4a06c87e78
8 changed files with 96 additions and 40 deletions
|
@ -41,6 +41,7 @@ codecs/Tremor/*
|
|||
eqs/*.cfg
|
||||
gui/*.[ch]
|
||||
keymaps/*.[ch]
|
||||
lang/SOURCES
|
||||
lang/*.lang
|
||||
menus/*.[ch]
|
||||
metadata/*.[ch]
|
||||
|
|
37
apps/lang/Makefile
Normal file
37
apps/lang/Makefile
Normal file
|
@ -0,0 +1,37 @@
|
|||
# __________ __ ___.
|
||||
# Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
# \/ \/ \/ \/ \/
|
||||
# $Id: Makefile 15615 2007-11-14 10:31:57Z jethead71 $
|
||||
#
|
||||
|
||||
# the header we generate
|
||||
HEADER = $(BUILDDIR)/max_language_size.h
|
||||
|
||||
# This sets up 'SRC' based on the files mentioned in SOURCES
|
||||
include $(TOOLSDIR)/makesrc.inc
|
||||
SOURCES=$(SRC)
|
||||
|
||||
# OUTP is the list of files to depend upon
|
||||
OUTP = $(patsubst %.lang,$(OBJDIR)/%.lng, $(SOURCES))
|
||||
|
||||
# the generated file with features specified genlang-style
|
||||
FEATS=$(BUILDDIR)/apps/genlang-features
|
||||
|
||||
ifndef V
|
||||
SILENT=@
|
||||
endif
|
||||
PRINTS=$(SILENT)$(call info,$(1))
|
||||
|
||||
all: $(HEADER)
|
||||
|
||||
# generic rule for creating .lng from .lang
|
||||
$(OBJDIR)/%.lng : %.lang $(FEATS)
|
||||
$(call PRINTS,GENLANG $<)
|
||||
$(SILENT)$(TOOLSDIR)/genlang -e=$(APPSDIR)/lang/english.lang -t=$(ARCHOS)`cat $(FEATS)` -i=$(TARGET_ID) -b=$@ $<
|
||||
|
||||
$(HEADER): $(OUTP)
|
||||
$(call PRINTS,Make $(HEADER))
|
||||
echo "#define MAX_LANGUAGE_SIZE `du -b $(OBJDIR)/* |sort -n |tail -n 1 |cut -f 1`" > $(HEADER)
|
35
apps/lang/SOURCES
Normal file
35
apps/lang/SOURCES
Normal file
|
@ -0,0 +1,35 @@
|
|||
#ifdef HAVE_LCD_BITMAP /* Not for the Player */
|
||||
*.lang
|
||||
#else
|
||||
afrikaans.lang
|
||||
bulgarian.lang
|
||||
catala.lang
|
||||
czech.lang
|
||||
dansk.lang
|
||||
deutsch.lang
|
||||
eesti.lang
|
||||
english.lang
|
||||
espanol.lang
|
||||
esperanto.lang
|
||||
finnish.lang
|
||||
francais.lang
|
||||
galego.lang
|
||||
greek.lang
|
||||
hebrew.lang
|
||||
islenska.lang
|
||||
italiano.lang
|
||||
magyar.lang
|
||||
nederlands.lang
|
||||
norsk.lang
|
||||
norsk-nynorsk.lang
|
||||
polski.lang
|
||||
portugues-brasileiro.lang
|
||||
portugues.lang
|
||||
romaneste.lang
|
||||
russian.lang
|
||||
slovenscina.lang
|
||||
svenska.lang
|
||||
tagalog.lang
|
||||
turkce.lang
|
||||
wallisertitsch.lang
|
||||
#endif /* HAVE_LCD_BITMAP */
|
|
@ -1,3 +1,5 @@
|
|||
#ifndef __LANGUAGE_H
|
||||
#define __LANGUAGE_H
|
||||
/***************************************************************************
|
||||
* __________ __ ___.
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
|
@ -7,7 +9,7 @@
|
|||
* \/ \/ \/ \/ \/
|
||||
* $Id$
|
||||
*
|
||||
* Copyright (C) 2002 Daniel Stenberg
|
||||
* Copyright (C) 2002, 2008 Daniel Stenberg
|
||||
*
|
||||
* All files in this archive are subject to the GNU General Public License.
|
||||
* See the file COPYING in the source tree root for full license agreement.
|
||||
|
@ -17,6 +19,11 @@
|
|||
*
|
||||
****************************************************************************/
|
||||
|
||||
/* The following header is generated by the build system and only defines
|
||||
MAX_LANGUAGE_SIZE to be the size of the largest currently available
|
||||
language! */
|
||||
//#include "max_language_size.h"
|
||||
|
||||
/* size of the buffer used for loadable, translated strings */
|
||||
#define MAX_LANGUAGE_SIZE 23500
|
||||
|
||||
|
@ -29,3 +36,5 @@ void lang_init(void);
|
|||
|
||||
/* load a given language file */
|
||||
int lang_load(const char *filename);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -154,30 +154,6 @@ sub filesize {
|
|||
return $size;
|
||||
}
|
||||
|
||||
sub buildlangs {
|
||||
my ($outputlang)=@_;
|
||||
my $dir = "$ROOT/apps/lang";
|
||||
opendir(DIR, $dir);
|
||||
my @files = grep { /\.lang$/ } readdir(DIR);
|
||||
closedir(DIR);
|
||||
|
||||
# Exclude some bad languages (uncomment and adjust in case of release
|
||||
# and/or End Times)
|
||||
# @files = grep(!/(afrikaans|hindi|slovenscina|turkce)\.lang/, @files);
|
||||
|
||||
# Exclude more languages on the player which won't work on charcell display
|
||||
if ($archos =~ /^"?player:/ ) {
|
||||
@files = grep(!/(chinese-simp|chinese-trad|hindi|japanese|korean|thai)\.lang/, @files);
|
||||
}
|
||||
|
||||
for(@files) {
|
||||
my $output = $_;
|
||||
$output =~ s/(.*)\.lang/$1.lng/;
|
||||
print "$ROOT/tools/genlang -e=$dir/english.lang -t=$archos -i=$target_id -b=$outputlang/$output $dir/$_\n" if($verbose);
|
||||
system ("$ROOT/tools/genlang -e=$dir/english.lang -t=$archos -i=$target_id -b=$outputlang/$output $dir/$_ >/dev/null 2>&1");
|
||||
}
|
||||
}
|
||||
|
||||
sub buildzip {
|
||||
my ($zip, $image, $fonts)=@_;
|
||||
|
||||
|
@ -413,15 +389,8 @@ STOP
|
|||
# and the info file
|
||||
system("cp rockbox-info.txt .rockbox/");
|
||||
|
||||
# now copy the file made for reading on the unit:
|
||||
#if($notplayer) {
|
||||
# `cp $webroot/docs/Help-JBR.txt .rockbox/docs/`;
|
||||
#}
|
||||
#else {
|
||||
# `cp $webroot/docs/Help-Stu.txt .rockbox/docs/`;
|
||||
#}
|
||||
|
||||
buildlangs(".rockbox/langs");
|
||||
# copy the already built lng files
|
||||
`cp apps/lang/*lng .rockbox/langs/`
|
||||
|
||||
}
|
||||
|
||||
|
|
10
tools/configure
vendored
10
tools/configure
vendored
|
@ -1919,14 +1919,14 @@ export ENCODER=@ENCODER@
|
|||
# Do not print "Entering directory ..."
|
||||
MAKEFLAGS += --no-print-directory
|
||||
|
||||
.PHONY: all clean tags zip tools manual bin build info
|
||||
.PHONY: all clean tags zip tools manual bin build info langs
|
||||
|
||||
all: info
|
||||
|
||||
info: build
|
||||
\$(SILENT)\$(TOOLSDIR)/mkinfo.pl \$(BUILDDIR)/rockbox-info.txt
|
||||
|
||||
build: tools
|
||||
build: tools langs
|
||||
@SIMUL1@
|
||||
@SIMUL2@
|
||||
\$(SILENT)\$(MAKE) -C \$(FIRMDIR) OBJDIR=\$(BUILDDIR)/firmware
|
||||
|
@ -1952,7 +1952,7 @@ clean:
|
|||
manual *.pdf *.a credits.raw @OUTPUT@ bitmaps pluginbitmaps \
|
||||
@ARCHOSROM@ @FLASHFILE@ UI256.bmp rockbox-full.zip \
|
||||
html txt rockbox-manual*.zip sysfont.h rockbox-info.txt \
|
||||
voicefontids *.wav *.mp3 *.voice
|
||||
voicefontids *.wav *.mp3 *.voice max_language_size.h
|
||||
|
||||
tools:
|
||||
\$(SILENT)\$(MAKE) -C \$(TOOLSDIR) CC=\$(HOSTCC) AR=\$(HOSTAR) @TOOLSET@
|
||||
|
@ -1996,6 +1996,10 @@ bzip2: tar
|
|||
gzip: tar
|
||||
\$(SILENT)gzip -f9 rockbox.tar
|
||||
|
||||
langs: features
|
||||
\$(SILENT)mkdir -p \$(BUILDDIR)/apps/lang
|
||||
\$(SILENT)\$(MAKE) -C \$(APPSDIR)/lang OBJDIR=\$(BUILDDIR)/apps/lang
|
||||
|
||||
manual: manual-pdf
|
||||
manual-pdf:
|
||||
\$(SILENT)\$(MAKE) -C \$(MANUALDIR) OBJDIR=\$(BUILDDIR)/manual manual-pdf
|
||||
|
|
|
@ -40,7 +40,8 @@ $(DEPFILE): $(SOURCES)
|
|||
rm $$del; \
|
||||
del=""; \
|
||||
fi \
|
||||
done | sed -e "s:[^[:space:]]*lang.h:$(OBJDIR)/lang.o:" > $(DEPFILE); \
|
||||
done | sed -e "s:[^[:space:]]*lang.h:$(OBJDIR)/lang.o:" \
|
||||
-e "s:[^[:space:]]*sysfont.h:$(BUILDDIR)/sysfont.h:" > $(DEPFILE); \
|
||||
echo "oo" > /dev/null )
|
||||
|
||||
tags:
|
||||
|
|
|
@ -10,5 +10,5 @@
|
|||
# to make this do right when used on Mac OS X.
|
||||
|
||||
SRC := $(shell cat SOURCES | $(CC) -DMEMORYSIZE=$(MEMORYSIZE) $(INCLUDES) \
|
||||
$(TARGET) $(DEFINES) $(EXTRA_DEFINES) -E -P -include "config.h" - | \
|
||||
grep -v "^\#")
|
||||
$(TARGET) $(DEFINES) $(EXTRA_DEFINES) -E -P -include "config.h" - 2>/dev/null \
|
||||
| grep -v "^\#")
|
||||
|
|
Loading…
Reference in a new issue