summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/FILES1
-rw-r--r--apps/lang/Makefile37
-rw-r--r--apps/lang/SOURCES35
-rw-r--r--apps/language.h11
-rwxr-xr-xtools/buildzip.pl35
-rwxr-xr-xtools/configure10
-rw-r--r--tools/make.inc3
-rw-r--r--tools/makesrc.inc4
8 files changed, 96 insertions, 40 deletions
diff --git a/apps/FILES b/apps/FILES
index 36e3924158..956b12a04c 100644
--- a/apps/FILES
+++ b/apps/FILES
@@ -41,6 +41,7 @@ codecs/Tremor/*
eqs/*.cfg
gui/*.[ch]
keymaps/*.[ch]
+lang/SOURCES
lang/*.lang
menus/*.[ch]
metadata/*.[ch]
diff --git a/apps/lang/Makefile b/apps/lang/Makefile
new file mode 100644
index 0000000000..31e839c1a1
--- /dev/null
+++ b/apps/lang/Makefile
@@ -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)
diff --git a/apps/lang/SOURCES b/apps/lang/SOURCES
new file mode 100644
index 0000000000..af546460a2
--- /dev/null
+++ b/apps/lang/SOURCES
@@ -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 */
diff --git a/apps/language.h b/apps/language.h
index d8f899b573..6787dbb96d 100644
--- a/apps/language.h
+++ b/apps/language.h
@@ -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
diff --git a/tools/buildzip.pl b/tools/buildzip.pl
index 4c21ae819f..4faa38ac54 100755
--- a/tools/buildzip.pl
+++ b/tools/buildzip.pl
@@ -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/`
}
diff --git a/tools/configure b/tools/configure
index 49773e1a6f..b46f175f6a 100755
--- a/tools/configure
+++ b/tools/configure
@@ -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
diff --git a/tools/make.inc b/tools/make.inc
index 8e125c834e..30d0779b2d 100644
--- a/tools/make.inc
+++ b/tools/make.inc
@@ -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:
diff --git a/tools/makesrc.inc b/tools/makesrc.inc
index 78d97f3283..846df8cb9e 100644
--- a/tools/makesrc.inc
+++ b/tools/makesrc.inc
@@ -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 "^\#")