mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-10-13 18:17:39 -04:00
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
|
eqs/*.cfg
|
||||||
gui/*.[ch]
|
gui/*.[ch]
|
||||||
keymaps/*.[ch]
|
keymaps/*.[ch]
|
||||||
|
lang/SOURCES
|
||||||
lang/*.lang
|
lang/*.lang
|
||||||
menus/*.[ch]
|
menus/*.[ch]
|
||||||
metadata/*.[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 \______ \ ____ ____ | | _\_ |__ _______ ___
|
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||||
|
@ -7,7 +9,7 @@
|
||||||
* \/ \/ \/ \/ \/
|
* \/ \/ \/ \/ \/
|
||||||
* $Id$
|
* $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.
|
* 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.
|
* 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 */
|
/* size of the buffer used for loadable, translated strings */
|
||||||
#define MAX_LANGUAGE_SIZE 23500
|
#define MAX_LANGUAGE_SIZE 23500
|
||||||
|
|
||||||
|
@ -29,3 +36,5 @@ void lang_init(void);
|
||||||
|
|
||||||
/* load a given language file */
|
/* load a given language file */
|
||||||
int lang_load(const char *filename);
|
int lang_load(const char *filename);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -154,30 +154,6 @@ sub filesize {
|
||||||
return $size;
|
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 {
|
sub buildzip {
|
||||||
my ($zip, $image, $fonts)=@_;
|
my ($zip, $image, $fonts)=@_;
|
||||||
|
|
||||||
|
@ -413,15 +389,8 @@ STOP
|
||||||
# and the info file
|
# and the info file
|
||||||
system("cp rockbox-info.txt .rockbox/");
|
system("cp rockbox-info.txt .rockbox/");
|
||||||
|
|
||||||
# now copy the file made for reading on the unit:
|
# copy the already built lng files
|
||||||
#if($notplayer) {
|
`cp apps/lang/*lng .rockbox/langs/`
|
||||||
# `cp $webroot/docs/Help-JBR.txt .rockbox/docs/`;
|
|
||||||
#}
|
|
||||||
#else {
|
|
||||||
# `cp $webroot/docs/Help-Stu.txt .rockbox/docs/`;
|
|
||||||
#}
|
|
||||||
|
|
||||||
buildlangs(".rockbox/langs");
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
10
tools/configure
vendored
10
tools/configure
vendored
|
@ -1919,14 +1919,14 @@ export ENCODER=@ENCODER@
|
||||||
# Do not print "Entering directory ..."
|
# Do not print "Entering directory ..."
|
||||||
MAKEFLAGS += --no-print-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
|
all: info
|
||||||
|
|
||||||
info: build
|
info: build
|
||||||
\$(SILENT)\$(TOOLSDIR)/mkinfo.pl \$(BUILDDIR)/rockbox-info.txt
|
\$(SILENT)\$(TOOLSDIR)/mkinfo.pl \$(BUILDDIR)/rockbox-info.txt
|
||||||
|
|
||||||
build: tools
|
build: tools langs
|
||||||
@SIMUL1@
|
@SIMUL1@
|
||||||
@SIMUL2@
|
@SIMUL2@
|
||||||
\$(SILENT)\$(MAKE) -C \$(FIRMDIR) OBJDIR=\$(BUILDDIR)/firmware
|
\$(SILENT)\$(MAKE) -C \$(FIRMDIR) OBJDIR=\$(BUILDDIR)/firmware
|
||||||
|
@ -1952,7 +1952,7 @@ clean:
|
||||||
manual *.pdf *.a credits.raw @OUTPUT@ bitmaps pluginbitmaps \
|
manual *.pdf *.a credits.raw @OUTPUT@ bitmaps pluginbitmaps \
|
||||||
@ARCHOSROM@ @FLASHFILE@ UI256.bmp rockbox-full.zip \
|
@ARCHOSROM@ @FLASHFILE@ UI256.bmp rockbox-full.zip \
|
||||||
html txt rockbox-manual*.zip sysfont.h rockbox-info.txt \
|
html txt rockbox-manual*.zip sysfont.h rockbox-info.txt \
|
||||||
voicefontids *.wav *.mp3 *.voice
|
voicefontids *.wav *.mp3 *.voice max_language_size.h
|
||||||
|
|
||||||
tools:
|
tools:
|
||||||
\$(SILENT)\$(MAKE) -C \$(TOOLSDIR) CC=\$(HOSTCC) AR=\$(HOSTAR) @TOOLSET@
|
\$(SILENT)\$(MAKE) -C \$(TOOLSDIR) CC=\$(HOSTCC) AR=\$(HOSTAR) @TOOLSET@
|
||||||
|
@ -1996,6 +1996,10 @@ bzip2: tar
|
||||||
gzip: tar
|
gzip: tar
|
||||||
\$(SILENT)gzip -f9 rockbox.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: manual-pdf
|
||||||
manual-pdf:
|
manual-pdf:
|
||||||
\$(SILENT)\$(MAKE) -C \$(MANUALDIR) OBJDIR=\$(BUILDDIR)/manual manual-pdf
|
\$(SILENT)\$(MAKE) -C \$(MANUALDIR) OBJDIR=\$(BUILDDIR)/manual manual-pdf
|
||||||
|
|
|
@ -40,7 +40,8 @@ $(DEPFILE): $(SOURCES)
|
||||||
rm $$del; \
|
rm $$del; \
|
||||||
del=""; \
|
del=""; \
|
||||||
fi \
|
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 )
|
echo "oo" > /dev/null )
|
||||||
|
|
||||||
tags:
|
tags:
|
||||||
|
|
|
@ -10,5 +10,5 @@
|
||||||
# to make this do right when used on Mac OS X.
|
# to make this do right when used on Mac OS X.
|
||||||
|
|
||||||
SRC := $(shell cat SOURCES | $(CC) -DMEMORYSIZE=$(MEMORYSIZE) $(INCLUDES) \
|
SRC := $(shell cat SOURCES | $(CC) -DMEMORYSIZE=$(MEMORYSIZE) $(INCLUDES) \
|
||||||
$(TARGET) $(DEFINES) $(EXTRA_DEFINES) -E -P -include "config.h" - | \
|
$(TARGET) $(DEFINES) $(EXTRA_DEFINES) -E -P -include "config.h" - 2>/dev/null \
|
||||||
grep -v "^\#")
|
| grep -v "^\#")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue