Define GCCNUM properly. Case matters!
[maemo-rb.git] / tools / configure
blobb01d505c9a58a83be17723e0c8aaa67df2ee92ce
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 app_type="ypr0"
651 # Include path
652 GCCOPTS="$GCCOPTS -D_GNU_SOURCE=1 -U_FORTIFY_SOURCE -D_REENTRANT"
654 # Set up compiler
655 gccchoice="4.4.6"
656 prefixtools "arm-ypr0-linux-gnueabi-"
659 androidcc () {
660 if [ -z "$ANDROID_SDK_PATH" ]; then
661 echo "ERROR: You need the Android SDK installed and have the ANDROID_SDK_PATH"
662 echo "environment variable point to the root directory of the Android SDK."
663 exit
665 if [ -z "$ANDROID_NDK_PATH" ]; then
666 echo "ERROR: You need the Android NDK installed (r5 or higher) and have the ANDROID_NDK_PATH"
667 echo "environment variable point to the root directory of the Android NDK."
668 exit
670 buildhost=$(uname | tr "[:upper:]" "[:lower:]")
671 gccchoice="4.4.3"
672 gcctarget="arm-linux-androideabi-"
673 gccprefix=$ANDROID_NDK_PATH/toolchains/$gcctarget$gccchoice/prebuilt/$buildhost-x86
674 PATH=$PATH:$gccprefix/bin
675 prefixtools $gcctarget
676 GCCOPTS=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib// -e s/-Wundef//`
677 GCCOPTS="$GCCOPTS -march=armv5te -mtune=xscale -msoft-float -fomit-frame-pointer \
678 --sysroot=$ANDROID_NDK_PATH/platforms/android-5/arch-arm"
679 GLOBAL_LDOPTS="-Wl,-z,defs -Wl,-z,noexecstack"
680 LDOPTS="-shared -ldl -llog --sysroot=$ANDROID_NDK_PATH/platforms/android-5/arch-arm $LDOPTS"
681 endian="little"
682 SHARED_LDFLAG="-shared"
683 ANDROID_ARCH=armeabi
686 androidmipscc () {
687 if [ -z "$ANDROID_SDK_PATH" ]; then
688 echo "ERROR: You need the Android SDK installed and have the ANDROID_SDK_PATH"
689 echo "environment variable point to the root directory of the Android SDK."
690 exit
692 if [ -z "$ANDROID_NDK_PATH" ]; then
693 echo "ERROR: You need the Android NDK installed (r5 or higher) and have the ANDROID_NDK_PATH"
694 echo "environment variable point to the root directory of the Android NDK."
695 exit
697 buildhost=$(uname | tr "[:upper:]" "[:lower:]")
698 gccchoice="4.4.3"
699 gcctarget="mipsel-linux-android-"
700 gccprefix=$ANDROID_NDK_PATH/toolchains/$gcctarget$gccchoice/prebuilt/$buildhost-x86
701 arch_version=32 # FIXME: autodetect version (32 or 64)
702 thread_support="HAVE_SIGALTSTACK_THREADS"
703 PATH=$PATH:$gccprefix/bin
704 prefixtools $gcctarget
705 GCCOPTS=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib// -e s/-Wundef//`
706 GCCOPTS="$GCCOPTS -march=mips32 -mtune=r4600 -mno-mips16 -mno-long-calls -fomit-frame-pointer \
707 --sysroot=$ANDROID_NDK_PATH/platforms/android-14/arch-mips -fPIC"
708 GLOBAL_LDOPTS="-Wl,-z,defs -Wl,-z,noexecstack"
709 LDOPTS="-shared -ldl -llog --sysroot=$ANDROID_NDK_PATH/platforms/android-14/arch-mips $LDOPTS"
710 endian="little"
711 SHARED_LDFLAG="-shared"
712 ANDROID_ARCH=mips
715 whichadvanced () {
716 atype=`echo "$1" | cut -c 2-`
717 ##################################################################
718 # Prompt for specific developer options
720 if [ "$atype" ]; then
721 interact=
722 else
723 interact=1
724 echo ""
725 printf "Enter your developer options (press only enter when done)\n\
726 (D)EBUG, (L)ogf, Boot(c)hart, (S)imulator, (P)rofiling, (V)oice, (W)in32 crosscompile,\n\
727 (T)est plugins, S(m)all C lib, Logf to Ser(i)al port:"
728 if [ "$modelname" = "archosplayer" ]; then
729 printf ", Use (A)TA poweroff"
731 if [ "$t_model" = "ondio" ]; then
732 printf ", (B)acklight MOD"
734 if [ "$modelname" = "iaudiom5" ]; then
735 printf ", (F)M radio MOD"
737 if [ "$modelname" = "iriverh120" ]; then
738 printf ", (R)TC MOD"
740 echo ""
743 cont=1
744 while [ $cont = "1" ]; do
746 if [ "$interact" ]; then
747 option=`input`
748 else
749 option=`echo "$atype" | cut -c 1`
752 case $option in
753 [Dd])
754 if [ "yes" = "$profile" ]; then
755 echo "Debug is incompatible with profiling"
756 else
757 echo "DEBUG build enabled"
758 use_debug="yes"
761 [Ll])
762 echo "logf() support enabled"
763 logf="yes"
765 [Mm])
766 echo "Using Rockbox' small C library"
767 extradefines="$extradefines -DHAVE_ROCKBOX_C_LIBRARY"
769 [Tt])
770 echo "Including test plugins"
771 extradefines="$extradefines -DHAVE_TEST_PLUGINS"
773 [Cc])
774 echo "bootchart enabled (logf also enabled)"
775 bootchart="yes"
776 logf="yes"
778 [Ii])
779 echo "Logf to serial port enabled (logf also enabled)"
780 logf="yes"
781 logf_serial="yes"
783 [Ss])
784 echo "Simulator build enabled"
785 simulator="yes"
787 [Pp])
788 if [ "yes" = "$use_debug" ]; then
789 echo "Profiling is incompatible with debug"
790 else
791 echo "Profiling support is enabled"
792 profile="yes"
795 [Vv])
796 echo "Voice build selected"
797 voice="yes"
799 [Aa])
800 if [ "$modelname" = "archosplayer" ]; then
801 have_ata_poweroff="#define HAVE_ATA_POWER_OFF"
802 echo "ATA power off enabled"
805 [Bb])
806 if [ "$t_model" = "ondio" ]; then
807 have_backlight="#define HAVE_BACKLIGHT"
808 echo "Backlight functions enabled"
811 [Ff])
812 if [ "$modelname" = "iaudiom5" ]; then
813 have_fmradio_in="#define HAVE_FMRADIO_IN"
814 echo "FM radio functions enabled"
817 [Rr])
818 if [ "$modelname" = "iriverh120" ]; then
819 config_rtc="#define CONFIG_RTC RTC_DS1339_DS3231"
820 have_rtc_alarm="#define HAVE_RTC_ALARM"
821 echo "RTC functions enabled (DS1339/DS3231)"
824 [Ww])
825 echo "Enabling Windows 32 cross-compiling"
826 win32crosscompile="yes"
828 "") # Match enter press when finished with advanced options
829 cont=0
832 echo "[ERROR] Option $option unsupported"
834 esac
835 if [ "$interact" ]; then
836 btype="$btype$option"
837 else
838 atype=`echo "$atype" | cut -c 2-`
839 [ "$atype" ] || cont=0
841 done
842 echo "done"
844 if [ "yes" = "$voice" ]; then
845 # Ask about languages to build
846 picklang
847 voicelanguage=`whichlang`
848 echo "Voice language set to $voicelanguage"
850 # Configure encoder and TTS engine for each language
851 for thislang in `echo $voicelanguage | sed 's/,/ /g'`; do
852 voiceconfig "$thislang"
853 done
855 if [ "yes" = "$use_debug" ]; then
856 debug="-DDEBUG"
857 GCCOPTS="$GCCOPTS -g -DDEBUG"
859 if [ "yes" = "$logf" ]; then
860 use_logf="#define ROCKBOX_HAS_LOGF 1"
862 if [ "yes" = "$logf_serial" ]; then
863 use_logf_serial="#define LOGF_SERIAL 1"
865 if [ "yes" = "$bootchart" ]; then
866 use_bootchart="#define DO_BOOTCHART 1"
868 if [ "yes" = "$simulator" ]; then
869 debug="-DDEBUG"
870 extradefines="$extradefines -DSIMULATOR"
871 archosrom=""
872 flash=""
874 if [ "yes" = "$profile" ]; then
875 extradefines="$extradefines -DRB_PROFILE"
876 PROFILE_OPTS="-finstrument-functions"
880 # Configure voice settings
881 voiceconfig () {
882 thislang=$1
883 if [ ! "$ARG_TTS" ]; then
884 echo "Building $thislang voice for $modelname. Select options"
885 echo ""
888 if [ -n "`findtool flite`" ]; then
889 FLITE="F(l)ite "
890 FLITE_OPTS=""
891 DEFAULT_TTS="flite"
892 DEFAULT_TTS_OPTS=$FLITE_OPTS
893 DEFAULT_NOISEFLOOR="500"
894 DEFAULT_CHOICE="l"
896 if [ -n "`findtool espeak`" ]; then
897 ESPEAK="(e)Speak "
898 ESPEAK_OPTS=""
899 DEFAULT_TTS="espeak"
900 DEFAULT_TTS_OPTS=$ESPEAK_OPTS
901 DEFAULT_NOISEFLOOR="500"
902 DEFAULT_CHOICE="e"
904 if [ -n "`findtool festival`" ]; then
905 FESTIVAL="(F)estival "
906 case "$thislang" in
907 "italiano")
908 FESTIVAL_OPTS="--language italian"
910 "espanol")
911 FESTIVAL_OPTS="--language spanish"
913 "finnish")
914 FESTIVAL_OPTS="--language finnish"
916 "czech")
917 FESTIVAL_OPTS="--language czech"
920 FESTIVAL_OPTS=""
922 esac
923 DEFAULT_TTS="festival"
924 DEFAULT_TTS_OPTS=$FESTIVAL_OPTS
925 DEFAULT_NOISEFLOOR="500"
926 DEFAULT_CHOICE="f"
928 if [ -n "`findtool swift`" ]; then
929 SWIFT="S(w)ift "
930 SWIFT_OPTS=""
931 DEFAULT_TTS="swift"
932 DEFAULT_TTS_OPTS=$SWIFT_OPTS
933 DEFAULT_NOISEFLOOR="500"
934 DEFAULT_CHOICE="w"
936 # Allow SAPI if Windows is in use
937 if [ -n "`findtool winver`" ]; then
938 SAPI="(S)API "
939 SAPI_OPTS=""
940 DEFAULT_TTS="sapi"
941 DEFAULT_TTS_OPTS=$SAPI_OPTS
942 DEFAULT_NOISEFLOOR="500"
943 DEFAULT_CHOICE="s"
946 if [ "$FESTIVAL" = "$FLITE" ] && [ "$FLITE" = "$ESPEAK" ] && [ "$ESPEAK" = "$SAPI" ] && [ "$SAPI" = "$SWIFT" ]; then
947 echo "You need Festival, eSpeak or Flite in your path, or SAPI available to build voice files"
948 exit 3
951 if [ "$ARG_TTS" ]; then
952 option=$ARG_TTS
953 else
954 echo "TTS engine to use: ${FLITE}${FESTIVAL}${ESPEAK}${SAPI}${SWIFT}(${DEFAULT_CHOICE})?"
955 option=`input`
956 if [ -z "$option" ]; then option=${DEFAULT_CHOICE}; fi
957 advopts="$advopts --tts=$option"
959 case "$option" in
960 [Ll])
961 TTS_ENGINE="flite"
962 NOISEFLOOR="500" # TODO: check this value
963 TTS_OPTS=$FLITE_OPTS
965 [Ee])
966 TTS_ENGINE="espeak"
967 NOISEFLOOR="500"
968 TTS_OPTS=$ESPEAK_OPTS
970 [Ff])
971 TTS_ENGINE="festival"
972 NOISEFLOOR="500"
973 TTS_OPTS=$FESTIVAL_OPTS
975 [Ss])
976 TTS_ENGINE="sapi"
977 NOISEFLOOR="500"
978 TTS_OPTS=$SAPI_OPTS
980 [Ww])
981 TTS_ENGINE="swift"
982 NOISEFLOOR="500"
983 TTS_OPTS=$SWIFT_OPTS
986 TTS_ENGINE=$DEFAULT_TTS
987 TTS_OPTS=$DEFAULT_TTS_OPTS
988 NOISEFLOOR=$DEFAULT_NOISEFLOOR
989 esac
990 echo "Using $TTS_ENGINE for TTS"
992 # Select which voice to use for Festival
993 if [ "$TTS_ENGINE" = "festival" ]; then
994 voicelist=`echo "(voice.list)"|festival -i 2>/dev/null |tr "\n" " "|sed -e 's/.*festival> (\(.*\)) festival>/\1/'|sort`
995 for voice in $voicelist; do
996 TTS_FESTIVAL_VOICE="$voice" # Default choice
997 break
998 done
999 if [ "$ARG_VOICE" ]; then
1000 CHOICE=$ARG_VOICE
1001 else
1003 for voice in $voicelist; do
1004 printf "%3d. %s\n" "$i" "$voice"
1005 i=`expr $i + 1`
1006 done
1007 printf "Please select which Festival voice to use (default is $TTS_FESTIVAL_VOICE): "
1008 CHOICE=`input`
1011 for voice in $voicelist; do
1012 if [ "$i" = "$CHOICE" -o "$voice" = "$CHOICE" ]; then
1013 TTS_FESTIVAL_VOICE="$voice"
1015 i=`expr $i + 1`
1016 done
1017 advopts="$advopts --voice=$CHOICE"
1018 echo "Festival voice set to $TTS_FESTIVAL_VOICE"
1019 echo "(voice_$TTS_FESTIVAL_VOICE)" > festival-prolog.scm
1022 # Read custom tts options from command line
1023 if [ "$ARG_TTSOPTS" ]; then
1024 TTS_OPTS="$ARG_TTSOPTS"
1025 echo "$TTS_ENGINE options set to $TTS_OPTS"
1028 if [ "$swcodec" = "yes" ]; then
1029 ENCODER="rbspeexenc"
1030 ENC_OPTS="-q 4 -c 10"
1031 else
1032 if [ -n "`findtool lame`" ]; then
1033 ENCODER="lame"
1034 ENC_OPTS="--resample 12 -t -m m -h -V 9.999 -S -B 64 --vbr-new"
1035 else
1036 echo "You need LAME in the system path to build voice files for"
1037 echo "HWCODEC targets."
1038 exit 4
1042 echo "Using $ENCODER for encoding voice clips"
1044 # Read custom encoder options from command line
1045 if [ "$ARG_ENCOPTS" ]; then
1046 ENC_OPTS="$ARG_ENCOPTS"
1047 echo "$ENCODER options set to $ENC_OPTS"
1050 TEMPDIR="${pwd}"
1051 if [ -n "`findtool cygpath`" ]; then
1052 TEMPDIR=`cygpath . -a -w`
1056 picklang() {
1057 # figure out which languages that are around
1058 for file in $rootdir/apps/lang/*.lang; do
1059 clean=`basename $file .lang`
1060 langs="$langs $clean"
1061 done
1063 if [ "$ARG_LANG" ]; then
1064 pick=$ARG_LANG
1065 else
1066 echo "Select a number for the language to use (default is english)"
1067 # FIXME The multiple-language feature is currently broken
1068 # echo "You may enter a comma-separated list of languages to build"
1070 num=1
1071 for one in $langs; do
1072 echo "$num. $one"
1073 num=`expr $num + 1`
1074 done
1075 pick=`input`
1076 advopts="$advopts --language=$pick"
1080 whichlang() {
1081 output=""
1082 # Allow the user to pass a comma-separated list of langauges
1083 for thispick in `echo $pick | sed 's/,/ /g'`; do
1084 num=1
1085 for one in $langs; do
1086 # Accept both the language number and name
1087 if [ "$num" = "$thispick" ] || [ "$thispick" = "$one" ]; then
1088 if [ "$output" = "" ]; then
1089 output=$one
1090 else
1091 output=$output,$one
1094 num=`expr $num + 1`
1095 done
1096 done
1097 if [ -z "$output" ]; then
1098 # pick a default
1099 output="english"
1101 echo $output
1104 help() {
1105 echo "Rockbox configure script."
1106 echo "Invoke this in a directory to generate a Makefile to build Rockbox"
1107 echo "Do *NOT* run this within the tools directory!"
1108 echo ""
1109 cat <<EOF
1110 Usage: configure [OPTION]...
1111 Options:
1112 --target=TARGET Sets the target, TARGET can be either the target ID or
1113 corresponding string. Run without this option to see all
1114 available targets.
1116 --ram=RAM Sets the RAM for certain targets. Even though any number
1117 is accepted, not every number is correct. The default
1118 value will be applied, if you entered a wrong number
1119 (which depends on the target). Watch the output. Run
1120 without this option if you are not sure which the right
1121 number is.
1123 --type=TYPE Sets the build type. Shortcuts are also valid.
1124 Run without this option to see all available types.
1125 Multiple values are allowed and managed in the input
1126 order. So --type=b stands for Bootloader build, while
1127 --type=ab stands for "Backlight MOD" build.
1129 --lcdwidth=X Sets the width of the LCD. Used only for application
1130 targets.
1132 --lcdheight=Y Sets the height of the LCD. Used only for application
1133 targets.
1135 --language=LANG Set the language used for voice generation (used only if
1136 TYPE is AV).
1138 --tts=ENGINE Set the TTS engine used for voice generation (used only
1139 if TYPE is AV).
1141 --voice=VOICE Set voice to use with selected TTS (used only if TYPE is
1142 AV).
1144 --ttsopts=OPTS Set TTS engine manual options (used only if TYPE is AV).
1146 --encopts=OPTS Set encoder manual options (used only if ATYPE is AV).
1148 --rbdir=dir Use alternative rockbox directory (default: ${rbdir}).
1149 This is useful for having multiple alternate builds on
1150 your device that you can load with ROLO. However as the
1151 bootloader looks for .rockbox you won't be able to boot
1152 into this build.
1154 --ccache Enable ccache use (done by default these days)
1155 --no-ccache Disable ccache use
1157 --thumb Build with -mthumb (for ARM builds)
1158 --no-thumb The opposite of --thumb (don't use thumb even for targets
1159 where this is the default
1160 --sdl-threads Force use of SDL threads. They have inferior performance,
1161 but are better debuggable with GDB
1162 --no-sdl-threads Disallow use of SDL threads. This prevents the default
1163 behavior of falling back to them if no native thread
1164 support was found.
1165 --prefix Target installation directory
1166 --help Shows this message (must not be used with other options)
1170 exit
1173 ARG_CCACHE=
1174 ARG_ENCOPTS=
1175 ARG_LANG=
1176 ARG_RAM=
1177 ARG_RBDIR=
1178 ARG_TARGET=
1179 ARG_TTS=
1180 ARG_TTSOPTS=
1181 ARG_TYPE=
1182 ARG_VOICE=
1183 ARG_ARM_THUMB=
1184 ARG_PREFIX="$PREFIX"
1185 ARG_THREAD_SUPPORT=
1186 err=
1187 for arg in "$@"; do
1188 case "$arg" in
1189 --ccache) ARG_CCACHE=1;;
1190 --no-ccache) ARG_CCACHE=0;;
1191 --encopts=*) ARG_ENCOPTS=`echo "$arg" | cut -d = -f 2`;;
1192 --language=*) ARG_LANG=`echo "$arg" | cut -d = -f 2`;;
1193 --lcdwidth=*) ARG_LCDWIDTH=`echo "$arg" | cut -d = -f 2`;;
1194 --lcdheight=*) ARG_LCDHEIGHT=`echo "$arg" | cut -d = -f 2`;;
1195 --ram=*) ARG_RAM=`echo "$arg" | cut -d = -f 2`;;
1196 --rbdir=*) ARG_RBDIR=`echo "$arg" | cut -d = -f 2`;;
1197 --target=*) ARG_TARGET=`echo "$arg" | cut -d = -f 2`;;
1198 --tts=*) ARG_TTS=`echo "$arg" | cut -d = -f 2`;;
1199 --ttsopts=*) ARG_TTSOPTS=`echo "$arg" | cut -d = -f 2`;;
1200 --type=*) ARG_TYPE=`echo "$arg" | cut -d = -f 2`;;
1201 --voice=*) ARG_VOICE=`echo "$arg" | cut -d = -f 2`;;
1202 --thumb) ARG_ARM_THUMB=1;;
1203 --no-thumb) ARG_ARM_THUMB=0;;
1204 --sdl-threads)ARG_THREAD_SUPPORT=1;;
1205 --no-sdl-threads)
1206 ARG_THREAD_SUPPORT=0;;
1207 --prefix=*) ARG_PREFIX=`echo "$arg" | cut -d = -f 2`;;
1208 --help) help;;
1209 *) err=1; echo "[ERROR] Option '$arg' unsupported";;
1210 esac
1211 done
1212 [ "$err" ] && exit 1
1214 advopts=
1216 if [ "$TMPDIR" != "" ]; then
1217 tmpdir=$TMPDIR
1218 else
1219 tmpdir=/tmp
1221 echo Using temporary directory $tmpdir
1223 if test -r "configure"; then
1224 # this is a check for a configure script in the current directory, it there
1225 # is one, try to figure out if it is this one!
1227 if { grep "^# Jukebox" configure >/dev/null 2>&1 ; } then
1228 echo "WEEEEEEEEP. Don't run this configure script within the tools directory."
1229 echo "It will only cause you pain and grief. Instead do this:"
1230 echo ""
1231 echo " cd .."
1232 echo " mkdir build-dir"
1233 echo " cd build-dir"
1234 echo " ../tools/configure"
1235 echo ""
1236 echo "Much happiness will arise from this. Enjoy"
1237 exit 5
1241 # get our current directory
1242 pwd=`pwd`;
1244 if { echo $pwd | grep " "; } then
1245 echo "You're running this script in a path that contains space. The build"
1246 echo "system is unfortunately not clever enough to deal with this. Please"
1247 echo "run the script from a different path, rename the path or fix the build"
1248 echo "system!"
1249 exit 6
1252 if [ -z "$rootdir" ]; then
1253 ##################################################################
1254 # Figure out where the source code root is!
1256 rootdir=`dirname $0`/../
1258 #####################################################################
1259 # Convert the possibly relative directory name to an absolute version
1261 now=`pwd`
1262 cd $rootdir
1263 rootdir=`pwd`
1265 # cd back to the build dir
1266 cd $now
1269 apps="apps"
1270 appsdir='$(ROOTDIR)/apps'
1271 toolsdir='$(ROOTDIR)/tools'
1274 ##################################################################
1275 # Figure out target platform
1278 if [ "$ARG_TARGET" ]; then
1279 buildfor=$ARG_TARGET
1280 else
1281 echo "Enter target platform:"
1282 cat <<EOF
1283 ==Archos== ==iriver== ==Apple iPod==
1284 0) Player/Studio 10) H120/H140 20) Color/Photo
1285 1) Recorder 11) H320/H340 21) Nano 1G
1286 2) FM Recorder 12) iHP-100/110/115 22) Video
1287 3) Recorder v2 13) iFP-790 23) 3G
1288 4) Ondio SP 14) H10 20Gb 24) 4G Grayscale
1289 5) Ondio FM 15) H10 5/6Gb 25) Mini 1G
1290 6) AV300 26) Mini 2G
1291 ==Toshiba== 27) 1G, 2G
1292 ==Cowon/iAudio== 40) Gigabeat F/X 28) Nano 2G
1293 30) X5/X5V/X5L 41) Gigabeat S 29) Classic/6G
1294 31) M5/M5L
1295 32) 7 ==Olympus= ==SanDisk==
1296 33) D2 70) M:Robe 500 50) Sansa e200
1297 34) M3/M3L 71) M:Robe 100 51) Sansa e200R
1298 52) Sansa c200
1299 ==Creative== ==Philips== 53) Sansa m200
1300 90) Zen Vision:M 30GB 100) GoGear SA9200 54) Sansa c100
1301 91) Zen Vision:M 60GB 101) GoGear HDD1630/ 55) Sansa Clip
1302 92) Zen Vision HDD1830 56) Sansa e200v2
1303 93) Zen X-Fi2 102) GoGear HDD6330 57) Sansa m200v4
1304 94) Zen X-Fi3 58) Sansa Fuze
1305 ==Meizu== 59) Sansa c200v2
1306 ==Onda== 110) M6SL 60) Sansa Clipv2
1307 120) VX747 111) M6SP 61) Sansa View
1308 121) VX767 112) M3 62) Sansa Clip+
1309 122) VX747+ 63) Sansa Fuze v2
1310 123) VX777 ==Tatung== 64) Sansa Fuze+
1311 150) Elio TPJ-1022 65) Sansa Clip Zip
1312 ==Samsung== 66) Sansa Connect
1313 140) YH-820 ==Packard Bell==
1314 141) YH-920 160) Vibe 500 ==Logik==
1315 142) YH-925 80) DAX 1GB MP3/DAB
1316 143) YP-S3 ==MPIO==
1317 170) HD200 ==Lyre project==
1318 ==Application== 171) HD300 130) Lyre proto 1
1319 200) SDL 131) Mini2440
1320 201) Android ==ROCKCHIP==
1321 202) Nokia N8xx 180) rk27xx generic ==HiFiMAN==
1322 203) Nokia N900 190) HM-60x
1323 204) Pandora 191) HM-801
1324 205) Samsung YP-R0
1325 206) Android MIPS
1328 buildfor=`input`;
1331 # Set of tools built for all target platforms:
1332 toolset="rdf2binary convbdf codepages"
1334 # Toolsets for some target families:
1335 archosbitmaptools="$toolset scramble descramble sh2d uclpack bmp2rb"
1336 iriverbitmaptools="$toolset scramble descramble mkboot bmp2rb"
1337 iaudiobitmaptools="$toolset scramble descramble mkboot bmp2rb"
1338 ipodbitmaptools="$toolset scramble bmp2rb"
1339 gigabeatbitmaptools="$toolset scramble descramble bmp2rb"
1340 tccbitmaptools="$toolset scramble bmp2rb"
1341 # generic is used by IFP, Meizu and Onda
1342 genericbitmaptools="$toolset bmp2rb"
1343 # scramble is used by all other targets
1344 scramblebitmaptools="$genericbitmaptools scramble"
1347 # ---- For each target ----
1349 # *Variables*
1350 # target_id: a unique number identifying this target, IS NOT the menu number.
1351 # Just use the currently highest number+1 when you add a new
1352 # target.
1353 # modelname: short model name used all over to identify this target
1354 # memory: number of megabytes of RAM this target has. If the amount can
1355 # be selected by the size prompt, let memory be unset here
1356 # target: -Ddefine passed to the build commands to make the correct
1357 # config-*.h file get included etc
1358 # tool: the tool that takes a plain binary and converts that into a
1359 # working "firmware" file for your target
1360 # output: the final output file name
1361 # boottool: the tool that takes a plain binary and generates a bootloader
1362 # file for your target (or blank to use $tool)
1363 # bootoutput:the final output file name for the bootloader (or blank to use
1364 # $output)
1365 # appextra: passed to the APPEXTRA variable in the Makefiles.
1366 # TODO: add proper explanation
1367 # archosrom: used only for Archos targets that build a special flashable .ucl
1368 # image.
1369 # flash: name of output for flashing, for targets where there's a special
1370 # file output for this.
1371 # plugins: set to 'yes' to build the plugins. Early development builds can
1372 # set this to no in the early stages to have an easier life for a
1373 # while
1374 # swcodec: set 'yes' on swcodec targets
1375 # toolset: lists what particular tools in the tools/ directory that this
1376 # target needs to have built prior to building Rockbox
1378 # *Functions*
1379 # *cc: sets up gcc and compiler options for your target builds. Note
1380 # that if you select a simulator build, the compiler selection is
1381 # overridden later in the script.
1383 case $buildfor in
1385 0|archosplayer)
1386 target_id=1
1387 modelname="archosplayer"
1388 target="ARCHOS_PLAYER"
1389 shcc
1390 tool="$rootdir/tools/scramble"
1391 output="archos.mod"
1392 appextra="player:gui"
1393 archosrom="$pwd/rombox.ucl"
1394 flash="$pwd/rockbox.ucl"
1395 plugins="yes"
1396 swcodec=""
1398 # toolset is the tools within the tools directory that we build for
1399 # this particular target.
1400 toolset="$toolset scramble descramble sh2d player_unifont uclpack"
1402 # Note: the convbdf is present in the toolset just because: 1) the
1403 # firmware/Makefile assumes it is present always, and 2) we will need it when we
1404 # build the player simulator
1406 t_cpu="sh"
1407 t_manufacturer="archos"
1408 t_model="player"
1411 1|archosrecorder)
1412 target_id=2
1413 modelname="archosrecorder"
1414 target="ARCHOS_RECORDER"
1415 shcc
1416 tool="$rootdir/tools/scramble"
1417 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1418 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1419 output="ajbrec.ajz"
1420 appextra="recorder:gui:radio"
1421 #archosrom="$pwd/rombox.ucl"
1422 flash="$pwd/rockbox.ucl"
1423 plugins="yes"
1424 swcodec=""
1425 # toolset is the tools within the tools directory that we build for
1426 # this particular target.
1427 toolset=$archosbitmaptools
1428 t_cpu="sh"
1429 t_manufacturer="archos"
1430 t_model="recorder"
1433 2|archosfmrecorder)
1434 target_id=3
1435 modelname="archosfmrecorder"
1436 target="ARCHOS_FMRECORDER"
1437 shcc
1438 tool="$rootdir/tools/scramble -fm"
1439 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1440 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1441 output="ajbrec.ajz"
1442 appextra="recorder:gui:radio"
1443 #archosrom="$pwd/rombox.ucl"
1444 flash="$pwd/rockbox.ucl"
1445 plugins="yes"
1446 swcodec=""
1447 # toolset is the tools within the tools directory that we build for
1448 # this particular target.
1449 toolset=$archosbitmaptools
1450 t_cpu="sh"
1451 t_manufacturer="archos"
1452 t_model="fm_v2"
1455 3|archosrecorderv2)
1456 target_id=4
1457 modelname="archosrecorderv2"
1458 target="ARCHOS_RECORDERV2"
1459 shcc
1460 tool="$rootdir/tools/scramble -v2"
1461 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1462 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1463 output="ajbrec.ajz"
1464 appextra="recorder:gui:radio"
1465 #archosrom="$pwd/rombox.ucl"
1466 flash="$pwd/rockbox.ucl"
1467 plugins="yes"
1468 swcodec=""
1469 # toolset is the tools within the tools directory that we build for
1470 # this particular target.
1471 toolset=$archosbitmaptools
1472 t_cpu="sh"
1473 t_manufacturer="archos"
1474 t_model="fm_v2"
1477 4|archosondiosp)
1478 target_id=7
1479 modelname="archosondiosp"
1480 target="ARCHOS_ONDIOSP"
1481 shcc
1482 tool="$rootdir/tools/scramble -osp"
1483 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1484 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1485 output="ajbrec.ajz"
1486 appextra="recorder:gui:radio"
1487 #archosrom="$pwd/rombox.ucl"
1488 flash="$pwd/rockbox.ucl"
1489 plugins="yes"
1490 swcodec=""
1491 # toolset is the tools within the tools directory that we build for
1492 # this particular target.
1493 toolset=$archosbitmaptools
1494 t_cpu="sh"
1495 t_manufacturer="archos"
1496 t_model="ondio"
1499 5|archosondiofm)
1500 target_id=8
1501 modelname="archosondiofm"
1502 target="ARCHOS_ONDIOFM"
1503 shcc
1504 tool="$rootdir/tools/scramble -ofm"
1505 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1506 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1507 output="ajbrec.ajz"
1508 appextra="recorder:gui:radio"
1509 #archosrom="$pwd/rombox.ucl"
1510 flash="$pwd/rockbox.ucl"
1511 plugins="yes"
1512 swcodec=""
1513 toolset=$archosbitmaptools
1514 t_cpu="sh"
1515 t_manufacturer="archos"
1516 t_model="ondio"
1519 6|archosav300)
1520 target_id=38
1521 modelname="archosav300"
1522 target="ARCHOS_AV300"
1523 memory=16 # always
1524 arm7tdmicc
1525 tool="$rootdir/tools/scramble -mm=C"
1526 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1527 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
1528 output="cjbm.ajz"
1529 appextra="recorder:gui:radio"
1530 plugins="yes"
1531 swcodec=""
1532 # toolset is the tools within the tools directory that we build for
1533 # this particular target.
1534 toolset="$toolset scramble descramble bmp2rb"
1535 # architecture, manufacturer and model for the target-tree build
1536 t_cpu="arm"
1537 t_manufacturer="archos"
1538 t_model="av300"
1541 10|iriverh120)
1542 target_id=9
1543 modelname="iriverh120"
1544 target="IRIVER_H120"
1545 memory=32 # always
1546 coldfirecc
1547 tool="$rootdir/tools/scramble -add=h120"
1548 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1549 bmp2rb_native="$rootdir/tools/bmp2rb -f 2"
1550 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
1551 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0"
1552 output="rockbox.iriver"
1553 bootoutput="bootloader.iriver"
1554 appextra="recorder:gui:radio"
1555 flash="$pwd/rombox.iriver"
1556 plugins="yes"
1557 swcodec="yes"
1558 # toolset is the tools within the tools directory that we build for
1559 # this particular target.
1560 toolset=$iriverbitmaptools
1561 t_cpu="coldfire"
1562 t_manufacturer="iriver"
1563 t_model="h100"
1566 11|iriverh300)
1567 target_id=10
1568 modelname="iriverh300"
1569 target="IRIVER_H300"
1570 memory=32 # always
1571 coldfirecc
1572 tool="$rootdir/tools/scramble -add=h300"
1573 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1574 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1575 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
1576 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0"
1577 output="rockbox.iriver"
1578 appextra="recorder:gui:radio"
1579 plugins="yes"
1580 swcodec="yes"
1581 # toolset is the tools within the tools directory that we build for
1582 # this particular target.
1583 toolset=$iriverbitmaptools
1584 t_cpu="coldfire"
1585 t_manufacturer="iriver"
1586 t_model="h300"
1589 12|iriverh100)
1590 target_id=11
1591 modelname="iriverh100"
1592 target="IRIVER_H100"
1593 memory=16 # always
1594 coldfirecc
1595 tool="$rootdir/tools/scramble -add=h100"
1596 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1597 bmp2rb_native="$rootdir/tools/bmp2rb -f 2"
1598 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
1599 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0"
1600 output="rockbox.iriver"
1601 bootoutput="bootloader.iriver"
1602 appextra="recorder:gui:radio"
1603 flash="$pwd/rombox.iriver"
1604 plugins="yes"
1605 swcodec="yes"
1606 # toolset is the tools within the tools directory that we build for
1607 # this particular target.
1608 toolset=$iriverbitmaptools
1609 t_cpu="coldfire"
1610 t_manufacturer="iriver"
1611 t_model="h100"
1614 13|iriverifp7xx)
1615 target_id=19
1616 modelname="iriverifp7xx"
1617 target="IRIVER_IFP7XX"
1618 memory=1
1619 arm7tdmicc short
1620 tool="cp"
1621 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1622 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1623 output="rockbox.wma"
1624 appextra="recorder:gui:radio"
1625 plugins="yes"
1626 swcodec="yes"
1627 # toolset is the tools within the tools directory that we build for
1628 # this particular target.
1629 toolset=$genericbitmaptools
1630 t_cpu="arm"
1631 t_manufacturer="pnx0101"
1632 t_model="iriver-ifp7xx"
1635 14|iriverh10)
1636 target_id=22
1637 modelname="iriverh10"
1638 target="IRIVER_H10"
1639 memory=32 # always
1640 arm7tdmicc
1641 tool="$rootdir/tools/scramble -mi4v3 -model=h10 -type=RBOS"
1642 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1643 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
1644 output="rockbox.mi4"
1645 appextra="recorder:gui:radio"
1646 plugins="yes"
1647 swcodec="yes"
1648 boottool="$rootdir/tools/scramble -mi4v3 -model=h10 -type=RBBL"
1649 bootoutput="H10_20GC.mi4"
1650 # toolset is the tools within the tools directory that we build for
1651 # this particular target.
1652 toolset=$scramblebitmaptools
1653 # architecture, manufacturer and model for the target-tree build
1654 t_cpu="arm"
1655 t_soc="pp"
1656 t_manufacturer="iriver"
1657 t_model="h10"
1660 15|iriverh10_5gb)
1661 target_id=24
1662 modelname="iriverh10_5gb"
1663 target="IRIVER_H10_5GB"
1664 memory=32 # always
1665 arm7tdmicc
1666 tool="$rootdir/tools/scramble -mi4v2 -model=h105 -type=RBOS"
1667 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1668 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
1669 output="rockbox.mi4"
1670 appextra="recorder:gui:radio"
1671 plugins="yes"
1672 swcodec="yes"
1673 boottool="$rootdir/tools/scramble -mi4v2 -model=h105 -type=RBBL"
1674 bootoutput="H10.mi4"
1675 # toolset is the tools within the tools directory that we build for
1676 # this particular target.
1677 toolset=$scramblebitmaptools
1678 # architecture, manufacturer and model for the target-tree build
1679 t_cpu="arm"
1680 t_soc="pp"
1681 t_manufacturer="iriver"
1682 t_model="h10"
1685 20|ipodcolor)
1686 target_id=13
1687 modelname="ipodcolor"
1688 target="IPOD_COLOR"
1689 memory=32 # always
1690 arm7tdmicc
1691 tool="$rootdir/tools/scramble -add=ipco"
1692 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1693 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
1694 output="rockbox.ipod"
1695 appextra="recorder:gui:radio"
1696 plugins="yes"
1697 swcodec="yes"
1698 bootoutput="bootloader-$modelname.ipod"
1699 # toolset is the tools within the tools directory that we build for
1700 # this particular target.
1701 toolset=$ipodbitmaptools
1702 # architecture, manufacturer and model for the target-tree build
1703 t_cpu="arm"
1704 t_soc="pp"
1705 t_manufacturer="ipod"
1706 t_model="color"
1709 21|ipodnano1g)
1710 target_id=14
1711 modelname="ipodnano1g"
1712 target="IPOD_NANO"
1713 memory=32 # always
1714 arm7tdmicc
1715 tool="$rootdir/tools/scramble -add=nano"
1716 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1717 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
1718 output="rockbox.ipod"
1719 appextra="recorder:gui:radio"
1720 plugins="yes"
1721 swcodec="yes"
1722 bootoutput="bootloader-$modelname.ipod"
1723 # toolset is the tools within the tools directory that we build for
1724 # this particular target.
1725 toolset=$ipodbitmaptools
1726 # architecture, manufacturer and model for the target-tree build
1727 t_cpu="arm"
1728 t_soc="pp"
1729 t_manufacturer="ipod"
1730 t_model="nano"
1733 22|ipodvideo)
1734 target_id=15
1735 modelname="ipodvideo"
1736 target="IPOD_VIDEO"
1737 memory=64 # always. This is reduced at runtime if needed
1738 arm7tdmicc
1739 tool="$rootdir/tools/scramble -add=ipvd"
1740 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1741 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1742 output="rockbox.ipod"
1743 appextra="recorder:gui:radio"
1744 plugins="yes"
1745 swcodec="yes"
1746 bootoutput="bootloader-$modelname.ipod"
1747 # toolset is the tools within the tools directory that we build for
1748 # this particular target.
1749 toolset=$ipodbitmaptools
1750 # architecture, manufacturer and model for the target-tree build
1751 t_cpu="arm"
1752 t_soc="pp"
1753 t_manufacturer="ipod"
1754 t_model="video"
1757 23|ipod3g)
1758 target_id=16
1759 modelname="ipod3g"
1760 target="IPOD_3G"
1761 memory=32 # always
1762 arm7tdmicc
1763 tool="$rootdir/tools/scramble -add=ip3g"
1764 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1765 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
1766 output="rockbox.ipod"
1767 appextra="recorder:gui:radio"
1768 plugins="yes"
1769 swcodec="yes"
1770 bootoutput="bootloader-$modelname.ipod"
1771 # toolset is the tools within the tools directory that we build for
1772 # this particular target.
1773 toolset=$ipodbitmaptools
1774 # architecture, manufacturer and model for the target-tree build
1775 t_cpu="arm"
1776 t_soc="pp"
1777 t_manufacturer="ipod"
1778 t_model="3g"
1781 24|ipod4g)
1782 target_id=17
1783 modelname="ipod4g"
1784 target="IPOD_4G"
1785 memory=32 # always
1786 arm7tdmicc
1787 tool="$rootdir/tools/scramble -add=ip4g"
1788 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1789 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
1790 output="rockbox.ipod"
1791 appextra="recorder:gui:radio"
1792 plugins="yes"
1793 swcodec="yes"
1794 bootoutput="bootloader-$modelname.ipod"
1795 # toolset is the tools within the tools directory that we build for
1796 # this particular target.
1797 toolset=$ipodbitmaptools
1798 # architecture, manufacturer and model for the target-tree build
1799 t_cpu="arm"
1800 t_soc="pp"
1801 t_manufacturer="ipod"
1802 t_model="4g"
1805 25|ipodmini1g)
1806 target_id=18
1807 modelname="ipodmini1g"
1808 target="IPOD_MINI"
1809 memory=32 # always
1810 arm7tdmicc
1811 tool="$rootdir/tools/scramble -add=mini"
1812 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1813 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
1814 output="rockbox.ipod"
1815 appextra="recorder:gui:radio"
1816 plugins="yes"
1817 swcodec="yes"
1818 bootoutput="bootloader-$modelname.ipod"
1819 # toolset is the tools within the tools directory that we build for
1820 # this particular target.
1821 toolset=$ipodbitmaptools
1822 # architecture, manufacturer and model for the target-tree build
1823 t_cpu="arm"
1824 t_soc="pp"
1825 t_manufacturer="ipod"
1826 t_model="mini"
1829 26|ipodmini2g)
1830 target_id=21
1831 modelname="ipodmini2g"
1832 target="IPOD_MINI2G"
1833 memory=32 # always
1834 arm7tdmicc
1835 tool="$rootdir/tools/scramble -add=mn2g"
1836 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1837 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
1838 output="rockbox.ipod"
1839 appextra="recorder:gui:radio"
1840 plugins="yes"
1841 swcodec="yes"
1842 bootoutput="bootloader-$modelname.ipod"
1843 # toolset is the tools within the tools directory that we build for
1844 # this particular target.
1845 toolset=$ipodbitmaptools
1846 # architecture, manufacturer and model for the target-tree build
1847 t_cpu="arm"
1848 t_soc="pp"
1849 t_manufacturer="ipod"
1850 t_model="mini2g"
1853 27|ipod1g2g)
1854 target_id=29
1855 modelname="ipod1g2g"
1856 target="IPOD_1G2G"
1857 memory=32 # always
1858 arm7tdmicc
1859 tool="$rootdir/tools/scramble -add=1g2g"
1860 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1861 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
1862 output="rockbox.ipod"
1863 appextra="recorder:gui:radio"
1864 plugins="yes"
1865 swcodec="yes"
1866 bootoutput="bootloader-$modelname.ipod"
1867 # toolset is the tools within the tools directory that we build for
1868 # this particular target.
1869 toolset=$ipodbitmaptools
1870 # architecture, manufacturer and model for the target-tree build
1871 t_cpu="arm"
1872 t_soc="pp"
1873 t_manufacturer="ipod"
1874 t_model="1g2g"
1877 28|ipodnano2g)
1878 target_id=62
1879 modelname="ipodnano2g"
1880 target="IPOD_NANO2G"
1881 memory=32 # always
1882 arm940tcc
1883 tool="$rootdir/tools/scramble -add=nn2g"
1884 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1885 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1886 output="rockbox.ipod"
1887 appextra="recorder:gui:radio"
1888 plugins="yes"
1889 swcodec="yes"
1890 bootoutput="bootloader-$modelname.ipod"
1891 # toolset is the tools within the tools directory that we build for
1892 # this particular target.
1893 toolset=$ipodbitmaptools
1894 # architecture, manufacturer and model for the target-tree build
1895 t_cpu="arm"
1896 t_manufacturer="s5l8700"
1897 t_model="ipodnano2g"
1900 29|ipod6g)
1901 target_id=71
1902 modelname="ipod6g"
1903 target="IPOD_6G"
1904 memory=64 # always
1905 arm926ejscc
1906 tool="$rootdir/tools/scramble -add=ip6g"
1907 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1908 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1909 output="rockbox.ipod"
1910 appextra="recorder:gui:radio"
1911 plugins="yes"
1912 swcodec="yes"
1913 bootoutput="bootloader-$modelname.ipod"
1914 # toolset is the tools within the tools directory that we build for
1915 # this particular target.
1916 toolset=$ipodbitmaptools
1917 # architecture, manufacturer and model for the target-tree build
1918 t_cpu="arm"
1919 t_manufacturer="s5l8702"
1920 t_model="ipod6g"
1923 30|iaudiox5)
1924 target_id=12
1925 modelname="iaudiox5"
1926 target="IAUDIO_X5"
1927 memory=16 # always
1928 coldfirecc
1929 tool="$rootdir/tools/scramble -add=iax5"
1930 boottool="$rootdir/tools/scramble -iaudiox5"
1931 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1932 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1933 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
1934 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 7"
1935 output="rockbox.iaudio"
1936 bootoutput="x5_fw.bin"
1937 appextra="recorder:gui:radio"
1938 plugins="yes"
1939 swcodec="yes"
1940 # toolset is the tools within the tools directory that we build for
1941 # this particular target.
1942 toolset="$iaudiobitmaptools"
1943 # architecture, manufacturer and model for the target-tree build
1944 t_cpu="coldfire"
1945 t_manufacturer="iaudio"
1946 t_model="x5"
1949 31|iaudiom5)
1950 target_id=28
1951 modelname="iaudiom5"
1952 target="IAUDIO_M5"
1953 memory=16 # always
1954 coldfirecc
1955 tool="$rootdir/tools/scramble -add=iam5"
1956 boottool="$rootdir/tools/scramble -iaudiom5"
1957 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1958 bmp2rb_native="$rootdir/tools/bmp2rb -f 2"
1959 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
1960 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 7"
1961 output="rockbox.iaudio"
1962 bootoutput="m5_fw.bin"
1963 appextra="recorder:gui:radio"
1964 plugins="yes"
1965 swcodec="yes"
1966 # toolset is the tools within the tools directory that we build for
1967 # this particular target.
1968 toolset="$iaudiobitmaptools"
1969 # architecture, manufacturer and model for the target-tree build
1970 t_cpu="coldfire"
1971 t_manufacturer="iaudio"
1972 t_model="m5"
1975 32|iaudio7)
1976 target_id=32
1977 modelname="iaudio7"
1978 target="IAUDIO_7"
1979 memory=16 # always
1980 arm946cc
1981 tool="$rootdir/tools/scramble -add=i7"
1982 boottool="$rootdir/tools/scramble -tcc=crc"
1983 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1984 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1985 output="rockbox.iaudio"
1986 appextra="recorder:gui:radio"
1987 plugins="yes"
1988 swcodec="yes"
1989 bootoutput="I7_FW.BIN"
1990 # toolset is the tools within the tools directory that we build for
1991 # this particular target.
1992 toolset="$tccbitmaptools"
1993 # architecture, manufacturer and model for the target-tree build
1994 t_cpu="arm"
1995 t_manufacturer="tcc77x"
1996 t_model="iaudio7"
1999 33|cowond2)
2000 target_id=34
2001 modelname="cowond2"
2002 target="COWON_D2"
2003 memory=32
2004 arm926ejscc
2005 tool="$rootdir/tools/scramble -add=d2"
2006 boottool="cp "
2007 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2008 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2009 output="rockbox.d2"
2010 bootoutput="bootloader-cowond2.bin"
2011 appextra="recorder:gui:radio"
2012 plugins="yes"
2013 swcodec="yes"
2014 toolset="$tccbitmaptools"
2015 # architecture, manufacturer and model for the target-tree build
2016 t_cpu="arm"
2017 t_manufacturer="tcc780x"
2018 t_model="cowond2"
2021 34|iaudiom3)
2022 target_id=37
2023 modelname="iaudiom3"
2024 target="IAUDIO_M3"
2025 memory=16 # always
2026 coldfirecc
2027 tool="$rootdir/tools/scramble -add=iam3"
2028 boottool="$rootdir/tools/scramble -iaudiom3"
2029 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2030 bmp2rb_native="$rootdir/tools/bmp2rb -f 7"
2031 output="rockbox.iaudio"
2032 bootoutput="cowon_m3.bin"
2033 appextra="recorder:gui:radio"
2034 plugins="yes"
2035 swcodec="yes"
2036 # toolset is the tools within the tools directory that we build for
2037 # this particular target.
2038 toolset="$iaudiobitmaptools"
2039 # architecture, manufacturer and model for the target-tree build
2040 t_cpu="coldfire"
2041 t_manufacturer="iaudio"
2042 t_model="m3"
2045 40|gigabeatfx)
2046 target_id=20
2047 modelname="gigabeatfx"
2048 target="GIGABEAT_F"
2049 memory=32 # always
2050 arm9tdmicc
2051 tool="$rootdir/tools/scramble -add=giga"
2052 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2053 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2054 output="rockbox.gigabeat"
2055 appextra="recorder:gui:radio"
2056 plugins="yes"
2057 swcodec="yes"
2058 toolset=$gigabeatbitmaptools
2059 boottool="$rootdir/tools/scramble -gigabeat"
2060 bootoutput="FWIMG01.DAT"
2061 # architecture, manufacturer and model for the target-tree build
2062 t_cpu="arm"
2063 t_manufacturer="s3c2440"
2064 t_model="gigabeat-fx"
2067 41|gigabeats)
2068 target_id=26
2069 modelname="gigabeats"
2070 target="GIGABEAT_S"
2071 memory=64
2072 arm1136jfscc
2073 tool="$rootdir/tools/scramble -add=gigs"
2074 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2075 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2076 output="rockbox.gigabeat"
2077 appextra="recorder:gui:radio"
2078 plugins="yes"
2079 swcodec="yes"
2080 toolset="$gigabeatbitmaptools"
2081 boottool="$rootdir/tools/scramble -gigabeats"
2082 bootoutput="nk.bin"
2083 # architecture, manufacturer and model for the target-tree build
2084 t_cpu="arm"
2085 t_manufacturer="imx31"
2086 t_model="gigabeat-s"
2089 70|mrobe500)
2090 target_id=36
2091 modelname="mrobe500"
2092 target="MROBE_500"
2093 memory=64 # always
2094 arm926ejscc
2095 tool="$rootdir/tools/scramble -add=m500"
2096 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2097 bmp2rb_native="$rootdir/tools/bmp2rb -f 8"
2098 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
2099 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0"
2100 output="rockbox.mrobe500"
2101 appextra="recorder:gui:radio"
2102 plugins="yes"
2103 swcodec="yes"
2104 toolset=$gigabeatbitmaptools
2105 boottool="cp "
2106 bootoutput="rockbox.mrboot"
2107 # architecture, manufacturer and model for the target-tree build
2108 t_cpu="arm"
2109 t_manufacturer="tms320dm320"
2110 t_model="mrobe-500"
2113 71|mrobe100)
2114 target_id=33
2115 modelname="mrobe100"
2116 target="MROBE_100"
2117 memory=32 # always
2118 arm7tdmicc
2119 tool="$rootdir/tools/scramble -mi4v2 -model=m100 -type=RBOS"
2120 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2121 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
2122 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
2123 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0"
2124 output="rockbox.mi4"
2125 appextra="recorder:gui:radio"
2126 plugins="yes"
2127 swcodec="yes"
2128 boottool="$rootdir/tools/scramble -mi4v2 -model=m100 -type=RBBL"
2129 bootoutput="pp5020.mi4"
2130 # toolset is the tools within the tools directory that we build for
2131 # this particular target.
2132 toolset=$scramblebitmaptools
2133 # architecture, manufacturer and model for the target-tree build
2134 t_cpu="arm"
2135 t_soc="pp"
2136 t_manufacturer="olympus"
2137 t_model="mrobe-100"
2140 80|logikdax)
2141 target_id=31
2142 modelname="logikdax"
2143 target="LOGIK_DAX"
2144 memory=2 # always
2145 arm946cc
2146 tool="$rootdir/tools/scramble -add=ldax"
2147 boottool="$rootdir/tools/scramble -tcc=crc"
2148 bootoutput="player.rom"
2149 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2150 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
2151 output="rockbox.logik"
2152 appextra="recorder:gui:radio"
2153 plugins=""
2154 swcodec="yes"
2155 # toolset is the tools within the tools directory that we build for
2156 # this particular target.
2157 toolset=$tccbitmaptools
2158 # architecture, manufacturer and model for the target-tree build
2159 t_cpu="arm"
2160 t_manufacturer="tcc77x"
2161 t_model="logikdax"
2164 90|zenvisionm30gb)
2165 target_id=35
2166 modelname="zenvisionm30gb"
2167 target="CREATIVE_ZVM"
2168 memory=64
2169 arm926ejscc
2170 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2171 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2172 tool="$rootdir/tools/scramble -creative=zvm"
2173 USE_ELF="yes"
2174 output="rockbox.zvm"
2175 appextra="recorder:gui:radio"
2176 plugins="yes"
2177 swcodec="yes"
2178 toolset=$ipodbitmaptools
2179 boottool="$rootdir/tools/scramble -creative=zvm -no-ciff"
2180 bootoutput="rockbox.zvmboot"
2181 # architecture, manufacturer and model for the target-tree build
2182 t_cpu="arm"
2183 t_manufacturer="tms320dm320"
2184 t_model="creative-zvm"
2187 91|zenvisionm60gb)
2188 target_id=40
2189 modelname="zenvisionm60gb"
2190 target="CREATIVE_ZVM60GB"
2191 memory=64
2192 arm926ejscc
2193 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2194 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2195 tool="$rootdir/tools/scramble -creative=zvm60 -no-ciff"
2196 USE_ELF="yes"
2197 output="rockbox.zvm60"
2198 appextra="recorder:gui:radio"
2199 plugins="yes"
2200 swcodec="yes"
2201 toolset=$ipodbitmaptools
2202 boottool="$rootdir/tools/scramble -creative=zvm60"
2203 bootoutput="rockbox.zvm60boot"
2204 # architecture, manufacturer and model for the target-tree build
2205 t_cpu="arm"
2206 t_manufacturer="tms320dm320"
2207 t_model="creative-zvm"
2210 92|zenvision)
2211 target_id=39
2212 modelname="zenvision"
2213 target="CREATIVE_ZV"
2214 memory=64
2215 arm926ejscc
2216 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2217 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2218 tool="$rootdir/tools/scramble -creative=zenvision -no-ciff"
2219 USE_ELF="yes"
2220 output="rockbox.zv"
2221 appextra="recorder:gui:radio"
2222 plugins=""
2223 swcodec="yes"
2224 toolset=$ipodbitmaptools
2225 boottool="$rootdir/tools/scramble -creative=zenvision"
2226 bootoutput="rockbox.zvboot"
2227 # architecture, manufacturer and model for the target-tree build
2228 t_cpu="arm"
2229 t_manufacturer="tms320dm320"
2230 t_model="creative-zvm"
2233 93|creativezenxfi2)
2234 target_id=80
2235 modelname="creativezenxfi2"
2236 target="CREATIVE_ZENXFI2"
2237 memory=64
2238 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2239 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2240 tool="$rootdir/tools/scramble -add=zxf2"
2241 output="rockbox.creative"
2242 bootoutput="bootloader-zenxfi2.creative"
2243 appextra="gui:recorder:radio"
2244 plugins="yes"
2245 swcodec="yes"
2246 toolset=$scramblebitmaptools
2247 t_cpu="arm"
2248 t_manufacturer="imx233"
2249 t_model="creative-zenxfi2"
2250 arm926ejscc
2253 94|creativezenxfi3)
2254 target_id=81
2255 modelname="creativezenxfi3"
2256 target="CREATIVE_ZENXFI3"
2257 memory=64
2258 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2259 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2260 tool="$rootdir/tools/scramble -add=zxf3"
2261 output="rockbox.creative"
2262 bootoutput="bootloader-zenxfi3.creative"
2263 appextra="gui:recorder:radio"
2264 plugins=""
2265 swcodec="yes"
2266 toolset=$scramblebitmaptools
2267 t_cpu="arm"
2268 t_manufacturer="imx233"
2269 t_model="creative-zenxfi3"
2270 arm926ejscc
2273 50|sansae200)
2274 target_id=23
2275 modelname="sansae200"
2276 target="SANSA_E200"
2277 memory=32 # supposedly
2278 arm7tdmicc
2279 tool="$rootdir/tools/scramble -mi4v3 -model=e200 -type=RBOS"
2280 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2281 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2282 output="rockbox.mi4"
2283 appextra="recorder:gui:radio"
2284 plugins="yes"
2285 swcodec="yes"
2286 boottool="$rootdir/tools/scramble -mi4v3 -model=e200 -type=RBBL"
2287 bootoutput="PP5022.mi4"
2288 # toolset is the tools within the tools directory that we build for
2289 # this particular target.
2290 toolset=$scramblebitmaptools
2291 # architecture, manufacturer and model for the target-tree build
2292 t_cpu="arm"
2293 t_soc="pp"
2294 t_manufacturer="sandisk"
2295 t_model="sansa-e200"
2298 51|sansae200r)
2299 # the e200R model is pretty much identical to the e200, it only has a
2300 # different option to the scramble tool when building a bootloader and
2301 # makes the bootloader output file name in all lower case.
2302 target_id=27
2303 modelname="sansae200r"
2304 target="SANSA_E200"
2305 memory=32 # supposedly
2306 arm7tdmicc
2307 tool="$rootdir/tools/scramble -mi4v3 -model=e20r -type=RBOS"
2308 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2309 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2310 output="rockbox.mi4"
2311 appextra="recorder:gui:radio"
2312 plugins="yes"
2313 swcodec="yes"
2314 boottool="$rootdir/tools/scramble -mi4r -model=e20r -type=RBBL"
2315 bootoutput="pp5022.mi4"
2316 # toolset is the tools within the tools directory that we build for
2317 # this particular target.
2318 toolset=$scramblebitmaptools
2319 # architecture, manufacturer and model for the target-tree build
2320 t_cpu="arm"
2321 t_soc="pp"
2322 t_manufacturer="sandisk"
2323 t_model="sansa-e200"
2326 52|sansac200)
2327 target_id=30
2328 modelname="sansac200"
2329 target="SANSA_C200"
2330 memory=32 # supposedly
2331 arm7tdmicc
2332 tool="$rootdir/tools/scramble -mi4v3 -model=c200 -type=RBOS"
2333 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2334 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2335 output="rockbox.mi4"
2336 appextra="recorder:gui:radio"
2337 plugins="yes"
2338 swcodec="yes"
2339 boottool="$rootdir/tools/scramble -mi4v3 -model=c200 -type=RBBL"
2340 bootoutput="firmware.mi4"
2341 # toolset is the tools within the tools directory that we build for
2342 # this particular target.
2343 toolset=$scramblebitmaptools
2344 # architecture, manufacturer and model for the target-tree build
2345 t_cpu="arm"
2346 t_soc="pp"
2347 t_manufacturer="sandisk"
2348 t_model="sansa-c200"
2351 53|sansam200)
2352 target_id=48
2353 modelname="sansam200"
2354 target="SANSA_M200"
2355 memory=1 # always
2356 arm946cc
2357 tool="$rootdir/tools/scramble -add=m200"
2358 boottool="$rootdir/tools/scramble -tcc=crc"
2359 bootoutput="player.rom"
2360 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2361 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
2362 output="rockbox.m200"
2363 appextra="recorder:gui:radio"
2364 plugins=""
2365 swcodec="yes"
2366 # toolset is the tools within the tools directory that we build for
2367 # this particular target.
2368 toolset=$tccbitmaptools
2369 # architecture, manufacturer and model for the target-tree build
2370 t_cpu="arm"
2371 t_manufacturer="tcc77x"
2372 t_model="m200"
2375 54|sansac100)
2376 target_id=42
2377 modelname="sansac100"
2378 target="SANSA_C100"
2379 memory=2
2380 arm946cc
2381 tool="$rootdir/tools/scramble -add=c100"
2382 boottool="$rootdir/tools/scramble -tcc=crc"
2383 bootoutput="player.rom"
2384 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2385 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2386 output="rockbox.c100"
2387 appextra="recorder:gui:radio"
2388 plugins=""
2389 swcodec="yes"
2390 # toolset is the tools within the tools directory that we build for
2391 # this particular target.
2392 toolset=$tccbitmaptools
2393 # architecture, manufacturer and model for the target-tree build
2394 t_cpu="arm"
2395 t_manufacturer="tcc77x"
2396 t_model="c100"
2399 55|sansaclip)
2400 target_id=50
2401 modelname="sansaclip"
2402 target="SANSA_CLIP"
2403 memory=2
2404 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2405 bmp2rb_native="$bmp2rb_mono"
2406 tool="$rootdir/tools/scramble -add=clip"
2407 output="rockbox.sansa"
2408 bootoutput="bootloader-clip.sansa"
2409 appextra="recorder:gui:radio"
2410 plugins="yes"
2411 swcodec="yes"
2412 toolset=$scramblebitmaptools
2413 t_cpu="arm"
2414 t_manufacturer="as3525"
2415 t_model="sansa-clip"
2416 if [ "$ARG_ARM_THUMB" != 0 ]; then ARG_ARM_THUMB=1; fi
2417 arm9tdmicc
2418 GCCOPTS=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2422 56|sansae200v2)
2423 target_id=51
2424 modelname="sansae200v2"
2425 target="SANSA_E200V2"
2426 memory=8
2427 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2428 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2429 tool="$rootdir/tools/scramble -add=e2v2"
2430 output="rockbox.sansa"
2431 bootoutput="bootloader-e200v2.sansa"
2432 appextra="recorder:gui:radio"
2433 plugins="yes"
2434 swcodec="yes"
2435 toolset=$scramblebitmaptools
2436 t_cpu="arm"
2437 t_manufacturer="as3525"
2438 t_model="sansa-e200v2"
2439 arm9tdmicc
2443 57|sansam200v4)
2444 target_id=52
2445 modelname="sansam200v4"
2446 target="SANSA_M200V4"
2447 memory=2
2448 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2449 bmp2rb_native="$bmp2rb_mono"
2450 tool="$rootdir/tools/scramble -add=m2v4"
2451 output="rockbox.sansa"
2452 bootoutput="bootloader-m200v4.sansa"
2453 appextra="recorder:gui:radio"
2454 plugins="yes"
2455 swcodec="yes"
2456 toolset=$scramblebitmaptools
2457 t_cpu="arm"
2458 t_manufacturer="as3525"
2459 t_model="sansa-m200v4"
2460 if [ "$ARG_ARM_THUMB" != 0 ]; then ARG_ARM_THUMB=1; fi
2461 arm9tdmicc
2462 GCCOPTS=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2466 58|sansafuze)
2467 target_id=53
2468 modelname="sansafuze"
2469 target="SANSA_FUZE"
2470 memory=8
2471 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2472 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2473 tool="$rootdir/tools/scramble -add=fuze"
2474 output="rockbox.sansa"
2475 bootoutput="bootloader-fuze.sansa"
2476 appextra="recorder:gui:radio"
2477 plugins="yes"
2478 swcodec="yes"
2479 toolset=$scramblebitmaptools
2480 t_cpu="arm"
2481 t_manufacturer="as3525"
2482 t_model="sansa-fuze"
2483 arm9tdmicc
2487 59|sansac200v2)
2488 target_id=55
2489 modelname="sansac200v2"
2490 target="SANSA_C200V2"
2491 memory=2 # as per OF diagnosis mode
2492 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2493 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2494 tool="$rootdir/tools/scramble -add=c2v2"
2495 output="rockbox.sansa"
2496 bootoutput="bootloader-c200v2.sansa"
2497 appextra="recorder:gui:radio"
2498 plugins="yes"
2499 swcodec="yes"
2500 # toolset is the tools within the tools directory that we build for
2501 # this particular target.
2502 toolset=$scramblebitmaptools
2503 # architecture, manufacturer and model for the target-tree build
2504 t_cpu="arm"
2505 t_manufacturer="as3525"
2506 t_model="sansa-c200v2"
2507 if [ "$ARG_ARM_THUMB" != 0 ]; then ARG_ARM_THUMB=1; fi
2508 arm9tdmicc
2509 GCCOPTS=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2512 60|sansaclipv2)
2513 target_id=60
2514 modelname="sansaclipv2"
2515 target="SANSA_CLIPV2"
2516 memory=8
2517 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2518 bmp2rb_native="$bmp2rb_mono"
2519 tool="$rootdir/tools/scramble -add=clv2"
2520 output="rockbox.sansa"
2521 bootoutput="bootloader-clipv2.sansa"
2522 appextra="recorder:gui:radio"
2523 plugins="yes"
2524 swcodec="yes"
2525 toolset=$scramblebitmaptools
2526 t_cpu="arm"
2527 t_manufacturer="as3525"
2528 t_model="sansa-clipv2"
2529 arm926ejscc
2532 61|sansaview)
2533 echo "Sansa View is not yet supported!"
2534 exit 1
2535 target_id=63
2536 modelname="sansaview"
2537 target="SANSA_VIEW"
2538 memory=32
2539 arm1176jzscc
2540 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2541 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2542 output="rockbox.mi4"
2543 appextra="gui"
2544 plugins=""
2545 swcodec="yes"
2546 boottool="$rootdir/tools/scramble -mi4v3 -model=view -type=RBBL"
2547 bootoutput="firmware.mi4"
2548 # toolset is the tools within the tools directory that we build for
2549 # this particular target.
2550 toolset=$scramblebitmaptools
2551 t_cpu="arm"
2552 t_soc="pp"
2553 t_manufacturer="sandisk"
2554 t_model="sansa-view"
2557 62|sansaclipplus)
2558 target_id=66
2559 modelname="sansaclipplus"
2560 target="SANSA_CLIPPLUS"
2561 memory=8
2562 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2563 bmp2rb_native="$bmp2rb_mono"
2564 tool="$rootdir/tools/scramble -add=cli+"
2565 output="rockbox.sansa"
2566 bootoutput="bootloader-clipplus.sansa"
2567 appextra="recorder:gui:radio"
2568 plugins="yes"
2569 swcodec="yes"
2570 toolset=$scramblebitmaptools
2571 t_cpu="arm"
2572 t_manufacturer="as3525"
2573 t_model="sansa-clipplus"
2574 arm926ejscc
2577 63|sansafuzev2)
2578 target_id=68
2579 modelname="sansafuzev2"
2580 target="SANSA_FUZEV2"
2581 memory=8 # not sure
2582 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2583 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
2584 tool="$rootdir/tools/scramble -add=fuz2"
2585 output="rockbox.sansa"
2586 bootoutput="bootloader-fuzev2.sansa"
2587 appextra="recorder:gui:radio"
2588 plugins="yes"
2589 swcodec="yes"
2590 toolset=$scramblebitmaptools
2591 t_cpu="arm"
2592 t_manufacturer="as3525"
2593 t_model="sansa-fuzev2"
2594 arm926ejscc
2597 64|sansafuzeplus)
2598 target_id=80
2599 modelname="sansafuzeplus"
2600 target="SANSA_FUZEPLUS"
2601 memory=64
2602 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2603 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2604 tool="$rootdir/tools/scramble -add=fuz+"
2605 output="rockbox.sansa"
2606 bootoutput="bootloader-fuzeplus.sansa"
2607 appextra="gui:recorder:radio"
2608 plugins="yes"
2609 swcodec="yes"
2610 toolset=$scramblebitmaptools
2611 t_cpu="arm"
2612 t_manufacturer="imx233"
2613 t_model="sansa-fuzeplus"
2614 arm926ejscc
2617 65|sansaclipzip)
2618 target_id=68
2619 modelname="sansaclipzip"
2620 target="SANSA_CLIPZIP"
2621 memory=8 # not sure
2622 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2623 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2624 tool="$rootdir/tools/scramble -add=clzp"
2625 output="rockbox.sansa"
2626 bootoutput="bootloader-clipzip.sansa"
2627 appextra="recorder:gui:radio"
2628 plugins="yes"
2629 swcodec="yes"
2630 toolset=$scramblebitmaptools
2631 t_cpu="arm"
2632 t_manufacturer="as3525"
2633 t_model="sansa-clipzip"
2634 arm926ejscc
2637 66|sansaconnect)
2638 target_id=81
2639 modelname="sansaconnect"
2640 target="SANSA_CONNECT"
2641 memory=64
2642 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2643 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2644 tool="$rootdir/tools/scramble -add=conn"
2645 output="rockbox.sansa"
2646 bootoutput="bootloader-connect.sansa"
2647 appextra="recorder:gui"
2648 plugins="yes"
2649 swcodec="yes"
2650 toolset=$scramblebitmaptools
2651 t_cpu="arm"
2652 t_manufacturer="tms320dm320"
2653 t_model="sansa-connect"
2654 arm926ejscc
2657 150|tatungtpj1022)
2658 target_id=25
2659 modelname="tatungtpj1022"
2660 target="TATUNG_TPJ1022"
2661 memory=32 # always
2662 arm7tdmicc
2663 tool="$rootdir/tools/scramble -add tpj2"
2664 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2665 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
2666 output="rockbox.elio"
2667 appextra="recorder:gui:radio"
2668 plugins="yes"
2669 swcodec="yes"
2670 boottool="$rootdir/tools/scramble -mi4v2"
2671 bootoutput="pp5020.mi4"
2672 # toolset is the tools within the tools directory that we build for
2673 # this particular target.
2674 toolset=$scramblebitmaptools
2675 # architecture, manufacturer and model for the target-tree build
2676 t_cpu="arm"
2677 t_soc="pp"
2678 t_manufacturer="tatung"
2679 t_model="tpj1022"
2682 100|gogearsa9200)
2683 target_id=41
2684 modelname="gogearsa9200"
2685 target="PHILIPS_SA9200"
2686 memory=32 # supposedly
2687 arm7tdmicc
2688 tool="$rootdir/tools/scramble -mi4v3 -model=9200 -type=RBOS"
2689 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2690 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2691 output="rockbox.mi4"
2692 appextra="recorder:gui:radio"
2693 plugins="yes"
2694 swcodec="yes"
2695 boottool="$rootdir/tools/scramble -mi4v3 -model=9200 -type=RBBL"
2696 bootoutput="FWImage.ebn"
2697 # toolset is the tools within the tools directory that we build for
2698 # this particular target.
2699 toolset=$scramblebitmaptools
2700 # architecture, manufacturer and model for the target-tree build
2701 t_cpu="arm"
2702 t_soc="pp"
2703 t_manufacturer="philips"
2704 t_model="sa9200"
2707 101|gogearhdd1630)
2708 target_id=43
2709 modelname="gogearhdd1630"
2710 target="PHILIPS_HDD1630"
2711 memory=32 # supposedly
2712 arm7tdmicc
2713 tool="$rootdir/tools/scramble -mi4v3 -model=1630 -type=RBOS"
2714 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2715 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2716 output="rockbox.mi4"
2717 appextra="recorder:gui:radio"
2718 plugins="yes"
2719 swcodec="yes"
2720 boottool="$rootdir/tools/scramble -mi4v3 -model=1630 -type=RBBL"
2721 bootoutput="FWImage.ebn"
2722 # toolset is the tools within the tools directory that we build for
2723 # this particular target.
2724 toolset=$scramblebitmaptools
2725 # architecture, manufacturer and model for the target-tree build
2726 t_cpu="arm"
2727 t_soc="pp"
2728 t_manufacturer="philips"
2729 t_model="hdd1630"
2732 102|gogearhdd6330)
2733 target_id=65
2734 modelname="gogearhdd6330"
2735 target="PHILIPS_HDD6330"
2736 memory=64 # always
2737 arm7tdmicc
2738 tool="$rootdir/tools/scramble -mi4v3 -model=6330 -type=RBOS"
2739 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2740 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
2741 output="rockbox.mi4"
2742 appextra="recorder:gui:radio"
2743 plugins="yes"
2744 swcodec="yes"
2745 boottool="$rootdir/tools/scramble -mi4v3 -model=6330 -type=RBBL"
2746 bootoutput="FWImage.ebn"
2747 # toolset is the tools within the tools directory that we build for
2748 # this particular target.
2749 toolset=$scramblebitmaptools
2750 # architecture, manufacturer and model for the target-tree build
2751 t_cpu="arm"
2752 t_soc="pp"
2753 t_manufacturer="philips"
2754 t_model="hdd6330"
2757 110|meizum6sl)
2758 target_id=49
2759 modelname="meizum6sl"
2760 target="MEIZU_M6SL"
2761 memory=16 # always
2762 arm940tbecc
2763 tool="cp"
2764 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2765 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2766 output="rockbox.meizu"
2767 appextra="recorder:gui:radio"
2768 plugins="no" #FIXME
2769 swcodec="yes"
2770 toolset=$genericbitmaptools
2771 boottool="cp"
2772 bootoutput="rockboot.ebn"
2773 # architecture, manufacturer and model for the target-tree build
2774 t_cpu="arm"
2775 t_manufacturer="s5l8700"
2776 t_model="meizu-m6sl"
2779 111|meizum6sp)
2780 target_id=46
2781 modelname="meizum6sp"
2782 target="MEIZU_M6SP"
2783 memory=16 # always
2784 arm940tbecc
2785 tool="cp"
2786 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2787 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2788 output="rockbox.meizu"
2789 appextra="recorder:gui:radio"
2790 plugins="no" #FIXME
2791 swcodec="yes"
2792 toolset=$genericbitmaptools
2793 boottool="cp"
2794 bootoutput="rockboot.ebn"
2795 # architecture, manufacturer and model for the target-tree build
2796 t_cpu="arm"
2797 t_manufacturer="s5l8700"
2798 t_model="meizu-m6sp"
2801 112|meizum3)
2802 target_id=47
2803 modelname="meizum3"
2804 target="MEIZU_M3"
2805 memory=16 # always
2806 arm940tbecc
2807 tool="cp"
2808 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2809 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2810 output="rockbox.meizu"
2811 appextra="recorder:gui:radio"
2812 plugins="no" #FIXME
2813 swcodec="yes"
2814 toolset=$genericbitmaptools
2815 boottool="cp"
2816 bootoutput="rockboot.ebn"
2817 # architecture, manufacturer and model for the target-tree build
2818 t_cpu="arm"
2819 t_manufacturer="s5l8700"
2820 t_model="meizu-m3"
2823 120|ondavx747)
2824 target_id=45
2825 modelname="ondavx747"
2826 target="ONDA_VX747"
2827 memory=16
2828 mipselcc
2829 tool="$rootdir/tools/scramble -add=x747"
2830 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2831 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2832 output="rockbox.vx747"
2833 appextra="recorder:gui:radio"
2834 plugins="yes"
2835 swcodec="yes"
2836 toolset=$genericbitmaptools
2837 boottool="$rootdir/tools/scramble -ccpmp"
2838 bootoutput="ccpmp.bin"
2839 # architecture, manufacturer and model for the target-tree build
2840 t_cpu="mips"
2841 t_manufacturer="ingenic_jz47xx"
2842 t_model="onda_vx747"
2845 121|ondavx767)
2846 target_id=64
2847 modelname="ondavx767"
2848 target="ONDA_VX767"
2849 memory=16 #FIXME
2850 mipselcc
2851 tool="cp"
2852 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2853 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2854 output="rockbox.vx767"
2855 appextra="recorder:gui:radio"
2856 plugins="" #FIXME
2857 swcodec="yes"
2858 toolset=$genericbitmaptools
2859 boottool="$rootdir/tools/scramble -ccpmp"
2860 bootoutput="ccpmp.bin"
2861 # architecture, manufacturer and model for the target-tree build
2862 t_cpu="mips"
2863 t_manufacturer="ingenic_jz47xx"
2864 t_model="onda_vx767"
2867 122|ondavx747p)
2868 target_id=54
2869 modelname="ondavx747p"
2870 target="ONDA_VX747P"
2871 memory=16
2872 mipselcc
2873 tool="$rootdir/tools/scramble -add=747p"
2874 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2875 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2876 output="rockbox.vx747p"
2877 appextra="recorder:gui:radio"
2878 plugins="yes"
2879 swcodec="yes"
2880 toolset=$genericbitmaptools
2881 boottool="$rootdir/tools/scramble -ccpmp"
2882 bootoutput="ccpmp.bin"
2883 # architecture, manufacturer and model for the target-tree build
2884 t_cpu="mips"
2885 t_manufacturer="ingenic_jz47xx"
2886 t_model="onda_vx747"
2889 123|ondavx777)
2890 target_id=61
2891 modelname="ondavx777"
2892 target="ONDA_VX777"
2893 memory=16
2894 mipselcc
2895 tool="$rootdir/tools/scramble -add=x777"
2896 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2897 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2898 output="rockbox.vx777"
2899 appextra="recorder:gui:radio"
2900 plugins="yes"
2901 swcodec="yes"
2902 toolset=$genericbitmaptools
2903 boottool="$rootdir/tools/scramble -ccpmp"
2904 bootoutput="ccpmp.bin"
2905 # architecture, manufacturer and model for the target-tree build
2906 t_cpu="mips"
2907 t_manufacturer="ingenic_jz47xx"
2908 t_model="onda_vx747"
2911 130|lyreproto1)
2912 target_id=56
2913 modelname="lyreproto1"
2914 target="LYRE_PROTO1"
2915 memory=64
2916 arm926ejscc
2917 tool="cp"
2918 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2919 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2920 output="rockbox.lyre"
2921 appextra="recorder:gui:radio"
2922 plugins=""
2923 swcodec="yes"
2924 toolset=$scramblebitmaptools
2925 boottool="cp"
2926 bootoutput="bootloader-proto1.lyre"
2927 # architecture, manufacturer and model for the target-tree build
2928 t_cpu="arm"
2929 t_manufacturer="at91sam"
2930 t_model="lyre_proto1"
2933 131|mini2440)
2934 target_id=99
2935 modelname="mini2440"
2936 target="MINI2440"
2937 memory=64
2938 arm9tdmicc
2939 tool="$rootdir/tools/scramble -add=m244"
2940 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2941 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2942 output="rockbox.mini2440"
2943 appextra="recorder:gui:radio"
2944 plugins=""
2945 swcodec="yes"
2946 toolset=$scramblebitmaptools
2947 boottool="cp"
2948 bootoutput="bootloader-mini2440.lyre"
2949 # architecture, manufacturer and model for the target-tree build
2950 t_cpu="arm"
2951 t_manufacturer="s3c2440"
2952 t_model="mini2440"
2955 140|samsungyh820)
2956 target_id=57
2957 modelname="samsungyh820"
2958 target="SAMSUNG_YH820"
2959 memory=32 # always
2960 arm7tdmicc
2961 tool="$rootdir/tools/scramble -mi4v2 -model=y820 -type=RBOS"
2962 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2963 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2964 output="rockbox.mi4"
2965 appextra="recorder:gui:radio"
2966 plugins="yes"
2967 swcodec="yes"
2968 boottool="$rootdir/tools/scramble -mi4v2 -model=y820 -type=RBBL"
2969 bootoutput="FW_YH820.mi4"
2970 # toolset is the tools within the tools directory that we build for
2971 # this particular target.
2972 toolset=$scramblebitmaptools
2973 # architecture, manufacturer and model for the target-tree build
2974 t_cpu="arm"
2975 t_soc="pp"
2976 t_manufacturer="samsung"
2977 t_model="yh820"
2980 141|samsungyh920)
2981 target_id=58
2982 modelname="samsungyh920"
2983 target="SAMSUNG_YH920"
2984 memory=32 # always
2985 arm7tdmicc
2986 tool="$rootdir/tools/scramble -mi4v2 -model=y920 -type=RBOS"
2987 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2988 bmp2rb_native="$rootdir/tools/bmp2rb -f 2"
2989 output="rockbox.mi4"
2990 appextra="recorder:gui:radio"
2991 plugins="yes"
2992 swcodec="yes"
2993 boottool="$rootdir/tools/scramble -mi4v2 -model=y920 -type=RBBL"
2994 bootoutput="PP5020.mi4"
2995 # toolset is the tools within the tools directory that we build for
2996 # this particular target.
2997 toolset=$scramblebitmaptools
2998 # architecture, manufacturer and model for the target-tree build
2999 t_cpu="arm"
3000 t_soc="pp"
3001 t_manufacturer="samsung"
3002 t_model="yh920"
3005 142|samsungyh925)
3006 target_id=59
3007 modelname="samsungyh925"
3008 target="SAMSUNG_YH925"
3009 memory=32 # always
3010 arm7tdmicc
3011 tool="$rootdir/tools/scramble -mi4v2 -model=y925 -type=RBOS"
3012 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3013 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3014 output="rockbox.mi4"
3015 appextra="recorder:gui:radio"
3016 plugins="yes"
3017 swcodec="yes"
3018 boottool="$rootdir/tools/scramble -mi4v2 -model=y925 -type=RBBL"
3019 bootoutput="FW_YH925.mi4"
3020 # toolset is the tools within the tools directory that we build for
3021 # this particular target.
3022 toolset=$scramblebitmaptools
3023 # architecture, manufacturer and model for the target-tree build
3024 t_cpu="arm"
3025 t_soc="pp"
3026 t_manufacturer="samsung"
3027 t_model="yh925"
3030 143|samsungyps3)
3031 target_id=72
3032 modelname="samsungyps3"
3033 target="SAMSUNG_YPS3"
3034 memory=16 # always
3035 arm940tbecc
3036 tool="cp"
3037 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3038 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3039 output="rockbox.yps3"
3040 appextra="recorder:gui:radio"
3041 plugins="no" #FIXME
3042 swcodec="yes"
3043 toolset=$genericbitmaptools
3044 boottool="cp"
3045 bootoutput="rockboot.ebn"
3046 # architecture, manufacturer and model for the target-tree build
3047 t_cpu="arm"
3048 t_manufacturer="s5l8700"
3049 t_model="yps3"
3052 160|vibe500)
3053 target_id=67
3054 modelname="vibe500"
3055 target="PBELL_VIBE500"
3056 memory=32 # always
3057 arm7tdmicc
3058 tool="$rootdir/tools/scramble -mi4v3 -model=v500 -type=RBOS"
3059 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3060 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
3061 output="rockbox.mi4"
3062 appextra="recorder:gui:radio"
3063 plugins="yes"
3064 swcodec="yes"
3065 boottool="$rootdir/tools/scramble -mi4v3 -model=v500 -type=RBBL"
3066 bootoutput="jukebox.mi4"
3067 # toolset is the tools within the tools directory that we build for
3068 # this particular target.
3069 toolset=$scramblebitmaptools
3070 # architecture, manufacturer and model for the target-tree build
3071 t_cpu="arm"
3072 t_soc="pp"
3073 t_manufacturer="pbell"
3074 t_model="vibe500"
3077 170|mpiohd200)
3078 target_id=69
3079 modelname="mpiohd200"
3080 target="MPIO_HD200"
3081 memory=16 # always
3082 coldfirecc
3083 tool="$rootdir/tools/scramble -add=hd20"
3084 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3085 bmp2rb_native="$rootdir/tools/bmp2rb -f 7"
3086 output="rockbox.mpio"
3087 bootoutput="bootloader.mpio"
3088 appextra="recorder:gui:radio"
3089 plugins="yes"
3090 swcodec="yes"
3091 # toolset is the tools within the tools directory that we build for
3092 # this particular target.
3093 toolset="$genericbitmaptools"
3094 # architecture, manufacturer and model for the target-tree build
3095 t_cpu="coldfire"
3096 t_manufacturer="mpio"
3097 t_model="hd200"
3100 171|mpiohd300)
3101 target_id=70
3102 modelname="mpiohd300"
3103 target="MPIO_HD300"
3104 memory=16 # always
3105 coldfirecc
3106 tool="$rootdir/tools/scramble -add=hd30"
3107 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3108 bmp2rb_native="$rootdir/tools/bmp2rb -f 2"
3109 output="rockbox.mpio"
3110 bootoutput="bootloader.mpio"
3111 appextra="recorder:gui:radio"
3112 plugins="yes"
3113 swcodec="yes"
3114 # toolset is the tools within the tools directory that we build for
3115 # this particular target.
3116 toolset="$genericbitmaptools"
3117 # architecture, manufacturer and model for the target-tree build
3118 t_cpu="coldfire"
3119 t_manufacturer="mpio"
3120 t_model="hd300"
3123 180|rk27generic)
3124 target_id=78
3125 modelname="rk27generic"
3126 target="RK27_GENERIC"
3127 memory=16 # always
3128 arm7ejscc
3129 tool="$rootdir/tools/scramble -rkw -modelnum=73"
3130 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3131 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3132 output="rockbox.rkw"
3133 bootoutput="bootloader.rkw"
3134 appextra="recorder:gui:radio"
3135 plugins=""
3136 swcodec="yes"
3137 # toolset is the tools within the tools directory that we build for
3138 # this particular target.
3139 toolset="$genericbitmaptools"
3140 # architecture, manufacturer and model for the target-tree build
3141 t_cpu="arm"
3142 t_manufacturer="rk27xx"
3143 t_model="rk27generic"
3146 190|hifimanhm60x)
3147 target_id=79
3148 modelname="hifimanhm60x"
3149 target="HM60X"
3150 memory=16
3151 arm7ejscc
3152 tool="$rootdir/tools/scramble -rkw -modelnum=79"
3153 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3154 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3155 output="rockbox.rkw"
3156 bootoutput="bootloader.rkw"
3157 appextra="recorder:gui"
3158 plugins="yes"
3159 swcodec="yes"
3160 # toolset is the tools within the tools directory that we build for
3161 # this particular target.
3162 toolset="$genericbitmaptools"
3163 # architecture, manufacturer and model for the target-tree build
3164 t_cpu="arm"
3165 t_manufacturer="rk27xx"
3166 t_model="hm60x"
3169 191|hifimanhm801)
3170 target_id=82
3171 modelname="hifimanhm801"
3172 target="HM801"
3173 memory=16
3174 arm7ejscc
3175 tool="$rootdir/tools/scramble -rkw -modelnum=82"
3176 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3177 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3178 output="rockbox.rkw"
3179 bootoutput="bootloader.rkw"
3180 appextra="recorder:gui"
3181 plugins="yes"
3182 swcodec="yes"
3183 # toolset is the tools within the tools directory that we build for
3184 # this particular target.
3185 toolset="$genericbitmaptools"
3186 # architecture, manufacturer and model for the target-tree build
3187 t_cpu="arm"
3188 t_manufacturer="rk27xx"
3189 t_model="hm801"
3192 200|sdlapp)
3193 application="yes"
3194 target_id=73
3195 modelname="sdlapp"
3196 target="SDLAPP"
3197 app_set_paths
3198 app_set_lcd_size
3199 memory=8
3200 uname=`uname`
3201 simcc "sdl-app"
3202 tool="cp "
3203 boottool="cp "
3204 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3205 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3206 output="rockbox"
3207 bootoutput="rockbox"
3208 appextra="recorder:gui:radio"
3209 plugins="yes"
3210 swcodec="yes"
3211 # architecture, manufacturer and model for the target-tree build
3212 t_cpu="hosted"
3213 t_manufacturer="sdl"
3214 t_model="app"
3217 201|android)
3218 application="yes"
3219 target_id=74
3220 modelname="android"
3221 target="ANDROID"
3222 app_type="android"
3223 app_set_lcd_size
3224 sharedir="/data/data/org.rockbox/app_rockbox/rockbox"
3225 bindir="/data/data/org.rockbox/lib"
3226 libdir="/data/data/org.rockbox/app_rockbox"
3227 memory=8
3228 uname=`uname`
3229 androidcc
3230 tool="cp "
3231 boottool="cp "
3232 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3233 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3234 output="librockbox.so"
3235 bootoutput="librockbox.so"
3236 appextra="recorder:gui:radio:hosted/android"
3237 plugins="yes"
3238 swcodec="yes"
3239 # architecture, manufacturer and model for the target-tree build
3240 t_cpu="hosted"
3241 t_manufacturer="android"
3242 t_model="app"
3245 202|nokian8xx)
3246 application="yes"
3247 target_id=75
3248 modelname="nokian8xx"
3249 app_type="sdl-app"
3250 target="NOKIAN8XX"
3251 sharedir="/opt/rockbox/share/rockbox"
3252 bindir="/opt/rockbox/bin"
3253 libdir="/opt/rockbox/lib"
3254 memory=8
3255 uname=`uname`
3256 maemocc 4
3257 tool="cp "
3258 boottool="cp "
3259 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3260 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3261 output="rockbox"
3262 bootoutput="rockbox"
3263 appextra="recorder:gui:radio"
3264 plugins="yes"
3265 swcodec="yes"
3266 # architecture, manufacturer and model for the target-tree build
3267 t_cpu="hosted"
3268 t_manufacturer="maemo"
3269 t_model="app"
3272 203|nokian900)
3273 application="yes"
3274 target_id=76
3275 modelname="nokian900"
3276 app_type="sdl-app"
3277 target="NOKIAN900"
3278 sharedir="/opt/rockbox/share/rockbox"
3279 bindir="/opt/rockbox/bin"
3280 libdir="/opt/rockbox/lib"
3281 memory=8
3282 uname=`uname`
3283 maemocc 5
3284 tool="cp "
3285 boottool="cp "
3286 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3287 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3288 output="rockbox"
3289 bootoutput="rockbox"
3290 appextra="recorder:gui:radio"
3291 plugins="yes"
3292 swcodec="yes"
3293 # architecture, manufacturer and model for the target-tree build
3294 t_cpu="hosted"
3295 t_manufacturer="maemo"
3296 t_model="app"
3299 204|pandora)
3300 application="yes"
3301 target_id=77
3302 modelname="pandora"
3303 app_type="sdl-app"
3304 target="PANDORA"
3305 sharedir="rockbox/share/rockbox"
3306 bindir="rockbox/bin"
3307 libdir="rockbox/lib"
3308 memory=8
3309 uname=`uname`
3310 pandoracc
3311 tool="cp "
3312 boottool="cp "
3313 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3314 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3315 output="rockbox"
3316 bootoutput="rockbox"
3317 appextra="recorder:gui:radio"
3318 plugins="yes"
3319 swcodec="yes"
3320 # architecture, manufacturer and model for the target-tree build
3321 t_cpu="hosted"
3322 t_manufacturer="pandora"
3323 t_model="app"
3326 205|samsungypr0)
3327 application="yes"
3328 target_id=78
3329 modelname="samsungypr0"
3330 target="SAMSUNG_YPR0"
3331 memory=32
3332 uname=`uname`
3333 ypr0cc
3334 tool="cp "
3335 boottool="cp "
3336 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3337 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3338 output="rockbox"
3339 bootoutput="rockbox"
3340 appextra="recorder:gui:radio"
3341 plugins="yes"
3342 swcodec="yes"
3343 # architecture, manufacturer and model for the target-tree build
3344 t_cpu="hosted"
3345 t_manufacturer="ypr0"
3346 t_model="app"
3349 206|androidmips)
3350 application="yes"
3351 target_id=74
3352 modelname="androidmips"
3353 target="ANDROID"
3354 app_type="android"
3355 app_set_lcd_size
3356 sharedir="/data/data/org.rockbox/app_rockbox/rockbox"
3357 bindir="/data/data/org.rockbox/lib"
3358 libdir="/data/data/org.rockbox/app_rockbox"
3359 memory=8
3360 uname=`uname`
3361 androidmipscc
3362 tool="cp "
3363 boottool="cp "
3364 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3365 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3366 output="librockbox.so"
3367 bootoutput="librockbox.so"
3368 appextra="recorder:gui:radio:hosted/android"
3369 plugins="yes"
3370 swcodec="yes"
3371 # architecture, manufacturer and model for the target-tree build
3372 t_cpu="hosted"
3373 t_manufacturer="android"
3374 t_model="app"
3378 echo "Please select a supported target platform!"
3379 exit 7
3382 esac
3384 echo "Platform set to $modelname"
3387 #remove start
3388 ############################################################################
3389 # Amount of memory, for those that can differ. They have $memory unset at
3390 # this point.
3393 if [ -z "$memory" ]; then
3394 case $target_id in
3396 if [ "$ARG_RAM" ]; then
3397 size=$ARG_RAM
3398 else
3399 echo "Enter size of your RAM (in MB): (Defaults to 32)"
3400 size=`input`;
3402 case $size in
3403 60|64)
3404 memory="64"
3407 memory="32"
3409 esac
3412 if [ "$ARG_RAM" ]; then
3413 size=$ARG_RAM
3414 else
3415 echo "Enter size of your RAM (in MB): (Defaults to 2)"
3416 size=`input`;
3418 case $size in
3420 memory="8"
3423 memory="2"
3425 esac
3427 esac
3428 echo "Memory size selected: $memory MB"
3429 [ "$ARG_TYPE" ] || echo ""
3431 #remove end
3433 ##################################################################
3434 # Figure out build "type"
3437 # the ifp7x0 is the only platform that supports building a gdb stub like
3438 # this
3439 case $modelname in
3440 iriverifp7xx)
3441 gdbstub=", (G)DB stub"
3443 sansae200r|sansae200)
3444 gdbstub=", (I)nstaller"
3446 sansac200)
3447 gdbstub=", (E)raser"
3449 sansae200)
3450 gdbstub=", (E)raser"
3454 esac
3455 if [ "$ARG_TYPE" ]; then
3456 btype=$ARG_TYPE
3457 else
3458 echo "Build (N)ormal, (A)dvanced, (S)imulator, (B)ootloader, (C)heckWPS, (D)atabase tool, (W)arble codec tool$gdbstub: (Defaults to N)"
3459 btype=`input`;
3462 case $btype in
3463 [Ii])
3464 appsdir='$(ROOTDIR)/bootloader'
3465 apps="bootloader"
3466 extradefines="$extradefines -DBOOTLOADER -DE200R_INSTALLER -ffunction-sections -fdata-sections"
3467 bootloader="1"
3468 echo "e200R-installer build selected"
3470 [Ee])
3471 appsdir='$(ROOTDIR)/bootloader'
3472 apps="bootloader"
3473 extradefines="$extradefines -DBOOTLOADER -DSANSA_PP_ERASE -ffunction-sections -fdata-sections"
3474 bootloader="1"
3475 echo "sansa eraser build selected"
3477 [Bb])
3478 if test $t_manufacturer = "archos"; then
3479 # Archos SH-based players do this somewhat differently for
3480 # some reason
3481 appsdir='$(ROOTDIR)/flash/bootbox'
3482 apps="bootbox"
3483 else
3484 appsdir='$(ROOTDIR)/bootloader'
3485 apps="bootloader"
3486 flash=""
3487 if test -n "$boottool"; then
3488 tool="$boottool"
3490 if test -n "$bootoutput"; then
3491 output=$bootoutput
3494 extradefines="$extradefines -DBOOTLOADER -ffunction-sections -fdata-sections"
3495 bootloader="1"
3496 echo "Bootloader build selected"
3498 [Ss])
3499 if [ "$modelname" = "sansae200r" ]; then
3500 echo "Do not use the e200R target for simulator builds. Use e200 instead."
3501 exit 8
3503 debug="-DDEBUG"
3504 simulator="yes"
3505 extradefines="$extradefines -DSIMULATOR"
3506 archosrom=""
3507 flash=""
3508 echo "Simulator build selected"
3510 [Aa]*)
3511 echo "Advanced build selected"
3512 whichadvanced $btype
3514 [Gg])
3515 extradefines="$extradefines -DSTUB" # for target makefile symbol EXTRA_DEFINES
3516 appsdir='$(ROOTDIR)/gdb'
3517 apps="stub"
3518 case $modelname in
3519 iriverifp7xx)
3520 output="stub.wma"
3524 esac
3525 echo "GDB stub build selected"
3527 [Cc])
3528 uname=`uname`
3529 simcc "checkwps"
3530 toolset='';
3531 t_cpu='';
3532 GCCOPTS='';
3533 extradefines="$extradefines -DDEBUG"
3534 appsdir='$(ROOTDIR)/tools/checkwps';
3535 output='checkwps.'${modelname};
3536 archosrom='';
3537 echo "CheckWPS build selected"
3539 [Dd])
3540 uname=`uname`
3541 simcc "database"
3542 toolset='';
3543 t_cpu='';
3544 GCCOPTS='';
3545 appsdir='$(ROOTDIR)/tools/database';
3546 archosrom='';
3548 case $uname in
3549 CYGWIN*|MINGW*)
3550 output="database_${modelname}.exe"
3553 output='database.'${modelname};
3555 esac
3557 echo "Database tool build selected"
3559 [Ww])
3560 uname=`uname`
3561 simcc "warble"
3562 toolset='';
3563 t_cpu='';
3564 GCCOPTS='';
3565 extradefines="$extradefines -DDEBUG"
3566 output='warble.'${modelname};
3567 archosrom='';
3568 echo "Warble build selected"
3571 if [ "$modelname" = "sansae200r" ]; then
3572 echo "Do not use the e200R target for regular builds. Use e200 instead."
3573 exit 8
3575 debug=""
3576 btype="N" # set it explicitly since RET only gets here as well
3577 echo "Normal build selected"
3580 esac
3581 # to be able running "make manual" from non-manual configuration
3582 case $modelname in
3583 archosrecorderv2)
3584 manualdev="archosfmrecorder"
3586 iriverh1??)
3587 manualdev="iriverh100"
3589 ipodmini2g)
3590 manualdev="ipodmini1g"
3593 manualdev=$modelname
3595 esac
3597 if [ -z "$debug" ]; then
3598 GCCOPTS="$GCCOPTS $GCCOPTIMIZE"
3601 if [ "yes" = "$application" ]; then
3602 echo Building Rockbox as an Application
3603 extradefines="$extradefines -DAPPLICATION"
3606 echo "Using source code root directory: $rootdir"
3608 # this was once possible to change at build-time, but no more:
3609 language="english"
3611 uname=`uname`
3613 if [ "yes" = "$simulator" ]; then
3614 # setup compiler and things for simulator
3615 simcc "sdl-sim"
3617 if [ -d "simdisk" ]; then
3618 echo "Subdirectory 'simdisk' already present"
3619 else
3620 mkdir simdisk
3621 echo "Created a 'simdisk' subdirectory for simulating the hard disk"
3625 # Now, figure out version number of the (gcc) compiler we are about to use
3626 gccver=`$CC -dumpversion`;
3628 # figure out the binutil version too and display it, mostly for the build
3629 # system etc to be able to see it easier
3630 if [ $uname = "Darwin" ]; then
3631 ldver=`$LD -v 2>&1 | sed -e 's/[^0-9.-]//g'`
3632 else
3633 ldver=`$LD --version | head -n 1 | sed -e 's/\ /\n/g' | tail -n 1`
3636 if [ -z "$gccver" ]; then
3637 echo "[WARNING] The compiler you must use ($CC) is not in your path!"
3638 echo "[WARNING] this may cause your build to fail since we cannot do the"
3639 echo "[WARNING] checks we want now."
3640 else
3642 # gccver should now be "3.3.5", "3.4.3", "2.95.3-6" and similar, but don't
3643 # DEPEND on it
3645 num1=`echo $gccver | cut -d . -f1`
3646 num2=`echo $gccver | cut -d . -f2`
3647 gccnum=`(expr $num1 "*" 100 + $num2) 2>/dev/null`
3649 # This makes:
3650 # 3.3.X => 303
3651 # 3.4.X => 304
3652 # 2.95.3 => 295
3654 echo "Using $CC $gccver ($gccnum)"
3656 if test "$gccnum" -ge "400"; then
3657 # gcc 4.0 is just *so* much pickier on arguments that differ in signedness
3658 # so we ignore that warnings for now
3659 # -Wno-pointer-sign
3660 GCCOPTS="$GCCOPTS -Wno-pointer-sign"
3663 if test "$gccnum" -ge "402"; then
3664 # disable warning about "warning: initialized field overwritten" as gcc 4.2
3665 # and later would throw it for several valid cases
3666 GCCOPTS="$GCCOPTS -Wno-override-init"
3669 case $prefix in
3670 ""|"$CROSS_COMPILE")
3671 # simulator
3674 # Verify that the cross-compiler is of a recommended version!
3675 if test "$gccver" != "$gccchoice"; then
3676 echo "WARNING: Your cross-compiler $CC $gccver is not of the recommended"
3677 echo "WARNING: version $gccchoice!"
3678 echo "WARNING: This may cause your build to fail since it may be a version"
3679 echo "WARNING: that isn't functional or known to not be the best choice."
3680 echo "WARNING: If you suffer from build problems, you know that this is"
3681 echo "WARNING: a likely source for them..."
3684 esac
3689 echo "Using $LD $ldver"
3691 # check the compiler for SH platforms
3692 if test "$CC" = "sh-elf-gcc"; then
3693 if test "$gccnum" -lt "400"; then
3694 echo "WARNING: Consider upgrading your compiler to the 4.0.X series!"
3695 echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler"
3696 else
3697 # figure out patch status
3698 gccpatch=`$CC --version`;
3700 if { echo $gccpatch | grep "rockbox" >/dev/null 2>&1; } then
3701 echo "gcc $gccver is rockbox patched"
3702 # then convert -O to -Os to get smaller binaries!
3703 GCCOPTS=`echo $GCCOPTS | sed 's/ -O / -Os /'`
3704 else
3705 echo "WARNING: You use an unpatched gcc compiler: $gccver"
3706 echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler"
3711 if test "$CC" = "m68k-elf-gcc"; then
3712 # convert -O to -Os to get smaller binaries!
3713 GCCOPTS=`echo $GCCOPTS | sed 's/ -O / -Os /'`
3716 if [ "$ARG_CCACHE" = "1" ]; then
3717 echo "Enable ccache for building"
3718 ccache="ccache"
3719 elif [ "$ARG_CCACHE" != "0" ]; then
3720 ccache=`findtool ccache`
3721 if test -n "$ccache"; then
3722 echo "Found and uses ccache ($ccache)"
3726 # figure out the full path to the various commands if possible
3727 HOSTCC=`findtool gcc --lit`
3728 HOSTAR=`findtool ar --lit`
3729 CC=`findtool ${CC} --lit`
3730 CPP=`findtool ${CPP} --lit`
3731 LD=`findtool ${LD} --lit`
3732 AR=`findtool ${AR} --lit`
3733 AS=`findtool ${AS} --lit`
3734 OC=`findtool ${OC} --lit`
3735 WINDRES=`findtool ${WINDRES} --lit`
3736 DLLTOOL=`findtool ${DLLTOOL} --lit`
3737 DLLWRAP=`findtool ${DLLWRAP} --lit`
3738 RANLIB=`findtool ${RANLIB} --lit`
3741 if [ -z "$arch" ]; then
3742 cpp_defines=$(echo "" | $CPP $GCCOPTS -dD)
3743 if [ -n "$(echo $cpp_defines | grep -w __sh__)" ]; then
3744 arch="sh"
3745 elif [ -n "$(echo $cpp_defines | grep -w __m68k__)" ]; then
3746 arch="m68k"
3747 elif [ -n "$(echo $cpp_defines | grep -w __arm__)" ]; then
3748 arch="arm"
3749 # cpp defines like "#define __ARM_ARCH_4TE__ 1" (where we want to extract the 4)
3750 arch_version="$(echo $cpp_defines | tr ' ' '\012' | grep __ARM_ARCH | sed -e 's,.*\([0-9]\).*,\1,')"
3751 elif [ -n "$(echo $cpp_defines | grep -w __mips__)" ]; then
3752 arch="mips" # FIXME: autodetect version (32 or 64)
3753 elif [ -n "$(echo $cpp_defines | grep -w __i386__)" ]; then
3754 arch="x86"
3755 elif [ -n "$(echo $cpp_defines | grep -w __x86_64__)" ]; then
3756 arch="amd64"
3757 else
3758 arch="none"
3759 echo "Warning: Could not determine target arch"
3761 if [ "$arch" != "none" ]; then
3762 if [ -n "$arch_version" ]; then
3763 echo "Automatically selected arch: $arch (ver $arch_version)"
3764 else
3765 echo "Automatically selected arch: $arch"
3768 else
3769 if [ -n "$arch_version" ]; then
3770 echo "Manually selected arch: $arch (ver $arch_version)"
3771 else
3772 echo "Manually selected arch: $arch"
3776 arch="arch_$arch"
3777 if [ -n "$arch_version" ]; then
3778 Darch_version="#define ARCH_VERSION $arch_version"
3781 if test -n "$ccache"; then
3782 CC="$ccache $CC"
3785 if test "$ARG_ARM_THUMB" = "1"; then
3786 extradefines="$extradefines -DUSE_THUMB"
3787 CC="$toolsdir/thumb-cc.py $CC"
3790 if test "X$endian" = "Xbig"; then
3791 defendian="ROCKBOX_BIG_ENDIAN"
3792 else
3793 defendian="ROCKBOX_LITTLE_ENDIAN"
3796 if [ "$ARG_RBDIR" != "" ]; then
3797 if [ -z `echo $ARG_RBDIR | grep '^/'` ]; then
3798 rbdir="/"$ARG_RBDIR
3799 else
3800 rbdir=$ARG_RBDIR
3802 echo "Using alternate rockbox dir: ${rbdir}"
3805 cat > autoconf.h <<EOF
3806 /* This header was made by configure */
3807 #ifndef __BUILD_AUTOCONF_H
3808 #define __BUILD_AUTOCONF_H
3810 /* lower case names match the what's exported in the Makefile
3811 * upper case name looks nicer in the code */
3813 #define arch_none 0
3814 #define ARCH_NONE 0
3816 #define arch_sh 1
3817 #define ARCH_SH 1
3819 #define arch_m68k 2
3820 #define ARCH_M68K 2
3822 #define arch_arm 3
3823 #define ARCH_ARM 3
3825 #define arch_mips 4
3826 #define ARCH_MIPS 4
3828 #define arch_x86 5
3829 #define ARCH_X86 5
3831 #define arch_amd64 6
3832 #define ARCH_AMD64 6
3834 /* Define target machine architecture */
3835 #define ARCH ${arch}
3836 /* Optinally define architecture version */
3837 ${Darch_version}
3839 /* Define endianess for the target or simulator platform */
3840 #define ${defendian} 1
3842 /* Define the GCC version used for the build */
3843 #define GCCNUM ${gccnum}
3845 /* Define this if you build rockbox to support the logf logging and display */
3846 ${use_logf}
3848 /* Define this if you want logf to output to the serial port */
3849 ${use_logf_serial}
3851 /* Define this to record a chart with timings for the stages of boot */
3852 ${use_bootchart}
3854 /* optional define for a backlight modded Ondio */
3855 ${have_backlight}
3857 /* optional define for FM radio mod for iAudio M5 */
3858 ${have_fmradio_in}
3860 /* optional define for ATA poweroff on Player */
3861 ${have_ata_poweroff}
3863 /* optional defines for RTC mod for h1x0 */
3864 ${config_rtc}
3865 ${have_rtc_alarm}
3867 /* the threading backend we use */
3868 #define ${thread_support}
3870 /* lcd dimensions for application builds from configure */
3871 ${app_lcd_width}
3872 ${app_lcd_height}
3874 /* root of Rockbox */
3875 #define ROCKBOX_DIR "${rbdir}"
3876 #define ROCKBOX_SHARE_PATH "${sharedir}"
3877 #define ROCKBOX_BINARY_PATH "${bindir}"
3878 #define ROCKBOX_LIBRARY_PATH "${libdir}"
3880 #endif /* __BUILD_AUTOCONF_H */
3883 if test -n "$t_cpu"; then
3884 TARGET_INC="-I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer/$t_model"
3886 if [ "$application" = "yes" ] && [ "$t_manufacturer" = "maemo" ]; then
3887 # Maemo needs the SDL port, too
3888 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl/app"
3889 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl"
3890 elif [ "$application" = "yes" ] && [ "$t_manufacturer" = "pandora" ]; then
3891 # Pandora needs the SDL port, too
3892 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl/app"
3893 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl"
3894 elif [ "$simulator" = "yes" ]; then # a few more includes for the sim target tree
3895 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl"
3896 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted"
3899 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer"
3900 test -n "$t_soc" && TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu/$t_soc"
3901 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu"
3902 GCCOPTS="$GCCOPTS"
3905 if test "$swcodec" = "yes"; then
3906 voicetoolset="rbspeexenc voicefont wavtrim"
3907 else
3908 voicetoolset="voicefont wavtrim"
3911 if test "$apps" = "apps"; then
3912 # only when we build "real" apps we build the .lng files
3913 buildlangs="langs"
3916 #### Fix the cmdline ###
3917 if [ -n "$ARG_PREFIX" ]; then
3918 cmdline="$cmdline --prefix=\$(PREFIX)"
3920 if [ -n "$ARG_LCDWIDTH" ]; then
3921 cmdline="$cmdline --lcdwidth=$ARG_LCDWIDTH --lcdheight=$ARG_LCDHEIGHT "
3924 # remove parts from the cmdline we're going to set unconditionally
3925 cmdline=`echo $cmdline | sed -e s,--target=[a-zA-Z_0-9]\*,,g \
3926 -e s,--ram=[0-9]\*,,g \
3927 -e s,--rbdir=[./a-zA-Z0-9]\*,,g \
3928 -e s,--type=[a-zA-Z]\*,,g`
3929 cmdline="$cmdline --target=\$(MODELNAME) --ram=\$(MEMORYSIZE) --rbdir=\$(RBDIR) --type=$btype$advopts"
3931 ### end of cmdline
3933 cat > Makefile <<EOF
3934 ## Automatically generated. http://www.rockbox.org/
3936 export ROOTDIR=${rootdir}
3937 export FIRMDIR=\$(ROOTDIR)/firmware
3938 export APPSDIR=${appsdir}
3939 export TOOLSDIR=${toolsdir}
3940 export DOCSDIR=${rootdir}/docs
3941 export MANUALDIR=${rootdir}/manual
3942 export DEBUG=${debug}
3943 export MODELNAME=${modelname}
3944 export ARCHOSROM=${archosrom}
3945 export FLASHFILE=${flash}
3946 export TARGET_ID=${target_id}
3947 export TARGET=-D${target}
3948 export ARCH=${arch}
3949 export ARCH_VERSION=${arch_version}
3950 export CPU=${t_cpu}
3951 export MANUFACTURER=${t_manufacturer}
3952 export OBJDIR=${pwd}
3953 export BUILDDIR=${pwd}
3954 export RBCODEC_BLD=${pwd}/lib/rbcodec
3955 export LANGUAGE=${language}
3956 export VOICELANGUAGE=${voicelanguage}
3957 export MEMORYSIZE=${memory}
3958 export BUILDDATE:=\$(shell date -u +'-DYEAR=%Y -DMONTH=%m -DDAY=%d')
3959 export MKFIRMWARE=${tool}
3960 export BMP2RB_MONO=${bmp2rb_mono}
3961 export BMP2RB_NATIVE=${bmp2rb_native}
3962 export BMP2RB_REMOTEMONO=${bmp2rb_remotemono}
3963 export BMP2RB_REMOTENATIVE=${bmp2rb_remotenative}
3964 export BINARY=${output}
3965 export APPEXTRA=${appextra}
3966 export ENABLEDPLUGINS=${plugins}
3967 export SOFTWARECODECS=${swcodec}
3968 export EXTRA_DEFINES=${extradefines}
3969 export HOSTCC=${HOSTCC}
3970 export HOSTAR=${HOSTAR}
3971 export CC=${CC}
3972 export CPP=${CPP}
3973 export LD=${LD}
3974 export AR=${AR}
3975 export AS=${AS}
3976 export OC=${OC}
3977 export WINDRES=${WINDRES}
3978 export DLLTOOL=${DLLTOOL}
3979 export DLLWRAP=${DLLWRAP}
3980 export RANLIB=${RANLIB}
3981 export PREFIX=${ARG_PREFIX}
3982 export PROFILE_OPTS=${PROFILE_OPTS}
3983 export APP_TYPE=${app_type}
3984 export APPLICATION=${application}
3985 export SIMDIR=\$(ROOTDIR)/uisimulator/sdl
3986 export GCCOPTS=${GCCOPTS}
3987 export TARGET_INC=${TARGET_INC}
3988 export LOADADDRESS=${loadaddress}
3989 export SHARED_LDFLAG=${SHARED_LDFLAG}
3990 export SHARED_CFLAGS=${SHARED_CFLAGS}
3991 export LDOPTS=${LDOPTS}
3992 export GLOBAL_LDOPTS=${GLOBAL_LDOPTS}
3993 export GCCVER=${gccver}
3994 export GCCNUM=${gccnum}
3995 export UNAME=${uname}
3996 export MANUALDEV=${manualdev}
3997 export TTS_OPTS=${TTS_OPTS}
3998 export TTS_ENGINE=${TTS_ENGINE}
3999 export ENC_OPTS=${ENC_OPTS}
4000 export ENCODER=${ENCODER}
4001 export USE_ELF=${USE_ELF}
4002 export RBDIR=${rbdir}
4003 export ROCKBOX_SHARE_PATH=${sharedir}
4004 export ROCKBOX_BINARY_PATH=${bindir}
4005 export ROCKBOX_LIBRARY_PATH=${libdir}
4006 export SDLCONFIG=${sdl}
4007 export LCDORIENTATION=${lcd_orientation}
4008 export ANDROID_ARCH=${ANDROID_ARCH}
4010 CONFIGURE_OPTIONS=${cmdline}
4012 include \$(TOOLSDIR)/root.make
4015 echo "Created Makefile"