Fix version handling for patchers.
[maemo-rb.git] / tools / configure
blob442b23899b30ce4af51a6fb149b9c704f802da08
1 #!/bin/sh
2 # __________ __ ___.
3 # Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 # \/ \/ \/ \/ \/
10 # global CC options for all platforms
11 CCOPTS="-W -Wall -Wundef -O -nostdlib -ffreestanding -Wstrict-prototypes -pipe -std=gnu99"
13 # LD options for the core
14 LDOPTS=""
15 # LD options for the core + plugins
16 GLOBAL_LDOPTS=""
18 extradefines=""
19 use_logf="#undef ROCKBOX_HAS_LOGF"
20 use_bootchart="#undef DO_BOOTCHART"
21 use_logf_serial="#undef LOGF_SERIAL"
23 scriptver=`echo '$Revision$' | sed -e 's:\\$::g' -e 's/Revision: //'`
25 rbdir="/.rockbox"
26 bindir=
27 libdir=
28 sharedir=
30 thread_support="ASSEMBLER_THREADS"
31 app_lcd_width=
32 app_lcd_height=
33 app_lcd_orientation=
35 # Properly retain command line arguments containing spaces
36 cmdline=
37 for arg in "$@"; do
38 case "$arg" in
39 *\ *) cmdline="$cmdline \"$arg\"";;
40 *) cmdline="$cmdline $arg";;
41 esac
42 done
45 # Begin Function Definitions
47 input() {
48 read response
49 echo $response
52 prefixtools () {
53 prefix="$1"
54 CC=${prefix}gcc
55 CPP=${prefix}cpp
56 WINDRES=${prefix}windres
57 DLLTOOL=${prefix}dlltool
58 DLLWRAP=${prefix}dllwrap
59 RANLIB=${prefix}ranlib
60 LD=${prefix}ld
61 AR=${prefix}ar
62 AS=${prefix}as
63 OC=${prefix}objcopy
66 app_set_paths () {
67 # setup files and paths depending on the platform
68 if [ -z "$ARG_PREFIX" ]; then
69 sharedir="/usr/local/share/rockbox"
70 bindir="/usr/local/bin"
71 libdir="/usr/local/lib"
72 else
73 if [ -d "$ARG_PREFIX" ]; then
74 if [ -z `echo $ARG_PREFIX | grep "^/"` ]; then
75 ARG_PREFIX=`realpath $ARG_PREFIX`
76 if [ "0" != "$?" ]; then
77 echo "ERROR: Could not get prefix path (is realpath installed?)."
78 exit
81 sharedir="$ARG_PREFIX/share/rockbox"
82 bindir="$ARG_PREFIX/bin"
83 libdir="$ARG_PREFIX/lib"
84 else
85 echo "ERROR: PREFIX directory $ARG_PREFIX does not exist"
86 exit
91 # Set the application LCD size according to the following priorities:
92 # 1) If --lcdwidth and --lcdheight are set, use them
93 # 2) If a size is passed to the app_set_lcd_size() function, use that
94 # 3) Otherwise ask the user
95 app_set_lcd_size () {
96 if [ -z "$ARG_LCDWIDTH" ]; then
97 ARG_LCDWIDTH=$1
99 if [ -z "$ARG_LCDHEIGHT" ]; then
100 ARG_LCDHEIGHT=$2
103 echo "Enter the LCD width (default: 320)"
104 if [ -z "$ARG_LCDWIDTH" ]; then
105 app_lcd_width=`input`
106 else
107 app_lcd_width="$ARG_LCDWIDTH"
109 if [ -z "$app_lcd_width" ]; then app_lcd_width="320"; fi
110 echo "Enter the LCD height (default: 480)"
111 if [ -z "$ARG_LCDHEIGHT" ]; then
112 app_lcd_height=`input`
113 else
114 app_lcd_height="$ARG_LCDHEIGHT"
116 if [ -z "$app_lcd_height" ]; then app_lcd_height="480"; fi
117 if [ $app_lcd_width -gt $app_lcd_height ]; then
118 lcd_orientation="landscape"
119 else
120 lcd_orientation="portrait"
122 echo "Selected $app_lcd_width x $app_lcd_height resolution ($lcd_orientation)"
123 ARG_LCDWIDTH=$app_lcd_width
124 ARG_LCDHEIGHT=$app_lcd_height
126 app_lcd_width="#define LCD_WIDTH $app_lcd_width"
127 app_lcd_height="#define LCD_HEIGHT $app_lcd_height"
130 findarmgcc() {
131 prefixtools arm-elf-eabi-
132 gccchoice="4.4.4"
135 # scan the $PATH for the given command
136 findtool(){
137 file="$1"
139 IFS=":"
140 for path in $PATH
142 # echo "checks for $file in $path" >&2
143 if test -f "$path/$file"; then
144 echo "$path/$file"
145 return
147 done
148 # check whether caller wants literal return value if not found
149 if [ "$2" = "--lit" ]; then
150 echo "$file"
154 # scan the $PATH for sdl-config - check whether for a (cross-)win32
155 # sdl as requested
156 findsdl(){
157 # sdl-config might (not) be prefixed for cross compiles so try both.
158 files="${CROSS_COMPILE}sdl-config:sdl-config"
159 winbuild="$1"
161 IFS=":"
162 for file in $files
164 for path in $PATH
166 #echo "checks for $file in $path" >&2
167 if test -f "$path/$file"; then
168 if [ "0" != `$path/$file --libs |grep -c mwindows` ]; then
169 if [ "yes" = "${winbuild}" ]; then
170 echo "$path/$file"
171 return
173 else
174 if [ "yes" != "${winbuild}" ]; then
175 echo "$path/$file"
176 return
180 done
181 done
184 # check for availability of sigaltstack to support our thread engine
185 check_sigaltstack() {
186 cat >$tmpdir/check_threads.c <<EOF
187 #include <signal.h>
188 int main(int argc, char **argv)
190 #ifndef NULL
191 #define NULL (void*)0
192 #endif
193 sigaltstack(NULL, NULL);
194 return 0;
197 $CC -o $tmpdir/check_threads $tmpdir/check_threads.c 1> /dev/null
198 result=$?
199 rm -rf $tmpdir/check_threads*
200 echo $result
203 # check for availability of Fiber on Win32 to support our thread engine
204 check_fiber() {
205 cat >$tmpdir/check_threads.c <<EOF
206 #include <windows.h>
207 int main(int argc, char **argv)
209 ConvertThreadToFiber(NULL);
210 return 0;
213 $CC -o $tmpdir/check_threads $tmpdir/check_threads.c 2>/dev/null
214 result=$?
215 rm -rf $tmpdir/check_threads*
216 echo $result
219 simcc () {
221 # default tool setup for native building
222 prefixtools "$CROSS_COMPILE"
223 ARG_ARM_THUMB=0 # can't use thumb in native builds
225 # unset arch if already set shcc() and friends
226 arch=
227 arch_version=
229 app_type=$1
230 winbuild=""
231 GCCOPTS=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib// -e s/-Wundef//`
233 GCCOPTS="$GCCOPTS -fno-builtin -g"
234 GCCOPTIMIZE=''
235 LDOPTS="$LDOPTS -lm" # button-sdl.c uses sqrt()
236 sigaltstack=""
237 fibers=""
238 endian="" # endianess of the dap doesnt matter here
240 # default output binary name, don't override app_get_platform()
241 if [ "$app_type" != "sdl-app" ]; then
242 output="rockboxui"
245 # default share option, override below if needed
246 SHARED_LDFLAG="-shared"
247 SHARED_CFLAGS="-fPIC -fvisibility=hidden"
249 if [ "$win32crosscompile" = "yes" ]; then
250 # We are crosscompiling
251 # add cross-compiler option(s)
252 LDOPTS="$LDOPTS -mconsole"
253 output="$output.exe"
254 winbuild="yes"
255 CROSS_COMPILE=${CROSS_COMPILE:-"i586-mingw32msvc-"}
256 SHARED_CFLAGS=''
257 prefixtools "$CROSS_COMPILE"
258 fibers=`check_fiber`
259 endian="little" # windows is little endian
260 echo "Enabling MMX support"
261 GCCOPTS="$GCCOPTS -mmmx"
262 else
263 case $uname in
264 CYGWIN*)
265 echo "Cygwin host detected"
267 fibers=`check_fiber`
268 LDOPTS="$LDOPTS -mconsole"
269 output="$output.exe"
270 winbuild="yes"
271 SHARED_CFLAGS=''
274 MINGW*)
275 echo "MinGW host detected"
277 fibers=`check_fiber`
278 LDOPTS="$LDOPTS -mconsole"
279 output="$output.exe"
280 winbuild="yes"
283 Linux)
284 sigaltstack=`check_sigaltstack`
285 echo "Linux host detected"
286 LDOPTS="$LDOPTS -ldl"
289 FreeBSD)
290 sigaltstack=`check_sigaltstack`
291 echo "FreeBSD host detected"
292 LDOPTS="$LDOPTS -ldl"
295 Darwin)
296 sigaltstack=`check_sigaltstack`
297 echo "Darwin host detected"
298 LDOPTS="$LDOPTS -ldl"
299 SHARED_LDFLAG="-dynamiclib -Wl\,-single_module"
302 SunOS)
303 sigaltstack=`check_sigaltstack`
304 echo "*Solaris host detected"
306 GCCOPTS="$GCCOPTS -fPIC"
307 LDOPTS="$LDOPTS -ldl"
311 echo "[ERROR] Unsupported system: $uname, fix configure and retry"
312 exit 1
314 esac
317 if [ "$winbuild" != "yes" ]; then
318 GLOBAL_LDOPTS="$GLOBAL_LDOPTS -Wl,-z,defs"
319 if [ "`uname -m`" = "i686" ]; then
320 echo "Enabling MMX support"
321 GCCOPTS="$GCCOPTS -mmmx"
325 sdl=`findsdl $winbuild`
327 if [ -n `echo $app_type | grep "sdl"` ]; then
328 if [ -z "$sdl" ]; then
329 echo "configure didn't find sdl-config, which indicates that you"
330 echo "don't have SDL (properly) installed. Please correct and"
331 echo "re-run configure!"
332 exit 2
333 else
334 # generic sdl-config checker
335 GCCOPTS="$GCCOPTS `$sdl --cflags`"
336 LDOPTS="$LDOPTS `$sdl --libs`"
341 GCCOPTS="$GCCOPTS -I\$(SIMDIR)"
342 # x86_64 supports MMX by default
344 if [ "$endian" = "" ]; then
345 id=$$
346 cat >$tmpdir/conftest-$id.c <<EOF
347 #include <stdio.h>
348 int main(int argc, char **argv)
350 int var=0;
351 char *varp = (char *)&var;
352 *varp=1;
354 printf("%d\n", var);
355 return 0;
358 $CC -o $tmpdir/conftest-$id $tmpdir/conftest-$id.c 2>/dev/null
359 # when cross compiling, the endianess cannot be detected because the above program doesn't run
360 # on the local machine. assume little endian but print a warning
361 endian=`$tmpdir/conftest-$id 2> /dev/null`
362 if [ "$endian" != "" ] && [ $endian -gt "1" ]; then
363 # big endian
364 endian="big"
365 else
366 # little endian
367 endian="little"
371 if [ "$CROSS_COMPILE" != "" ]; then
372 echo "WARNING: Cross Compiling, cannot detect endianess. Assuming $endian endian!"
375 if [ "$app_type" = "sdl-sim" ]; then
376 echo "Simulator environment deemed $endian endian"
377 elif [ "$app_type" = "sdl-app" ]; then
378 echo "Application environment deemed $endian endian"
379 elif [ "$app_type" = "checkwps" ]; then
380 echo "CheckWPS environment deemed $endian endian"
383 # use wildcard here to make it work even if it was named *.exe like
384 # on cygwin
385 rm -f $tmpdir/conftest-$id*
387 thread_support=
388 if [ -z "$ARG_THREAD_SUPPORT" ] || [ "$ARG_THREAD_SUPPORT" = "0" ]; then
389 if [ "$sigaltstack" = "0" ]; then
390 thread_support="HAVE_SIGALTSTACK_THREADS"
391 LDOPTS="$LDOPTS -lpthread" # pthread needed
392 echo "Selected sigaltstack threads"
393 elif [ "$fibers" = "0" ]; then
394 thread_support="HAVE_WIN32_FIBER_THREADS"
395 echo "Selected Win32 Fiber threads"
399 if [ -n `echo $app_type | grep "sdl"` ] && [ -z "$thread_support" ] \
400 && [ "$ARG_THREAD_SUPPORT" != "0" ]; then
401 thread_support="HAVE_SDL_THREADS"
402 if [ "$ARG_THREAD_SUPPORT" = "1" ]; then
403 echo "Selected SDL threads"
404 else
405 echo "WARNING: Falling back to SDL threads"
411 # functions for setting up cross-compiler names and options
412 # also set endianess and what the exact recommended gcc version is
413 # the gcc version should most likely match what versions we build with
414 # rockboxdev.sh
416 shcc () {
417 prefixtools sh-elf-
418 GCCOPTS="$CCOPTS -m1"
419 GCCOPTIMIZE="-fomit-frame-pointer -fschedule-insns"
420 endian="big"
421 gccchoice="4.0.3"
424 calmrisccc () {
425 prefixtools calmrisc16-unknown-elf-
426 GCCOPTS="-Wl\,--no-check-sections $CCOPTS"
427 GCCOPTIMIZE="-fomit-frame-pointer"
428 endian="big"
431 coldfirecc () {
432 prefixtools m68k-elf-
433 GCCOPTS="$CCOPTS -mcpu=5249 -malign-int -mstrict-align"
434 GCCOPTIMIZE="-fomit-frame-pointer"
435 endian="big"
436 gccchoice="4.5.2"
439 arm7tdmicc () {
440 findarmgcc
441 GCCOPTS="$CCOPTS -mcpu=arm7tdmi"
442 GCCOPTIMIZE="-fomit-frame-pointer"
443 endian="little"
446 arm9tdmicc () {
447 findarmgcc
448 GCCOPTS="$CCOPTS -mcpu=arm9tdmi"
449 GCCOPTIMIZE="-fomit-frame-pointer"
450 endian="little"
453 arm940tbecc () {
454 findarmgcc
455 GCCOPTS="$CCOPTS -mbig-endian -mcpu=arm940t"
456 GCCOPTIMIZE="-fomit-frame-pointer"
457 endian="big"
460 arm940tcc () {
461 findarmgcc
462 GCCOPTS="$CCOPTS -mcpu=arm940t"
463 GCCOPTIMIZE="-fomit-frame-pointer"
464 endian="little"
467 arm946cc () {
468 findarmgcc
469 GCCOPTS="$CCOPTS -mcpu=arm9e"
470 GCCOPTIMIZE="-fomit-frame-pointer"
471 endian="little"
474 arm926ejscc () {
475 findarmgcc
476 GCCOPTS="$CCOPTS -mcpu=arm926ej-s"
477 GCCOPTIMIZE="-fomit-frame-pointer"
478 endian="little"
481 arm1136jfscc () {
482 findarmgcc
483 GCCOPTS="$CCOPTS -mcpu=arm1136jf-s"
484 GCCOPTIMIZE="-fomit-frame-pointer"
485 endian="little"
488 arm1176jzscc () {
489 findarmgcc
490 GCCOPTS="$CCOPTS -mcpu=arm1176jz-s"
491 GCCOPTIMIZE="-fomit-frame-pointer"
492 endian="little"
495 arm7ejscc () {
496 findarmgcc
497 GCCOPTS="$CCOPTS -march=armv5te"
498 GCCOPTIMIZE="-fomit-frame-pointer"
499 endian="little"
502 mipselcc () {
503 prefixtools mipsel-elf-
504 # mips is predefined, but we want it for paths. use __mips instead
505 GCCOPTS="$CCOPTS -march=mips32 -mtune=r4600 -mno-mips16 -mno-long-calls -Umips"
506 GCCOPTS="$GCCOPTS -ffunction-sections -msoft-float -G 0 -Wno-parentheses"
507 GCCOPTIMIZE="-fomit-frame-pointer"
508 endian="little"
509 gccchoice="4.1.2"
512 maemocc () {
513 # Scratchbox sets up "gcc" based on the active target
514 prefixtools ""
516 GCCOPTS=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib// -e s/-Wundef//`
517 GCCOPTS="$GCCOPTS -fno-builtin -g -I\$(SIMDIR)"
518 GCCOPTIMIZE=''
519 LDOPTS="-lm -ldl $LDOPTS"
520 GLOBAL_LDOPTS="$GLOBAL_LDOPTS -Wl,-z,defs"
521 SHARED_LDFLAG="-shared"
522 SHARED_CFLAGS=''
523 endian="little"
524 thread_support="HAVE_SIGALTSTACK_THREADS"
526 is_n900=0
527 # Determine maemo version
528 if pkg-config --atleast-version=5 maemo-version; then
529 if [ "$1" == "4" ]; then
530 echo "ERROR: Maemo 4 SDK required."
531 exit 1
533 extradefines="$extradefines -DMAEMO5"
534 echo "Found N900 maemo version"
535 is_n900=1
536 elif pkg-config --atleast-version=4 maemo-version; then
537 if [ "$1" == "5" ]; then
538 echo "ERROR: Maemo 5 SDK required."
539 exit 1
541 extradefines="$extradefines -DMAEMO4"
542 echo "Found N8xx maemo version"
543 else
544 echo "Unable to determine maemo version. Is the maemo-version-dev package installed?"
545 exit 1
548 # SDL
549 if [ $is_n900 -eq 1 ]; then
550 GCCOPTS="$GCCOPTS `pkg-config --cflags sdl`"
551 LDOPTS="$LDOPTS `pkg-config --libs sdl`"
552 else
553 GCCOPTS="$GCCOPTS `sdl-config --cflags`"
554 LDOPTS="$LDOPTS `sdl-config --libs`"
557 # glib and libosso support
558 GCCOPTS="$GCCOPTS `pkg-config --cflags libosso glib-2.0 gthread-2.0`"
559 LDOPTS="$LDOPTS `pkg-config --libs libosso glib-2.0 gthread-2.0`"
561 # libhal support: Battery monitoring
562 GCCOPTS="$GCCOPTS `pkg-config --cflags hal`"
563 LDOPTS="$LDOPTS `pkg-config --libs hal`"
565 GCCOPTS="$GCCOPTS -O2 -fno-strict-aliasing"
566 if [ $is_n900 -eq 1 ]; then
567 # gstreamer support: Audio output.
568 GCCOPTS="$GCCOPTS `pkg-config --cflags gstreamer-base-0.10 gstreamer-plugins-base-0.10 gstreamer-app-0.10`"
569 LDOPTS="$LDOPTS `pkg-config --libs gstreamer-base-0.10 gstreamer-plugins-base-0.10 gstreamer-app-0.10`"
571 # N900 specific: libplayback support
572 GCCOPTS="$GCCOPTS `pkg-config --cflags libplayback-1`"
573 LDOPTS="$LDOPTS `pkg-config --libs libplayback-1`"
575 # N900 specific: Enable ARMv7 NEON support
576 if sb-conf show -A |grep -q -i arm; then
577 echo "Detected ARM target"
578 GCCOPTS="$GCCOPTS -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp"
579 extradefines="$extradefines -DMAEMO_ARM_BUILD"
580 else
581 echo "Detected x86 target"
583 else
584 # N8xx specific: Enable armv5te instructions
585 if sb-conf show -A |grep -q -i arm; then
586 echo "Detected ARM target"
587 GCCOPTS="$GCCOPTS -mcpu=arm1136jf-s -mfloat-abi=softfp -mfpu=vfp"
588 extradefines="$extradefines -DMAEMO_ARM_BUILD"
589 else
590 echo "Detected x86 target"
595 pandoracc () {
596 # Note: The new "Ivanovic" pandora toolchain is not able to compile rockbox.
597 # You have to use the sebt3 toolchain:
598 # http://www.gp32x.com/board/index.php?/topic/58490-yactfeau/
600 PNDSDK="/usr/local/angstrom/arm"
601 if [ ! -x $PNDSDK/bin/arm-angstrom-linux-gnueabi-gcc ]; then
602 echo "Pandora SDK gcc not found in $PNDSDK/bin/arm-angstrom-linux-gnueabi-gcc"
603 exit
606 PATH=$PNDSDK/bin:$PATH:$PNDSDK/arm-angstrom-linux-gnueabi/usr/bin
607 PKG_CONFIG_PATH=$PNDSDK/arm-angstrom-linux-gnueabi/usr/lib/pkgconfig
608 LDOPTS="-L$PNDSDK/arm-angstrom-linux-gnueabi/usr/lib -Wl,-rpath,$PNDSDK/arm-angstrom-linux-gnueabi/usr/lib $LDOPTS"
609 PKG_CONFIG="pkg-config"
611 GCCOPTS=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib// -e s/-Wundef//`
612 GCCOPTS="$GCCOPTS -fno-builtin -g -I\$(SIMDIR)"
613 GCCOPTIMIZE=''
614 LDOPTS="-lm -ldl $LDOPTS"
615 GLOBAL_LDOPTS="$GLOBAL_LDOPTS -Wl,-z,defs"
616 SHARED_LDFLAG="-shared"
617 SHARED_CFLAGS=''
618 endian="little"
619 thread_support="HAVE_SIGALTSTACK_THREADS"
621 # Include path
622 GCCOPTS="$GCCOPTS -I$PNDSDK/arm-angstrom-linux-gnueabi/usr/include"
624 # Set up compiler
625 gccchoice="4.3.3"
626 prefixtools "$PNDSDK/bin/arm-angstrom-linux-gnueabi-"
628 # Detect SDL
629 GCCOPTS="$GCCOPTS `$PNDSDK/bin/sdl-config --cflags`"
630 LDOPTS="$LDOPTS `$PNDSDK/bin/sdl-config --libs`"
632 # Compiler options
633 GCCOPTS="$GCCOPTS -O2 -fno-strict-aliasing"
634 GCCOPTS="$GCCOPTS -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp"
635 GCCOPTS="$GCCOPTS -ffast-math -fsingle-precision-constant"
638 ypr0cc () {
640 GCCOPTS=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib//`
641 GCCOPTIMIZE=''
642 LDOPTS="-lasound -lpthread -lm -ldl -lrt $LDOPTS"
643 GLOBAL_LDOPTS="$GLOBAL_LDOPTS -Wl,-z,defs"
644 SHARED_LDFLAG="-shared"
645 SHARED_CFLAGS=''
646 endian="little"
647 app_type="ypr0"
649 # Include path
650 GCCOPTS="$GCCOPTS -D_GNU_SOURCE=1 -U_FORTIFY_SOURCE -D_REENTRANT"
652 # Set up compiler
653 gccchoice="4.4.6"
654 prefixtools "arm-ypr0-linux-gnueabi-"
657 androidcc () {
658 if [ -z "$ANDROID_SDK_PATH" ]; then
659 echo "ERROR: You need the Android SDK installed and have the ANDROID_SDK_PATH"
660 echo "environment variable point to the root directory of the Android SDK."
661 exit
663 if [ -z "$ANDROID_NDK_PATH" ]; then
664 echo "ERROR: You need the Android NDK installed (r5 or higher) and have the ANDROID_NDK_PATH"
665 echo "environment variable point to the root directory of the Android NDK."
666 exit
668 buildhost=$(uname | tr "[:upper:]" "[:lower:]")
669 GCCOPTS=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib// -e s/-Wundef//`
670 LDOPTS="$LDOPTS -Wl,-soname,librockbox.so -shared -ldl -llog"
671 GLOBAL_LDOPTS="-Wl,-z,defs -Wl,-z,noexecstack -shared"
672 ANDROID_ARCH=$1 # for android.make too
673 # arch dependant stuff
674 case $ANDROID_ARCH in
675 armeabi)
676 endian="little"
677 gccchoice="4.4.3"
678 gcctarget="arm-linux-androideabi-"
679 # sigaltstack is not available in pre-android-9, however asm
680 # threads work fine so far
681 thread_support="ASSEMBLER_THREADS"
682 GCCOPTS="$GCCOPTS -march=armv5te -mtune=xscale -msoft-float -fomit-frame-pointer \
683 --sysroot=$ANDROID_NDK_PATH/platforms/android-5/arch-arm"
684 LDOPTS="$LDOPTS --sysroot=$ANDROID_NDK_PATH/platforms/android-5/arch-arm"
686 mips)
687 endian="little"
688 gccchoice="4.4.3"
689 gcctarget="mipsel-linux-android-"
690 thread_support="HAVE_SIGALTSTACK_THREADS"
691 GCCOPTS="$GCCOPTS -march=mips32 -mtune=r4600 -mno-mips16 -mno-long-calls -fomit-frame-pointer \
692 --sysroot=$ANDROID_NDK_PATH/platforms/android-14/arch-mips -fPIC"
693 LDOPTS="$LDOPTS --sysroot=$ANDROID_NDK_PATH/platforms/android-14/arch-mips"
695 x86)
696 endian=little
697 gccchoice="4.4.3"
698 gcctarget="i686-linux-android-"
699 gccdir=x86-$gccchoice
700 thread_support="HAVE_SIGALTSTACK_THREADS"
701 GCCOPTS="$GCCOPTS -Wa,--noexecstack -ffunction-sections -fomit-frame-pointer\
702 --sysroot=$ANDROID_NDK_PATH/platforms/android-9/arch-x86"
703 LDOPTS="$LDOPTS --sysroot=$ANDROID_NDK_PATH/platforms/android-9/arch-x86"
706 echo "ERROR: androidcc(): Unknown target architecture"
707 exit
709 esac
710 echo "Application environment deemed $endian endian"
711 if [ -z "$gccdir" ]; then
712 gccdir=$gcctarget$gccchoice
714 gccprefix=$ANDROID_NDK_PATH/toolchains/$gccdir/prebuilt/$buildhost-x86
715 PATH=$PATH:$gccprefix/bin
716 prefixtools $gcctarget
719 whichadvanced () {
720 atype=`echo "$1" | cut -c 2-`
721 ##################################################################
722 # Prompt for specific developer options
724 if [ "$atype" ]; then
725 interact=
726 else
727 interact=1
728 echo ""
729 printf "Enter your developer options (press only enter when done)\n\
730 (D)EBUG, (L)ogf, Boot(c)hart, (S)imulator, (P)rofiling, (V)oice, (W)in32 crosscompile,\n\
731 (T)est plugins, S(m)all C lib, Logf to Ser(i)al port:"
732 if [ "$modelname" = "archosplayer" ]; then
733 printf ", Use (A)TA poweroff"
735 if [ "$t_model" = "ondio" ]; then
736 printf ", (B)acklight MOD"
738 if [ "$modelname" = "iaudiom5" ]; then
739 printf ", (F)M radio MOD"
741 if [ "$modelname" = "iriverh120" ]; then
742 printf ", (R)TC MOD"
744 echo ""
747 cont=1
748 while [ $cont = "1" ]; do
750 if [ "$interact" ]; then
751 option=`input`
752 else
753 option=`echo "$atype" | cut -c 1`
756 case $option in
757 [Dd])
758 if [ "yes" = "$profile" ]; then
759 echo "Debug is incompatible with profiling"
760 else
761 echo "DEBUG build enabled"
762 use_debug="yes"
765 [Ll])
766 echo "logf() support enabled"
767 logf="yes"
769 [Mm])
770 echo "Using Rockbox' small C library"
771 extradefines="$extradefines -DHAVE_ROCKBOX_C_LIBRARY"
773 [Tt])
774 echo "Including test plugins"
775 extradefines="$extradefines -DHAVE_TEST_PLUGINS"
777 [Cc])
778 echo "bootchart enabled (logf also enabled)"
779 bootchart="yes"
780 logf="yes"
782 [Ii])
783 echo "Logf to serial port enabled (logf also enabled)"
784 logf="yes"
785 logf_serial="yes"
787 [Ss])
788 echo "Simulator build enabled"
789 simulator="yes"
791 [Pp])
792 if [ "yes" = "$use_debug" ]; then
793 echo "Profiling is incompatible with debug"
794 else
795 echo "Profiling support is enabled"
796 profile="yes"
799 [Vv])
800 echo "Voice build selected"
801 voice="yes"
803 [Aa])
804 if [ "$modelname" = "archosplayer" ]; then
805 have_ata_poweroff="#define HAVE_ATA_POWER_OFF"
806 echo "ATA power off enabled"
809 [Bb])
810 if [ "$t_model" = "ondio" ]; then
811 have_backlight="#define HAVE_BACKLIGHT"
812 echo "Backlight functions enabled"
815 [Ff])
816 if [ "$modelname" = "iaudiom5" ]; then
817 have_fmradio_in="#define HAVE_FMRADIO_IN"
818 echo "FM radio functions enabled"
821 [Rr])
822 if [ "$modelname" = "iriverh120" ]; then
823 config_rtc="#define CONFIG_RTC RTC_DS1339_DS3231"
824 have_rtc_alarm="#define HAVE_RTC_ALARM"
825 echo "RTC functions enabled (DS1339/DS3231)"
828 [Ww])
829 echo "Enabling Windows 32 cross-compiling"
830 win32crosscompile="yes"
832 "") # Match enter press when finished with advanced options
833 cont=0
836 echo "[ERROR] Option $option unsupported"
838 esac
839 if [ "$interact" ]; then
840 btype="$btype$option"
841 else
842 atype=`echo "$atype" | cut -c 2-`
843 [ "$atype" ] || cont=0
845 done
846 echo "done"
848 if [ "yes" = "$voice" ]; then
849 # Ask about languages to build
850 picklang
851 voicelanguage=`whichlang`
852 echo "Voice language set to $voicelanguage"
854 # Configure encoder and TTS engine for each language
855 for thislang in `echo $voicelanguage | sed 's/,/ /g'`; do
856 voiceconfig "$thislang"
857 done
859 if [ "yes" = "$use_debug" ]; then
860 debug="-DDEBUG"
861 GCCOPTS="$GCCOPTS -g -DDEBUG"
863 if [ "yes" = "$logf" ]; then
864 use_logf="#define ROCKBOX_HAS_LOGF 1"
866 if [ "yes" = "$logf_serial" ]; then
867 use_logf_serial="#define LOGF_SERIAL 1"
869 if [ "yes" = "$bootchart" ]; then
870 use_bootchart="#define DO_BOOTCHART 1"
872 if [ "yes" = "$simulator" ]; then
873 debug="-DDEBUG"
874 extradefines="$extradefines -DSIMULATOR"
875 archosrom=""
876 flash=""
878 if [ "yes" = "$profile" ]; then
879 extradefines="$extradefines -DRB_PROFILE"
880 PROFILE_OPTS="-finstrument-functions"
884 # Configure voice settings
885 voiceconfig () {
886 thislang=$1
887 if [ ! "$ARG_TTS" ]; then
888 echo "Building $thislang voice for $modelname. Select options"
889 echo ""
892 if [ -n "`findtool flite`" ]; then
893 FLITE="F(l)ite "
894 FLITE_OPTS=""
895 DEFAULT_TTS="flite"
896 DEFAULT_TTS_OPTS=$FLITE_OPTS
897 DEFAULT_NOISEFLOOR="500"
898 DEFAULT_CHOICE="l"
900 if [ -n "`findtool espeak`" ]; then
901 ESPEAK="(e)Speak "
902 ESPEAK_OPTS=""
903 DEFAULT_TTS="espeak"
904 DEFAULT_TTS_OPTS=$ESPEAK_OPTS
905 DEFAULT_NOISEFLOOR="500"
906 DEFAULT_CHOICE="e"
908 if [ -n "`findtool festival`" ]; then
909 FESTIVAL="(F)estival "
910 case "$thislang" in
911 "italiano")
912 FESTIVAL_OPTS="--language italian"
914 "espanol")
915 FESTIVAL_OPTS="--language spanish"
917 "finnish")
918 FESTIVAL_OPTS="--language finnish"
920 "czech")
921 FESTIVAL_OPTS="--language czech"
924 FESTIVAL_OPTS=""
926 esac
927 DEFAULT_TTS="festival"
928 DEFAULT_TTS_OPTS=$FESTIVAL_OPTS
929 DEFAULT_NOISEFLOOR="500"
930 DEFAULT_CHOICE="f"
932 if [ -n "`findtool swift`" ]; then
933 SWIFT="S(w)ift "
934 SWIFT_OPTS=""
935 DEFAULT_TTS="swift"
936 DEFAULT_TTS_OPTS=$SWIFT_OPTS
937 DEFAULT_NOISEFLOOR="500"
938 DEFAULT_CHOICE="w"
940 # Allow SAPI if Windows is in use
941 if [ -n "`findtool winver`" ]; then
942 SAPI="(S)API "
943 SAPI_OPTS=""
944 DEFAULT_TTS="sapi"
945 DEFAULT_TTS_OPTS=$SAPI_OPTS
946 DEFAULT_NOISEFLOOR="500"
947 DEFAULT_CHOICE="s"
950 if [ "$FESTIVAL" = "$FLITE" ] && [ "$FLITE" = "$ESPEAK" ] && [ "$ESPEAK" = "$SAPI" ] && [ "$SAPI" = "$SWIFT" ]; then
951 echo "You need Festival, eSpeak or Flite in your path, or SAPI available to build voice files"
952 exit 3
955 if [ "$ARG_TTS" ]; then
956 option=$ARG_TTS
957 else
958 echo "TTS engine to use: ${FLITE}${FESTIVAL}${ESPEAK}${SAPI}${SWIFT}(${DEFAULT_CHOICE})?"
959 option=`input`
960 if [ -z "$option" ]; then option=${DEFAULT_CHOICE}; fi
961 advopts="$advopts --tts=$option"
963 case "$option" in
964 [Ll])
965 TTS_ENGINE="flite"
966 NOISEFLOOR="500" # TODO: check this value
967 TTS_OPTS=$FLITE_OPTS
969 [Ee])
970 TTS_ENGINE="espeak"
971 NOISEFLOOR="500"
972 TTS_OPTS=$ESPEAK_OPTS
974 [Ff])
975 TTS_ENGINE="festival"
976 NOISEFLOOR="500"
977 TTS_OPTS=$FESTIVAL_OPTS
979 [Ss])
980 TTS_ENGINE="sapi"
981 NOISEFLOOR="500"
982 TTS_OPTS=$SAPI_OPTS
984 [Ww])
985 TTS_ENGINE="swift"
986 NOISEFLOOR="500"
987 TTS_OPTS=$SWIFT_OPTS
990 TTS_ENGINE=$DEFAULT_TTS
991 TTS_OPTS=$DEFAULT_TTS_OPTS
992 NOISEFLOOR=$DEFAULT_NOISEFLOOR
993 esac
994 echo "Using $TTS_ENGINE for TTS"
996 # Select which voice to use for Festival
997 if [ "$TTS_ENGINE" = "festival" ]; then
998 voicelist=`echo "(voice.list)"|festival -i 2>/dev/null |tr "\n" " "|sed -e 's/.*festival> (\(.*\)) festival>/\1/'|sort`
999 for voice in $voicelist; do
1000 TTS_FESTIVAL_VOICE="$voice" # Default choice
1001 break
1002 done
1003 if [ "$ARG_VOICE" ]; then
1004 CHOICE=$ARG_VOICE
1005 else
1007 for voice in $voicelist; do
1008 printf "%3d. %s\n" "$i" "$voice"
1009 i=`expr $i + 1`
1010 done
1011 printf "Please select which Festival voice to use (default is $TTS_FESTIVAL_VOICE): "
1012 CHOICE=`input`
1015 for voice in $voicelist; do
1016 if [ "$i" = "$CHOICE" -o "$voice" = "$CHOICE" ]; then
1017 TTS_FESTIVAL_VOICE="$voice"
1019 i=`expr $i + 1`
1020 done
1021 advopts="$advopts --voice=$CHOICE"
1022 echo "Festival voice set to $TTS_FESTIVAL_VOICE"
1023 echo "(voice_$TTS_FESTIVAL_VOICE)" > festival-prolog.scm
1026 # Read custom tts options from command line
1027 if [ "$ARG_TTSOPTS" ]; then
1028 TTS_OPTS="$ARG_TTSOPTS"
1029 echo "$TTS_ENGINE options set to $TTS_OPTS"
1032 if [ "$swcodec" = "yes" ]; then
1033 ENCODER="rbspeexenc"
1034 ENC_OPTS="-q 4 -c 10"
1035 else
1036 if [ -n "`findtool lame`" ]; then
1037 ENCODER="lame"
1038 ENC_OPTS="--resample 12 -t -m m -h -V 9.999 -S -B 64 --vbr-new"
1039 else
1040 echo "You need LAME in the system path to build voice files for"
1041 echo "HWCODEC targets."
1042 exit 4
1046 echo "Using $ENCODER for encoding voice clips"
1048 # Read custom encoder options from command line
1049 if [ "$ARG_ENCOPTS" ]; then
1050 ENC_OPTS="$ARG_ENCOPTS"
1051 echo "$ENCODER options set to $ENC_OPTS"
1054 TEMPDIR="${pwd}"
1055 if [ -n "`findtool cygpath`" ]; then
1056 TEMPDIR=`cygpath . -a -w`
1060 picklang() {
1061 # figure out which languages that are around
1062 for file in $rootdir/apps/lang/*.lang; do
1063 clean=`basename $file .lang`
1064 langs="$langs $clean"
1065 done
1067 if [ "$ARG_LANG" ]; then
1068 pick=$ARG_LANG
1069 else
1070 echo "Select a number for the language to use (default is english)"
1071 # FIXME The multiple-language feature is currently broken
1072 # echo "You may enter a comma-separated list of languages to build"
1074 num=1
1075 for one in $langs; do
1076 echo "$num. $one"
1077 num=`expr $num + 1`
1078 done
1079 pick=`input`
1080 advopts="$advopts --language=$pick"
1084 whichlang() {
1085 output=""
1086 # Allow the user to pass a comma-separated list of langauges
1087 for thispick in `echo $pick | sed 's/,/ /g'`; do
1088 num=1
1089 for one in $langs; do
1090 # Accept both the language number and name
1091 if [ "$num" = "$thispick" ] || [ "$thispick" = "$one" ]; then
1092 if [ "$output" = "" ]; then
1093 output=$one
1094 else
1095 output=$output,$one
1098 num=`expr $num + 1`
1099 done
1100 done
1101 if [ -z "$output" ]; then
1102 # pick a default
1103 output="english"
1105 echo $output
1108 help() {
1109 echo "Rockbox configure script."
1110 echo "Invoke this in a directory to generate a Makefile to build Rockbox"
1111 echo "Do *NOT* run this within the tools directory!"
1112 echo ""
1113 cat <<EOF
1114 Usage: configure [OPTION]...
1115 Options:
1116 --target=TARGET Sets the target, TARGET can be either the target ID or
1117 corresponding string. Run without this option to see all
1118 available targets.
1120 --ram=RAM Sets the RAM for certain targets. Even though any number
1121 is accepted, not every number is correct. The default
1122 value will be applied, if you entered a wrong number
1123 (which depends on the target). Watch the output. Run
1124 without this option if you are not sure which the right
1125 number is.
1127 --type=TYPE Sets the build type. Shortcuts are also valid.
1128 Run without this option to see all available types.
1129 Multiple values are allowed and managed in the input
1130 order. So --type=b stands for Bootloader build, while
1131 --type=ab stands for "Backlight MOD" build.
1133 --lcdwidth=X Sets the width of the LCD. Used only for application
1134 targets.
1136 --lcdheight=Y Sets the height of the LCD. Used only for application
1137 targets.
1139 --language=LANG Set the language used for voice generation (used only if
1140 TYPE is AV).
1142 --tts=ENGINE Set the TTS engine used for voice generation (used only
1143 if TYPE is AV).
1145 --voice=VOICE Set voice to use with selected TTS (used only if TYPE is
1146 AV).
1148 --ttsopts=OPTS Set TTS engine manual options (used only if TYPE is AV).
1150 --encopts=OPTS Set encoder manual options (used only if ATYPE is AV).
1152 --rbdir=dir Use alternative rockbox directory (default: ${rbdir}).
1153 This is useful for having multiple alternate builds on
1154 your device that you can load with ROLO. However as the
1155 bootloader looks for .rockbox you won't be able to boot
1156 into this build.
1158 --ccache Enable ccache use (done by default these days)
1159 --no-ccache Disable ccache use
1161 --thumb Build with -mthumb (for ARM builds)
1162 --no-thumb The opposite of --thumb (don't use thumb even for targets
1163 where this is the default
1164 --sdl-threads Force use of SDL threads. They have inferior performance,
1165 but are better debuggable with GDB
1166 --no-sdl-threads Disallow use of SDL threads. This prevents the default
1167 behavior of falling back to them if no native thread
1168 support was found.
1169 --prefix Target installation directory
1170 --help Shows this message (must not be used with other options)
1174 exit
1177 ARG_CCACHE=
1178 ARG_ENCOPTS=
1179 ARG_LANG=
1180 ARG_RAM=
1181 ARG_RBDIR=
1182 ARG_TARGET=
1183 ARG_TTS=
1184 ARG_TTSOPTS=
1185 ARG_TYPE=
1186 ARG_VOICE=
1187 ARG_ARM_THUMB=
1188 ARG_PREFIX="$PREFIX"
1189 ARG_THREAD_SUPPORT=
1190 err=
1191 for arg in "$@"; do
1192 case "$arg" in
1193 --ccache) ARG_CCACHE=1;;
1194 --no-ccache) ARG_CCACHE=0;;
1195 --encopts=*) ARG_ENCOPTS=`echo "$arg" | cut -d = -f 2`;;
1196 --language=*) ARG_LANG=`echo "$arg" | cut -d = -f 2`;;
1197 --lcdwidth=*) ARG_LCDWIDTH=`echo "$arg" | cut -d = -f 2`;;
1198 --lcdheight=*) ARG_LCDHEIGHT=`echo "$arg" | cut -d = -f 2`;;
1199 --ram=*) ARG_RAM=`echo "$arg" | cut -d = -f 2`;;
1200 --rbdir=*) ARG_RBDIR=`echo "$arg" | cut -d = -f 2`;;
1201 --target=*) ARG_TARGET=`echo "$arg" | cut -d = -f 2`;;
1202 --tts=*) ARG_TTS=`echo "$arg" | cut -d = -f 2`;;
1203 --ttsopts=*) ARG_TTSOPTS=`echo "$arg" | cut -d = -f 2`;;
1204 --type=*) ARG_TYPE=`echo "$arg" | cut -d = -f 2`;;
1205 --voice=*) ARG_VOICE=`echo "$arg" | cut -d = -f 2`;;
1206 --thumb) ARG_ARM_THUMB=1;;
1207 --no-thumb) ARG_ARM_THUMB=0;;
1208 --sdl-threads)ARG_THREAD_SUPPORT=1;;
1209 --no-sdl-threads)
1210 ARG_THREAD_SUPPORT=0;;
1211 --prefix=*) ARG_PREFIX=`echo "$arg" | cut -d = -f 2`;;
1212 --help) help;;
1213 *) err=1; echo "[ERROR] Option '$arg' unsupported";;
1214 esac
1215 done
1216 [ "$err" ] && exit 1
1218 advopts=
1220 if [ "$TMPDIR" != "" ]; then
1221 tmpdir=$TMPDIR
1222 else
1223 tmpdir=/tmp
1225 echo Using temporary directory $tmpdir
1227 if test -r "configure"; then
1228 # this is a check for a configure script in the current directory, it there
1229 # is one, try to figure out if it is this one!
1231 if { grep "^# Jukebox" configure >/dev/null 2>&1 ; } then
1232 echo "WEEEEEEEEP. Don't run this configure script within the tools directory."
1233 echo "It will only cause you pain and grief. Instead do this:"
1234 echo ""
1235 echo " cd .."
1236 echo " mkdir build-dir"
1237 echo " cd build-dir"
1238 echo " ../tools/configure"
1239 echo ""
1240 echo "Much happiness will arise from this. Enjoy"
1241 exit 5
1245 # get our current directory
1246 pwd=`pwd`;
1248 if { echo $pwd | grep " "; } then
1249 echo "You're running this script in a path that contains space. The build"
1250 echo "system is unfortunately not clever enough to deal with this. Please"
1251 echo "run the script from a different path, rename the path or fix the build"
1252 echo "system!"
1253 exit 6
1256 if [ -z "$rootdir" ]; then
1257 ##################################################################
1258 # Figure out where the source code root is!
1260 rootdir=`dirname $0`/../
1262 #####################################################################
1263 # Convert the possibly relative directory name to an absolute version
1265 now=`pwd`
1266 cd $rootdir
1267 rootdir=`pwd`
1269 # cd back to the build dir
1270 cd $now
1273 apps="apps"
1274 appsdir='$(ROOTDIR)/apps'
1275 toolsdir='$(ROOTDIR)/tools'
1278 ##################################################################
1279 # Figure out target platform
1282 if [ "$ARG_TARGET" ]; then
1283 buildfor=$ARG_TARGET
1284 else
1285 echo "Enter target platform:"
1286 cat <<EOF
1287 ==Archos== ==iriver== ==Apple iPod==
1288 0) Player/Studio 10) H120/H140 20) Color/Photo
1289 1) Recorder 11) H320/H340 21) Nano 1G
1290 2) FM Recorder 12) iHP-100/110/115 22) Video
1291 3) Recorder v2 13) iFP-790 23) 3G
1292 4) Ondio SP 14) H10 20Gb 24) 4G Grayscale
1293 5) Ondio FM 15) H10 5/6Gb 25) Mini 1G
1294 6) AV300 26) Mini 2G
1295 ==Toshiba== 27) 1G, 2G
1296 ==Cowon/iAudio== 40) Gigabeat F/X 28) Nano 2G
1297 30) X5/X5V/X5L 41) Gigabeat S 29) Classic/6G
1298 31) M5/M5L
1299 32) 7 ==Olympus= ==SanDisk==
1300 33) D2 70) M:Robe 500 50) Sansa e200
1301 34) M3/M3L 71) M:Robe 100 51) Sansa e200R
1302 52) Sansa c200
1303 ==Creative== ==Philips== 53) Sansa m200
1304 90) Zen Vision:M 30GB 100) GoGear SA9200 54) Sansa c100
1305 91) Zen Vision:M 60GB 101) GoGear HDD1630/ 55) Sansa Clip
1306 92) Zen Vision HDD1830 56) Sansa e200v2
1307 93) Zen X-Fi2 102) GoGear HDD6330 57) Sansa m200v4
1308 94) Zen X-Fi3 58) Sansa Fuze
1309 ==Meizu== 59) Sansa c200v2
1310 ==Onda== 110) M6SL 60) Sansa Clipv2
1311 120) VX747 111) M6SP 61) Sansa View
1312 121) VX767 112) M3 62) Sansa Clip+
1313 122) VX747+ 63) Sansa Fuze v2
1314 123) VX777 ==Tatung== 64) Sansa Fuze+
1315 150) Elio TPJ-1022 65) Sansa Clip Zip
1316 ==Samsung== 66) Sansa Connect
1317 140) YH-820 ==Packard Bell==
1318 141) YH-920 160) Vibe 500 ==Logik==
1319 142) YH-925 80) DAX 1GB MP3/DAB
1320 143) YP-S3 ==MPIO==
1321 170) HD200 ==Lyre project==
1322 ==Application== 171) HD300 130) Lyre proto 1
1323 200) SDL 131) Mini2440
1324 201) Android ==ROCKCHIP==
1325 202) Nokia N8xx 180) rk27xx generic ==HiFiMAN==
1326 203) Nokia N900 190) HM-60x
1327 204) Pandora 191) HM-801
1328 205) Samsung YP-R0
1329 206) Android MIPS
1330 207) Android x86
1333 buildfor=`input`;
1336 # Set of tools built for all target platforms:
1337 toolset="rdf2binary convbdf codepages"
1339 # Toolsets for some target families:
1340 archosbitmaptools="$toolset scramble descramble sh2d uclpack bmp2rb"
1341 iriverbitmaptools="$toolset scramble descramble mkboot bmp2rb"
1342 iaudiobitmaptools="$toolset scramble descramble mkboot bmp2rb"
1343 ipodbitmaptools="$toolset scramble bmp2rb"
1344 gigabeatbitmaptools="$toolset scramble descramble bmp2rb"
1345 tccbitmaptools="$toolset scramble bmp2rb"
1346 # generic is used by IFP, Meizu and Onda
1347 genericbitmaptools="$toolset bmp2rb"
1348 # scramble is used by all other targets
1349 scramblebitmaptools="$genericbitmaptools scramble"
1352 # ---- For each target ----
1354 # *Variables*
1355 # target_id: a unique number identifying this target, IS NOT the menu number.
1356 # Just use the currently highest number+1 when you add a new
1357 # target.
1358 # modelname: short model name used all over to identify this target
1359 # memory: number of megabytes of RAM this target has. If the amount can
1360 # be selected by the size prompt, let memory be unset here
1361 # target: -Ddefine passed to the build commands to make the correct
1362 # config-*.h file get included etc
1363 # tool: the tool that takes a plain binary and converts that into a
1364 # working "firmware" file for your target
1365 # output: the final output file name
1366 # boottool: the tool that takes a plain binary and generates a bootloader
1367 # file for your target (or blank to use $tool)
1368 # bootoutput:the final output file name for the bootloader (or blank to use
1369 # $output)
1370 # appextra: passed to the APPEXTRA variable in the Makefiles.
1371 # TODO: add proper explanation
1372 # archosrom: used only for Archos targets that build a special flashable .ucl
1373 # image.
1374 # flash: name of output for flashing, for targets where there's a special
1375 # file output for this.
1376 # plugins: set to 'yes' to build the plugins. Early development builds can
1377 # set this to no in the early stages to have an easier life for a
1378 # while
1379 # swcodec: set 'yes' on swcodec targets
1380 # toolset: lists what particular tools in the tools/ directory that this
1381 # target needs to have built prior to building Rockbox
1383 # *Functions*
1384 # *cc: sets up gcc and compiler options for your target builds. Note
1385 # that if you select a simulator build, the compiler selection is
1386 # overridden later in the script.
1388 case $buildfor in
1390 0|archosplayer)
1391 target_id=1
1392 modelname="archosplayer"
1393 target="ARCHOS_PLAYER"
1394 shcc
1395 tool="$rootdir/tools/scramble"
1396 output="archos.mod"
1397 appextra="player:gui"
1398 archosrom="$pwd/rombox.ucl"
1399 flash="$pwd/rockbox.ucl"
1400 plugins="yes"
1401 swcodec=""
1403 # toolset is the tools within the tools directory that we build for
1404 # this particular target.
1405 toolset="$toolset scramble descramble sh2d player_unifont uclpack"
1407 # Note: the convbdf is present in the toolset just because: 1) the
1408 # firmware/Makefile assumes it is present always, and 2) we will need it when we
1409 # build the player simulator
1411 t_cpu="sh"
1412 t_manufacturer="archos"
1413 t_model="player"
1416 1|archosrecorder)
1417 target_id=2
1418 modelname="archosrecorder"
1419 target="ARCHOS_RECORDER"
1420 shcc
1421 tool="$rootdir/tools/scramble"
1422 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1423 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1424 output="ajbrec.ajz"
1425 appextra="recorder:gui:radio"
1426 #archosrom="$pwd/rombox.ucl"
1427 flash="$pwd/rockbox.ucl"
1428 plugins="yes"
1429 swcodec=""
1430 # toolset is the tools within the tools directory that we build for
1431 # this particular target.
1432 toolset=$archosbitmaptools
1433 t_cpu="sh"
1434 t_manufacturer="archos"
1435 t_model="recorder"
1438 2|archosfmrecorder)
1439 target_id=3
1440 modelname="archosfmrecorder"
1441 target="ARCHOS_FMRECORDER"
1442 shcc
1443 tool="$rootdir/tools/scramble -fm"
1444 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1445 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1446 output="ajbrec.ajz"
1447 appextra="recorder:gui:radio"
1448 #archosrom="$pwd/rombox.ucl"
1449 flash="$pwd/rockbox.ucl"
1450 plugins="yes"
1451 swcodec=""
1452 # toolset is the tools within the tools directory that we build for
1453 # this particular target.
1454 toolset=$archosbitmaptools
1455 t_cpu="sh"
1456 t_manufacturer="archos"
1457 t_model="fm_v2"
1460 3|archosrecorderv2)
1461 target_id=4
1462 modelname="archosrecorderv2"
1463 target="ARCHOS_RECORDERV2"
1464 shcc
1465 tool="$rootdir/tools/scramble -v2"
1466 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1467 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1468 output="ajbrec.ajz"
1469 appextra="recorder:gui:radio"
1470 #archosrom="$pwd/rombox.ucl"
1471 flash="$pwd/rockbox.ucl"
1472 plugins="yes"
1473 swcodec=""
1474 # toolset is the tools within the tools directory that we build for
1475 # this particular target.
1476 toolset=$archosbitmaptools
1477 t_cpu="sh"
1478 t_manufacturer="archos"
1479 t_model="fm_v2"
1482 4|archosondiosp)
1483 target_id=7
1484 modelname="archosondiosp"
1485 target="ARCHOS_ONDIOSP"
1486 shcc
1487 tool="$rootdir/tools/scramble -osp"
1488 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1489 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1490 output="ajbrec.ajz"
1491 appextra="recorder:gui:radio"
1492 #archosrom="$pwd/rombox.ucl"
1493 flash="$pwd/rockbox.ucl"
1494 plugins="yes"
1495 swcodec=""
1496 # toolset is the tools within the tools directory that we build for
1497 # this particular target.
1498 toolset=$archosbitmaptools
1499 t_cpu="sh"
1500 t_manufacturer="archos"
1501 t_model="ondio"
1504 5|archosondiofm)
1505 target_id=8
1506 modelname="archosondiofm"
1507 target="ARCHOS_ONDIOFM"
1508 shcc
1509 tool="$rootdir/tools/scramble -ofm"
1510 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1511 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1512 output="ajbrec.ajz"
1513 appextra="recorder:gui:radio"
1514 #archosrom="$pwd/rombox.ucl"
1515 flash="$pwd/rockbox.ucl"
1516 plugins="yes"
1517 swcodec=""
1518 toolset=$archosbitmaptools
1519 t_cpu="sh"
1520 t_manufacturer="archos"
1521 t_model="ondio"
1524 6|archosav300)
1525 target_id=38
1526 modelname="archosav300"
1527 target="ARCHOS_AV300"
1528 memory=16 # always
1529 arm7tdmicc
1530 tool="$rootdir/tools/scramble -mm=C"
1531 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1532 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
1533 output="cjbm.ajz"
1534 appextra="recorder:gui:radio"
1535 plugins="yes"
1536 swcodec=""
1537 # toolset is the tools within the tools directory that we build for
1538 # this particular target.
1539 toolset="$toolset scramble descramble bmp2rb"
1540 # architecture, manufacturer and model for the target-tree build
1541 t_cpu="arm"
1542 t_manufacturer="archos"
1543 t_model="av300"
1546 10|iriverh120)
1547 target_id=9
1548 modelname="iriverh120"
1549 target="IRIVER_H120"
1550 memory=32 # always
1551 coldfirecc
1552 tool="$rootdir/tools/scramble -add=h120"
1553 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1554 bmp2rb_native="$rootdir/tools/bmp2rb -f 2"
1555 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
1556 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0"
1557 output="rockbox.iriver"
1558 bootoutput="bootloader.iriver"
1559 appextra="recorder:gui:radio"
1560 flash="$pwd/rombox.iriver"
1561 plugins="yes"
1562 swcodec="yes"
1563 # toolset is the tools within the tools directory that we build for
1564 # this particular target.
1565 toolset=$iriverbitmaptools
1566 t_cpu="coldfire"
1567 t_manufacturer="iriver"
1568 t_model="h100"
1571 11|iriverh300)
1572 target_id=10
1573 modelname="iriverh300"
1574 target="IRIVER_H300"
1575 memory=32 # always
1576 coldfirecc
1577 tool="$rootdir/tools/scramble -add=h300"
1578 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1579 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1580 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
1581 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0"
1582 output="rockbox.iriver"
1583 appextra="recorder:gui:radio"
1584 plugins="yes"
1585 swcodec="yes"
1586 # toolset is the tools within the tools directory that we build for
1587 # this particular target.
1588 toolset=$iriverbitmaptools
1589 t_cpu="coldfire"
1590 t_manufacturer="iriver"
1591 t_model="h300"
1594 12|iriverh100)
1595 target_id=11
1596 modelname="iriverh100"
1597 target="IRIVER_H100"
1598 memory=16 # always
1599 coldfirecc
1600 tool="$rootdir/tools/scramble -add=h100"
1601 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1602 bmp2rb_native="$rootdir/tools/bmp2rb -f 2"
1603 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
1604 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0"
1605 output="rockbox.iriver"
1606 bootoutput="bootloader.iriver"
1607 appextra="recorder:gui:radio"
1608 flash="$pwd/rombox.iriver"
1609 plugins="yes"
1610 swcodec="yes"
1611 # toolset is the tools within the tools directory that we build for
1612 # this particular target.
1613 toolset=$iriverbitmaptools
1614 t_cpu="coldfire"
1615 t_manufacturer="iriver"
1616 t_model="h100"
1619 13|iriverifp7xx)
1620 target_id=19
1621 modelname="iriverifp7xx"
1622 target="IRIVER_IFP7XX"
1623 memory=1
1624 arm7tdmicc short
1625 tool="cp"
1626 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1627 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1628 output="rockbox.wma"
1629 appextra="recorder:gui:radio"
1630 plugins="yes"
1631 swcodec="yes"
1632 # toolset is the tools within the tools directory that we build for
1633 # this particular target.
1634 toolset=$genericbitmaptools
1635 t_cpu="arm"
1636 t_manufacturer="pnx0101"
1637 t_model="iriver-ifp7xx"
1640 14|iriverh10)
1641 target_id=22
1642 modelname="iriverh10"
1643 target="IRIVER_H10"
1644 memory=32 # always
1645 arm7tdmicc
1646 tool="$rootdir/tools/scramble -mi4v3 -model=h10 -type=RBOS"
1647 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1648 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
1649 output="rockbox.mi4"
1650 appextra="recorder:gui:radio"
1651 plugins="yes"
1652 swcodec="yes"
1653 boottool="$rootdir/tools/scramble -mi4v3 -model=h10 -type=RBBL"
1654 bootoutput="H10_20GC.mi4"
1655 # toolset is the tools within the tools directory that we build for
1656 # this particular target.
1657 toolset=$scramblebitmaptools
1658 # architecture, manufacturer and model for the target-tree build
1659 t_cpu="arm"
1660 t_soc="pp"
1661 t_manufacturer="iriver"
1662 t_model="h10"
1665 15|iriverh10_5gb)
1666 target_id=24
1667 modelname="iriverh10_5gb"
1668 target="IRIVER_H10_5GB"
1669 memory=32 # always
1670 arm7tdmicc
1671 tool="$rootdir/tools/scramble -mi4v2 -model=h105 -type=RBOS"
1672 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1673 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
1674 output="rockbox.mi4"
1675 appextra="recorder:gui:radio"
1676 plugins="yes"
1677 swcodec="yes"
1678 boottool="$rootdir/tools/scramble -mi4v2 -model=h105 -type=RBBL"
1679 bootoutput="H10.mi4"
1680 # toolset is the tools within the tools directory that we build for
1681 # this particular target.
1682 toolset=$scramblebitmaptools
1683 # architecture, manufacturer and model for the target-tree build
1684 t_cpu="arm"
1685 t_soc="pp"
1686 t_manufacturer="iriver"
1687 t_model="h10"
1690 20|ipodcolor)
1691 target_id=13
1692 modelname="ipodcolor"
1693 target="IPOD_COLOR"
1694 memory=32 # always
1695 arm7tdmicc
1696 tool="$rootdir/tools/scramble -add=ipco"
1697 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1698 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
1699 output="rockbox.ipod"
1700 appextra="recorder:gui:radio"
1701 plugins="yes"
1702 swcodec="yes"
1703 bootoutput="bootloader-$modelname.ipod"
1704 # toolset is the tools within the tools directory that we build for
1705 # this particular target.
1706 toolset=$ipodbitmaptools
1707 # architecture, manufacturer and model for the target-tree build
1708 t_cpu="arm"
1709 t_soc="pp"
1710 t_manufacturer="ipod"
1711 t_model="color"
1714 21|ipodnano1g)
1715 target_id=14
1716 modelname="ipodnano1g"
1717 target="IPOD_NANO"
1718 memory=32 # always
1719 arm7tdmicc
1720 tool="$rootdir/tools/scramble -add=nano"
1721 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1722 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
1723 output="rockbox.ipod"
1724 appextra="recorder:gui:radio"
1725 plugins="yes"
1726 swcodec="yes"
1727 bootoutput="bootloader-$modelname.ipod"
1728 # toolset is the tools within the tools directory that we build for
1729 # this particular target.
1730 toolset=$ipodbitmaptools
1731 # architecture, manufacturer and model for the target-tree build
1732 t_cpu="arm"
1733 t_soc="pp"
1734 t_manufacturer="ipod"
1735 t_model="nano"
1738 22|ipodvideo)
1739 target_id=15
1740 modelname="ipodvideo"
1741 target="IPOD_VIDEO"
1742 memory=64 # always. This is reduced at runtime if needed
1743 arm7tdmicc
1744 tool="$rootdir/tools/scramble -add=ipvd"
1745 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1746 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1747 output="rockbox.ipod"
1748 appextra="recorder:gui:radio"
1749 plugins="yes"
1750 swcodec="yes"
1751 bootoutput="bootloader-$modelname.ipod"
1752 # toolset is the tools within the tools directory that we build for
1753 # this particular target.
1754 toolset=$ipodbitmaptools
1755 # architecture, manufacturer and model for the target-tree build
1756 t_cpu="arm"
1757 t_soc="pp"
1758 t_manufacturer="ipod"
1759 t_model="video"
1762 23|ipod3g)
1763 target_id=16
1764 modelname="ipod3g"
1765 target="IPOD_3G"
1766 memory=32 # always
1767 arm7tdmicc
1768 tool="$rootdir/tools/scramble -add=ip3g"
1769 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1770 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
1771 output="rockbox.ipod"
1772 appextra="recorder:gui:radio"
1773 plugins="yes"
1774 swcodec="yes"
1775 bootoutput="bootloader-$modelname.ipod"
1776 # toolset is the tools within the tools directory that we build for
1777 # this particular target.
1778 toolset=$ipodbitmaptools
1779 # architecture, manufacturer and model for the target-tree build
1780 t_cpu="arm"
1781 t_soc="pp"
1782 t_manufacturer="ipod"
1783 t_model="3g"
1786 24|ipod4g)
1787 target_id=17
1788 modelname="ipod4g"
1789 target="IPOD_4G"
1790 memory=32 # always
1791 arm7tdmicc
1792 tool="$rootdir/tools/scramble -add=ip4g"
1793 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1794 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
1795 output="rockbox.ipod"
1796 appextra="recorder:gui:radio"
1797 plugins="yes"
1798 swcodec="yes"
1799 bootoutput="bootloader-$modelname.ipod"
1800 # toolset is the tools within the tools directory that we build for
1801 # this particular target.
1802 toolset=$ipodbitmaptools
1803 # architecture, manufacturer and model for the target-tree build
1804 t_cpu="arm"
1805 t_soc="pp"
1806 t_manufacturer="ipod"
1807 t_model="4g"
1810 25|ipodmini1g)
1811 target_id=18
1812 modelname="ipodmini1g"
1813 target="IPOD_MINI"
1814 memory=32 # always
1815 arm7tdmicc
1816 tool="$rootdir/tools/scramble -add=mini"
1817 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1818 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
1819 output="rockbox.ipod"
1820 appextra="recorder:gui:radio"
1821 plugins="yes"
1822 swcodec="yes"
1823 bootoutput="bootloader-$modelname.ipod"
1824 # toolset is the tools within the tools directory that we build for
1825 # this particular target.
1826 toolset=$ipodbitmaptools
1827 # architecture, manufacturer and model for the target-tree build
1828 t_cpu="arm"
1829 t_soc="pp"
1830 t_manufacturer="ipod"
1831 t_model="mini"
1834 26|ipodmini2g)
1835 target_id=21
1836 modelname="ipodmini2g"
1837 target="IPOD_MINI2G"
1838 memory=32 # always
1839 arm7tdmicc
1840 tool="$rootdir/tools/scramble -add=mn2g"
1841 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1842 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
1843 output="rockbox.ipod"
1844 appextra="recorder:gui:radio"
1845 plugins="yes"
1846 swcodec="yes"
1847 bootoutput="bootloader-$modelname.ipod"
1848 # toolset is the tools within the tools directory that we build for
1849 # this particular target.
1850 toolset=$ipodbitmaptools
1851 # architecture, manufacturer and model for the target-tree build
1852 t_cpu="arm"
1853 t_soc="pp"
1854 t_manufacturer="ipod"
1855 t_model="mini2g"
1858 27|ipod1g2g)
1859 target_id=29
1860 modelname="ipod1g2g"
1861 target="IPOD_1G2G"
1862 memory=32 # always
1863 arm7tdmicc
1864 tool="$rootdir/tools/scramble -add=1g2g"
1865 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1866 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
1867 output="rockbox.ipod"
1868 appextra="recorder:gui:radio"
1869 plugins="yes"
1870 swcodec="yes"
1871 bootoutput="bootloader-$modelname.ipod"
1872 # toolset is the tools within the tools directory that we build for
1873 # this particular target.
1874 toolset=$ipodbitmaptools
1875 # architecture, manufacturer and model for the target-tree build
1876 t_cpu="arm"
1877 t_soc="pp"
1878 t_manufacturer="ipod"
1879 t_model="1g2g"
1882 28|ipodnano2g)
1883 target_id=62
1884 modelname="ipodnano2g"
1885 target="IPOD_NANO2G"
1886 memory=32 # always
1887 arm940tcc
1888 tool="$rootdir/tools/scramble -add=nn2g"
1889 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1890 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1891 output="rockbox.ipod"
1892 appextra="recorder:gui:radio"
1893 plugins="yes"
1894 swcodec="yes"
1895 bootoutput="bootloader-$modelname.ipod"
1896 # toolset is the tools within the tools directory that we build for
1897 # this particular target.
1898 toolset=$ipodbitmaptools
1899 # architecture, manufacturer and model for the target-tree build
1900 t_cpu="arm"
1901 t_manufacturer="s5l8700"
1902 t_model="ipodnano2g"
1905 29|ipod6g)
1906 target_id=71
1907 modelname="ipod6g"
1908 target="IPOD_6G"
1909 memory=64 # always
1910 arm926ejscc
1911 tool="$rootdir/tools/scramble -add=ip6g"
1912 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1913 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1914 output="rockbox.ipod"
1915 appextra="recorder:gui:radio"
1916 plugins="yes"
1917 swcodec="yes"
1918 bootoutput="bootloader-$modelname.ipod"
1919 # toolset is the tools within the tools directory that we build for
1920 # this particular target.
1921 toolset=$ipodbitmaptools
1922 # architecture, manufacturer and model for the target-tree build
1923 t_cpu="arm"
1924 t_manufacturer="s5l8702"
1925 t_model="ipod6g"
1928 30|iaudiox5)
1929 target_id=12
1930 modelname="iaudiox5"
1931 target="IAUDIO_X5"
1932 memory=16 # always
1933 coldfirecc
1934 tool="$rootdir/tools/scramble -add=iax5"
1935 boottool="$rootdir/tools/scramble -iaudiox5"
1936 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1937 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1938 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
1939 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 7"
1940 output="rockbox.iaudio"
1941 bootoutput="x5_fw.bin"
1942 appextra="recorder:gui:radio"
1943 plugins="yes"
1944 swcodec="yes"
1945 # toolset is the tools within the tools directory that we build for
1946 # this particular target.
1947 toolset="$iaudiobitmaptools"
1948 # architecture, manufacturer and model for the target-tree build
1949 t_cpu="coldfire"
1950 t_manufacturer="iaudio"
1951 t_model="x5"
1954 31|iaudiom5)
1955 target_id=28
1956 modelname="iaudiom5"
1957 target="IAUDIO_M5"
1958 memory=16 # always
1959 coldfirecc
1960 tool="$rootdir/tools/scramble -add=iam5"
1961 boottool="$rootdir/tools/scramble -iaudiom5"
1962 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1963 bmp2rb_native="$rootdir/tools/bmp2rb -f 2"
1964 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
1965 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 7"
1966 output="rockbox.iaudio"
1967 bootoutput="m5_fw.bin"
1968 appextra="recorder:gui:radio"
1969 plugins="yes"
1970 swcodec="yes"
1971 # toolset is the tools within the tools directory that we build for
1972 # this particular target.
1973 toolset="$iaudiobitmaptools"
1974 # architecture, manufacturer and model for the target-tree build
1975 t_cpu="coldfire"
1976 t_manufacturer="iaudio"
1977 t_model="m5"
1980 32|iaudio7)
1981 target_id=32
1982 modelname="iaudio7"
1983 target="IAUDIO_7"
1984 memory=16 # always
1985 arm946cc
1986 tool="$rootdir/tools/scramble -add=i7"
1987 boottool="$rootdir/tools/scramble -tcc=crc"
1988 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1989 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1990 output="rockbox.iaudio"
1991 appextra="recorder:gui:radio"
1992 plugins="yes"
1993 swcodec="yes"
1994 bootoutput="I7_FW.BIN"
1995 # toolset is the tools within the tools directory that we build for
1996 # this particular target.
1997 toolset="$tccbitmaptools"
1998 # architecture, manufacturer and model for the target-tree build
1999 t_cpu="arm"
2000 t_manufacturer="tcc77x"
2001 t_model="iaudio7"
2004 33|cowond2)
2005 target_id=34
2006 modelname="cowond2"
2007 target="COWON_D2"
2008 memory=32
2009 arm926ejscc
2010 tool="$rootdir/tools/scramble -add=d2"
2011 boottool="cp "
2012 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2013 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2014 output="rockbox.d2"
2015 bootoutput="bootloader-cowond2.bin"
2016 appextra="recorder:gui:radio"
2017 plugins="yes"
2018 swcodec="yes"
2019 toolset="$tccbitmaptools"
2020 # architecture, manufacturer and model for the target-tree build
2021 t_cpu="arm"
2022 t_manufacturer="tcc780x"
2023 t_model="cowond2"
2026 34|iaudiom3)
2027 target_id=37
2028 modelname="iaudiom3"
2029 target="IAUDIO_M3"
2030 memory=16 # always
2031 coldfirecc
2032 tool="$rootdir/tools/scramble -add=iam3"
2033 boottool="$rootdir/tools/scramble -iaudiom3"
2034 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2035 bmp2rb_native="$rootdir/tools/bmp2rb -f 7"
2036 output="rockbox.iaudio"
2037 bootoutput="cowon_m3.bin"
2038 appextra="recorder:gui:radio"
2039 plugins="yes"
2040 swcodec="yes"
2041 # toolset is the tools within the tools directory that we build for
2042 # this particular target.
2043 toolset="$iaudiobitmaptools"
2044 # architecture, manufacturer and model for the target-tree build
2045 t_cpu="coldfire"
2046 t_manufacturer="iaudio"
2047 t_model="m3"
2050 40|gigabeatfx)
2051 target_id=20
2052 modelname="gigabeatfx"
2053 target="GIGABEAT_F"
2054 memory=32 # always
2055 arm9tdmicc
2056 tool="$rootdir/tools/scramble -add=giga"
2057 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2058 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2059 output="rockbox.gigabeat"
2060 appextra="recorder:gui:radio"
2061 plugins="yes"
2062 swcodec="yes"
2063 toolset=$gigabeatbitmaptools
2064 boottool="$rootdir/tools/scramble -gigabeat"
2065 bootoutput="FWIMG01.DAT"
2066 # architecture, manufacturer and model for the target-tree build
2067 t_cpu="arm"
2068 t_manufacturer="s3c2440"
2069 t_model="gigabeat-fx"
2072 41|gigabeats)
2073 target_id=26
2074 modelname="gigabeats"
2075 target="GIGABEAT_S"
2076 memory=64
2077 arm1136jfscc
2078 tool="$rootdir/tools/scramble -add=gigs"
2079 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2080 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2081 output="rockbox.gigabeat"
2082 appextra="recorder:gui:radio"
2083 plugins="yes"
2084 swcodec="yes"
2085 toolset="$gigabeatbitmaptools"
2086 boottool="$rootdir/tools/scramble -gigabeats"
2087 bootoutput="nk.bin"
2088 # architecture, manufacturer and model for the target-tree build
2089 t_cpu="arm"
2090 t_manufacturer="imx31"
2091 t_model="gigabeat-s"
2094 70|mrobe500)
2095 target_id=36
2096 modelname="mrobe500"
2097 target="MROBE_500"
2098 memory=64 # always
2099 arm926ejscc
2100 tool="$rootdir/tools/scramble -add=m500"
2101 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2102 bmp2rb_native="$rootdir/tools/bmp2rb -f 8"
2103 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
2104 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0"
2105 output="rockbox.mrobe500"
2106 appextra="recorder:gui:radio"
2107 plugins="yes"
2108 swcodec="yes"
2109 toolset=$gigabeatbitmaptools
2110 boottool="cp "
2111 bootoutput="rockbox.mrboot"
2112 # architecture, manufacturer and model for the target-tree build
2113 t_cpu="arm"
2114 t_manufacturer="tms320dm320"
2115 t_model="mrobe-500"
2118 71|mrobe100)
2119 target_id=33
2120 modelname="mrobe100"
2121 target="MROBE_100"
2122 memory=32 # always
2123 arm7tdmicc
2124 tool="$rootdir/tools/scramble -mi4v2 -model=m100 -type=RBOS"
2125 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2126 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
2127 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
2128 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0"
2129 output="rockbox.mi4"
2130 appextra="recorder:gui:radio"
2131 plugins="yes"
2132 swcodec="yes"
2133 boottool="$rootdir/tools/scramble -mi4v2 -model=m100 -type=RBBL"
2134 bootoutput="pp5020.mi4"
2135 # toolset is the tools within the tools directory that we build for
2136 # this particular target.
2137 toolset=$scramblebitmaptools
2138 # architecture, manufacturer and model for the target-tree build
2139 t_cpu="arm"
2140 t_soc="pp"
2141 t_manufacturer="olympus"
2142 t_model="mrobe-100"
2145 80|logikdax)
2146 target_id=31
2147 modelname="logikdax"
2148 target="LOGIK_DAX"
2149 memory=2 # always
2150 arm946cc
2151 tool="$rootdir/tools/scramble -add=ldax"
2152 boottool="$rootdir/tools/scramble -tcc=crc"
2153 bootoutput="player.rom"
2154 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2155 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
2156 output="rockbox.logik"
2157 appextra="recorder:gui:radio"
2158 plugins=""
2159 swcodec="yes"
2160 # toolset is the tools within the tools directory that we build for
2161 # this particular target.
2162 toolset=$tccbitmaptools
2163 # architecture, manufacturer and model for the target-tree build
2164 t_cpu="arm"
2165 t_manufacturer="tcc77x"
2166 t_model="logikdax"
2169 90|zenvisionm30gb)
2170 target_id=35
2171 modelname="zenvisionm30gb"
2172 target="CREATIVE_ZVM"
2173 memory=64
2174 arm926ejscc
2175 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2176 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2177 tool="$rootdir/tools/scramble -creative=zvm"
2178 USE_ELF="yes"
2179 output="rockbox.zvm"
2180 appextra="recorder:gui:radio"
2181 plugins="yes"
2182 swcodec="yes"
2183 toolset=$ipodbitmaptools
2184 boottool="$rootdir/tools/scramble -creative=zvm -no-ciff"
2185 bootoutput="rockbox.zvmboot"
2186 # architecture, manufacturer and model for the target-tree build
2187 t_cpu="arm"
2188 t_manufacturer="tms320dm320"
2189 t_model="creative-zvm"
2192 91|zenvisionm60gb)
2193 target_id=40
2194 modelname="zenvisionm60gb"
2195 target="CREATIVE_ZVM60GB"
2196 memory=64
2197 arm926ejscc
2198 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2199 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2200 tool="$rootdir/tools/scramble -creative=zvm60 -no-ciff"
2201 USE_ELF="yes"
2202 output="rockbox.zvm60"
2203 appextra="recorder:gui:radio"
2204 plugins="yes"
2205 swcodec="yes"
2206 toolset=$ipodbitmaptools
2207 boottool="$rootdir/tools/scramble -creative=zvm60"
2208 bootoutput="rockbox.zvm60boot"
2209 # architecture, manufacturer and model for the target-tree build
2210 t_cpu="arm"
2211 t_manufacturer="tms320dm320"
2212 t_model="creative-zvm"
2215 92|zenvision)
2216 target_id=39
2217 modelname="zenvision"
2218 target="CREATIVE_ZV"
2219 memory=64
2220 arm926ejscc
2221 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2222 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2223 tool="$rootdir/tools/scramble -creative=zenvision -no-ciff"
2224 USE_ELF="yes"
2225 output="rockbox.zv"
2226 appextra="recorder:gui:radio"
2227 plugins=""
2228 swcodec="yes"
2229 toolset=$ipodbitmaptools
2230 boottool="$rootdir/tools/scramble -creative=zenvision"
2231 bootoutput="rockbox.zvboot"
2232 # architecture, manufacturer and model for the target-tree build
2233 t_cpu="arm"
2234 t_manufacturer="tms320dm320"
2235 t_model="creative-zvm"
2238 93|creativezenxfi2)
2239 target_id=80
2240 modelname="creativezenxfi2"
2241 target="CREATIVE_ZENXFI2"
2242 memory=64
2243 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2244 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2245 tool="$rootdir/tools/scramble -add=zxf2"
2246 output="rockbox.creative"
2247 bootoutput="bootloader-zenxfi2.creative"
2248 appextra="gui:recorder:radio"
2249 plugins=""
2250 swcodec="yes"
2251 toolset=$scramblebitmaptools
2252 t_cpu="arm"
2253 t_manufacturer="imx233"
2254 t_model="creative-zenxfi2"
2255 arm926ejscc
2258 94|creativezenxfi3)
2259 target_id=81
2260 modelname="creativezenxfi3"
2261 target="CREATIVE_ZENXFI3"
2262 memory=64
2263 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2264 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2265 tool="$rootdir/tools/scramble -add=zxf3"
2266 output="rockbox.creative"
2267 bootoutput="bootloader-zenxfi3.creative"
2268 appextra="gui:recorder:radio"
2269 plugins=""
2270 swcodec="yes"
2271 toolset=$scramblebitmaptools
2272 t_cpu="arm"
2273 t_manufacturer="imx233"
2274 t_model="creative-zenxfi3"
2275 arm926ejscc
2278 50|sansae200)
2279 target_id=23
2280 modelname="sansae200"
2281 target="SANSA_E200"
2282 memory=32 # supposedly
2283 arm7tdmicc
2284 tool="$rootdir/tools/scramble -mi4v3 -model=e200 -type=RBOS"
2285 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2286 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2287 output="rockbox.mi4"
2288 appextra="recorder:gui:radio"
2289 plugins="yes"
2290 swcodec="yes"
2291 boottool="$rootdir/tools/scramble -mi4v3 -model=e200 -type=RBBL"
2292 bootoutput="PP5022.mi4"
2293 # toolset is the tools within the tools directory that we build for
2294 # this particular target.
2295 toolset=$scramblebitmaptools
2296 # architecture, manufacturer and model for the target-tree build
2297 t_cpu="arm"
2298 t_soc="pp"
2299 t_manufacturer="sandisk"
2300 t_model="sansa-e200"
2303 51|sansae200r)
2304 # the e200R model is pretty much identical to the e200, it only has a
2305 # different option to the scramble tool when building a bootloader and
2306 # makes the bootloader output file name in all lower case.
2307 target_id=27
2308 modelname="sansae200r"
2309 target="SANSA_E200"
2310 memory=32 # supposedly
2311 arm7tdmicc
2312 tool="$rootdir/tools/scramble -mi4v3 -model=e20r -type=RBOS"
2313 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2314 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2315 output="rockbox.mi4"
2316 appextra="recorder:gui:radio"
2317 plugins="yes"
2318 swcodec="yes"
2319 boottool="$rootdir/tools/scramble -mi4r -model=e20r -type=RBBL"
2320 bootoutput="pp5022.mi4"
2321 # toolset is the tools within the tools directory that we build for
2322 # this particular target.
2323 toolset=$scramblebitmaptools
2324 # architecture, manufacturer and model for the target-tree build
2325 t_cpu="arm"
2326 t_soc="pp"
2327 t_manufacturer="sandisk"
2328 t_model="sansa-e200"
2331 52|sansac200)
2332 target_id=30
2333 modelname="sansac200"
2334 target="SANSA_C200"
2335 memory=32 # supposedly
2336 arm7tdmicc
2337 tool="$rootdir/tools/scramble -mi4v3 -model=c200 -type=RBOS"
2338 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2339 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2340 output="rockbox.mi4"
2341 appextra="recorder:gui:radio"
2342 plugins="yes"
2343 swcodec="yes"
2344 boottool="$rootdir/tools/scramble -mi4v3 -model=c200 -type=RBBL"
2345 bootoutput="firmware.mi4"
2346 # toolset is the tools within the tools directory that we build for
2347 # this particular target.
2348 toolset=$scramblebitmaptools
2349 # architecture, manufacturer and model for the target-tree build
2350 t_cpu="arm"
2351 t_soc="pp"
2352 t_manufacturer="sandisk"
2353 t_model="sansa-c200"
2356 53|sansam200)
2357 target_id=48
2358 modelname="sansam200"
2359 target="SANSA_M200"
2360 memory=1 # always
2361 arm946cc
2362 tool="$rootdir/tools/scramble -add=m200"
2363 boottool="$rootdir/tools/scramble -tcc=crc"
2364 bootoutput="player.rom"
2365 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2366 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
2367 output="rockbox.m200"
2368 appextra="recorder:gui:radio"
2369 plugins=""
2370 swcodec="yes"
2371 # toolset is the tools within the tools directory that we build for
2372 # this particular target.
2373 toolset=$tccbitmaptools
2374 # architecture, manufacturer and model for the target-tree build
2375 t_cpu="arm"
2376 t_manufacturer="tcc77x"
2377 t_model="m200"
2380 54|sansac100)
2381 target_id=42
2382 modelname="sansac100"
2383 target="SANSA_C100"
2384 memory=2
2385 arm946cc
2386 tool="$rootdir/tools/scramble -add=c100"
2387 boottool="$rootdir/tools/scramble -tcc=crc"
2388 bootoutput="player.rom"
2389 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2390 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2391 output="rockbox.c100"
2392 appextra="recorder:gui:radio"
2393 plugins=""
2394 swcodec="yes"
2395 # toolset is the tools within the tools directory that we build for
2396 # this particular target.
2397 toolset=$tccbitmaptools
2398 # architecture, manufacturer and model for the target-tree build
2399 t_cpu="arm"
2400 t_manufacturer="tcc77x"
2401 t_model="c100"
2404 55|sansaclip)
2405 target_id=50
2406 modelname="sansaclip"
2407 target="SANSA_CLIP"
2408 memory=2
2409 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2410 bmp2rb_native="$bmp2rb_mono"
2411 tool="$rootdir/tools/scramble -add=clip"
2412 output="rockbox.sansa"
2413 bootoutput="bootloader-clip.sansa"
2414 appextra="recorder:gui:radio"
2415 plugins="yes"
2416 swcodec="yes"
2417 toolset=$scramblebitmaptools
2418 t_cpu="arm"
2419 t_manufacturer="as3525"
2420 t_model="sansa-clip"
2421 if [ "$ARG_ARM_THUMB" != 0 ]; then ARG_ARM_THUMB=1; fi
2422 arm9tdmicc
2423 GCCOPTS=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2427 56|sansae200v2)
2428 target_id=51
2429 modelname="sansae200v2"
2430 target="SANSA_E200V2"
2431 memory=8
2432 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2433 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2434 tool="$rootdir/tools/scramble -add=e2v2"
2435 output="rockbox.sansa"
2436 bootoutput="bootloader-e200v2.sansa"
2437 appextra="recorder:gui:radio"
2438 plugins="yes"
2439 swcodec="yes"
2440 toolset=$scramblebitmaptools
2441 t_cpu="arm"
2442 t_manufacturer="as3525"
2443 t_model="sansa-e200v2"
2444 arm9tdmicc
2448 57|sansam200v4)
2449 target_id=52
2450 modelname="sansam200v4"
2451 target="SANSA_M200V4"
2452 memory=2
2453 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2454 bmp2rb_native="$bmp2rb_mono"
2455 tool="$rootdir/tools/scramble -add=m2v4"
2456 output="rockbox.sansa"
2457 bootoutput="bootloader-m200v4.sansa"
2458 appextra="recorder:gui:radio"
2459 plugins="yes"
2460 swcodec="yes"
2461 toolset=$scramblebitmaptools
2462 t_cpu="arm"
2463 t_manufacturer="as3525"
2464 t_model="sansa-m200v4"
2465 if [ "$ARG_ARM_THUMB" != 0 ]; then ARG_ARM_THUMB=1; fi
2466 arm9tdmicc
2467 GCCOPTS=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2471 58|sansafuze)
2472 target_id=53
2473 modelname="sansafuze"
2474 target="SANSA_FUZE"
2475 memory=8
2476 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2477 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2478 tool="$rootdir/tools/scramble -add=fuze"
2479 output="rockbox.sansa"
2480 bootoutput="bootloader-fuze.sansa"
2481 appextra="recorder:gui:radio"
2482 plugins="yes"
2483 swcodec="yes"
2484 toolset=$scramblebitmaptools
2485 t_cpu="arm"
2486 t_manufacturer="as3525"
2487 t_model="sansa-fuze"
2488 arm9tdmicc
2492 59|sansac200v2)
2493 target_id=55
2494 modelname="sansac200v2"
2495 target="SANSA_C200V2"
2496 memory=2 # as per OF diagnosis mode
2497 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2498 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2499 tool="$rootdir/tools/scramble -add=c2v2"
2500 output="rockbox.sansa"
2501 bootoutput="bootloader-c200v2.sansa"
2502 appextra="recorder:gui:radio"
2503 plugins="yes"
2504 swcodec="yes"
2505 # toolset is the tools within the tools directory that we build for
2506 # this particular target.
2507 toolset=$scramblebitmaptools
2508 # architecture, manufacturer and model for the target-tree build
2509 t_cpu="arm"
2510 t_manufacturer="as3525"
2511 t_model="sansa-c200v2"
2512 if [ "$ARG_ARM_THUMB" != 0 ]; then ARG_ARM_THUMB=1; fi
2513 arm9tdmicc
2514 GCCOPTS=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2517 60|sansaclipv2)
2518 target_id=60
2519 modelname="sansaclipv2"
2520 target="SANSA_CLIPV2"
2521 memory=8
2522 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2523 bmp2rb_native="$bmp2rb_mono"
2524 tool="$rootdir/tools/scramble -add=clv2"
2525 output="rockbox.sansa"
2526 bootoutput="bootloader-clipv2.sansa"
2527 appextra="recorder:gui:radio"
2528 plugins="yes"
2529 swcodec="yes"
2530 toolset=$scramblebitmaptools
2531 t_cpu="arm"
2532 t_manufacturer="as3525"
2533 t_model="sansa-clipv2"
2534 arm926ejscc
2537 61|sansaview)
2538 echo "Sansa View is not yet supported!"
2539 exit 1
2540 target_id=63
2541 modelname="sansaview"
2542 target="SANSA_VIEW"
2543 memory=32
2544 arm1176jzscc
2545 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2546 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2547 output="rockbox.mi4"
2548 appextra="gui"
2549 plugins=""
2550 swcodec="yes"
2551 boottool="$rootdir/tools/scramble -mi4v3 -model=view -type=RBBL"
2552 bootoutput="firmware.mi4"
2553 # toolset is the tools within the tools directory that we build for
2554 # this particular target.
2555 toolset=$scramblebitmaptools
2556 t_cpu="arm"
2557 t_soc="pp"
2558 t_manufacturer="sandisk"
2559 t_model="sansa-view"
2562 62|sansaclipplus)
2563 target_id=66
2564 modelname="sansaclipplus"
2565 target="SANSA_CLIPPLUS"
2566 memory=8
2567 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2568 bmp2rb_native="$bmp2rb_mono"
2569 tool="$rootdir/tools/scramble -add=cli+"
2570 output="rockbox.sansa"
2571 bootoutput="bootloader-clipplus.sansa"
2572 appextra="recorder:gui:radio"
2573 plugins="yes"
2574 swcodec="yes"
2575 toolset=$scramblebitmaptools
2576 t_cpu="arm"
2577 t_manufacturer="as3525"
2578 t_model="sansa-clipplus"
2579 arm926ejscc
2582 63|sansafuzev2)
2583 target_id=68
2584 modelname="sansafuzev2"
2585 target="SANSA_FUZEV2"
2586 memory=8 # not sure
2587 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2588 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
2589 tool="$rootdir/tools/scramble -add=fuz2"
2590 output="rockbox.sansa"
2591 bootoutput="bootloader-fuzev2.sansa"
2592 appextra="recorder:gui:radio"
2593 plugins="yes"
2594 swcodec="yes"
2595 toolset=$scramblebitmaptools
2596 t_cpu="arm"
2597 t_manufacturer="as3525"
2598 t_model="sansa-fuzev2"
2599 arm926ejscc
2602 64|sansafuzeplus)
2603 target_id=80
2604 modelname="sansafuzeplus"
2605 target="SANSA_FUZEPLUS"
2606 memory=64
2607 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2608 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2609 tool="$rootdir/tools/scramble -add=fuz+"
2610 output="rockbox.sansa"
2611 bootoutput="bootloader-fuzeplus.sansa"
2612 appextra="gui:recorder:radio"
2613 plugins="yes"
2614 swcodec="yes"
2615 toolset=$scramblebitmaptools
2616 t_cpu="arm"
2617 t_manufacturer="imx233"
2618 t_model="sansa-fuzeplus"
2619 arm926ejscc
2622 65|sansaclipzip)
2623 target_id=68
2624 modelname="sansaclipzip"
2625 target="SANSA_CLIPZIP"
2626 memory=8 # not sure
2627 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2628 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2629 tool="$rootdir/tools/scramble -add=clzp"
2630 output="rockbox.sansa"
2631 bootoutput="bootloader-clipzip.sansa"
2632 appextra="recorder:gui:radio"
2633 plugins="yes"
2634 swcodec="yes"
2635 toolset=$scramblebitmaptools
2636 t_cpu="arm"
2637 t_manufacturer="as3525"
2638 t_model="sansa-clipzip"
2639 arm926ejscc
2642 66|sansaconnect)
2643 target_id=81
2644 modelname="sansaconnect"
2645 target="SANSA_CONNECT"
2646 memory=64
2647 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2648 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2649 tool="$rootdir/tools/scramble -add=conn"
2650 output="rockbox.sansa"
2651 bootoutput="bootloader-connect.sansa"
2652 appextra="recorder:gui"
2653 plugins="yes"
2654 swcodec="yes"
2655 toolset=$scramblebitmaptools
2656 t_cpu="arm"
2657 t_manufacturer="tms320dm320"
2658 t_model="sansa-connect"
2659 arm926ejscc
2662 150|tatungtpj1022)
2663 target_id=25
2664 modelname="tatungtpj1022"
2665 target="TATUNG_TPJ1022"
2666 memory=32 # always
2667 arm7tdmicc
2668 tool="$rootdir/tools/scramble -add tpj2"
2669 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2670 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
2671 output="rockbox.elio"
2672 appextra="recorder:gui:radio"
2673 plugins="yes"
2674 swcodec="yes"
2675 boottool="$rootdir/tools/scramble -mi4v2"
2676 bootoutput="pp5020.mi4"
2677 # toolset is the tools within the tools directory that we build for
2678 # this particular target.
2679 toolset=$scramblebitmaptools
2680 # architecture, manufacturer and model for the target-tree build
2681 t_cpu="arm"
2682 t_soc="pp"
2683 t_manufacturer="tatung"
2684 t_model="tpj1022"
2687 100|gogearsa9200)
2688 target_id=41
2689 modelname="gogearsa9200"
2690 target="PHILIPS_SA9200"
2691 memory=32 # supposedly
2692 arm7tdmicc
2693 tool="$rootdir/tools/scramble -mi4v3 -model=9200 -type=RBOS"
2694 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2695 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2696 output="rockbox.mi4"
2697 appextra="recorder:gui:radio"
2698 plugins="yes"
2699 swcodec="yes"
2700 boottool="$rootdir/tools/scramble -mi4v3 -model=9200 -type=RBBL"
2701 bootoutput="FWImage.ebn"
2702 # toolset is the tools within the tools directory that we build for
2703 # this particular target.
2704 toolset=$scramblebitmaptools
2705 # architecture, manufacturer and model for the target-tree build
2706 t_cpu="arm"
2707 t_soc="pp"
2708 t_manufacturer="philips"
2709 t_model="sa9200"
2712 101|gogearhdd1630)
2713 target_id=43
2714 modelname="gogearhdd1630"
2715 target="PHILIPS_HDD1630"
2716 memory=32 # supposedly
2717 arm7tdmicc
2718 tool="$rootdir/tools/scramble -mi4v3 -model=1630 -type=RBOS"
2719 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2720 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2721 output="rockbox.mi4"
2722 appextra="recorder:gui:radio"
2723 plugins="yes"
2724 swcodec="yes"
2725 boottool="$rootdir/tools/scramble -mi4v3 -model=1630 -type=RBBL"
2726 bootoutput="FWImage.ebn"
2727 # toolset is the tools within the tools directory that we build for
2728 # this particular target.
2729 toolset=$scramblebitmaptools
2730 # architecture, manufacturer and model for the target-tree build
2731 t_cpu="arm"
2732 t_soc="pp"
2733 t_manufacturer="philips"
2734 t_model="hdd1630"
2737 102|gogearhdd6330)
2738 target_id=65
2739 modelname="gogearhdd6330"
2740 target="PHILIPS_HDD6330"
2741 memory=64 # always
2742 arm7tdmicc
2743 tool="$rootdir/tools/scramble -mi4v3 -model=6330 -type=RBOS"
2744 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2745 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
2746 output="rockbox.mi4"
2747 appextra="recorder:gui:radio"
2748 plugins="yes"
2749 swcodec="yes"
2750 boottool="$rootdir/tools/scramble -mi4v3 -model=6330 -type=RBBL"
2751 bootoutput="FWImage.ebn"
2752 # toolset is the tools within the tools directory that we build for
2753 # this particular target.
2754 toolset=$scramblebitmaptools
2755 # architecture, manufacturer and model for the target-tree build
2756 t_cpu="arm"
2757 t_soc="pp"
2758 t_manufacturer="philips"
2759 t_model="hdd6330"
2762 110|meizum6sl)
2763 target_id=49
2764 modelname="meizum6sl"
2765 target="MEIZU_M6SL"
2766 memory=16 # always
2767 arm940tbecc
2768 tool="cp"
2769 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2770 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2771 output="rockbox.meizu"
2772 appextra="recorder:gui:radio"
2773 plugins="no" #FIXME
2774 swcodec="yes"
2775 toolset=$genericbitmaptools
2776 boottool="cp"
2777 bootoutput="rockboot.ebn"
2778 # architecture, manufacturer and model for the target-tree build
2779 t_cpu="arm"
2780 t_manufacturer="s5l8700"
2781 t_model="meizu-m6sl"
2784 111|meizum6sp)
2785 target_id=46
2786 modelname="meizum6sp"
2787 target="MEIZU_M6SP"
2788 memory=16 # always
2789 arm940tbecc
2790 tool="cp"
2791 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2792 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2793 output="rockbox.meizu"
2794 appextra="recorder:gui:radio"
2795 plugins="no" #FIXME
2796 swcodec="yes"
2797 toolset=$genericbitmaptools
2798 boottool="cp"
2799 bootoutput="rockboot.ebn"
2800 # architecture, manufacturer and model for the target-tree build
2801 t_cpu="arm"
2802 t_manufacturer="s5l8700"
2803 t_model="meizu-m6sp"
2806 112|meizum3)
2807 target_id=47
2808 modelname="meizum3"
2809 target="MEIZU_M3"
2810 memory=16 # always
2811 arm940tbecc
2812 tool="cp"
2813 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2814 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2815 output="rockbox.meizu"
2816 appextra="recorder:gui:radio"
2817 plugins="no" #FIXME
2818 swcodec="yes"
2819 toolset=$genericbitmaptools
2820 boottool="cp"
2821 bootoutput="rockboot.ebn"
2822 # architecture, manufacturer and model for the target-tree build
2823 t_cpu="arm"
2824 t_manufacturer="s5l8700"
2825 t_model="meizu-m3"
2828 120|ondavx747)
2829 target_id=45
2830 modelname="ondavx747"
2831 target="ONDA_VX747"
2832 memory=16
2833 mipselcc
2834 tool="$rootdir/tools/scramble -add=x747"
2835 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2836 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2837 output="rockbox.vx747"
2838 appextra="recorder:gui:radio"
2839 plugins="yes"
2840 swcodec="yes"
2841 toolset=$genericbitmaptools
2842 boottool="$rootdir/tools/scramble -ccpmp"
2843 bootoutput="ccpmp.bin"
2844 # architecture, manufacturer and model for the target-tree build
2845 t_cpu="mips"
2846 t_manufacturer="ingenic_jz47xx"
2847 t_model="onda_vx747"
2850 121|ondavx767)
2851 target_id=64
2852 modelname="ondavx767"
2853 target="ONDA_VX767"
2854 memory=16 #FIXME
2855 mipselcc
2856 tool="cp"
2857 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2858 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2859 output="rockbox.vx767"
2860 appextra="recorder:gui:radio"
2861 plugins="" #FIXME
2862 swcodec="yes"
2863 toolset=$genericbitmaptools
2864 boottool="$rootdir/tools/scramble -ccpmp"
2865 bootoutput="ccpmp.bin"
2866 # architecture, manufacturer and model for the target-tree build
2867 t_cpu="mips"
2868 t_manufacturer="ingenic_jz47xx"
2869 t_model="onda_vx767"
2872 122|ondavx747p)
2873 target_id=54
2874 modelname="ondavx747p"
2875 target="ONDA_VX747P"
2876 memory=16
2877 mipselcc
2878 tool="$rootdir/tools/scramble -add=747p"
2879 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2880 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2881 output="rockbox.vx747p"
2882 appextra="recorder:gui:radio"
2883 plugins="yes"
2884 swcodec="yes"
2885 toolset=$genericbitmaptools
2886 boottool="$rootdir/tools/scramble -ccpmp"
2887 bootoutput="ccpmp.bin"
2888 # architecture, manufacturer and model for the target-tree build
2889 t_cpu="mips"
2890 t_manufacturer="ingenic_jz47xx"
2891 t_model="onda_vx747"
2894 123|ondavx777)
2895 target_id=61
2896 modelname="ondavx777"
2897 target="ONDA_VX777"
2898 memory=16
2899 mipselcc
2900 tool="$rootdir/tools/scramble -add=x777"
2901 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2902 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2903 output="rockbox.vx777"
2904 appextra="recorder:gui:radio"
2905 plugins="yes"
2906 swcodec="yes"
2907 toolset=$genericbitmaptools
2908 boottool="$rootdir/tools/scramble -ccpmp"
2909 bootoutput="ccpmp.bin"
2910 # architecture, manufacturer and model for the target-tree build
2911 t_cpu="mips"
2912 t_manufacturer="ingenic_jz47xx"
2913 t_model="onda_vx747"
2916 130|lyreproto1)
2917 target_id=56
2918 modelname="lyreproto1"
2919 target="LYRE_PROTO1"
2920 memory=64
2921 arm926ejscc
2922 tool="cp"
2923 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2924 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2925 output="rockbox.lyre"
2926 appextra="recorder:gui:radio"
2927 plugins=""
2928 swcodec="yes"
2929 toolset=$scramblebitmaptools
2930 boottool="cp"
2931 bootoutput="bootloader-proto1.lyre"
2932 # architecture, manufacturer and model for the target-tree build
2933 t_cpu="arm"
2934 t_manufacturer="at91sam"
2935 t_model="lyre_proto1"
2938 131|mini2440)
2939 target_id=99
2940 modelname="mini2440"
2941 target="MINI2440"
2942 memory=64
2943 arm9tdmicc
2944 tool="$rootdir/tools/scramble -add=m244"
2945 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2946 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2947 output="rockbox.mini2440"
2948 appextra="recorder:gui:radio"
2949 plugins=""
2950 swcodec="yes"
2951 toolset=$scramblebitmaptools
2952 boottool="cp"
2953 bootoutput="bootloader-mini2440.lyre"
2954 # architecture, manufacturer and model for the target-tree build
2955 t_cpu="arm"
2956 t_manufacturer="s3c2440"
2957 t_model="mini2440"
2960 140|samsungyh820)
2961 target_id=57
2962 modelname="samsungyh820"
2963 target="SAMSUNG_YH820"
2964 memory=32 # always
2965 arm7tdmicc
2966 tool="$rootdir/tools/scramble -mi4v2 -model=y820 -type=RBOS"
2967 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2968 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2969 output="rockbox.mi4"
2970 appextra="recorder:gui:radio"
2971 plugins="yes"
2972 swcodec="yes"
2973 boottool="$rootdir/tools/scramble -mi4v2 -model=y820 -type=RBBL"
2974 bootoutput="FW_YH820.mi4"
2975 # toolset is the tools within the tools directory that we build for
2976 # this particular target.
2977 toolset=$scramblebitmaptools
2978 # architecture, manufacturer and model for the target-tree build
2979 t_cpu="arm"
2980 t_soc="pp"
2981 t_manufacturer="samsung"
2982 t_model="yh820"
2985 141|samsungyh920)
2986 target_id=58
2987 modelname="samsungyh920"
2988 target="SAMSUNG_YH920"
2989 memory=32 # always
2990 arm7tdmicc
2991 tool="$rootdir/tools/scramble -mi4v2 -model=y920 -type=RBOS"
2992 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2993 bmp2rb_native="$rootdir/tools/bmp2rb -f 2"
2994 output="rockbox.mi4"
2995 appextra="recorder:gui:radio"
2996 plugins="yes"
2997 swcodec="yes"
2998 boottool="$rootdir/tools/scramble -mi4v2 -model=y920 -type=RBBL"
2999 bootoutput="PP5020.mi4"
3000 # toolset is the tools within the tools directory that we build for
3001 # this particular target.
3002 toolset=$scramblebitmaptools
3003 # architecture, manufacturer and model for the target-tree build
3004 t_cpu="arm"
3005 t_soc="pp"
3006 t_manufacturer="samsung"
3007 t_model="yh920"
3010 142|samsungyh925)
3011 target_id=59
3012 modelname="samsungyh925"
3013 target="SAMSUNG_YH925"
3014 memory=32 # always
3015 arm7tdmicc
3016 tool="$rootdir/tools/scramble -mi4v2 -model=y925 -type=RBOS"
3017 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3018 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3019 output="rockbox.mi4"
3020 appextra="recorder:gui:radio"
3021 plugins="yes"
3022 swcodec="yes"
3023 boottool="$rootdir/tools/scramble -mi4v2 -model=y925 -type=RBBL"
3024 bootoutput="FW_YH925.mi4"
3025 # toolset is the tools within the tools directory that we build for
3026 # this particular target.
3027 toolset=$scramblebitmaptools
3028 # architecture, manufacturer and model for the target-tree build
3029 t_cpu="arm"
3030 t_soc="pp"
3031 t_manufacturer="samsung"
3032 t_model="yh925"
3035 143|samsungyps3)
3036 target_id=72
3037 modelname="samsungyps3"
3038 target="SAMSUNG_YPS3"
3039 memory=16 # always
3040 arm940tbecc
3041 tool="cp"
3042 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3043 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3044 output="rockbox.yps3"
3045 appextra="recorder:gui:radio"
3046 plugins="no" #FIXME
3047 swcodec="yes"
3048 toolset=$genericbitmaptools
3049 boottool="cp"
3050 bootoutput="rockboot.ebn"
3051 # architecture, manufacturer and model for the target-tree build
3052 t_cpu="arm"
3053 t_manufacturer="s5l8700"
3054 t_model="yps3"
3057 160|vibe500)
3058 target_id=67
3059 modelname="vibe500"
3060 target="PBELL_VIBE500"
3061 memory=32 # always
3062 arm7tdmicc
3063 tool="$rootdir/tools/scramble -mi4v3 -model=v500 -type=RBOS"
3064 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3065 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
3066 output="rockbox.mi4"
3067 appextra="recorder:gui:radio"
3068 plugins="yes"
3069 swcodec="yes"
3070 boottool="$rootdir/tools/scramble -mi4v3 -model=v500 -type=RBBL"
3071 bootoutput="jukebox.mi4"
3072 # toolset is the tools within the tools directory that we build for
3073 # this particular target.
3074 toolset=$scramblebitmaptools
3075 # architecture, manufacturer and model for the target-tree build
3076 t_cpu="arm"
3077 t_soc="pp"
3078 t_manufacturer="pbell"
3079 t_model="vibe500"
3082 170|mpiohd200)
3083 target_id=69
3084 modelname="mpiohd200"
3085 target="MPIO_HD200"
3086 memory=16 # always
3087 coldfirecc
3088 tool="$rootdir/tools/scramble -add=hd20"
3089 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3090 bmp2rb_native="$rootdir/tools/bmp2rb -f 7"
3091 output="rockbox.mpio"
3092 bootoutput="bootloader.mpio"
3093 appextra="recorder:gui:radio"
3094 plugins="yes"
3095 swcodec="yes"
3096 # toolset is the tools within the tools directory that we build for
3097 # this particular target.
3098 toolset="$genericbitmaptools"
3099 # architecture, manufacturer and model for the target-tree build
3100 t_cpu="coldfire"
3101 t_manufacturer="mpio"
3102 t_model="hd200"
3105 171|mpiohd300)
3106 target_id=70
3107 modelname="mpiohd300"
3108 target="MPIO_HD300"
3109 memory=16 # always
3110 coldfirecc
3111 tool="$rootdir/tools/scramble -add=hd30"
3112 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3113 bmp2rb_native="$rootdir/tools/bmp2rb -f 2"
3114 output="rockbox.mpio"
3115 bootoutput="bootloader.mpio"
3116 appextra="recorder:gui:radio"
3117 plugins="yes"
3118 swcodec="yes"
3119 # toolset is the tools within the tools directory that we build for
3120 # this particular target.
3121 toolset="$genericbitmaptools"
3122 # architecture, manufacturer and model for the target-tree build
3123 t_cpu="coldfire"
3124 t_manufacturer="mpio"
3125 t_model="hd300"
3128 180|rk27generic)
3129 target_id=78
3130 modelname="rk27generic"
3131 target="RK27_GENERIC"
3132 memory=16 # always
3133 arm7ejscc
3134 tool="$rootdir/tools/scramble -rkw -modelnum=73"
3135 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3136 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3137 output="rockbox.rkw"
3138 bootoutput="bootloader.rkw"
3139 appextra="recorder:gui:radio"
3140 plugins=""
3141 swcodec="yes"
3142 # toolset is the tools within the tools directory that we build for
3143 # this particular target.
3144 toolset="$genericbitmaptools"
3145 # architecture, manufacturer and model for the target-tree build
3146 t_cpu="arm"
3147 t_manufacturer="rk27xx"
3148 t_model="rk27generic"
3151 190|hifimanhm60x)
3152 target_id=79
3153 modelname="hifimanhm60x"
3154 target="HM60X"
3155 memory=16
3156 arm7ejscc
3157 tool="$rootdir/tools/scramble -rkw -modelnum=79"
3158 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3159 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3160 output="rockbox.rkw"
3161 bootoutput="bootloader.rkw"
3162 appextra="recorder:gui"
3163 plugins="yes"
3164 swcodec="yes"
3165 # toolset is the tools within the tools directory that we build for
3166 # this particular target.
3167 toolset="$genericbitmaptools"
3168 # architecture, manufacturer and model for the target-tree build
3169 t_cpu="arm"
3170 t_manufacturer="rk27xx"
3171 t_model="hm60x"
3174 191|hifimanhm801)
3175 target_id=82
3176 modelname="hifimanhm801"
3177 target="HM801"
3178 memory=16
3179 arm7ejscc
3180 tool="$rootdir/tools/scramble -rkw -modelnum=82"
3181 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3182 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3183 output="rockbox.rkw"
3184 bootoutput="bootloader.rkw"
3185 appextra="recorder:gui"
3186 plugins="yes"
3187 swcodec="yes"
3188 # toolset is the tools within the tools directory that we build for
3189 # this particular target.
3190 toolset="$genericbitmaptools"
3191 # architecture, manufacturer and model for the target-tree build
3192 t_cpu="arm"
3193 t_manufacturer="rk27xx"
3194 t_model="hm801"
3197 200|sdlapp)
3198 application="yes"
3199 target_id=73
3200 modelname="sdlapp"
3201 target="SDLAPP"
3202 app_set_paths
3203 app_set_lcd_size
3204 memory=8
3205 uname=`uname`
3206 simcc "sdl-app"
3207 tool="cp "
3208 boottool="cp "
3209 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3210 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3211 output="rockbox"
3212 bootoutput="rockbox"
3213 appextra="recorder:gui:radio"
3214 plugins="yes"
3215 swcodec="yes"
3216 # architecture, manufacturer and model for the target-tree build
3217 t_cpu="hosted"
3218 t_manufacturer="sdl"
3219 t_model="app"
3222 201|android)
3223 application="yes"
3224 target_id=74
3225 modelname="android"
3226 target="ANDROID"
3227 app_type="android"
3228 app_set_lcd_size
3229 sharedir="/data/data/org.rockbox/app_rockbox/rockbox"
3230 bindir="/data/data/org.rockbox/lib"
3231 libdir="/data/data/org.rockbox/app_rockbox"
3232 memory=8
3233 uname=`uname`
3234 androidcc armeabi
3235 tool="cp "
3236 boottool="cp "
3237 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3238 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3239 output="librockbox.so"
3240 bootoutput="librockbox.so"
3241 appextra="recorder:gui:radio:hosted/android"
3242 plugins="yes"
3243 swcodec="yes"
3244 # architecture, manufacturer and model for the target-tree build
3245 t_cpu="hosted"
3246 t_manufacturer="android"
3247 t_model="app"
3250 202|nokian8xx)
3251 application="yes"
3252 target_id=75
3253 modelname="nokian8xx"
3254 app_type="sdl-app"
3255 target="NOKIAN8XX"
3256 sharedir="/opt/rockbox/share/rockbox"
3257 bindir="/opt/rockbox/bin"
3258 libdir="/opt/rockbox/lib"
3259 memory=8
3260 uname=`uname`
3261 maemocc 4
3262 tool="cp "
3263 boottool="cp "
3264 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3265 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3266 output="rockbox"
3267 bootoutput="rockbox"
3268 appextra="recorder:gui:radio"
3269 plugins="yes"
3270 swcodec="yes"
3271 # architecture, manufacturer and model for the target-tree build
3272 t_cpu="hosted"
3273 t_manufacturer="maemo"
3274 t_model="app"
3277 203|nokian900)
3278 application="yes"
3279 target_id=76
3280 modelname="nokian900"
3281 app_type="sdl-app"
3282 target="NOKIAN900"
3283 sharedir="/opt/rockbox/share/rockbox"
3284 bindir="/opt/rockbox/bin"
3285 libdir="/opt/rockbox/lib"
3286 memory=8
3287 uname=`uname`
3288 maemocc 5
3289 tool="cp "
3290 boottool="cp "
3291 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3292 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3293 output="rockbox"
3294 bootoutput="rockbox"
3295 appextra="recorder:gui:radio"
3296 plugins="yes"
3297 swcodec="yes"
3298 # architecture, manufacturer and model for the target-tree build
3299 t_cpu="hosted"
3300 t_manufacturer="maemo"
3301 t_model="app"
3304 204|pandora)
3305 application="yes"
3306 target_id=77
3307 modelname="pandora"
3308 app_type="sdl-app"
3309 target="PANDORA"
3310 sharedir="rockbox/share/rockbox"
3311 bindir="rockbox/bin"
3312 libdir="rockbox/lib"
3313 memory=8
3314 uname=`uname`
3315 pandoracc
3316 tool="cp "
3317 boottool="cp "
3318 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3319 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3320 output="rockbox"
3321 bootoutput="rockbox"
3322 appextra="recorder:gui:radio"
3323 plugins="yes"
3324 swcodec="yes"
3325 # architecture, manufacturer and model for the target-tree build
3326 t_cpu="hosted"
3327 t_manufacturer="pandora"
3328 t_model="app"
3331 205|samsungypr0)
3332 application="yes"
3333 target_id=78
3334 modelname="samsungypr0"
3335 target="SAMSUNG_YPR0"
3336 memory=32
3337 uname=`uname`
3338 ypr0cc
3339 tool="cp "
3340 boottool="cp "
3341 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3342 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3343 output="rockbox"
3344 bootoutput="rockbox"
3345 appextra="recorder:gui:radio"
3346 plugins="yes"
3347 swcodec="yes"
3348 # architecture, manufacturer and model for the target-tree build
3349 t_cpu="hosted"
3350 t_manufacturer="ypr0"
3351 t_model="app"
3354 206|androidmips)
3355 application="yes"
3356 target_id=74
3357 modelname="androidmips"
3358 target="ANDROID"
3359 app_type="android"
3360 app_set_lcd_size
3361 sharedir="/data/data/org.rockbox/app_rockbox/rockbox"
3362 bindir="/data/data/org.rockbox/lib"
3363 libdir="/data/data/org.rockbox/app_rockbox"
3364 memory=8
3365 uname=`uname`
3366 androidcc mips
3367 tool="cp "
3368 boottool="cp "
3369 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3370 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3371 output="librockbox.so"
3372 bootoutput="librockbox.so"
3373 appextra="recorder:gui:radio:hosted/android"
3374 plugins="yes"
3375 swcodec="yes"
3376 # architecture, manufacturer and model for the target-tree build
3377 t_cpu="hosted"
3378 t_manufacturer="android"
3379 t_model="app"
3382 207|androidx86)
3383 application="yes"
3384 target_id=74
3385 modelname="androidx86"
3386 target="ANDROID"
3387 app_type="android"
3388 app_set_lcd_size
3389 sharedir="/data/data/org.rockbox/app_rockbox/rockbox"
3390 bindir="/data/data/org.rockbox/lib"
3391 libdir="/data/data/org.rockbox/app_rockbox"
3392 memory=8
3393 uname=`uname`
3394 androidcc x86
3395 tool="cp "
3396 boottool="cp "
3397 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3398 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3399 output="librockbox.so"
3400 bootoutput="librockbox.so"
3401 appextra="recorder:gui:radio:hosted/android"
3402 plugins="yes"
3403 swcodec="yes"
3404 # architecture, manufacturer and model for the target-tree build
3405 t_cpu="hosted"
3406 t_manufacturer="android"
3407 t_model="app"
3411 echo "Please select a supported target platform!"
3412 exit 7
3415 esac
3417 echo "Platform set to $modelname"
3420 #remove start
3421 ############################################################################
3422 # Amount of memory, for those that can differ. They have $memory unset at
3423 # this point.
3426 if [ -z "$memory" ]; then
3427 case $target_id in
3429 if [ "$ARG_RAM" ]; then
3430 size=$ARG_RAM
3431 else
3432 echo "Enter size of your RAM (in MB): (Defaults to 32)"
3433 size=`input`;
3435 case $size in
3436 60|64)
3437 memory="64"
3440 memory="32"
3442 esac
3445 if [ "$ARG_RAM" ]; then
3446 size=$ARG_RAM
3447 else
3448 echo "Enter size of your RAM (in MB): (Defaults to 2)"
3449 size=`input`;
3451 case $size in
3453 memory="8"
3456 memory="2"
3458 esac
3460 esac
3461 echo "Memory size selected: $memory MB"
3462 [ "$ARG_TYPE" ] || echo ""
3464 #remove end
3466 ##################################################################
3467 # Figure out build "type"
3470 # the ifp7x0 is the only platform that supports building a gdb stub like
3471 # this
3472 case $modelname in
3473 iriverifp7xx)
3474 gdbstub=", (G)DB stub"
3476 sansae200r|sansae200)
3477 gdbstub=", (I)nstaller"
3479 sansac200)
3480 gdbstub=", (E)raser"
3482 sansae200)
3483 gdbstub=", (E)raser"
3487 esac
3488 if [ "$ARG_TYPE" ]; then
3489 btype=$ARG_TYPE
3490 else
3491 echo "Build (N)ormal, (A)dvanced, (S)imulator, (B)ootloader, (C)heckWPS, (D)atabase tool, (W)arble codec tool$gdbstub: (Defaults to N)"
3492 btype=`input`;
3495 case $btype in
3496 [Ii])
3497 appsdir='$(ROOTDIR)/bootloader'
3498 apps="bootloader"
3499 extradefines="$extradefines -DBOOTLOADER -DE200R_INSTALLER -ffunction-sections -fdata-sections"
3500 bootloader="1"
3501 echo "e200R-installer build selected"
3503 [Ee])
3504 appsdir='$(ROOTDIR)/bootloader'
3505 apps="bootloader"
3506 extradefines="$extradefines -DBOOTLOADER -DSANSA_PP_ERASE -ffunction-sections -fdata-sections"
3507 bootloader="1"
3508 echo "sansa eraser build selected"
3510 [Bb])
3511 if test $t_manufacturer = "archos"; then
3512 # Archos SH-based players do this somewhat differently for
3513 # some reason
3514 appsdir='$(ROOTDIR)/flash/bootbox'
3515 apps="bootbox"
3516 else
3517 appsdir='$(ROOTDIR)/bootloader'
3518 apps="bootloader"
3519 flash=""
3520 if test -n "$boottool"; then
3521 tool="$boottool"
3523 if test -n "$bootoutput"; then
3524 output=$bootoutput
3527 extradefines="$extradefines -DBOOTLOADER -ffunction-sections -fdata-sections"
3528 bootloader="1"
3529 echo "Bootloader build selected"
3531 [Ss])
3532 if [ "$modelname" = "sansae200r" ]; then
3533 echo "Do not use the e200R target for simulator builds. Use e200 instead."
3534 exit 8
3536 debug="-DDEBUG"
3537 simulator="yes"
3538 extradefines="$extradefines -DSIMULATOR"
3539 archosrom=""
3540 flash=""
3541 echo "Simulator build selected"
3543 [Aa]*)
3544 echo "Advanced build selected"
3545 whichadvanced $btype
3547 [Gg])
3548 extradefines="$extradefines -DSTUB" # for target makefile symbol EXTRA_DEFINES
3549 appsdir='$(ROOTDIR)/gdb'
3550 apps="stub"
3551 case $modelname in
3552 iriverifp7xx)
3553 output="stub.wma"
3557 esac
3558 echo "GDB stub build selected"
3560 [Cc])
3561 uname=`uname`
3562 simcc "checkwps"
3563 toolset='';
3564 t_cpu='';
3565 GCCOPTS='';
3566 rbdir='.'
3567 extradefines="$extradefines -DDEBUG"
3568 appsdir='$(ROOTDIR)/tools/checkwps';
3569 output='checkwps.'${modelname};
3570 archosrom='';
3571 echo "CheckWPS build selected"
3573 [Dd])
3574 uname=`uname`
3575 simcc "database-sdl"
3576 toolset='';
3577 appsdir='$(ROOTDIR)/tools/database';
3578 archosrom='';
3580 case $uname in
3581 CYGWIN*|MINGW*)
3582 output="database_${modelname}.exe"
3585 output='database.'${modelname};
3587 esac
3588 # architecture, manufacturer and model for the target-tree build
3589 t_cpu="hosted"
3590 t_manufacturer="sdl"
3591 t_model="database"
3592 echo "Database tool build selected"
3594 [Ww])
3595 uname=`uname`
3596 simcc "warble"
3597 toolset='';
3598 t_cpu='';
3599 GCCOPTS='';
3600 extradefines="$extradefines -DDEBUG"
3601 output='warble.'${modelname};
3602 archosrom='';
3603 echo "Warble build selected"
3606 if [ "$modelname" = "sansae200r" ]; then
3607 echo "Do not use the e200R target for regular builds. Use e200 instead."
3608 exit 8
3610 debug=""
3611 btype="N" # set it explicitly since RET only gets here as well
3612 echo "Normal build selected"
3615 esac
3616 # to be able running "make manual" from non-manual configuration
3617 case $modelname in
3618 archosrecorderv2)
3619 manualdev="archosfmrecorder"
3621 iriverh1??)
3622 manualdev="iriverh100"
3624 ipodmini2g)
3625 manualdev="ipodmini1g"
3628 manualdev=$modelname
3630 esac
3632 if [ -z "$debug" ]; then
3633 GCCOPTS="$GCCOPTS $GCCOPTIMIZE"
3636 if [ "yes" = "$application" ]; then
3637 echo Building Rockbox as an Application
3638 extradefines="$extradefines -DAPPLICATION"
3641 echo "Using source code root directory: $rootdir"
3643 # this was once possible to change at build-time, but no more:
3644 language="english"
3646 uname=`uname`
3648 if [ "yes" = "$simulator" ]; then
3649 # setup compiler and things for simulator
3650 simcc "sdl-sim"
3652 if [ -d "simdisk" ]; then
3653 echo "Subdirectory 'simdisk' already present"
3654 else
3655 mkdir simdisk
3656 echo "Created a 'simdisk' subdirectory for simulating the hard disk"
3660 # Now, figure out version number of the (gcc) compiler we are about to use
3661 gccver=`$CC -dumpversion`;
3663 # figure out the binutil version too and display it, mostly for the build
3664 # system etc to be able to see it easier
3665 if [ $uname = "Darwin" ]; then
3666 ldver=`$LD -v 2>&1 | sed -e 's/[^0-9.-]//g'`
3667 else
3668 ldver=`$LD --version | head -n 1 | sed -e 's/\ /\n/g' | tail -n 1`
3671 if [ -z "$gccver" ]; then
3672 echo "[WARNING] The compiler you must use ($CC) is not in your path!"
3673 echo "[WARNING] this may cause your build to fail since we cannot do the"
3674 echo "[WARNING] checks we want now."
3675 else
3677 # gccver should now be "3.3.5", "3.4.3", "2.95.3-6" and similar, but don't
3678 # DEPEND on it
3680 num1=`echo $gccver | cut -d . -f1`
3681 num2=`echo $gccver | cut -d . -f2`
3682 gccnum=`(expr $num1 "*" 100 + $num2) 2>/dev/null`
3684 # This makes:
3685 # 3.3.X => 303
3686 # 3.4.X => 304
3687 # 2.95.3 => 295
3689 echo "Using $CC $gccver ($gccnum)"
3691 if test "$gccnum" -ge "400"; then
3692 # gcc 4.0 is just *so* much pickier on arguments that differ in signedness
3693 # so we ignore that warnings for now
3694 # -Wno-pointer-sign
3695 GCCOPTS="$GCCOPTS -Wno-pointer-sign"
3698 if test "$gccnum" -ge "402"; then
3699 # disable warning about "warning: initialized field overwritten" as gcc 4.2
3700 # and later would throw it for several valid cases
3701 GCCOPTS="$GCCOPTS -Wno-override-init"
3704 case $prefix in
3705 ""|"$CROSS_COMPILE")
3706 # simulator
3709 # Verify that the cross-compiler is of a recommended version!
3710 if test "$gccver" != "$gccchoice"; then
3711 echo "WARNING: Your cross-compiler $CC $gccver is not of the recommended"
3712 echo "WARNING: version $gccchoice!"
3713 echo "WARNING: This may cause your build to fail since it may be a version"
3714 echo "WARNING: that isn't functional or known to not be the best choice."
3715 echo "WARNING: If you suffer from build problems, you know that this is"
3716 echo "WARNING: a likely source for them..."
3719 esac
3724 echo "Using $LD $ldver"
3726 # check the compiler for SH platforms
3727 if test "$CC" = "sh-elf-gcc"; then
3728 if test "$gccnum" -lt "400"; then
3729 echo "WARNING: Consider upgrading your compiler to the 4.0.X series!"
3730 echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler"
3731 else
3732 # figure out patch status
3733 gccpatch=`$CC --version`;
3735 if { echo $gccpatch | grep "rockbox" >/dev/null 2>&1; } then
3736 echo "gcc $gccver is rockbox patched"
3737 # then convert -O to -Os to get smaller binaries!
3738 GCCOPTS=`echo $GCCOPTS | sed 's/ -O / -Os /'`
3739 else
3740 echo "WARNING: You use an unpatched gcc compiler: $gccver"
3741 echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler"
3746 if test "$CC" = "m68k-elf-gcc"; then
3747 # convert -O to -Os to get smaller binaries!
3748 GCCOPTS=`echo $GCCOPTS | sed 's/ -O / -Os /'`
3751 if [ "$ARG_CCACHE" = "1" ]; then
3752 echo "Enable ccache for building"
3753 ccache="ccache"
3754 elif [ "$ARG_CCACHE" != "0" ]; then
3755 ccache=`findtool ccache`
3756 if test -n "$ccache"; then
3757 echo "Found and uses ccache ($ccache)"
3761 # figure out the full path to the various commands if possible
3762 HOSTCC=`findtool gcc --lit`
3763 HOSTAR=`findtool ar --lit`
3764 CC=`findtool ${CC} --lit`
3765 CPP=`findtool ${CPP} --lit`
3766 LD=`findtool ${LD} --lit`
3767 AR=`findtool ${AR} --lit`
3768 AS=`findtool ${AS} --lit`
3769 OC=`findtool ${OC} --lit`
3770 WINDRES=`findtool ${WINDRES} --lit`
3771 DLLTOOL=`findtool ${DLLTOOL} --lit`
3772 DLLWRAP=`findtool ${DLLWRAP} --lit`
3773 RANLIB=`findtool ${RANLIB} --lit`
3776 if [ -z "$arch" ]; then
3777 cpp_defines=$(echo "" | $CPP $GCCOPTS -dD)
3778 if [ -n "$(echo $cpp_defines | grep -w __sh__)" ]; then
3779 arch="sh"
3780 elif [ -n "$(echo $cpp_defines | grep -w __m68k__)" ]; then
3781 arch="m68k"
3782 elif [ -n "$(echo $cpp_defines | grep -w __arm__)" ]; then
3783 arch="arm"
3784 # cpp defines like "#define __ARM_ARCH_4TE__ 1" (where we want to extract the 4)
3785 arch_version="$(echo $cpp_defines | tr ' ' '\012' | grep __ARM_ARCH | sed -e 's,.*\([0-9]\).*,\1,')"
3786 elif [ -n "$(echo $cpp_defines | grep -w __mips__)" ]; then
3787 arch="mips"
3788 arch_version="$(echo $cpp_defines | tr ' ' '\012' | grep _MIPS_ARCH_MIPS | sed -e 's,.*\([0-9][0-9]\).*,\1,')"
3789 elif [ -n "$(echo $cpp_defines | grep -w __i386__)" ]; then
3790 arch="x86"
3791 elif [ -n "$(echo $cpp_defines | grep -w __x86_64__)" ]; then
3792 arch="amd64"
3793 else
3794 arch="none"
3795 echo "Warning: Could not determine target arch"
3797 if [ "$arch" != "none" ]; then
3798 if [ -n "$arch_version" ]; then
3799 echo "Automatically selected arch: $arch (ver $arch_version)"
3800 else
3801 echo "Automatically selected arch: $arch"
3804 else
3805 if [ -n "$arch_version" ]; then
3806 echo "Manually selected arch: $arch (ver $arch_version)"
3807 else
3808 echo "Manually selected arch: $arch"
3812 arch="arch_$arch"
3813 if [ -n "$arch_version" ]; then
3814 Darch_version="#define ARCH_VERSION $arch_version"
3817 if test -n "$ccache"; then
3818 CC="$ccache $CC"
3821 if test "$ARG_ARM_THUMB" = "1"; then
3822 extradefines="$extradefines -DUSE_THUMB"
3823 CC="$toolsdir/thumb-cc.py $CC"
3826 if test "X$endian" = "Xbig"; then
3827 defendian="ROCKBOX_BIG_ENDIAN"
3828 else
3829 defendian="ROCKBOX_LITTLE_ENDIAN"
3832 if [ "$ARG_RBDIR" != "" ]; then
3833 if [ -z `echo $ARG_RBDIR | grep '^/'` ]; then
3834 rbdir="/"$ARG_RBDIR
3835 else
3836 rbdir=$ARG_RBDIR
3838 echo "Using alternate rockbox dir: ${rbdir}"
3841 cat > autoconf.h <<EOF
3842 /* This header was made by configure */
3843 #ifndef __BUILD_AUTOCONF_H
3844 #define __BUILD_AUTOCONF_H
3846 /* lower case names match the what's exported in the Makefile
3847 * upper case name looks nicer in the code */
3849 #define arch_none 0
3850 #define ARCH_NONE 0
3852 #define arch_sh 1
3853 #define ARCH_SH 1
3855 #define arch_m68k 2
3856 #define ARCH_M68K 2
3858 #define arch_arm 3
3859 #define ARCH_ARM 3
3861 #define arch_mips 4
3862 #define ARCH_MIPS 4
3864 #define arch_x86 5
3865 #define ARCH_X86 5
3867 #define arch_amd64 6
3868 #define ARCH_AMD64 6
3870 /* Define target machine architecture */
3871 #define ARCH ${arch}
3872 /* Optionally define architecture version */
3873 ${Darch_version}
3875 /* Define endianess for the target or simulator platform */
3876 #define ${defendian} 1
3878 /* Define the GCC version used for the build */
3879 #define GCCNUM ${gccnum}
3881 /* Define this if you build rockbox to support the logf logging and display */
3882 ${use_logf}
3884 /* Define this if you want logf to output to the serial port */
3885 ${use_logf_serial}
3887 /* Define this to record a chart with timings for the stages of boot */
3888 ${use_bootchart}
3890 /* optional define for a backlight modded Ondio */
3891 ${have_backlight}
3893 /* optional define for FM radio mod for iAudio M5 */
3894 ${have_fmradio_in}
3896 /* optional define for ATA poweroff on Player */
3897 ${have_ata_poweroff}
3899 /* optional defines for RTC mod for h1x0 */
3900 ${config_rtc}
3901 ${have_rtc_alarm}
3903 /* the threading backend we use */
3904 #define ${thread_support}
3906 /* lcd dimensions for application builds from configure */
3907 ${app_lcd_width}
3908 ${app_lcd_height}
3910 /* root of Rockbox */
3911 #define ROCKBOX_DIR "${rbdir}"
3912 #define ROCKBOX_SHARE_PATH "${sharedir}"
3913 #define ROCKBOX_BINARY_PATH "${bindir}"
3914 #define ROCKBOX_LIBRARY_PATH "${libdir}"
3916 #endif /* __BUILD_AUTOCONF_H */
3919 if test -n "$t_cpu"; then
3920 TARGET_INC="-I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer/$t_model"
3922 if [ "$application" = "yes" ] && [ "$t_manufacturer" = "maemo" ]; then
3923 # Maemo needs the SDL port, too
3924 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl/app"
3925 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl"
3926 elif [ "$application" = "yes" ] && [ "$t_manufacturer" = "pandora" ]; then
3927 # Pandora needs the SDL port, too
3928 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl/app"
3929 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl"
3930 elif [ "$simulator" = "yes" ]; then # a few more includes for the sim target tree
3931 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl"
3932 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted"
3935 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer"
3936 test -n "$t_soc" && TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu/$t_soc"
3937 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu"
3938 GCCOPTS="$GCCOPTS"
3941 if test "$swcodec" = "yes"; then
3942 voicetoolset="rbspeexenc voicefont wavtrim"
3943 else
3944 voicetoolset="voicefont wavtrim"
3947 if test "$apps" = "apps"; then
3948 # only when we build "real" apps we build the .lng files
3949 buildlangs="langs"
3952 #### Fix the cmdline ###
3953 if [ -n "$ARG_PREFIX" ]; then
3954 cmdline="$cmdline --prefix=\$(PREFIX)"
3956 if [ -n "$ARG_LCDWIDTH" ]; then
3957 cmdline="$cmdline --lcdwidth=$ARG_LCDWIDTH --lcdheight=$ARG_LCDHEIGHT "
3960 # remove parts from the cmdline we're going to set unconditionally
3961 cmdline=`echo $cmdline | sed -e s,--target=[a-zA-Z_0-9]\*,,g \
3962 -e s,--ram=[0-9]\*,,g \
3963 -e s,--rbdir=[./a-zA-Z0-9]\*,,g \
3964 -e s,--type=[a-zA-Z]\*,,g`
3965 cmdline="$cmdline --target=\$(MODELNAME) --ram=\$(MEMORYSIZE) --rbdir=\$(RBDIR) --type=$btype$advopts"
3967 ### end of cmdline
3969 cat > Makefile <<EOF
3970 ## Automatically generated. http://www.rockbox.org/
3972 export ROOTDIR=${rootdir}
3973 export FIRMDIR=\$(ROOTDIR)/firmware
3974 export APPSDIR=${appsdir}
3975 export TOOLSDIR=${toolsdir}
3976 export DOCSDIR=${rootdir}/docs
3977 export MANUALDIR=${rootdir}/manual
3978 export DEBUG=${debug}
3979 export MODELNAME=${modelname}
3980 export ARCHOSROM=${archosrom}
3981 export FLASHFILE=${flash}
3982 export TARGET_ID=${target_id}
3983 export TARGET=-D${target}
3984 export ARCH=${arch}
3985 export ARCH_VERSION=${arch_version}
3986 export CPU=${t_cpu}
3987 export MANUFACTURER=${t_manufacturer}
3988 export OBJDIR=${pwd}
3989 export BUILDDIR=${pwd}
3990 export RBCODEC_BLD=${pwd}/lib/rbcodec
3991 export LANGUAGE=${language}
3992 export VOICELANGUAGE=${voicelanguage}
3993 export MEMORYSIZE=${memory}
3994 export BUILDDATE:=\$(shell date -u +'-DYEAR=%Y -DMONTH=%m -DDAY=%d')
3995 export MKFIRMWARE=${tool}
3996 export BMP2RB_MONO=${bmp2rb_mono}
3997 export BMP2RB_NATIVE=${bmp2rb_native}
3998 export BMP2RB_REMOTEMONO=${bmp2rb_remotemono}
3999 export BMP2RB_REMOTENATIVE=${bmp2rb_remotenative}
4000 export BINARY=${output}
4001 export APPEXTRA=${appextra}
4002 export ENABLEDPLUGINS=${plugins}
4003 export SOFTWARECODECS=${swcodec}
4004 export EXTRA_DEFINES=${extradefines}
4005 export HOSTCC=${HOSTCC}
4006 export HOSTAR=${HOSTAR}
4007 export CC=${CC}
4008 export CPP=${CPP}
4009 export LD=${LD}
4010 export AR=${AR}
4011 export AS=${AS}
4012 export OC=${OC}
4013 export WINDRES=${WINDRES}
4014 export DLLTOOL=${DLLTOOL}
4015 export DLLWRAP=${DLLWRAP}
4016 export RANLIB=${RANLIB}
4017 export PREFIX=${ARG_PREFIX}
4018 export PROFILE_OPTS=${PROFILE_OPTS}
4019 export APP_TYPE=${app_type}
4020 export APPLICATION=${application}
4021 export SIMDIR=\$(ROOTDIR)/uisimulator/sdl
4022 export GCCOPTS=${GCCOPTS}
4023 export TARGET_INC=${TARGET_INC}
4024 export LOADADDRESS=${loadaddress}
4025 export SHARED_LDFLAG=${SHARED_LDFLAG}
4026 export SHARED_CFLAGS=${SHARED_CFLAGS}
4027 export LDOPTS=${LDOPTS}
4028 export GLOBAL_LDOPTS=${GLOBAL_LDOPTS}
4029 export GCCVER=${gccver}
4030 export GCCNUM=${gccnum}
4031 export UNAME=${uname}
4032 export MANUALDEV=${manualdev}
4033 export TTS_OPTS=${TTS_OPTS}
4034 export TTS_ENGINE=${TTS_ENGINE}
4035 export ENC_OPTS=${ENC_OPTS}
4036 export ENCODER=${ENCODER}
4037 export USE_ELF=${USE_ELF}
4038 export RBDIR=${rbdir}
4039 export ROCKBOX_SHARE_PATH=${sharedir}
4040 export ROCKBOX_BINARY_PATH=${bindir}
4041 export ROCKBOX_LIBRARY_PATH=${libdir}
4042 export SDLCONFIG=${sdl}
4043 export LCDORIENTATION=${lcd_orientation}
4044 export ANDROID_ARCH=${ANDROID_ARCH}
4046 CONFIGURE_OPTIONS=${cmdline}
4048 include \$(TOOLSDIR)/root.make
4051 echo "Created Makefile"