Use Rockbox version for created voicefile version.
[maemo-rb.git] / tools / configure
blob4d3d74678541b4b6ec7f2f8f7f7a1df6d7dccfeb
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 arch="mips"
504 arch_version=32 # FIXME: autodetect version (32 or 64)
505 prefixtools mipsel-elf-
506 # mips is predefined, but we want it for paths. use __mips instead
507 GCCOPTS="$CCOPTS -march=mips32 -mtune=r4600 -mno-mips16 -mno-long-calls -Umips"
508 GCCOPTS="$GCCOPTS -ffunction-sections -msoft-float -G 0 -Wno-parentheses"
509 GCCOPTIMIZE="-fomit-frame-pointer"
510 endian="little"
511 gccchoice="4.1.2"
514 maemocc () {
515 # Scratchbox sets up "gcc" based on the active target
516 prefixtools ""
518 GCCOPTS=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib// -e s/-Wundef//`
519 GCCOPTS="$GCCOPTS -fno-builtin -g -I\$(SIMDIR)"
520 GCCOPTIMIZE=''
521 LDOPTS="-lm -ldl $LDOPTS"
522 GLOBAL_LDOPTS="$GLOBAL_LDOPTS -Wl,-z,defs"
523 SHARED_LDFLAG="-shared"
524 SHARED_CFLAGS=''
525 endian="little"
526 thread_support="HAVE_SIGALTSTACK_THREADS"
528 is_n900=0
529 # Determine maemo version
530 if pkg-config --atleast-version=5 maemo-version; then
531 if [ "$1" == "4" ]; then
532 echo "ERROR: Maemo 4 SDK required."
533 exit 1
535 extradefines="$extradefines -DMAEMO5"
536 echo "Found N900 maemo version"
537 is_n900=1
538 elif pkg-config --atleast-version=4 maemo-version; then
539 if [ "$1" == "5" ]; then
540 echo "ERROR: Maemo 5 SDK required."
541 exit 1
543 extradefines="$extradefines -DMAEMO4"
544 echo "Found N8xx maemo version"
545 else
546 echo "Unable to determine maemo version. Is the maemo-version-dev package installed?"
547 exit 1
550 # SDL
551 if [ $is_n900 -eq 1 ]; then
552 GCCOPTS="$GCCOPTS `pkg-config --cflags sdl`"
553 LDOPTS="$LDOPTS `pkg-config --libs sdl`"
554 else
555 GCCOPTS="$GCCOPTS `sdl-config --cflags`"
556 LDOPTS="$LDOPTS `sdl-config --libs`"
559 # glib and libosso support
560 GCCOPTS="$GCCOPTS `pkg-config --cflags libosso glib-2.0 gthread-2.0`"
561 LDOPTS="$LDOPTS `pkg-config --libs libosso glib-2.0 gthread-2.0`"
563 # libhal support: Battery monitoring
564 GCCOPTS="$GCCOPTS `pkg-config --cflags hal`"
565 LDOPTS="$LDOPTS `pkg-config --libs hal`"
567 GCCOPTS="$GCCOPTS -O2 -fno-strict-aliasing"
568 if [ $is_n900 -eq 1 ]; then
569 # gstreamer support: Audio output.
570 GCCOPTS="$GCCOPTS `pkg-config --cflags gstreamer-base-0.10 gstreamer-plugins-base-0.10 gstreamer-app-0.10`"
571 LDOPTS="$LDOPTS `pkg-config --libs gstreamer-base-0.10 gstreamer-plugins-base-0.10 gstreamer-app-0.10`"
573 # N900 specific: libplayback support
574 GCCOPTS="$GCCOPTS `pkg-config --cflags libplayback-1`"
575 LDOPTS="$LDOPTS `pkg-config --libs libplayback-1`"
577 # N900 specific: Enable ARMv7 NEON support
578 if sb-conf show -A |grep -q -i arm; then
579 echo "Detected ARM target"
580 GCCOPTS="$GCCOPTS -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp"
581 extradefines="$extradefines -DMAEMO_ARM_BUILD"
582 else
583 echo "Detected x86 target"
585 else
586 # N8xx specific: Enable armv5te instructions
587 if sb-conf show -A |grep -q -i arm; then
588 echo "Detected ARM target"
589 GCCOPTS="$GCCOPTS -mcpu=arm1136jf-s -mfloat-abi=softfp -mfpu=vfp"
590 extradefines="$extradefines -DMAEMO_ARM_BUILD"
591 else
592 echo "Detected x86 target"
597 pandoracc () {
598 # Note: The new "Ivanovic" pandora toolchain is not able to compile rockbox.
599 # You have to use the sebt3 toolchain:
600 # http://www.gp32x.com/board/index.php?/topic/58490-yactfeau/
602 PNDSDK="/usr/local/angstrom/arm"
603 if [ ! -x $PNDSDK/bin/arm-angstrom-linux-gnueabi-gcc ]; then
604 echo "Pandora SDK gcc not found in $PNDSDK/bin/arm-angstrom-linux-gnueabi-gcc"
605 exit
608 PATH=$PNDSDK/bin:$PATH:$PNDSDK/arm-angstrom-linux-gnueabi/usr/bin
609 PKG_CONFIG_PATH=$PNDSDK/arm-angstrom-linux-gnueabi/usr/lib/pkgconfig
610 LDOPTS="-L$PNDSDK/arm-angstrom-linux-gnueabi/usr/lib -Wl,-rpath,$PNDSDK/arm-angstrom-linux-gnueabi/usr/lib $LDOPTS"
611 PKG_CONFIG="pkg-config"
613 GCCOPTS=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib// -e s/-Wundef//`
614 GCCOPTS="$GCCOPTS -fno-builtin -g -I\$(SIMDIR)"
615 GCCOPTIMIZE=''
616 LDOPTS="-lm -ldl $LDOPTS"
617 GLOBAL_LDOPTS="$GLOBAL_LDOPTS -Wl,-z,defs"
618 SHARED_LDFLAG="-shared"
619 SHARED_CFLAGS=''
620 endian="little"
621 thread_support="HAVE_SIGALTSTACK_THREADS"
623 # Include path
624 GCCOPTS="$GCCOPTS -I$PNDSDK/arm-angstrom-linux-gnueabi/usr/include"
626 # Set up compiler
627 gccchoice="4.3.3"
628 prefixtools "$PNDSDK/bin/arm-angstrom-linux-gnueabi-"
630 # Detect SDL
631 GCCOPTS="$GCCOPTS `$PNDSDK/bin/sdl-config --cflags`"
632 LDOPTS="$LDOPTS `$PNDSDK/bin/sdl-config --libs`"
634 # Compiler options
635 GCCOPTS="$GCCOPTS -O2 -fno-strict-aliasing"
636 GCCOPTS="$GCCOPTS -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp"
637 GCCOPTS="$GCCOPTS -ffast-math -fsingle-precision-constant"
640 ypr0cc () {
642 GCCOPTS=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib//`
643 GCCOPTIMIZE=''
644 LDOPTS="-lasound -lpthread -lm -ldl -lrt $LDOPTS"
645 GLOBAL_LDOPTS="$GLOBAL_LDOPTS -Wl,-z,defs"
646 SHARED_LDFLAG="-shared"
647 SHARED_CFLAGS=''
648 endian="little"
649 thread_support="HAVE_SIGALTSTACK_THREADS"
650 app_type="ypr0"
652 # Include path
653 GCCOPTS="$GCCOPTS -D_GNU_SOURCE=1 -U_FORTIFY_SOURCE -D_REENTRANT"
655 # Set up compiler
656 gccchoice="4.4.6"
657 prefixtools "arm-ypr0-linux-gnueabi-"
660 androidcc () {
661 if [ -z "$ANDROID_SDK_PATH" ]; then
662 echo "ERROR: You need the Android SDK installed and have the ANDROID_SDK_PATH"
663 echo "environment variable point to the root directory of the Android SDK."
664 exit
666 if [ -z "$ANDROID_NDK_PATH" ]; then
667 echo "ERROR: You need the Android NDK installed (r5 or higher) and have the ANDROID_NDK_PATH"
668 echo "environment variable point to the root directory of the Android NDK."
669 exit
671 buildhost=$(uname | tr "[:upper:]" "[:lower:]")
672 gccchoice="4.4.3"
673 gcctarget="arm-linux-androideabi-"
674 gccprefix=$ANDROID_NDK_PATH/toolchains/$gcctarget$gccchoice/prebuilt/$buildhost-x86
675 PATH=$PATH:$gccprefix/bin
676 prefixtools $gcctarget
677 GCCOPTS=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib// -e s/-Wundef//`
678 GCCOPTS="$GCCOPTS -march=armv5te -mtune=xscale -msoft-float -fomit-frame-pointer \
679 --sysroot=$ANDROID_NDK_PATH/platforms/android-5/arch-arm"
680 GLOBAL_LDOPTS="-Wl,-z,defs -Wl,-z,noexecstack"
681 LDOPTS="-shared -ldl -llog --sysroot=$ANDROID_NDK_PATH/platforms/android-5/arch-arm $LDOPTS"
682 endian="little"
683 SHARED_LDFLAG="-shared"
686 whichadvanced () {
687 atype=`echo "$1" | cut -c 2-`
688 ##################################################################
689 # Prompt for specific developer options
691 if [ "$atype" ]; then
692 interact=
693 else
694 interact=1
695 echo ""
696 printf "Enter your developer options (press only enter when done)\n\
697 (D)EBUG, (L)ogf, Boot(c)hart, (S)imulator, (P)rofiling, (V)oice, (W)in32 crosscompile,\n\
698 (T)est plugins, S(m)all C lib, Logf to Ser(i)al port:"
699 if [ "$modelname" = "archosplayer" ]; then
700 printf ", Use (A)TA poweroff"
702 if [ "$t_model" = "ondio" ]; then
703 printf ", (B)acklight MOD"
705 if [ "$modelname" = "iaudiom5" ]; then
706 printf ", (F)M radio MOD"
708 if [ "$modelname" = "iriverh120" ]; then
709 printf ", (R)TC MOD"
711 echo ""
714 cont=1
715 while [ $cont = "1" ]; do
717 if [ "$interact" ]; then
718 option=`input`
719 else
720 option=`echo "$atype" | cut -c 1`
723 case $option in
724 [Dd])
725 if [ "yes" = "$profile" ]; then
726 echo "Debug is incompatible with profiling"
727 else
728 echo "DEBUG build enabled"
729 use_debug="yes"
732 [Ll])
733 echo "logf() support enabled"
734 logf="yes"
736 [Mm])
737 echo "Using Rockbox' small C library"
738 extradefines="$extradefines -DHAVE_ROCKBOX_C_LIBRARY"
740 [Tt])
741 echo "Including test plugins"
742 extradefines="$extradefines -DHAVE_TEST_PLUGINS"
744 [Cc])
745 echo "bootchart enabled (logf also enabled)"
746 bootchart="yes"
747 logf="yes"
749 [Ii])
750 echo "Logf to serial port enabled (logf also enabled)"
751 logf="yes"
752 logf_serial="yes"
754 [Ss])
755 echo "Simulator build enabled"
756 simulator="yes"
758 [Pp])
759 if [ "yes" = "$use_debug" ]; then
760 echo "Profiling is incompatible with debug"
761 else
762 echo "Profiling support is enabled"
763 profile="yes"
766 [Vv])
767 echo "Voice build selected"
768 voice="yes"
770 [Aa])
771 if [ "$modelname" = "archosplayer" ]; then
772 have_ata_poweroff="#define HAVE_ATA_POWER_OFF"
773 echo "ATA power off enabled"
776 [Bb])
777 if [ "$t_model" = "ondio" ]; then
778 have_backlight="#define HAVE_BACKLIGHT"
779 echo "Backlight functions enabled"
782 [Ff])
783 if [ "$modelname" = "iaudiom5" ]; then
784 have_fmradio_in="#define HAVE_FMRADIO_IN"
785 echo "FM radio functions enabled"
788 [Rr])
789 if [ "$modelname" = "iriverh120" ]; then
790 config_rtc="#define CONFIG_RTC RTC_DS1339_DS3231"
791 have_rtc_alarm="#define HAVE_RTC_ALARM"
792 echo "RTC functions enabled (DS1339/DS3231)"
795 [Ww])
796 echo "Enabling Windows 32 cross-compiling"
797 win32crosscompile="yes"
799 "") # Match enter press when finished with advanced options
800 cont=0
803 echo "[ERROR] Option $option unsupported"
805 esac
806 if [ "$interact" ]; then
807 btype="$btype$option"
808 else
809 atype=`echo "$atype" | cut -c 2-`
810 [ "$atype" ] || cont=0
812 done
813 echo "done"
815 if [ "yes" = "$voice" ]; then
816 # Ask about languages to build
817 picklang
818 voicelanguage=`whichlang`
819 echo "Voice language set to $voicelanguage"
821 # Configure encoder and TTS engine for each language
822 for thislang in `echo $voicelanguage | sed 's/,/ /g'`; do
823 voiceconfig "$thislang"
824 done
826 if [ "yes" = "$use_debug" ]; then
827 debug="-DDEBUG"
828 GCCOPTS="$GCCOPTS -g -DDEBUG"
830 if [ "yes" = "$logf" ]; then
831 use_logf="#define ROCKBOX_HAS_LOGF 1"
833 if [ "yes" = "$logf_serial" ]; then
834 use_logf_serial="#define LOGF_SERIAL 1"
836 if [ "yes" = "$bootchart" ]; then
837 use_bootchart="#define DO_BOOTCHART 1"
839 if [ "yes" = "$simulator" ]; then
840 debug="-DDEBUG"
841 extradefines="$extradefines -DSIMULATOR"
842 archosrom=""
843 flash=""
845 if [ "yes" = "$profile" ]; then
846 extradefines="$extradefines -DRB_PROFILE"
847 PROFILE_OPTS="-finstrument-functions"
851 # Configure voice settings
852 voiceconfig () {
853 thislang=$1
854 if [ ! "$ARG_TTS" ]; then
855 echo "Building $thislang voice for $modelname. Select options"
856 echo ""
859 if [ -n "`findtool flite`" ]; then
860 FLITE="F(l)ite "
861 FLITE_OPTS=""
862 DEFAULT_TTS="flite"
863 DEFAULT_TTS_OPTS=$FLITE_OPTS
864 DEFAULT_NOISEFLOOR="500"
865 DEFAULT_CHOICE="l"
867 if [ -n "`findtool espeak`" ]; then
868 ESPEAK="(e)Speak "
869 ESPEAK_OPTS=""
870 DEFAULT_TTS="espeak"
871 DEFAULT_TTS_OPTS=$ESPEAK_OPTS
872 DEFAULT_NOISEFLOOR="500"
873 DEFAULT_CHOICE="e"
875 if [ -n "`findtool festival`" ]; then
876 FESTIVAL="(F)estival "
877 case "$thislang" in
878 "italiano")
879 FESTIVAL_OPTS="--language italian"
881 "espanol")
882 FESTIVAL_OPTS="--language spanish"
884 "finnish")
885 FESTIVAL_OPTS="--language finnish"
887 "czech")
888 FESTIVAL_OPTS="--language czech"
891 FESTIVAL_OPTS=""
893 esac
894 DEFAULT_TTS="festival"
895 DEFAULT_TTS_OPTS=$FESTIVAL_OPTS
896 DEFAULT_NOISEFLOOR="500"
897 DEFAULT_CHOICE="f"
899 if [ -n "`findtool swift`" ]; then
900 SWIFT="S(w)ift "
901 SWIFT_OPTS=""
902 DEFAULT_TTS="swift"
903 DEFAULT_TTS_OPTS=$SWIFT_OPTS
904 DEFAULT_NOISEFLOOR="500"
905 DEFAULT_CHOICE="w"
907 # Allow SAPI if Windows is in use
908 if [ -n "`findtool winver`" ]; then
909 SAPI="(S)API "
910 SAPI_OPTS=""
911 DEFAULT_TTS="sapi"
912 DEFAULT_TTS_OPTS=$SAPI_OPTS
913 DEFAULT_NOISEFLOOR="500"
914 DEFAULT_CHOICE="s"
917 if [ "$FESTIVAL" = "$FLITE" ] && [ "$FLITE" = "$ESPEAK" ] && [ "$ESPEAK" = "$SAPI" ] && [ "$SAPI" = "$SWIFT" ]; then
918 echo "You need Festival, eSpeak or Flite in your path, or SAPI available to build voice files"
919 exit 3
922 if [ "$ARG_TTS" ]; then
923 option=$ARG_TTS
924 else
925 echo "TTS engine to use: ${FLITE}${FESTIVAL}${ESPEAK}${SAPI}${SWIFT}(${DEFAULT_CHOICE})?"
926 option=`input`
927 if [ -z "$option" ]; then option=${DEFAULT_CHOICE}; fi
928 advopts="$advopts --tts=$option"
930 case "$option" in
931 [Ll])
932 TTS_ENGINE="flite"
933 NOISEFLOOR="500" # TODO: check this value
934 TTS_OPTS=$FLITE_OPTS
936 [Ee])
937 TTS_ENGINE="espeak"
938 NOISEFLOOR="500"
939 TTS_OPTS=$ESPEAK_OPTS
941 [Ff])
942 TTS_ENGINE="festival"
943 NOISEFLOOR="500"
944 TTS_OPTS=$FESTIVAL_OPTS
946 [Ss])
947 TTS_ENGINE="sapi"
948 NOISEFLOOR="500"
949 TTS_OPTS=$SAPI_OPTS
951 [Ww])
952 TTS_ENGINE="swift"
953 NOISEFLOOR="500"
954 TTS_OPTS=$SWIFT_OPTS
957 TTS_ENGINE=$DEFAULT_TTS
958 TTS_OPTS=$DEFAULT_TTS_OPTS
959 NOISEFLOOR=$DEFAULT_NOISEFLOOR
960 esac
961 echo "Using $TTS_ENGINE for TTS"
963 # Select which voice to use for Festival
964 if [ "$TTS_ENGINE" = "festival" ]; then
965 voicelist=`echo "(voice.list)"|festival -i 2>/dev/null |tr "\n" " "|sed -e 's/.*festival> (\(.*\)) festival>/\1/'|sort`
966 for voice in $voicelist; do
967 TTS_FESTIVAL_VOICE="$voice" # Default choice
968 break
969 done
970 if [ "$ARG_VOICE" ]; then
971 CHOICE=$ARG_VOICE
972 else
974 for voice in $voicelist; do
975 printf "%3d. %s\n" "$i" "$voice"
976 i=`expr $i + 1`
977 done
978 printf "Please select which Festival voice to use (default is $TTS_FESTIVAL_VOICE): "
979 CHOICE=`input`
982 for voice in $voicelist; do
983 if [ "$i" = "$CHOICE" -o "$voice" = "$CHOICE" ]; then
984 TTS_FESTIVAL_VOICE="$voice"
986 i=`expr $i + 1`
987 done
988 advopts="$advopts --voice=$CHOICE"
989 echo "Festival voice set to $TTS_FESTIVAL_VOICE"
990 echo "(voice_$TTS_FESTIVAL_VOICE)" > festival-prolog.scm
993 # Read custom tts options from command line
994 if [ "$ARG_TTSOPTS" ]; then
995 TTS_OPTS="$ARG_TTSOPTS"
996 echo "$TTS_ENGINE options set to $TTS_OPTS"
999 if [ "$swcodec" = "yes" ]; then
1000 ENCODER="rbspeexenc"
1001 ENC_OPTS="-q 4 -c 10"
1002 else
1003 if [ -n "`findtool lame`" ]; then
1004 ENCODER="lame"
1005 ENC_OPTS="--resample 12 -t -m m -h -V 9.999 -S -B 64 --vbr-new"
1006 else
1007 echo "You need LAME in the system path to build voice files for"
1008 echo "HWCODEC targets."
1009 exit 4
1013 echo "Using $ENCODER for encoding voice clips"
1015 # Read custom encoder options from command line
1016 if [ "$ARG_ENCOPTS" ]; then
1017 ENC_OPTS="$ARG_ENCOPTS"
1018 echo "$ENCODER options set to $ENC_OPTS"
1021 TEMPDIR="${pwd}"
1022 if [ -n "`findtool cygpath`" ]; then
1023 TEMPDIR=`cygpath . -a -w`
1027 picklang() {
1028 # figure out which languages that are around
1029 for file in $rootdir/apps/lang/*.lang; do
1030 clean=`basename $file .lang`
1031 langs="$langs $clean"
1032 done
1034 if [ "$ARG_LANG" ]; then
1035 pick=$ARG_LANG
1036 else
1037 echo "Select a number for the language to use (default is english)"
1038 # FIXME The multiple-language feature is currently broken
1039 # echo "You may enter a comma-separated list of languages to build"
1041 num=1
1042 for one in $langs; do
1043 echo "$num. $one"
1044 num=`expr $num + 1`
1045 done
1046 pick=`input`
1047 advopts="$advopts --language=$pick"
1051 whichlang() {
1052 output=""
1053 # Allow the user to pass a comma-separated list of langauges
1054 for thispick in `echo $pick | sed 's/,/ /g'`; do
1055 num=1
1056 for one in $langs; do
1057 # Accept both the language number and name
1058 if [ "$num" = "$thispick" ] || [ "$thispick" = "$one" ]; then
1059 if [ "$output" = "" ]; then
1060 output=$one
1061 else
1062 output=$output,$one
1065 num=`expr $num + 1`
1066 done
1067 done
1068 if [ -z "$output" ]; then
1069 # pick a default
1070 output="english"
1072 echo $output
1075 help() {
1076 echo "Rockbox configure script."
1077 echo "Invoke this in a directory to generate a Makefile to build Rockbox"
1078 echo "Do *NOT* run this within the tools directory!"
1079 echo ""
1080 cat <<EOF
1081 Usage: configure [OPTION]...
1082 Options:
1083 --target=TARGET Sets the target, TARGET can be either the target ID or
1084 corresponding string. Run without this option to see all
1085 available targets.
1087 --ram=RAM Sets the RAM for certain targets. Even though any number
1088 is accepted, not every number is correct. The default
1089 value will be applied, if you entered a wrong number
1090 (which depends on the target). Watch the output. Run
1091 without this option if you are not sure which the right
1092 number is.
1094 --type=TYPE Sets the build type. Shortcuts are also valid.
1095 Run without this option to see all available types.
1096 Multiple values are allowed and managed in the input
1097 order. So --type=b stands for Bootloader build, while
1098 --type=ab stands for "Backlight MOD" build.
1100 --lcdwidth=X Sets the width of the LCD. Used only for application
1101 targets.
1103 --lcdheight=Y Sets the height of the LCD. Used only for application
1104 targets.
1106 --language=LANG Set the language used for voice generation (used only if
1107 TYPE is AV).
1109 --tts=ENGINE Set the TTS engine used for voice generation (used only
1110 if TYPE is AV).
1112 --voice=VOICE Set voice to use with selected TTS (used only if TYPE is
1113 AV).
1115 --ttsopts=OPTS Set TTS engine manual options (used only if TYPE is AV).
1117 --encopts=OPTS Set encoder manual options (used only if ATYPE is AV).
1119 --rbdir=dir Use alternative rockbox directory (default: ${rbdir}).
1120 This is useful for having multiple alternate builds on
1121 your device that you can load with ROLO. However as the
1122 bootloader looks for .rockbox you won't be able to boot
1123 into this build.
1125 --ccache Enable ccache use (done by default these days)
1126 --no-ccache Disable ccache use
1128 --thumb Build with -mthumb (for ARM builds)
1129 --no-thumb The opposite of --thumb (don't use thumb even for targets
1130 where this is the default
1131 --sdl-threads Force use of SDL threads. They have inferior performance,
1132 but are better debuggable with GDB
1133 --no-sdl-threads Disallow use of SDL threads. This prevents the default
1134 behavior of falling back to them if no native thread
1135 support was found.
1136 --prefix Target installation directory
1137 --help Shows this message (must not be used with other options)
1141 exit
1144 ARG_CCACHE=
1145 ARG_ENCOPTS=
1146 ARG_LANG=
1147 ARG_RAM=
1148 ARG_RBDIR=
1149 ARG_TARGET=
1150 ARG_TTS=
1151 ARG_TTSOPTS=
1152 ARG_TYPE=
1153 ARG_VOICE=
1154 ARG_ARM_THUMB=
1155 ARG_PREFIX="$PREFIX"
1156 ARG_THREAD_SUPPORT=
1157 err=
1158 for arg in "$@"; do
1159 case "$arg" in
1160 --ccache) ARG_CCACHE=1;;
1161 --no-ccache) ARG_CCACHE=0;;
1162 --encopts=*) ARG_ENCOPTS=`echo "$arg" | cut -d = -f 2`;;
1163 --language=*) ARG_LANG=`echo "$arg" | cut -d = -f 2`;;
1164 --lcdwidth=*) ARG_LCDWIDTH=`echo "$arg" | cut -d = -f 2`;;
1165 --lcdheight=*) ARG_LCDHEIGHT=`echo "$arg" | cut -d = -f 2`;;
1166 --ram=*) ARG_RAM=`echo "$arg" | cut -d = -f 2`;;
1167 --rbdir=*) ARG_RBDIR=`echo "$arg" | cut -d = -f 2`;;
1168 --target=*) ARG_TARGET=`echo "$arg" | cut -d = -f 2`;;
1169 --tts=*) ARG_TTS=`echo "$arg" | cut -d = -f 2`;;
1170 --ttsopts=*) ARG_TTSOPTS=`echo "$arg" | cut -d = -f 2`;;
1171 --type=*) ARG_TYPE=`echo "$arg" | cut -d = -f 2`;;
1172 --voice=*) ARG_VOICE=`echo "$arg" | cut -d = -f 2`;;
1173 --thumb) ARG_ARM_THUMB=1;;
1174 --no-thumb) ARG_ARM_THUMB=0;;
1175 --sdl-threads)ARG_THREAD_SUPPORT=1;;
1176 --no-sdl-threads)
1177 ARG_THREAD_SUPPORT=0;;
1178 --prefix=*) ARG_PREFIX=`echo "$arg" | cut -d = -f 2`;;
1179 --help) help;;
1180 *) err=1; echo "[ERROR] Option '$arg' unsupported";;
1181 esac
1182 done
1183 [ "$err" ] && exit 1
1185 advopts=
1187 if [ "$TMPDIR" != "" ]; then
1188 tmpdir=$TMPDIR
1189 else
1190 tmpdir=/tmp
1192 echo Using temporary directory $tmpdir
1194 if test -r "configure"; then
1195 # this is a check for a configure script in the current directory, it there
1196 # is one, try to figure out if it is this one!
1198 if { grep "^# Jukebox" configure >/dev/null 2>&1 ; } then
1199 echo "WEEEEEEEEP. Don't run this configure script within the tools directory."
1200 echo "It will only cause you pain and grief. Instead do this:"
1201 echo ""
1202 echo " cd .."
1203 echo " mkdir build-dir"
1204 echo " cd build-dir"
1205 echo " ../tools/configure"
1206 echo ""
1207 echo "Much happiness will arise from this. Enjoy"
1208 exit 5
1212 # get our current directory
1213 pwd=`pwd`;
1215 if { echo $pwd | grep " "; } then
1216 echo "You're running this script in a path that contains space. The build"
1217 echo "system is unfortunately not clever enough to deal with this. Please"
1218 echo "run the script from a different path, rename the path or fix the build"
1219 echo "system!"
1220 exit 6
1223 if [ -z "$rootdir" ]; then
1224 ##################################################################
1225 # Figure out where the source code root is!
1227 rootdir=`dirname $0`/../
1229 #####################################################################
1230 # Convert the possibly relative directory name to an absolute version
1232 now=`pwd`
1233 cd $rootdir
1234 rootdir=`pwd`
1236 # cd back to the build dir
1237 cd $now
1240 apps="apps"
1241 appsdir='$(ROOTDIR)/apps'
1242 toolsdir='$(ROOTDIR)/tools'
1245 ##################################################################
1246 # Figure out target platform
1249 if [ "$ARG_TARGET" ]; then
1250 buildfor=$ARG_TARGET
1251 else
1252 echo "Enter target platform:"
1253 cat <<EOF
1254 ==Archos== ==iriver== ==Apple iPod==
1255 0) Player/Studio 10) H120/H140 20) Color/Photo
1256 1) Recorder 11) H320/H340 21) Nano 1G
1257 2) FM Recorder 12) iHP-100/110/115 22) Video
1258 3) Recorder v2 13) iFP-790 23) 3G
1259 4) Ondio SP 14) H10 20Gb 24) 4G Grayscale
1260 5) Ondio FM 15) H10 5/6Gb 25) Mini 1G
1261 6) AV300 26) Mini 2G
1262 ==Toshiba== 27) 1G, 2G
1263 ==Cowon/iAudio== 40) Gigabeat F/X 28) Nano 2G
1264 30) X5/X5V/X5L 41) Gigabeat S 29) Classic/6G
1265 31) M5/M5L
1266 32) 7 ==Olympus= ==SanDisk==
1267 33) D2 70) M:Robe 500 50) Sansa e200
1268 34) M3/M3L 71) M:Robe 100 51) Sansa e200R
1269 52) Sansa c200
1270 ==Creative== ==Philips== 53) Sansa m200
1271 90) Zen Vision:M 30GB 100) GoGear SA9200 54) Sansa c100
1272 91) Zen Vision:M 60GB 101) GoGear HDD1630/ 55) Sansa Clip
1273 92) Zen Vision HDD1830 56) Sansa e200v2
1274 93) Zen X-Fi2 102) GoGear HDD6330 57) Sansa m200v4
1275 94) Zen X-Fi3 58) Sansa Fuze
1276 ==Meizu== 59) Sansa c200v2
1277 ==Onda== 110) M6SL 60) Sansa Clipv2
1278 120) VX747 111) M6SP 61) Sansa View
1279 121) VX767 112) M3 62) Sansa Clip+
1280 122) VX747+ 63) Sansa Fuze v2
1281 123) VX777 ==Tatung== 64) Sansa Fuze+
1282 150) Elio TPJ-1022 65) Sansa Clip Zip
1283 ==Samsung== 66) Sansa Connect
1284 140) YH-820 ==Packard Bell==
1285 141) YH-920 160) Vibe 500 ==Logik==
1286 142) YH-925 80) DAX 1GB MP3/DAB
1287 143) YP-S3 ==MPIO==
1288 170) HD200 ==Lyre project==
1289 ==Application== 171) HD300 130) Lyre proto 1
1290 200) SDL 131) Mini2440
1291 201) Android ==ROCKCHIP==
1292 202) Nokia N8xx 180) rk27xx generic ==HiFiMAN==
1293 203) Nokia N900 190) HM-60x
1294 204) Pandora 191) HM-801
1295 205) Samsung YP-R0
1298 buildfor=`input`;
1301 # Set of tools built for all target platforms:
1302 toolset="rdf2binary convbdf codepages"
1304 # Toolsets for some target families:
1305 archosbitmaptools="$toolset scramble descramble sh2d uclpack bmp2rb"
1306 iriverbitmaptools="$toolset scramble descramble mkboot bmp2rb"
1307 iaudiobitmaptools="$toolset scramble descramble mkboot bmp2rb"
1308 ipodbitmaptools="$toolset scramble bmp2rb"
1309 gigabeatbitmaptools="$toolset scramble descramble bmp2rb"
1310 tccbitmaptools="$toolset scramble bmp2rb"
1311 # generic is used by IFP, Meizu and Onda
1312 genericbitmaptools="$toolset bmp2rb"
1313 # scramble is used by all other targets
1314 scramblebitmaptools="$genericbitmaptools scramble"
1317 # ---- For each target ----
1319 # *Variables*
1320 # target_id: a unique number identifying this target, IS NOT the menu number.
1321 # Just use the currently highest number+1 when you add a new
1322 # target.
1323 # modelname: short model name used all over to identify this target
1324 # memory: number of megabytes of RAM this target has. If the amount can
1325 # be selected by the size prompt, let memory be unset here
1326 # target: -Ddefine passed to the build commands to make the correct
1327 # config-*.h file get included etc
1328 # tool: the tool that takes a plain binary and converts that into a
1329 # working "firmware" file for your target
1330 # output: the final output file name
1331 # boottool: the tool that takes a plain binary and generates a bootloader
1332 # file for your target (or blank to use $tool)
1333 # bootoutput:the final output file name for the bootloader (or blank to use
1334 # $output)
1335 # appextra: passed to the APPEXTRA variable in the Makefiles.
1336 # TODO: add proper explanation
1337 # archosrom: used only for Archos targets that build a special flashable .ucl
1338 # image.
1339 # flash: name of output for flashing, for targets where there's a special
1340 # file output for this.
1341 # plugins: set to 'yes' to build the plugins. Early development builds can
1342 # set this to no in the early stages to have an easier life for a
1343 # while
1344 # swcodec: set 'yes' on swcodec targets
1345 # toolset: lists what particular tools in the tools/ directory that this
1346 # target needs to have built prior to building Rockbox
1348 # *Functions*
1349 # *cc: sets up gcc and compiler options for your target builds. Note
1350 # that if you select a simulator build, the compiler selection is
1351 # overridden later in the script.
1353 case $buildfor in
1355 0|archosplayer)
1356 target_id=1
1357 modelname="archosplayer"
1358 target="ARCHOS_PLAYER"
1359 shcc
1360 tool="$rootdir/tools/scramble"
1361 output="archos.mod"
1362 appextra="player:gui"
1363 archosrom="$pwd/rombox.ucl"
1364 flash="$pwd/rockbox.ucl"
1365 plugins="yes"
1366 swcodec=""
1368 # toolset is the tools within the tools directory that we build for
1369 # this particular target.
1370 toolset="$toolset scramble descramble sh2d player_unifont uclpack"
1372 # Note: the convbdf is present in the toolset just because: 1) the
1373 # firmware/Makefile assumes it is present always, and 2) we will need it when we
1374 # build the player simulator
1376 t_cpu="sh"
1377 t_manufacturer="archos"
1378 t_model="player"
1381 1|archosrecorder)
1382 target_id=2
1383 modelname="archosrecorder"
1384 target="ARCHOS_RECORDER"
1385 shcc
1386 tool="$rootdir/tools/scramble"
1387 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1388 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1389 output="ajbrec.ajz"
1390 appextra="recorder:gui:radio"
1391 #archosrom="$pwd/rombox.ucl"
1392 flash="$pwd/rockbox.ucl"
1393 plugins="yes"
1394 swcodec=""
1395 # toolset is the tools within the tools directory that we build for
1396 # this particular target.
1397 toolset=$archosbitmaptools
1398 t_cpu="sh"
1399 t_manufacturer="archos"
1400 t_model="recorder"
1403 2|archosfmrecorder)
1404 target_id=3
1405 modelname="archosfmrecorder"
1406 target="ARCHOS_FMRECORDER"
1407 shcc
1408 tool="$rootdir/tools/scramble -fm"
1409 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1410 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1411 output="ajbrec.ajz"
1412 appextra="recorder:gui:radio"
1413 #archosrom="$pwd/rombox.ucl"
1414 flash="$pwd/rockbox.ucl"
1415 plugins="yes"
1416 swcodec=""
1417 # toolset is the tools within the tools directory that we build for
1418 # this particular target.
1419 toolset=$archosbitmaptools
1420 t_cpu="sh"
1421 t_manufacturer="archos"
1422 t_model="fm_v2"
1425 3|archosrecorderv2)
1426 target_id=4
1427 modelname="archosrecorderv2"
1428 target="ARCHOS_RECORDERV2"
1429 shcc
1430 tool="$rootdir/tools/scramble -v2"
1431 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1432 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1433 output="ajbrec.ajz"
1434 appextra="recorder:gui:radio"
1435 #archosrom="$pwd/rombox.ucl"
1436 flash="$pwd/rockbox.ucl"
1437 plugins="yes"
1438 swcodec=""
1439 # toolset is the tools within the tools directory that we build for
1440 # this particular target.
1441 toolset=$archosbitmaptools
1442 t_cpu="sh"
1443 t_manufacturer="archos"
1444 t_model="fm_v2"
1447 4|archosondiosp)
1448 target_id=7
1449 modelname="archosondiosp"
1450 target="ARCHOS_ONDIOSP"
1451 shcc
1452 tool="$rootdir/tools/scramble -osp"
1453 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1454 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1455 output="ajbrec.ajz"
1456 appextra="recorder:gui:radio"
1457 #archosrom="$pwd/rombox.ucl"
1458 flash="$pwd/rockbox.ucl"
1459 plugins="yes"
1460 swcodec=""
1461 # toolset is the tools within the tools directory that we build for
1462 # this particular target.
1463 toolset=$archosbitmaptools
1464 t_cpu="sh"
1465 t_manufacturer="archos"
1466 t_model="ondio"
1469 5|archosondiofm)
1470 target_id=8
1471 modelname="archosondiofm"
1472 target="ARCHOS_ONDIOFM"
1473 shcc
1474 tool="$rootdir/tools/scramble -ofm"
1475 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1476 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1477 output="ajbrec.ajz"
1478 appextra="recorder:gui:radio"
1479 #archosrom="$pwd/rombox.ucl"
1480 flash="$pwd/rockbox.ucl"
1481 plugins="yes"
1482 swcodec=""
1483 toolset=$archosbitmaptools
1484 t_cpu="sh"
1485 t_manufacturer="archos"
1486 t_model="ondio"
1489 6|archosav300)
1490 target_id=38
1491 modelname="archosav300"
1492 target="ARCHOS_AV300"
1493 memory=16 # always
1494 arm7tdmicc
1495 tool="$rootdir/tools/scramble -mm=C"
1496 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1497 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
1498 output="cjbm.ajz"
1499 appextra="recorder:gui:radio"
1500 plugins="yes"
1501 swcodec=""
1502 # toolset is the tools within the tools directory that we build for
1503 # this particular target.
1504 toolset="$toolset scramble descramble bmp2rb"
1505 # architecture, manufacturer and model for the target-tree build
1506 t_cpu="arm"
1507 t_manufacturer="archos"
1508 t_model="av300"
1511 10|iriverh120)
1512 target_id=9
1513 modelname="iriverh120"
1514 target="IRIVER_H120"
1515 memory=32 # always
1516 coldfirecc
1517 tool="$rootdir/tools/scramble -add=h120"
1518 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1519 bmp2rb_native="$rootdir/tools/bmp2rb -f 2"
1520 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
1521 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0"
1522 output="rockbox.iriver"
1523 bootoutput="bootloader.iriver"
1524 appextra="recorder:gui:radio"
1525 flash="$pwd/rombox.iriver"
1526 plugins="yes"
1527 swcodec="yes"
1528 # toolset is the tools within the tools directory that we build for
1529 # this particular target.
1530 toolset=$iriverbitmaptools
1531 t_cpu="coldfire"
1532 t_manufacturer="iriver"
1533 t_model="h100"
1536 11|iriverh300)
1537 target_id=10
1538 modelname="iriverh300"
1539 target="IRIVER_H300"
1540 memory=32 # always
1541 coldfirecc
1542 tool="$rootdir/tools/scramble -add=h300"
1543 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1544 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1545 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
1546 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0"
1547 output="rockbox.iriver"
1548 appextra="recorder:gui:radio"
1549 plugins="yes"
1550 swcodec="yes"
1551 # toolset is the tools within the tools directory that we build for
1552 # this particular target.
1553 toolset=$iriverbitmaptools
1554 t_cpu="coldfire"
1555 t_manufacturer="iriver"
1556 t_model="h300"
1559 12|iriverh100)
1560 target_id=11
1561 modelname="iriverh100"
1562 target="IRIVER_H100"
1563 memory=16 # always
1564 coldfirecc
1565 tool="$rootdir/tools/scramble -add=h100"
1566 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1567 bmp2rb_native="$rootdir/tools/bmp2rb -f 2"
1568 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
1569 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0"
1570 output="rockbox.iriver"
1571 bootoutput="bootloader.iriver"
1572 appextra="recorder:gui:radio"
1573 flash="$pwd/rombox.iriver"
1574 plugins="yes"
1575 swcodec="yes"
1576 # toolset is the tools within the tools directory that we build for
1577 # this particular target.
1578 toolset=$iriverbitmaptools
1579 t_cpu="coldfire"
1580 t_manufacturer="iriver"
1581 t_model="h100"
1584 13|iriverifp7xx)
1585 target_id=19
1586 modelname="iriverifp7xx"
1587 target="IRIVER_IFP7XX"
1588 memory=1
1589 arm7tdmicc short
1590 tool="cp"
1591 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1592 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1593 output="rockbox.wma"
1594 appextra="recorder:gui:radio"
1595 plugins="yes"
1596 swcodec="yes"
1597 # toolset is the tools within the tools directory that we build for
1598 # this particular target.
1599 toolset=$genericbitmaptools
1600 t_cpu="arm"
1601 t_manufacturer="pnx0101"
1602 t_model="iriver-ifp7xx"
1605 14|iriverh10)
1606 target_id=22
1607 modelname="iriverh10"
1608 target="IRIVER_H10"
1609 memory=32 # always
1610 arm7tdmicc
1611 tool="$rootdir/tools/scramble -mi4v3 -model=h10 -type=RBOS"
1612 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1613 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
1614 output="rockbox.mi4"
1615 appextra="recorder:gui:radio"
1616 plugins="yes"
1617 swcodec="yes"
1618 boottool="$rootdir/tools/scramble -mi4v3 -model=h10 -type=RBBL"
1619 bootoutput="H10_20GC.mi4"
1620 # toolset is the tools within the tools directory that we build for
1621 # this particular target.
1622 toolset=$scramblebitmaptools
1623 # architecture, manufacturer and model for the target-tree build
1624 t_cpu="arm"
1625 t_soc="pp"
1626 t_manufacturer="iriver"
1627 t_model="h10"
1630 15|iriverh10_5gb)
1631 target_id=24
1632 modelname="iriverh10_5gb"
1633 target="IRIVER_H10_5GB"
1634 memory=32 # always
1635 arm7tdmicc
1636 tool="$rootdir/tools/scramble -mi4v2 -model=h105 -type=RBOS"
1637 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1638 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
1639 output="rockbox.mi4"
1640 appextra="recorder:gui:radio"
1641 plugins="yes"
1642 swcodec="yes"
1643 boottool="$rootdir/tools/scramble -mi4v2 -model=h105 -type=RBBL"
1644 bootoutput="H10.mi4"
1645 # toolset is the tools within the tools directory that we build for
1646 # this particular target.
1647 toolset=$scramblebitmaptools
1648 # architecture, manufacturer and model for the target-tree build
1649 t_cpu="arm"
1650 t_soc="pp"
1651 t_manufacturer="iriver"
1652 t_model="h10"
1655 20|ipodcolor)
1656 target_id=13
1657 modelname="ipodcolor"
1658 target="IPOD_COLOR"
1659 memory=32 # always
1660 arm7tdmicc
1661 tool="$rootdir/tools/scramble -add=ipco"
1662 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1663 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
1664 output="rockbox.ipod"
1665 appextra="recorder:gui:radio"
1666 plugins="yes"
1667 swcodec="yes"
1668 bootoutput="bootloader-$modelname.ipod"
1669 # toolset is the tools within the tools directory that we build for
1670 # this particular target.
1671 toolset=$ipodbitmaptools
1672 # architecture, manufacturer and model for the target-tree build
1673 t_cpu="arm"
1674 t_soc="pp"
1675 t_manufacturer="ipod"
1676 t_model="color"
1679 21|ipodnano1g)
1680 target_id=14
1681 modelname="ipodnano1g"
1682 target="IPOD_NANO"
1683 memory=32 # always
1684 arm7tdmicc
1685 tool="$rootdir/tools/scramble -add=nano"
1686 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1687 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
1688 output="rockbox.ipod"
1689 appextra="recorder:gui:radio"
1690 plugins="yes"
1691 swcodec="yes"
1692 bootoutput="bootloader-$modelname.ipod"
1693 # toolset is the tools within the tools directory that we build for
1694 # this particular target.
1695 toolset=$ipodbitmaptools
1696 # architecture, manufacturer and model for the target-tree build
1697 t_cpu="arm"
1698 t_soc="pp"
1699 t_manufacturer="ipod"
1700 t_model="nano"
1703 22|ipodvideo)
1704 target_id=15
1705 modelname="ipodvideo"
1706 target="IPOD_VIDEO"
1707 memory=64 # always. This is reduced at runtime if needed
1708 arm7tdmicc
1709 tool="$rootdir/tools/scramble -add=ipvd"
1710 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1711 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1712 output="rockbox.ipod"
1713 appextra="recorder:gui:radio"
1714 plugins="yes"
1715 swcodec="yes"
1716 bootoutput="bootloader-$modelname.ipod"
1717 # toolset is the tools within the tools directory that we build for
1718 # this particular target.
1719 toolset=$ipodbitmaptools
1720 # architecture, manufacturer and model for the target-tree build
1721 t_cpu="arm"
1722 t_soc="pp"
1723 t_manufacturer="ipod"
1724 t_model="video"
1727 23|ipod3g)
1728 target_id=16
1729 modelname="ipod3g"
1730 target="IPOD_3G"
1731 memory=32 # always
1732 arm7tdmicc
1733 tool="$rootdir/tools/scramble -add=ip3g"
1734 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1735 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
1736 output="rockbox.ipod"
1737 appextra="recorder:gui:radio"
1738 plugins="yes"
1739 swcodec="yes"
1740 bootoutput="bootloader-$modelname.ipod"
1741 # toolset is the tools within the tools directory that we build for
1742 # this particular target.
1743 toolset=$ipodbitmaptools
1744 # architecture, manufacturer and model for the target-tree build
1745 t_cpu="arm"
1746 t_soc="pp"
1747 t_manufacturer="ipod"
1748 t_model="3g"
1751 24|ipod4g)
1752 target_id=17
1753 modelname="ipod4g"
1754 target="IPOD_4G"
1755 memory=32 # always
1756 arm7tdmicc
1757 tool="$rootdir/tools/scramble -add=ip4g"
1758 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1759 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
1760 output="rockbox.ipod"
1761 appextra="recorder:gui:radio"
1762 plugins="yes"
1763 swcodec="yes"
1764 bootoutput="bootloader-$modelname.ipod"
1765 # toolset is the tools within the tools directory that we build for
1766 # this particular target.
1767 toolset=$ipodbitmaptools
1768 # architecture, manufacturer and model for the target-tree build
1769 t_cpu="arm"
1770 t_soc="pp"
1771 t_manufacturer="ipod"
1772 t_model="4g"
1775 25|ipodmini1g)
1776 target_id=18
1777 modelname="ipodmini1g"
1778 target="IPOD_MINI"
1779 memory=32 # always
1780 arm7tdmicc
1781 tool="$rootdir/tools/scramble -add=mini"
1782 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1783 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
1784 output="rockbox.ipod"
1785 appextra="recorder:gui:radio"
1786 plugins="yes"
1787 swcodec="yes"
1788 bootoutput="bootloader-$modelname.ipod"
1789 # toolset is the tools within the tools directory that we build for
1790 # this particular target.
1791 toolset=$ipodbitmaptools
1792 # architecture, manufacturer and model for the target-tree build
1793 t_cpu="arm"
1794 t_soc="pp"
1795 t_manufacturer="ipod"
1796 t_model="mini"
1799 26|ipodmini2g)
1800 target_id=21
1801 modelname="ipodmini2g"
1802 target="IPOD_MINI2G"
1803 memory=32 # always
1804 arm7tdmicc
1805 tool="$rootdir/tools/scramble -add=mn2g"
1806 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1807 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
1808 output="rockbox.ipod"
1809 appextra="recorder:gui:radio"
1810 plugins="yes"
1811 swcodec="yes"
1812 bootoutput="bootloader-$modelname.ipod"
1813 # toolset is the tools within the tools directory that we build for
1814 # this particular target.
1815 toolset=$ipodbitmaptools
1816 # architecture, manufacturer and model for the target-tree build
1817 t_cpu="arm"
1818 t_soc="pp"
1819 t_manufacturer="ipod"
1820 t_model="mini2g"
1823 27|ipod1g2g)
1824 target_id=29
1825 modelname="ipod1g2g"
1826 target="IPOD_1G2G"
1827 memory=32 # always
1828 arm7tdmicc
1829 tool="$rootdir/tools/scramble -add=1g2g"
1830 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1831 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
1832 output="rockbox.ipod"
1833 appextra="recorder:gui:radio"
1834 plugins="yes"
1835 swcodec="yes"
1836 bootoutput="bootloader-$modelname.ipod"
1837 # toolset is the tools within the tools directory that we build for
1838 # this particular target.
1839 toolset=$ipodbitmaptools
1840 # architecture, manufacturer and model for the target-tree build
1841 t_cpu="arm"
1842 t_soc="pp"
1843 t_manufacturer="ipod"
1844 t_model="1g2g"
1847 28|ipodnano2g)
1848 target_id=62
1849 modelname="ipodnano2g"
1850 target="IPOD_NANO2G"
1851 memory=32 # always
1852 arm940tcc
1853 tool="$rootdir/tools/scramble -add=nn2g"
1854 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1855 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1856 output="rockbox.ipod"
1857 appextra="recorder:gui:radio"
1858 plugins="yes"
1859 swcodec="yes"
1860 bootoutput="bootloader-$modelname.ipod"
1861 # toolset is the tools within the tools directory that we build for
1862 # this particular target.
1863 toolset=$ipodbitmaptools
1864 # architecture, manufacturer and model for the target-tree build
1865 t_cpu="arm"
1866 t_manufacturer="s5l8700"
1867 t_model="ipodnano2g"
1870 29|ipod6g)
1871 target_id=71
1872 modelname="ipod6g"
1873 target="IPOD_6G"
1874 memory=64 # always
1875 arm926ejscc
1876 tool="$rootdir/tools/scramble -add=ip6g"
1877 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1878 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1879 output="rockbox.ipod"
1880 appextra="recorder:gui:radio"
1881 plugins="yes"
1882 swcodec="yes"
1883 bootoutput="bootloader-$modelname.ipod"
1884 # toolset is the tools within the tools directory that we build for
1885 # this particular target.
1886 toolset=$ipodbitmaptools
1887 # architecture, manufacturer and model for the target-tree build
1888 t_cpu="arm"
1889 t_manufacturer="s5l8702"
1890 t_model="ipod6g"
1893 30|iaudiox5)
1894 target_id=12
1895 modelname="iaudiox5"
1896 target="IAUDIO_X5"
1897 memory=16 # always
1898 coldfirecc
1899 tool="$rootdir/tools/scramble -add=iax5"
1900 boottool="$rootdir/tools/scramble -iaudiox5"
1901 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1902 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1903 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
1904 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 7"
1905 output="rockbox.iaudio"
1906 bootoutput="x5_fw.bin"
1907 appextra="recorder:gui:radio"
1908 plugins="yes"
1909 swcodec="yes"
1910 # toolset is the tools within the tools directory that we build for
1911 # this particular target.
1912 toolset="$iaudiobitmaptools"
1913 # architecture, manufacturer and model for the target-tree build
1914 t_cpu="coldfire"
1915 t_manufacturer="iaudio"
1916 t_model="x5"
1919 31|iaudiom5)
1920 target_id=28
1921 modelname="iaudiom5"
1922 target="IAUDIO_M5"
1923 memory=16 # always
1924 coldfirecc
1925 tool="$rootdir/tools/scramble -add=iam5"
1926 boottool="$rootdir/tools/scramble -iaudiom5"
1927 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1928 bmp2rb_native="$rootdir/tools/bmp2rb -f 2"
1929 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
1930 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 7"
1931 output="rockbox.iaudio"
1932 bootoutput="m5_fw.bin"
1933 appextra="recorder:gui:radio"
1934 plugins="yes"
1935 swcodec="yes"
1936 # toolset is the tools within the tools directory that we build for
1937 # this particular target.
1938 toolset="$iaudiobitmaptools"
1939 # architecture, manufacturer and model for the target-tree build
1940 t_cpu="coldfire"
1941 t_manufacturer="iaudio"
1942 t_model="m5"
1945 32|iaudio7)
1946 target_id=32
1947 modelname="iaudio7"
1948 target="IAUDIO_7"
1949 memory=16 # always
1950 arm946cc
1951 tool="$rootdir/tools/scramble -add=i7"
1952 boottool="$rootdir/tools/scramble -tcc=crc"
1953 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1954 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1955 output="rockbox.iaudio"
1956 appextra="recorder:gui:radio"
1957 plugins="yes"
1958 swcodec="yes"
1959 bootoutput="I7_FW.BIN"
1960 # toolset is the tools within the tools directory that we build for
1961 # this particular target.
1962 toolset="$tccbitmaptools"
1963 # architecture, manufacturer and model for the target-tree build
1964 t_cpu="arm"
1965 t_manufacturer="tcc77x"
1966 t_model="iaudio7"
1969 33|cowond2)
1970 target_id=34
1971 modelname="cowond2"
1972 target="COWON_D2"
1973 memory=32
1974 arm926ejscc
1975 tool="$rootdir/tools/scramble -add=d2"
1976 boottool="cp "
1977 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1978 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1979 output="rockbox.d2"
1980 bootoutput="bootloader-cowond2.bin"
1981 appextra="recorder:gui:radio"
1982 plugins="yes"
1983 swcodec="yes"
1984 toolset="$tccbitmaptools"
1985 # architecture, manufacturer and model for the target-tree build
1986 t_cpu="arm"
1987 t_manufacturer="tcc780x"
1988 t_model="cowond2"
1991 34|iaudiom3)
1992 target_id=37
1993 modelname="iaudiom3"
1994 target="IAUDIO_M3"
1995 memory=16 # always
1996 coldfirecc
1997 tool="$rootdir/tools/scramble -add=iam3"
1998 boottool="$rootdir/tools/scramble -iaudiom3"
1999 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2000 bmp2rb_native="$rootdir/tools/bmp2rb -f 7"
2001 output="rockbox.iaudio"
2002 bootoutput="cowon_m3.bin"
2003 appextra="recorder:gui:radio"
2004 plugins="yes"
2005 swcodec="yes"
2006 # toolset is the tools within the tools directory that we build for
2007 # this particular target.
2008 toolset="$iaudiobitmaptools"
2009 # architecture, manufacturer and model for the target-tree build
2010 t_cpu="coldfire"
2011 t_manufacturer="iaudio"
2012 t_model="m3"
2015 40|gigabeatfx)
2016 target_id=20
2017 modelname="gigabeatfx"
2018 target="GIGABEAT_F"
2019 memory=32 # always
2020 arm9tdmicc
2021 tool="$rootdir/tools/scramble -add=giga"
2022 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2023 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2024 output="rockbox.gigabeat"
2025 appextra="recorder:gui:radio"
2026 plugins="yes"
2027 swcodec="yes"
2028 toolset=$gigabeatbitmaptools
2029 boottool="$rootdir/tools/scramble -gigabeat"
2030 bootoutput="FWIMG01.DAT"
2031 # architecture, manufacturer and model for the target-tree build
2032 t_cpu="arm"
2033 t_manufacturer="s3c2440"
2034 t_model="gigabeat-fx"
2037 41|gigabeats)
2038 target_id=26
2039 modelname="gigabeats"
2040 target="GIGABEAT_S"
2041 memory=64
2042 arm1136jfscc
2043 tool="$rootdir/tools/scramble -add=gigs"
2044 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2045 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2046 output="rockbox.gigabeat"
2047 appextra="recorder:gui:radio"
2048 plugins="yes"
2049 swcodec="yes"
2050 toolset="$gigabeatbitmaptools"
2051 boottool="$rootdir/tools/scramble -gigabeats"
2052 bootoutput="nk.bin"
2053 # architecture, manufacturer and model for the target-tree build
2054 t_cpu="arm"
2055 t_manufacturer="imx31"
2056 t_model="gigabeat-s"
2059 70|mrobe500)
2060 target_id=36
2061 modelname="mrobe500"
2062 target="MROBE_500"
2063 memory=64 # always
2064 arm926ejscc
2065 tool="$rootdir/tools/scramble -add=m500"
2066 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2067 bmp2rb_native="$rootdir/tools/bmp2rb -f 8"
2068 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
2069 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0"
2070 output="rockbox.mrobe500"
2071 appextra="recorder:gui:radio"
2072 plugins="yes"
2073 swcodec="yes"
2074 toolset=$gigabeatbitmaptools
2075 boottool="cp "
2076 bootoutput="rockbox.mrboot"
2077 # architecture, manufacturer and model for the target-tree build
2078 t_cpu="arm"
2079 t_manufacturer="tms320dm320"
2080 t_model="mrobe-500"
2083 71|mrobe100)
2084 target_id=33
2085 modelname="mrobe100"
2086 target="MROBE_100"
2087 memory=32 # always
2088 arm7tdmicc
2089 tool="$rootdir/tools/scramble -mi4v2 -model=m100 -type=RBOS"
2090 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2091 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
2092 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
2093 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0"
2094 output="rockbox.mi4"
2095 appextra="recorder:gui:radio"
2096 plugins="yes"
2097 swcodec="yes"
2098 boottool="$rootdir/tools/scramble -mi4v2 -model=m100 -type=RBBL"
2099 bootoutput="pp5020.mi4"
2100 # toolset is the tools within the tools directory that we build for
2101 # this particular target.
2102 toolset=$scramblebitmaptools
2103 # architecture, manufacturer and model for the target-tree build
2104 t_cpu="arm"
2105 t_soc="pp"
2106 t_manufacturer="olympus"
2107 t_model="mrobe-100"
2110 80|logikdax)
2111 target_id=31
2112 modelname="logikdax"
2113 target="LOGIK_DAX"
2114 memory=2 # always
2115 arm946cc
2116 tool="$rootdir/tools/scramble -add=ldax"
2117 boottool="$rootdir/tools/scramble -tcc=crc"
2118 bootoutput="player.rom"
2119 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2120 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
2121 output="rockbox.logik"
2122 appextra="recorder:gui:radio"
2123 plugins=""
2124 swcodec="yes"
2125 # toolset is the tools within the tools directory that we build for
2126 # this particular target.
2127 toolset=$tccbitmaptools
2128 # architecture, manufacturer and model for the target-tree build
2129 t_cpu="arm"
2130 t_manufacturer="tcc77x"
2131 t_model="logikdax"
2134 90|zenvisionm30gb)
2135 target_id=35
2136 modelname="zenvisionm30gb"
2137 target="CREATIVE_ZVM"
2138 memory=64
2139 arm926ejscc
2140 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2141 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2142 tool="$rootdir/tools/scramble -creative=zvm"
2143 USE_ELF="yes"
2144 output="rockbox.zvm"
2145 appextra="recorder:gui:radio"
2146 plugins="yes"
2147 swcodec="yes"
2148 toolset=$ipodbitmaptools
2149 boottool="$rootdir/tools/scramble -creative=zvm -no-ciff"
2150 bootoutput="rockbox.zvmboot"
2151 # architecture, manufacturer and model for the target-tree build
2152 t_cpu="arm"
2153 t_manufacturer="tms320dm320"
2154 t_model="creative-zvm"
2157 91|zenvisionm60gb)
2158 target_id=40
2159 modelname="zenvisionm60gb"
2160 target="CREATIVE_ZVM60GB"
2161 memory=64
2162 arm926ejscc
2163 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2164 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2165 tool="$rootdir/tools/scramble -creative=zvm60 -no-ciff"
2166 USE_ELF="yes"
2167 output="rockbox.zvm60"
2168 appextra="recorder:gui:radio"
2169 plugins="yes"
2170 swcodec="yes"
2171 toolset=$ipodbitmaptools
2172 boottool="$rootdir/tools/scramble -creative=zvm60"
2173 bootoutput="rockbox.zvm60boot"
2174 # architecture, manufacturer and model for the target-tree build
2175 t_cpu="arm"
2176 t_manufacturer="tms320dm320"
2177 t_model="creative-zvm"
2180 92|zenvision)
2181 target_id=39
2182 modelname="zenvision"
2183 target="CREATIVE_ZV"
2184 memory=64
2185 arm926ejscc
2186 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2187 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2188 tool="$rootdir/tools/scramble -creative=zenvision -no-ciff"
2189 USE_ELF="yes"
2190 output="rockbox.zv"
2191 appextra="recorder:gui:radio"
2192 plugins=""
2193 swcodec="yes"
2194 toolset=$ipodbitmaptools
2195 boottool="$rootdir/tools/scramble -creative=zenvision"
2196 bootoutput="rockbox.zvboot"
2197 # architecture, manufacturer and model for the target-tree build
2198 t_cpu="arm"
2199 t_manufacturer="tms320dm320"
2200 t_model="creative-zvm"
2203 93|creativezenxfi2)
2204 target_id=80
2205 modelname="creativezenxfi2"
2206 target="CREATIVE_ZENXFI2"
2207 memory=64
2208 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2209 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2210 tool="$rootdir/tools/scramble -add=zxf2"
2211 output="rockbox.creative"
2212 bootoutput="bootloader-zenxfi2.creative"
2213 appextra="gui:recorder:radio"
2214 plugins="yes"
2215 swcodec="yes"
2216 toolset=$scramblebitmaptools
2217 t_cpu="arm"
2218 t_manufacturer="imx233"
2219 t_model="creative-zenxfi2"
2220 arm926ejscc
2223 94|creativezenxfi3)
2224 target_id=81
2225 modelname="creativezenxfi3"
2226 target="CREATIVE_ZENXFI3"
2227 memory=64
2228 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2229 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2230 tool="$rootdir/tools/scramble -add=zxf3"
2231 output="rockbox.creative"
2232 bootoutput="bootloader-zenxfi3.creative"
2233 appextra="gui:recorder:radio"
2234 plugins="no"
2235 swcodec="yes"
2236 toolset=$scramblebitmaptools
2237 t_cpu="arm"
2238 t_manufacturer="imx233"
2239 t_model="creative-zenxfi3"
2240 arm926ejscc
2243 50|sansae200)
2244 target_id=23
2245 modelname="sansae200"
2246 target="SANSA_E200"
2247 memory=32 # supposedly
2248 arm7tdmicc
2249 tool="$rootdir/tools/scramble -mi4v3 -model=e200 -type=RBOS"
2250 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2251 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2252 output="rockbox.mi4"
2253 appextra="recorder:gui:radio"
2254 plugins="yes"
2255 swcodec="yes"
2256 boottool="$rootdir/tools/scramble -mi4v3 -model=e200 -type=RBBL"
2257 bootoutput="PP5022.mi4"
2258 # toolset is the tools within the tools directory that we build for
2259 # this particular target.
2260 toolset=$scramblebitmaptools
2261 # architecture, manufacturer and model for the target-tree build
2262 t_cpu="arm"
2263 t_soc="pp"
2264 t_manufacturer="sandisk"
2265 t_model="sansa-e200"
2268 51|sansae200r)
2269 # the e200R model is pretty much identical to the e200, it only has a
2270 # different option to the scramble tool when building a bootloader and
2271 # makes the bootloader output file name in all lower case.
2272 target_id=27
2273 modelname="sansae200r"
2274 target="SANSA_E200"
2275 memory=32 # supposedly
2276 arm7tdmicc
2277 tool="$rootdir/tools/scramble -mi4v3 -model=e20r -type=RBOS"
2278 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2279 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2280 output="rockbox.mi4"
2281 appextra="recorder:gui:radio"
2282 plugins="yes"
2283 swcodec="yes"
2284 boottool="$rootdir/tools/scramble -mi4r -model=e20r -type=RBBL"
2285 bootoutput="pp5022.mi4"
2286 # toolset is the tools within the tools directory that we build for
2287 # this particular target.
2288 toolset=$scramblebitmaptools
2289 # architecture, manufacturer and model for the target-tree build
2290 t_cpu="arm"
2291 t_soc="pp"
2292 t_manufacturer="sandisk"
2293 t_model="sansa-e200"
2296 52|sansac200)
2297 target_id=30
2298 modelname="sansac200"
2299 target="SANSA_C200"
2300 memory=32 # supposedly
2301 arm7tdmicc
2302 tool="$rootdir/tools/scramble -mi4v3 -model=c200 -type=RBOS"
2303 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2304 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2305 output="rockbox.mi4"
2306 appextra="recorder:gui:radio"
2307 plugins="yes"
2308 swcodec="yes"
2309 boottool="$rootdir/tools/scramble -mi4v3 -model=c200 -type=RBBL"
2310 bootoutput="firmware.mi4"
2311 # toolset is the tools within the tools directory that we build for
2312 # this particular target.
2313 toolset=$scramblebitmaptools
2314 # architecture, manufacturer and model for the target-tree build
2315 t_cpu="arm"
2316 t_soc="pp"
2317 t_manufacturer="sandisk"
2318 t_model="sansa-c200"
2321 53|sansam200)
2322 target_id=48
2323 modelname="sansam200"
2324 target="SANSA_M200"
2325 memory=1 # always
2326 arm946cc
2327 tool="$rootdir/tools/scramble -add=m200"
2328 boottool="$rootdir/tools/scramble -tcc=crc"
2329 bootoutput="player.rom"
2330 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2331 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
2332 output="rockbox.m200"
2333 appextra="recorder:gui:radio"
2334 plugins=""
2335 swcodec="yes"
2336 # toolset is the tools within the tools directory that we build for
2337 # this particular target.
2338 toolset=$tccbitmaptools
2339 # architecture, manufacturer and model for the target-tree build
2340 t_cpu="arm"
2341 t_manufacturer="tcc77x"
2342 t_model="m200"
2345 54|sansac100)
2346 target_id=42
2347 modelname="sansac100"
2348 target="SANSA_C100"
2349 memory=2
2350 arm946cc
2351 tool="$rootdir/tools/scramble -add=c100"
2352 boottool="$rootdir/tools/scramble -tcc=crc"
2353 bootoutput="player.rom"
2354 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2355 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2356 output="rockbox.c100"
2357 appextra="recorder:gui:radio"
2358 plugins=""
2359 swcodec="yes"
2360 # toolset is the tools within the tools directory that we build for
2361 # this particular target.
2362 toolset=$tccbitmaptools
2363 # architecture, manufacturer and model for the target-tree build
2364 t_cpu="arm"
2365 t_manufacturer="tcc77x"
2366 t_model="c100"
2369 55|sansaclip)
2370 target_id=50
2371 modelname="sansaclip"
2372 target="SANSA_CLIP"
2373 memory=2
2374 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2375 bmp2rb_native="$bmp2rb_mono"
2376 tool="$rootdir/tools/scramble -add=clip"
2377 output="rockbox.sansa"
2378 bootoutput="bootloader-clip.sansa"
2379 appextra="recorder:gui:radio"
2380 plugins="yes"
2381 swcodec="yes"
2382 toolset=$scramblebitmaptools
2383 t_cpu="arm"
2384 t_manufacturer="as3525"
2385 t_model="sansa-clip"
2386 if [ "$ARG_ARM_THUMB" != 0 ]; then ARG_ARM_THUMB=1; fi
2387 arm9tdmicc
2388 GCCOPTS=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2392 56|sansae200v2)
2393 target_id=51
2394 modelname="sansae200v2"
2395 target="SANSA_E200V2"
2396 memory=8
2397 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2398 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2399 tool="$rootdir/tools/scramble -add=e2v2"
2400 output="rockbox.sansa"
2401 bootoutput="bootloader-e200v2.sansa"
2402 appextra="recorder:gui:radio"
2403 plugins="yes"
2404 swcodec="yes"
2405 toolset=$scramblebitmaptools
2406 t_cpu="arm"
2407 t_manufacturer="as3525"
2408 t_model="sansa-e200v2"
2409 arm9tdmicc
2413 57|sansam200v4)
2414 target_id=52
2415 modelname="sansam200v4"
2416 target="SANSA_M200V4"
2417 memory=2
2418 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2419 bmp2rb_native="$bmp2rb_mono"
2420 tool="$rootdir/tools/scramble -add=m2v4"
2421 output="rockbox.sansa"
2422 bootoutput="bootloader-m200v4.sansa"
2423 appextra="recorder:gui:radio"
2424 plugins="yes"
2425 swcodec="yes"
2426 toolset=$scramblebitmaptools
2427 t_cpu="arm"
2428 t_manufacturer="as3525"
2429 t_model="sansa-m200v4"
2430 if [ "$ARG_ARM_THUMB" != 0 ]; then ARG_ARM_THUMB=1; fi
2431 arm9tdmicc
2432 GCCOPTS=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2436 58|sansafuze)
2437 target_id=53
2438 modelname="sansafuze"
2439 target="SANSA_FUZE"
2440 memory=8
2441 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2442 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2443 tool="$rootdir/tools/scramble -add=fuze"
2444 output="rockbox.sansa"
2445 bootoutput="bootloader-fuze.sansa"
2446 appextra="recorder:gui:radio"
2447 plugins="yes"
2448 swcodec="yes"
2449 toolset=$scramblebitmaptools
2450 t_cpu="arm"
2451 t_manufacturer="as3525"
2452 t_model="sansa-fuze"
2453 arm9tdmicc
2457 59|sansac200v2)
2458 target_id=55
2459 modelname="sansac200v2"
2460 target="SANSA_C200V2"
2461 memory=2 # as per OF diagnosis mode
2462 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2463 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2464 tool="$rootdir/tools/scramble -add=c2v2"
2465 output="rockbox.sansa"
2466 bootoutput="bootloader-c200v2.sansa"
2467 appextra="recorder:gui:radio"
2468 plugins="yes"
2469 swcodec="yes"
2470 # toolset is the tools within the tools directory that we build for
2471 # this particular target.
2472 toolset=$scramblebitmaptools
2473 # architecture, manufacturer and model for the target-tree build
2474 t_cpu="arm"
2475 t_manufacturer="as3525"
2476 t_model="sansa-c200v2"
2477 if [ "$ARG_ARM_THUMB" != 0 ]; then ARG_ARM_THUMB=1; fi
2478 arm9tdmicc
2479 GCCOPTS=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2482 60|sansaclipv2)
2483 target_id=60
2484 modelname="sansaclipv2"
2485 target="SANSA_CLIPV2"
2486 memory=8
2487 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2488 bmp2rb_native="$bmp2rb_mono"
2489 tool="$rootdir/tools/scramble -add=clv2"
2490 output="rockbox.sansa"
2491 bootoutput="bootloader-clipv2.sansa"
2492 appextra="recorder:gui:radio"
2493 plugins="yes"
2494 swcodec="yes"
2495 toolset=$scramblebitmaptools
2496 t_cpu="arm"
2497 t_manufacturer="as3525"
2498 t_model="sansa-clipv2"
2499 arm926ejscc
2502 61|sansaview)
2503 echo "Sansa View is not yet supported!"
2504 exit 1
2505 target_id=63
2506 modelname="sansaview"
2507 target="SANSA_VIEW"
2508 memory=32
2509 arm1176jzscc
2510 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2511 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2512 output="rockbox.mi4"
2513 appextra="gui"
2514 plugins=""
2515 swcodec="yes"
2516 boottool="$rootdir/tools/scramble -mi4v3 -model=view -type=RBBL"
2517 bootoutput="firmware.mi4"
2518 # toolset is the tools within the tools directory that we build for
2519 # this particular target.
2520 toolset=$scramblebitmaptools
2521 t_cpu="arm"
2522 t_soc="pp"
2523 t_manufacturer="sandisk"
2524 t_model="sansa-view"
2527 62|sansaclipplus)
2528 target_id=66
2529 modelname="sansaclipplus"
2530 target="SANSA_CLIPPLUS"
2531 memory=8
2532 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2533 bmp2rb_native="$bmp2rb_mono"
2534 tool="$rootdir/tools/scramble -add=cli+"
2535 output="rockbox.sansa"
2536 bootoutput="bootloader-clipplus.sansa"
2537 appextra="recorder:gui:radio"
2538 plugins="yes"
2539 swcodec="yes"
2540 toolset=$scramblebitmaptools
2541 t_cpu="arm"
2542 t_manufacturer="as3525"
2543 t_model="sansa-clipplus"
2544 arm926ejscc
2547 63|sansafuzev2)
2548 target_id=68
2549 modelname="sansafuzev2"
2550 target="SANSA_FUZEV2"
2551 memory=8 # not sure
2552 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2553 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
2554 tool="$rootdir/tools/scramble -add=fuz2"
2555 output="rockbox.sansa"
2556 bootoutput="bootloader-fuzev2.sansa"
2557 appextra="recorder:gui:radio"
2558 plugins="yes"
2559 swcodec="yes"
2560 toolset=$scramblebitmaptools
2561 t_cpu="arm"
2562 t_manufacturer="as3525"
2563 t_model="sansa-fuzev2"
2564 arm926ejscc
2567 64|sansafuzeplus)
2568 target_id=80
2569 modelname="sansafuzeplus"
2570 target="SANSA_FUZEPLUS"
2571 memory=64
2572 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2573 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2574 tool="$rootdir/tools/scramble -add=fuz+"
2575 output="rockbox.sansa"
2576 bootoutput="bootloader-fuzeplus.sansa"
2577 appextra="gui:recorder:radio"
2578 plugins="yes"
2579 swcodec="yes"
2580 toolset=$scramblebitmaptools
2581 t_cpu="arm"
2582 t_manufacturer="imx233"
2583 t_model="sansa-fuzeplus"
2584 arm926ejscc
2587 65|sansaclipzip)
2588 target_id=68
2589 modelname="sansaclipzip"
2590 target="SANSA_CLIPZIP"
2591 memory=8 # not sure
2592 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2593 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2594 tool="$rootdir/tools/scramble -add=clzp"
2595 output="rockbox.sansa"
2596 bootoutput="bootloader-clipzip.sansa"
2597 appextra="recorder:gui:radio"
2598 plugins="yes"
2599 swcodec="yes"
2600 toolset=$scramblebitmaptools
2601 t_cpu="arm"
2602 t_manufacturer="as3525"
2603 t_model="sansa-clipzip"
2604 arm926ejscc
2607 66|sansaconnect)
2608 target_id=81
2609 modelname="sansaconnect"
2610 target="SANSA_CONNECT"
2611 memory=64
2612 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2613 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2614 tool="$rootdir/tools/scramble -add=conn"
2615 output="rockbox.sansa"
2616 bootoutput="bootloader-connect.sansa"
2617 appextra="recorder:gui"
2618 plugins="yes"
2619 swcodec="yes"
2620 toolset=$scramblebitmaptools
2621 t_cpu="arm"
2622 t_manufacturer="tms320dm320"
2623 t_model="sansa-connect"
2624 arm926ejscc
2627 150|tatungtpj1022)
2628 target_id=25
2629 modelname="tatungtpj1022"
2630 target="TATUNG_TPJ1022"
2631 memory=32 # always
2632 arm7tdmicc
2633 tool="$rootdir/tools/scramble -add tpj2"
2634 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2635 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
2636 output="rockbox.elio"
2637 appextra="recorder:gui:radio"
2638 plugins="yes"
2639 swcodec="yes"
2640 boottool="$rootdir/tools/scramble -mi4v2"
2641 bootoutput="pp5020.mi4"
2642 # toolset is the tools within the tools directory that we build for
2643 # this particular target.
2644 toolset=$scramblebitmaptools
2645 # architecture, manufacturer and model for the target-tree build
2646 t_cpu="arm"
2647 t_soc="pp"
2648 t_manufacturer="tatung"
2649 t_model="tpj1022"
2652 100|gogearsa9200)
2653 target_id=41
2654 modelname="gogearsa9200"
2655 target="PHILIPS_SA9200"
2656 memory=32 # supposedly
2657 arm7tdmicc
2658 tool="$rootdir/tools/scramble -mi4v3 -model=9200 -type=RBOS"
2659 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2660 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2661 output="rockbox.mi4"
2662 appextra="recorder:gui:radio"
2663 plugins="yes"
2664 swcodec="yes"
2665 boottool="$rootdir/tools/scramble -mi4v3 -model=9200 -type=RBBL"
2666 bootoutput="FWImage.ebn"
2667 # toolset is the tools within the tools directory that we build for
2668 # this particular target.
2669 toolset=$scramblebitmaptools
2670 # architecture, manufacturer and model for the target-tree build
2671 t_cpu="arm"
2672 t_soc="pp"
2673 t_manufacturer="philips"
2674 t_model="sa9200"
2677 101|gogearhdd1630)
2678 target_id=43
2679 modelname="gogearhdd1630"
2680 target="PHILIPS_HDD1630"
2681 memory=32 # supposedly
2682 arm7tdmicc
2683 tool="$rootdir/tools/scramble -mi4v3 -model=1630 -type=RBOS"
2684 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2685 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2686 output="rockbox.mi4"
2687 appextra="recorder:gui:radio"
2688 plugins="yes"
2689 swcodec="yes"
2690 boottool="$rootdir/tools/scramble -mi4v3 -model=1630 -type=RBBL"
2691 bootoutput="FWImage.ebn"
2692 # toolset is the tools within the tools directory that we build for
2693 # this particular target.
2694 toolset=$scramblebitmaptools
2695 # architecture, manufacturer and model for the target-tree build
2696 t_cpu="arm"
2697 t_soc="pp"
2698 t_manufacturer="philips"
2699 t_model="hdd1630"
2702 102|gogearhdd6330)
2703 target_id=65
2704 modelname="gogearhdd6330"
2705 target="PHILIPS_HDD6330"
2706 memory=64 # always
2707 arm7tdmicc
2708 tool="$rootdir/tools/scramble -mi4v3 -model=6330 -type=RBOS"
2709 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2710 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
2711 output="rockbox.mi4"
2712 appextra="recorder:gui:radio"
2713 plugins="yes"
2714 swcodec="yes"
2715 boottool="$rootdir/tools/scramble -mi4v3 -model=6330 -type=RBBL"
2716 bootoutput="FWImage.ebn"
2717 # toolset is the tools within the tools directory that we build for
2718 # this particular target.
2719 toolset=$scramblebitmaptools
2720 # architecture, manufacturer and model for the target-tree build
2721 t_cpu="arm"
2722 t_soc="pp"
2723 t_manufacturer="philips"
2724 t_model="hdd6330"
2727 110|meizum6sl)
2728 target_id=49
2729 modelname="meizum6sl"
2730 target="MEIZU_M6SL"
2731 memory=16 # always
2732 arm940tbecc
2733 tool="cp"
2734 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2735 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2736 output="rockbox.meizu"
2737 appextra="recorder:gui:radio"
2738 plugins="no" #FIXME
2739 swcodec="yes"
2740 toolset=$genericbitmaptools
2741 boottool="cp"
2742 bootoutput="rockboot.ebn"
2743 # architecture, manufacturer and model for the target-tree build
2744 t_cpu="arm"
2745 t_manufacturer="s5l8700"
2746 t_model="meizu-m6sl"
2749 111|meizum6sp)
2750 target_id=46
2751 modelname="meizum6sp"
2752 target="MEIZU_M6SP"
2753 memory=16 # always
2754 arm940tbecc
2755 tool="cp"
2756 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2757 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2758 output="rockbox.meizu"
2759 appextra="recorder:gui:radio"
2760 plugins="no" #FIXME
2761 swcodec="yes"
2762 toolset=$genericbitmaptools
2763 boottool="cp"
2764 bootoutput="rockboot.ebn"
2765 # architecture, manufacturer and model for the target-tree build
2766 t_cpu="arm"
2767 t_manufacturer="s5l8700"
2768 t_model="meizu-m6sp"
2771 112|meizum3)
2772 target_id=47
2773 modelname="meizum3"
2774 target="MEIZU_M3"
2775 memory=16 # always
2776 arm940tbecc
2777 tool="cp"
2778 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2779 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2780 output="rockbox.meizu"
2781 appextra="recorder:gui:radio"
2782 plugins="no" #FIXME
2783 swcodec="yes"
2784 toolset=$genericbitmaptools
2785 boottool="cp"
2786 bootoutput="rockboot.ebn"
2787 # architecture, manufacturer and model for the target-tree build
2788 t_cpu="arm"
2789 t_manufacturer="s5l8700"
2790 t_model="meizu-m3"
2793 120|ondavx747)
2794 target_id=45
2795 modelname="ondavx747"
2796 target="ONDA_VX747"
2797 memory=16
2798 mipselcc
2799 tool="$rootdir/tools/scramble -add=x747"
2800 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2801 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2802 output="rockbox.vx747"
2803 appextra="recorder:gui:radio"
2804 plugins="yes"
2805 swcodec="yes"
2806 toolset=$genericbitmaptools
2807 boottool="$rootdir/tools/scramble -ccpmp"
2808 bootoutput="ccpmp.bin"
2809 # architecture, manufacturer and model for the target-tree build
2810 t_cpu="mips"
2811 t_manufacturer="ingenic_jz47xx"
2812 t_model="onda_vx747"
2815 121|ondavx767)
2816 target_id=64
2817 modelname="ondavx767"
2818 target="ONDA_VX767"
2819 memory=16 #FIXME
2820 mipselcc
2821 tool="cp"
2822 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2823 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2824 output="rockbox.vx767"
2825 appextra="recorder:gui:radio"
2826 plugins="" #FIXME
2827 swcodec="yes"
2828 toolset=$genericbitmaptools
2829 boottool="$rootdir/tools/scramble -ccpmp"
2830 bootoutput="ccpmp.bin"
2831 # architecture, manufacturer and model for the target-tree build
2832 t_cpu="mips"
2833 t_manufacturer="ingenic_jz47xx"
2834 t_model="onda_vx767"
2837 122|ondavx747p)
2838 target_id=54
2839 modelname="ondavx747p"
2840 target="ONDA_VX747P"
2841 memory=16
2842 mipselcc
2843 tool="$rootdir/tools/scramble -add=747p"
2844 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2845 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2846 output="rockbox.vx747p"
2847 appextra="recorder:gui:radio"
2848 plugins="yes"
2849 swcodec="yes"
2850 toolset=$genericbitmaptools
2851 boottool="$rootdir/tools/scramble -ccpmp"
2852 bootoutput="ccpmp.bin"
2853 # architecture, manufacturer and model for the target-tree build
2854 t_cpu="mips"
2855 t_manufacturer="ingenic_jz47xx"
2856 t_model="onda_vx747"
2859 123|ondavx777)
2860 target_id=61
2861 modelname="ondavx777"
2862 target="ONDA_VX777"
2863 memory=16
2864 mipselcc
2865 tool="$rootdir/tools/scramble -add=x777"
2866 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2867 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2868 output="rockbox.vx777"
2869 appextra="recorder:gui:radio"
2870 plugins="yes"
2871 swcodec="yes"
2872 toolset=$genericbitmaptools
2873 boottool="$rootdir/tools/scramble -ccpmp"
2874 bootoutput="ccpmp.bin"
2875 # architecture, manufacturer and model for the target-tree build
2876 t_cpu="mips"
2877 t_manufacturer="ingenic_jz47xx"
2878 t_model="onda_vx747"
2881 130|lyreproto1)
2882 target_id=56
2883 modelname="lyreproto1"
2884 target="LYRE_PROTO1"
2885 memory=64
2886 arm926ejscc
2887 tool="cp"
2888 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2889 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2890 output="rockbox.lyre"
2891 appextra="recorder:gui:radio"
2892 plugins=""
2893 swcodec="yes"
2894 toolset=$scramblebitmaptools
2895 boottool="cp"
2896 bootoutput="bootloader-proto1.lyre"
2897 # architecture, manufacturer and model for the target-tree build
2898 t_cpu="arm"
2899 t_manufacturer="at91sam"
2900 t_model="lyre_proto1"
2903 131|mini2440)
2904 target_id=99
2905 modelname="mini2440"
2906 target="MINI2440"
2907 memory=64
2908 arm9tdmicc
2909 tool="$rootdir/tools/scramble -add=m244"
2910 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2911 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2912 output="rockbox.mini2440"
2913 appextra="recorder:gui:radio"
2914 plugins=""
2915 swcodec="yes"
2916 toolset=$scramblebitmaptools
2917 boottool="cp"
2918 bootoutput="bootloader-mini2440.lyre"
2919 # architecture, manufacturer and model for the target-tree build
2920 t_cpu="arm"
2921 t_manufacturer="s3c2440"
2922 t_model="mini2440"
2925 140|samsungyh820)
2926 target_id=57
2927 modelname="samsungyh820"
2928 target="SAMSUNG_YH820"
2929 memory=32 # always
2930 arm7tdmicc
2931 tool="$rootdir/tools/scramble -mi4v2 -model=y820 -type=RBOS"
2932 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2933 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2934 output="rockbox.mi4"
2935 appextra="recorder:gui:radio"
2936 plugins="yes"
2937 swcodec="yes"
2938 boottool="$rootdir/tools/scramble -mi4v2 -model=y820 -type=RBBL"
2939 bootoutput="FW_YH820.mi4"
2940 # toolset is the tools within the tools directory that we build for
2941 # this particular target.
2942 toolset=$scramblebitmaptools
2943 # architecture, manufacturer and model for the target-tree build
2944 t_cpu="arm"
2945 t_soc="pp"
2946 t_manufacturer="samsung"
2947 t_model="yh820"
2950 141|samsungyh920)
2951 target_id=58
2952 modelname="samsungyh920"
2953 target="SAMSUNG_YH920"
2954 memory=32 # always
2955 arm7tdmicc
2956 tool="$rootdir/tools/scramble -mi4v2 -model=y920 -type=RBOS"
2957 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2958 bmp2rb_native="$rootdir/tools/bmp2rb -f 2"
2959 output="rockbox.mi4"
2960 appextra="recorder:gui:radio"
2961 plugins="yes"
2962 swcodec="yes"
2963 boottool="$rootdir/tools/scramble -mi4v2 -model=y920 -type=RBBL"
2964 bootoutput="PP5020.mi4"
2965 # toolset is the tools within the tools directory that we build for
2966 # this particular target.
2967 toolset=$scramblebitmaptools
2968 # architecture, manufacturer and model for the target-tree build
2969 t_cpu="arm"
2970 t_soc="pp"
2971 t_manufacturer="samsung"
2972 t_model="yh920"
2975 142|samsungyh925)
2976 target_id=59
2977 modelname="samsungyh925"
2978 target="SAMSUNG_YH925"
2979 memory=32 # always
2980 arm7tdmicc
2981 tool="$rootdir/tools/scramble -mi4v2 -model=y925 -type=RBOS"
2982 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2983 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2984 output="rockbox.mi4"
2985 appextra="recorder:gui:radio"
2986 plugins="yes"
2987 swcodec="yes"
2988 boottool="$rootdir/tools/scramble -mi4v2 -model=y925 -type=RBBL"
2989 bootoutput="FW_YH925.mi4"
2990 # toolset is the tools within the tools directory that we build for
2991 # this particular target.
2992 toolset=$scramblebitmaptools
2993 # architecture, manufacturer and model for the target-tree build
2994 t_cpu="arm"
2995 t_soc="pp"
2996 t_manufacturer="samsung"
2997 t_model="yh925"
3000 143|samsungyps3)
3001 target_id=72
3002 modelname="samsungyps3"
3003 target="SAMSUNG_YPS3"
3004 memory=16 # always
3005 arm940tbecc
3006 tool="cp"
3007 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3008 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3009 output="rockbox.yps3"
3010 appextra="recorder:gui:radio"
3011 plugins="no" #FIXME
3012 swcodec="yes"
3013 toolset=$genericbitmaptools
3014 boottool="cp"
3015 bootoutput="rockboot.ebn"
3016 # architecture, manufacturer and model for the target-tree build
3017 t_cpu="arm"
3018 t_manufacturer="s5l8700"
3019 t_model="yps3"
3022 160|vibe500)
3023 target_id=67
3024 modelname="vibe500"
3025 target="PBELL_VIBE500"
3026 memory=32 # always
3027 arm7tdmicc
3028 tool="$rootdir/tools/scramble -mi4v3 -model=v500 -type=RBOS"
3029 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3030 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
3031 output="rockbox.mi4"
3032 appextra="recorder:gui:radio"
3033 plugins="yes"
3034 swcodec="yes"
3035 boottool="$rootdir/tools/scramble -mi4v3 -model=v500 -type=RBBL"
3036 bootoutput="jukebox.mi4"
3037 # toolset is the tools within the tools directory that we build for
3038 # this particular target.
3039 toolset=$scramblebitmaptools
3040 # architecture, manufacturer and model for the target-tree build
3041 t_cpu="arm"
3042 t_soc="pp"
3043 t_manufacturer="pbell"
3044 t_model="vibe500"
3047 170|mpiohd200)
3048 target_id=69
3049 modelname="mpiohd200"
3050 target="MPIO_HD200"
3051 memory=16 # always
3052 coldfirecc
3053 tool="$rootdir/tools/scramble -add=hd20"
3054 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3055 bmp2rb_native="$rootdir/tools/bmp2rb -f 7"
3056 output="rockbox.mpio"
3057 bootoutput="bootloader.mpio"
3058 appextra="recorder:gui:radio"
3059 plugins="yes"
3060 swcodec="yes"
3061 # toolset is the tools within the tools directory that we build for
3062 # this particular target.
3063 toolset="$genericbitmaptools"
3064 # architecture, manufacturer and model for the target-tree build
3065 t_cpu="coldfire"
3066 t_manufacturer="mpio"
3067 t_model="hd200"
3070 171|mpiohd300)
3071 target_id=70
3072 modelname="mpiohd300"
3073 target="MPIO_HD300"
3074 memory=16 # always
3075 coldfirecc
3076 tool="$rootdir/tools/scramble -add=hd30"
3077 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3078 bmp2rb_native="$rootdir/tools/bmp2rb -f 2"
3079 output="rockbox.mpio"
3080 bootoutput="bootloader.mpio"
3081 appextra="recorder:gui:radio"
3082 plugins="yes"
3083 swcodec="yes"
3084 # toolset is the tools within the tools directory that we build for
3085 # this particular target.
3086 toolset="$genericbitmaptools"
3087 # architecture, manufacturer and model for the target-tree build
3088 t_cpu="coldfire"
3089 t_manufacturer="mpio"
3090 t_model="hd300"
3093 180|rk27generic)
3094 target_id=78
3095 modelname="rk27generic"
3096 target="RK27_GENERIC"
3097 memory=16 # always
3098 arm7ejscc
3099 tool="$rootdir/tools/scramble -rkw -modelnum=73"
3100 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3101 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3102 output="rockbox.rkw"
3103 bootoutput="bootloader.rkw"
3104 appextra="recorder:gui:radio"
3105 plugins=""
3106 swcodec="yes"
3107 # toolset is the tools within the tools directory that we build for
3108 # this particular target.
3109 toolset="$genericbitmaptools"
3110 # architecture, manufacturer and model for the target-tree build
3111 t_cpu="arm"
3112 t_manufacturer="rk27xx"
3113 t_model="rk27generic"
3116 190|hifimanhm60x)
3117 target_id=79
3118 modelname="hifimanhm60x"
3119 target="HM60X"
3120 memory=16
3121 arm7ejscc
3122 tool="$rootdir/tools/scramble -rkw -modelnum=79"
3123 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3124 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3125 output="rockbox.rkw"
3126 bootoutput="bootloader.rkw"
3127 appextra="recorder:gui"
3128 plugins="yes"
3129 swcodec="yes"
3130 # toolset is the tools within the tools directory that we build for
3131 # this particular target.
3132 toolset="$genericbitmaptools"
3133 # architecture, manufacturer and model for the target-tree build
3134 t_cpu="arm"
3135 t_manufacturer="rk27xx"
3136 t_model="hm60x"
3139 191|hifimanhm801)
3140 target_id=82
3141 modelname="hifimanhm801"
3142 target="HM801"
3143 memory=16
3144 arm7ejscc
3145 tool="$rootdir/tools/scramble -rkw -modelnum=82"
3146 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3147 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3148 output="rockbox.rkw"
3149 bootoutput="bootloader.rkw"
3150 appextra="recorder:gui"
3151 plugins="yes"
3152 swcodec="yes"
3153 # toolset is the tools within the tools directory that we build for
3154 # this particular target.
3155 toolset="$genericbitmaptools"
3156 # architecture, manufacturer and model for the target-tree build
3157 t_cpu="arm"
3158 t_manufacturer="rk27xx"
3159 t_model="hm801"
3162 200|sdlapp)
3163 application="yes"
3164 target_id=73
3165 modelname="sdlapp"
3166 target="SDLAPP"
3167 app_set_paths
3168 app_set_lcd_size
3169 memory=8
3170 uname=`uname`
3171 simcc "sdl-app"
3172 tool="cp "
3173 boottool="cp "
3174 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3175 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3176 output="rockbox"
3177 bootoutput="rockbox"
3178 appextra="recorder:gui:radio"
3179 plugins="yes"
3180 swcodec="yes"
3181 # architecture, manufacturer and model for the target-tree build
3182 t_cpu="hosted"
3183 t_manufacturer="sdl"
3184 t_model="app"
3187 201|android)
3188 application="yes"
3189 target_id=74
3190 modelname="android"
3191 target="ANDROID"
3192 app_type="android"
3193 app_set_lcd_size
3194 sharedir="/data/data/org.rockbox/app_rockbox/rockbox"
3195 bindir="/data/data/org.rockbox/lib"
3196 libdir="/data/data/org.rockbox/app_rockbox"
3197 memory=8
3198 uname=`uname`
3199 androidcc
3200 tool="cp "
3201 boottool="cp "
3202 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3203 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3204 output="librockbox.so"
3205 bootoutput="librockbox.so"
3206 appextra="recorder:gui:radio:hosted/android"
3207 plugins="yes"
3208 swcodec="yes"
3209 # architecture, manufacturer and model for the target-tree build
3210 t_cpu="hosted"
3211 t_manufacturer="android"
3212 t_model="app"
3215 202|nokian8xx)
3216 application="yes"
3217 target_id=75
3218 modelname="nokian8xx"
3219 app_type="sdl-app"
3220 target="NOKIAN8XX"
3221 sharedir="/opt/rockbox/share/rockbox"
3222 bindir="/opt/rockbox/bin"
3223 libdir="/opt/rockbox/lib"
3224 memory=8
3225 uname=`uname`
3226 maemocc 4
3227 tool="cp "
3228 boottool="cp "
3229 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3230 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3231 output="rockbox"
3232 bootoutput="rockbox"
3233 appextra="recorder:gui:radio"
3234 plugins="yes"
3235 swcodec="yes"
3236 # architecture, manufacturer and model for the target-tree build
3237 t_cpu="hosted"
3238 t_manufacturer="maemo"
3239 t_model="app"
3242 203|nokian900)
3243 application="yes"
3244 target_id=76
3245 modelname="nokian900"
3246 app_type="sdl-app"
3247 target="NOKIAN900"
3248 sharedir="/opt/rockbox/share/rockbox"
3249 bindir="/opt/rockbox/bin"
3250 libdir="/opt/rockbox/lib"
3251 memory=8
3252 uname=`uname`
3253 maemocc 5
3254 tool="cp "
3255 boottool="cp "
3256 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3257 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3258 output="rockbox"
3259 bootoutput="rockbox"
3260 appextra="recorder:gui:radio"
3261 plugins="yes"
3262 swcodec="yes"
3263 # architecture, manufacturer and model for the target-tree build
3264 t_cpu="hosted"
3265 t_manufacturer="maemo"
3266 t_model="app"
3269 204|pandora)
3270 application="yes"
3271 target_id=77
3272 modelname="pandora"
3273 app_type="sdl-app"
3274 target="PANDORA"
3275 sharedir="rockbox/share/rockbox"
3276 bindir="rockbox/bin"
3277 libdir="rockbox/lib"
3278 memory=8
3279 uname=`uname`
3280 pandoracc
3281 tool="cp "
3282 boottool="cp "
3283 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3284 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3285 output="rockbox"
3286 bootoutput="rockbox"
3287 appextra="recorder:gui:radio"
3288 plugins="yes"
3289 swcodec="yes"
3290 # architecture, manufacturer and model for the target-tree build
3291 t_cpu="hosted"
3292 t_manufacturer="pandora"
3293 t_model="app"
3296 205|samsungypr0)
3297 application="yes"
3298 target_id=78
3299 modelname="samsungypr0"
3300 target="SAMSUNG_YPR0"
3301 memory=32
3302 uname=`uname`
3303 ypr0cc
3304 tool="cp "
3305 boottool="cp "
3306 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3307 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3308 output="rockbox"
3309 bootoutput="rockbox"
3310 appextra="recorder:gui:radio"
3311 plugins="yes"
3312 swcodec="yes"
3313 # architecture, manufacturer and model for the target-tree build
3314 t_cpu="hosted"
3315 t_manufacturer="ypr0"
3316 t_model="app"
3320 echo "Please select a supported target platform!"
3321 exit 7
3324 esac
3326 echo "Platform set to $modelname"
3329 #remove start
3330 ############################################################################
3331 # Amount of memory, for those that can differ. They have $memory unset at
3332 # this point.
3335 if [ -z "$memory" ]; then
3336 case $target_id in
3338 if [ "$ARG_RAM" ]; then
3339 size=$ARG_RAM
3340 else
3341 echo "Enter size of your RAM (in MB): (Defaults to 32)"
3342 size=`input`;
3344 case $size in
3345 60|64)
3346 memory="64"
3349 memory="32"
3351 esac
3354 if [ "$ARG_RAM" ]; then
3355 size=$ARG_RAM
3356 else
3357 echo "Enter size of your RAM (in MB): (Defaults to 2)"
3358 size=`input`;
3360 case $size in
3362 memory="8"
3365 memory="2"
3367 esac
3369 esac
3370 echo "Memory size selected: $memory MB"
3371 [ "$ARG_TYPE" ] || echo ""
3373 #remove end
3375 ##################################################################
3376 # Figure out build "type"
3379 # the ifp7x0 is the only platform that supports building a gdb stub like
3380 # this
3381 case $modelname in
3382 iriverifp7xx)
3383 gdbstub=", (G)DB stub"
3385 sansae200r|sansae200)
3386 gdbstub=", (I)nstaller"
3388 sansac200)
3389 gdbstub=", (E)raser"
3391 sansae200)
3392 gdbstub=", (E)raser"
3396 esac
3397 if [ "$ARG_TYPE" ]; then
3398 btype=$ARG_TYPE
3399 else
3400 echo "Build (N)ormal, (A)dvanced, (S)imulator, (B)ootloader, (C)heckWPS, (D)atabase tool, (W)arble codec tool$gdbstub: (Defaults to N)"
3401 btype=`input`;
3404 case $btype in
3405 [Ii])
3406 appsdir='$(ROOTDIR)/bootloader'
3407 apps="bootloader"
3408 extradefines="$extradefines -DBOOTLOADER -DE200R_INSTALLER -ffunction-sections -fdata-sections"
3409 bootloader="1"
3410 echo "e200R-installer build selected"
3412 [Ee])
3413 appsdir='$(ROOTDIR)/bootloader'
3414 apps="bootloader"
3415 extradefines="$extradefines -DBOOTLOADER -DSANSA_PP_ERASE -ffunction-sections -fdata-sections"
3416 bootloader="1"
3417 echo "sansa eraser build selected"
3419 [Bb])
3420 if test $t_manufacturer = "archos"; then
3421 # Archos SH-based players do this somewhat differently for
3422 # some reason
3423 appsdir='$(ROOTDIR)/flash/bootbox'
3424 apps="bootbox"
3425 else
3426 appsdir='$(ROOTDIR)/bootloader'
3427 apps="bootloader"
3428 flash=""
3429 if test -n "$boottool"; then
3430 tool="$boottool"
3432 if test -n "$bootoutput"; then
3433 output=$bootoutput
3436 extradefines="$extradefines -DBOOTLOADER -ffunction-sections -fdata-sections"
3437 bootloader="1"
3438 echo "Bootloader build selected"
3440 [Ss])
3441 if [ "$modelname" = "sansae200r" ]; then
3442 echo "Do not use the e200R target for simulator builds. Use e200 instead."
3443 exit 8
3445 debug="-DDEBUG"
3446 simulator="yes"
3447 extradefines="$extradefines -DSIMULATOR"
3448 archosrom=""
3449 flash=""
3450 echo "Simulator build selected"
3452 [Aa]*)
3453 echo "Advanced build selected"
3454 whichadvanced $btype
3456 [Gg])
3457 extradefines="$extradefines -DSTUB" # for target makefile symbol EXTRA_DEFINES
3458 appsdir='$(ROOTDIR)/gdb'
3459 apps="stub"
3460 case $modelname in
3461 iriverifp7xx)
3462 output="stub.wma"
3466 esac
3467 echo "GDB stub build selected"
3469 [Cc])
3470 uname=`uname`
3471 simcc "checkwps"
3472 toolset='';
3473 t_cpu='';
3474 GCCOPTS='';
3475 extradefines="$extradefines -DDEBUG"
3476 appsdir='$(ROOTDIR)/tools/checkwps';
3477 output='checkwps.'${modelname};
3478 archosrom='';
3479 echo "CheckWPS build selected"
3481 [Dd])
3482 uname=`uname`
3483 simcc "database"
3484 toolset='';
3485 t_cpu='';
3486 GCCOPTS='';
3487 appsdir='$(ROOTDIR)/tools/database';
3488 archosrom='';
3490 case $uname in
3491 CYGWIN*|MINGW*)
3492 output="database_${modelname}.exe"
3495 output='database.'${modelname};
3497 esac
3499 echo "Database tool build selected"
3501 [Ww])
3502 uname=`uname`
3503 simcc "warble"
3504 toolset='';
3505 t_cpu='';
3506 GCCOPTS='';
3507 extradefines="$extradefines -DDEBUG"
3508 output='warble.'${modelname};
3509 archosrom='';
3510 echo "Warble build selected"
3513 if [ "$modelname" = "sansae200r" ]; then
3514 echo "Do not use the e200R target for regular builds. Use e200 instead."
3515 exit 8
3517 debug=""
3518 btype="N" # set it explicitly since RET only gets here as well
3519 echo "Normal build selected"
3522 esac
3523 # to be able running "make manual" from non-manual configuration
3524 case $modelname in
3525 archosrecorderv2)
3526 manualdev="archosfmrecorder"
3528 iriverh1??)
3529 manualdev="iriverh100"
3531 ipodmini2g)
3532 manualdev="ipodmini1g"
3535 manualdev=$modelname
3537 esac
3539 if [ -z "$debug" ]; then
3540 GCCOPTS="$GCCOPTS $GCCOPTIMIZE"
3543 if [ "yes" = "$application" ]; then
3544 echo Building Rockbox as an Application
3545 extradefines="$extradefines -DAPPLICATION"
3548 echo "Using source code root directory: $rootdir"
3550 # this was once possible to change at build-time, but no more:
3551 language="english"
3553 uname=`uname`
3555 if [ "yes" = "$simulator" ]; then
3556 # setup compiler and things for simulator
3557 simcc "sdl-sim"
3559 if [ -d "simdisk" ]; then
3560 echo "Subdirectory 'simdisk' already present"
3561 else
3562 mkdir simdisk
3563 echo "Created a 'simdisk' subdirectory for simulating the hard disk"
3567 # Now, figure out version number of the (gcc) compiler we are about to use
3568 gccver=`$CC -dumpversion`;
3570 # figure out the binutil version too and display it, mostly for the build
3571 # system etc to be able to see it easier
3572 if [ $uname = "Darwin" ]; then
3573 ldver=`$LD -v 2>&1 | sed -e 's/[^0-9.-]//g'`
3574 else
3575 ldver=`$LD --version | head -n 1 | sed -e 's/\ /\n/g' | tail -n 1`
3578 if [ -z "$gccver" ]; then
3579 echo "[WARNING] The compiler you must use ($CC) is not in your path!"
3580 echo "[WARNING] this may cause your build to fail since we cannot do the"
3581 echo "[WARNING] checks we want now."
3582 else
3584 # gccver should now be "3.3.5", "3.4.3", "2.95.3-6" and similar, but don't
3585 # DEPEND on it
3587 num1=`echo $gccver | cut -d . -f1`
3588 num2=`echo $gccver | cut -d . -f2`
3589 gccnum=`(expr $num1 "*" 100 + $num2) 2>/dev/null`
3591 # This makes:
3592 # 3.3.X => 303
3593 # 3.4.X => 304
3594 # 2.95.3 => 295
3596 echo "Using $CC $gccver ($gccnum)"
3598 if test "$gccnum" -ge "400"; then
3599 # gcc 4.0 is just *so* much pickier on arguments that differ in signedness
3600 # so we ignore that warnings for now
3601 # -Wno-pointer-sign
3602 GCCOPTS="$GCCOPTS -Wno-pointer-sign"
3605 if test "$gccnum" -ge "402"; then
3606 # disable warning about "warning: initialized field overwritten" as gcc 4.2
3607 # and later would throw it for several valid cases
3608 GCCOPTS="$GCCOPTS -Wno-override-init"
3611 case $prefix in
3612 ""|"$CROSS_COMPILE")
3613 # simulator
3616 # Verify that the cross-compiler is of a recommended version!
3617 if test "$gccver" != "$gccchoice"; then
3618 echo "WARNING: Your cross-compiler $CC $gccver is not of the recommended"
3619 echo "WARNING: version $gccchoice!"
3620 echo "WARNING: This may cause your build to fail since it may be a version"
3621 echo "WARNING: that isn't functional or known to not be the best choice."
3622 echo "WARNING: If you suffer from build problems, you know that this is"
3623 echo "WARNING: a likely source for them..."
3626 esac
3631 echo "Using $LD $ldver"
3633 # check the compiler for SH platforms
3634 if test "$CC" = "sh-elf-gcc"; then
3635 if test "$gccnum" -lt "400"; then
3636 echo "WARNING: Consider upgrading your compiler to the 4.0.X series!"
3637 echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler"
3638 else
3639 # figure out patch status
3640 gccpatch=`$CC --version`;
3642 if { echo $gccpatch | grep "rockbox" >/dev/null 2>&1; } then
3643 echo "gcc $gccver is rockbox patched"
3644 # then convert -O to -Os to get smaller binaries!
3645 GCCOPTS=`echo $GCCOPTS | sed 's/ -O / -Os /'`
3646 else
3647 echo "WARNING: You use an unpatched gcc compiler: $gccver"
3648 echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler"
3653 if test "$CC" = "m68k-elf-gcc"; then
3654 # convert -O to -Os to get smaller binaries!
3655 GCCOPTS=`echo $GCCOPTS | sed 's/ -O / -Os /'`
3658 if [ "$ARG_CCACHE" = "1" ]; then
3659 echo "Enable ccache for building"
3660 ccache="ccache"
3661 elif [ "$ARG_CCACHE" != "0" ]; then
3662 ccache=`findtool ccache`
3663 if test -n "$ccache"; then
3664 echo "Found and uses ccache ($ccache)"
3668 # figure out the full path to the various commands if possible
3669 HOSTCC=`findtool gcc --lit`
3670 HOSTAR=`findtool ar --lit`
3671 CC=`findtool ${CC} --lit`
3672 CPP=`findtool ${CPP} --lit`
3673 LD=`findtool ${LD} --lit`
3674 AR=`findtool ${AR} --lit`
3675 AS=`findtool ${AS} --lit`
3676 OC=`findtool ${OC} --lit`
3677 WINDRES=`findtool ${WINDRES} --lit`
3678 DLLTOOL=`findtool ${DLLTOOL} --lit`
3679 DLLWRAP=`findtool ${DLLWRAP} --lit`
3680 RANLIB=`findtool ${RANLIB} --lit`
3683 if [ -z "$arch" ]; then
3684 cpp_defines=$(echo "" | $CPP $GCCOPTS -dD)
3685 if [ -n "$(echo $cpp_defines | grep -w __sh__)" ]; then
3686 arch="sh"
3687 elif [ -n "$(echo $cpp_defines | grep -w __m68k__)" ]; then
3688 arch="m68k"
3689 elif [ -n "$(echo $cpp_defines | grep -w __arm__)" ]; then
3690 arch="arm"
3691 # cpp defines like "#define __ARM_ARCH_4TE__ 1" (where we want to extract the 4)
3692 arch_version="$(echo $cpp_defines | tr ' ' '\012' | grep __ARM_ARCH | sed -e 's,.*\([0-9]\).*,\1,')"
3693 elif [ -n "$(echo $cpp_defines | grep -w __mips__)" ]; then
3694 arch="mips" # FIXME: autodetect version (32 or 64)
3695 elif [ -n "$(echo $cpp_defines | grep -w __i386__)" ]; then
3696 arch="x86"
3697 elif [ -n "$(echo $cpp_defines | grep -w __x86_64__)" ]; then
3698 arch="amd64"
3699 else
3700 arch="none"
3701 echo "Warning: Could not determine target arch"
3703 if [ "$arch" != "none" ]; then
3704 if [ -n "$arch_version" ]; then
3705 echo "Automatically selected arch: $arch (ver $arch_version)"
3706 else
3707 echo "Automatically selected arch: $arch"
3710 else
3711 if [ -n "$arch_version" ]; then
3712 echo "Manually selected arch: $arch (ver $arch_version)"
3713 else
3714 echo "Manually selected arch: $arch"
3718 arch="arch_$arch"
3719 if [ -n "$arch_version" ]; then
3720 Darch_version="#define ARCH_VERSION $arch_version"
3723 if test -n "$ccache"; then
3724 CC="$ccache $CC"
3727 if test "$ARG_ARM_THUMB" = "1"; then
3728 extradefines="$extradefines -DUSE_THUMB"
3729 CC="$toolsdir/thumb-cc.py $CC"
3732 if test "X$endian" = "Xbig"; then
3733 defendian="ROCKBOX_BIG_ENDIAN"
3734 else
3735 defendian="ROCKBOX_LITTLE_ENDIAN"
3738 if [ "$ARG_RBDIR" != "" ]; then
3739 if [ -z `echo $ARG_RBDIR | grep '^/'` ]; then
3740 rbdir="/"$ARG_RBDIR
3741 else
3742 rbdir=$ARG_RBDIR
3744 echo "Using alternate rockbox dir: ${rbdir}"
3747 cat > autoconf.h <<EOF
3748 /* This header was made by configure */
3749 #ifndef __BUILD_AUTOCONF_H
3750 #define __BUILD_AUTOCONF_H
3752 /* lower case names match the what's exported in the Makefile
3753 * upper case name looks nicer in the code */
3755 #define arch_none 0
3756 #define ARCH_NONE 0
3758 #define arch_sh 1
3759 #define ARCH_SH 1
3761 #define arch_m68k 2
3762 #define ARCH_M68K 2
3764 #define arch_arm 3
3765 #define ARCH_ARM 3
3767 #define arch_mips 4
3768 #define ARCH_MIPS 4
3770 #define arch_x86 5
3771 #define ARCH_X86 5
3773 #define arch_amd64 6
3774 #define ARCH_AMD64 6
3776 /* Define target machine architecture */
3777 #define ARCH ${arch}
3778 /* Optinally define architecture version */
3779 ${Darch_version}
3781 /* Define endianess for the target or simulator platform */
3782 #define ${defendian} 1
3784 /* Define this if you build rockbox to support the logf logging and display */
3785 ${use_logf}
3787 /* Define this if you want logf to output to the serial port */
3788 ${use_logf_serial}
3790 /* Define this to record a chart with timings for the stages of boot */
3791 ${use_bootchart}
3793 /* optional define for a backlight modded Ondio */
3794 ${have_backlight}
3796 /* optional define for FM radio mod for iAudio M5 */
3797 ${have_fmradio_in}
3799 /* optional define for ATA poweroff on Player */
3800 ${have_ata_poweroff}
3802 /* optional defines for RTC mod for h1x0 */
3803 ${config_rtc}
3804 ${have_rtc_alarm}
3806 /* the threading backend we use */
3807 #define ${thread_support}
3809 /* lcd dimensions for application builds from configure */
3810 ${app_lcd_width}
3811 ${app_lcd_height}
3813 /* root of Rockbox */
3814 #define ROCKBOX_DIR "${rbdir}"
3815 #define ROCKBOX_SHARE_PATH "${sharedir}"
3816 #define ROCKBOX_BINARY_PATH "${bindir}"
3817 #define ROCKBOX_LIBRARY_PATH "${libdir}"
3819 #endif /* __BUILD_AUTOCONF_H */
3822 if test -n "$t_cpu"; then
3823 TARGET_INC="-I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer/$t_model"
3825 if [ "$application" = "yes" ] && [ "$t_manufacturer" = "maemo" ]; then
3826 # Maemo needs the SDL port, too
3827 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl/app"
3828 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl"
3829 elif [ "$application" = "yes" ] && [ "$t_manufacturer" = "pandora" ]; then
3830 # Pandora needs the SDL port, too
3831 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl/app"
3832 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl"
3833 elif [ "$simulator" = "yes" ]; then # a few more includes for the sim target tree
3834 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl"
3835 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted"
3838 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer"
3839 test -n "$t_soc" && TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu/$t_soc"
3840 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu"
3841 GCCOPTS="$GCCOPTS"
3844 if test "$swcodec" = "yes"; then
3845 voicetoolset="rbspeexenc voicefont wavtrim"
3846 else
3847 voicetoolset="voicefont wavtrim"
3850 if test "$apps" = "apps"; then
3851 # only when we build "real" apps we build the .lng files
3852 buildlangs="langs"
3855 #### Fix the cmdline ###
3856 if [ -n "$ARG_PREFIX" ]; then
3857 cmdline="$cmdline --prefix=\$(PREFIX)"
3859 if [ -n "$ARG_LCDWIDTH" ]; then
3860 cmdline="$cmdline --lcdwidth=$ARG_LCDWIDTH --lcdheight=$ARG_LCDHEIGHT "
3863 # remove parts from the cmdline we're going to set unconditionally
3864 cmdline=`echo $cmdline | sed -e s,--target=[a-zA-Z_0-9]\*,,g \
3865 -e s,--ram=[0-9]\*,,g \
3866 -e s,--rbdir=[./a-zA-Z0-9]\*,,g \
3867 -e s,--type=[a-zA-Z]\*,,g`
3868 cmdline="$cmdline --target=\$(MODELNAME) --ram=\$(MEMORYSIZE) --rbdir=\$(RBDIR) --type=$btype$advopts"
3870 ### end of cmdline
3872 cat > Makefile <<EOF
3873 ## Automatically generated. http://www.rockbox.org/
3875 export ROOTDIR=${rootdir}
3876 export FIRMDIR=\$(ROOTDIR)/firmware
3877 export APPSDIR=${appsdir}
3878 export TOOLSDIR=${toolsdir}
3879 export DOCSDIR=${rootdir}/docs
3880 export MANUALDIR=${rootdir}/manual
3881 export DEBUG=${debug}
3882 export MODELNAME=${modelname}
3883 export ARCHOSROM=${archosrom}
3884 export FLASHFILE=${flash}
3885 export TARGET_ID=${target_id}
3886 export TARGET=-D${target}
3887 export ARCH=${arch}
3888 export ARCH_VERSION=${arch_version}
3889 export CPU=${t_cpu}
3890 export MANUFACTURER=${t_manufacturer}
3891 export OBJDIR=${pwd}
3892 export BUILDDIR=${pwd}
3893 export RBCODEC_BLD=${pwd}/lib/rbcodec
3894 export LANGUAGE=${language}
3895 export VOICELANGUAGE=${voicelanguage}
3896 export MEMORYSIZE=${memory}
3897 export BUILDDATE:=\$(shell date -u +'-DYEAR=%Y -DMONTH=%m -DDAY=%d')
3898 export MKFIRMWARE=${tool}
3899 export BMP2RB_MONO=${bmp2rb_mono}
3900 export BMP2RB_NATIVE=${bmp2rb_native}
3901 export BMP2RB_REMOTEMONO=${bmp2rb_remotemono}
3902 export BMP2RB_REMOTENATIVE=${bmp2rb_remotenative}
3903 export BINARY=${output}
3904 export APPEXTRA=${appextra}
3905 export ENABLEDPLUGINS=${plugins}
3906 export SOFTWARECODECS=${swcodec}
3907 export EXTRA_DEFINES=${extradefines}
3908 export HOSTCC=${HOSTCC}
3909 export HOSTAR=${HOSTAR}
3910 export CC=${CC}
3911 export CPP=${CPP}
3912 export LD=${LD}
3913 export AR=${AR}
3914 export AS=${AS}
3915 export OC=${OC}
3916 export WINDRES=${WINDRES}
3917 export DLLTOOL=${DLLTOOL}
3918 export DLLWRAP=${DLLWRAP}
3919 export RANLIB=${RANLIB}
3920 export PREFIX=${ARG_PREFIX}
3921 export PROFILE_OPTS=${PROFILE_OPTS}
3922 export APP_TYPE=${app_type}
3923 export APPLICATION=${application}
3924 export SIMDIR=\$(ROOTDIR)/uisimulator/sdl
3925 export GCCOPTS=${GCCOPTS}
3926 export TARGET_INC=${TARGET_INC}
3927 export LOADADDRESS=${loadaddress}
3928 export SHARED_LDFLAG=${SHARED_LDFLAG}
3929 export SHARED_CFLAGS=${SHARED_CFLAGS}
3930 export LDOPTS=${LDOPTS}
3931 export GLOBAL_LDOPTS=${GLOBAL_LDOPTS}
3932 export GCCVER=${gccver}
3933 export GCCNUM=${gccnum}
3934 export UNAME=${uname}
3935 export MANUALDEV=${manualdev}
3936 export TTS_OPTS=${TTS_OPTS}
3937 export TTS_ENGINE=${TTS_ENGINE}
3938 export ENC_OPTS=${ENC_OPTS}
3939 export ENCODER=${ENCODER}
3940 export USE_ELF=${USE_ELF}
3941 export RBDIR=${rbdir}
3942 export ROCKBOX_SHARE_PATH=${sharedir}
3943 export ROCKBOX_BINARY_PATH=${bindir}
3944 export ROCKBOX_LIBRARY_PATH=${libdir}
3945 export SDLCONFIG=${sdl}
3946 export LCDORIENTATION=${lcd_orientation}
3948 CONFIGURE_OPTIONS=${cmdline}
3950 include \$(TOOLSDIR)/root.make
3953 echo "Created Makefile"