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