3 # Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
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
15 # LD options for the core + plugins
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: //'`
30 thread_support
="ASSEMBLER_THREADS"
35 # Properly retain command line arguments containing spaces
39 *\
*) cmdline
="$cmdline \"$arg\"";;
40 *) cmdline
="$cmdline $arg";;
45 # Begin Function Definitions
56 WINDRES
=${prefix}windres
57 DLLTOOL
=${prefix}dlltool
58 DLLWRAP
=${prefix}dllwrap
59 RANLIB
=${prefix}ranlib
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"
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?)."
81 sharedir
="$ARG_PREFIX/share/rockbox"
82 bindir
="$ARG_PREFIX/bin"
83 libdir
="$ARG_PREFIX/lib"
85 echo "ERROR: PREFIX directory $ARG_PREFIX does not exist"
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
96 if [ -z "$ARG_LCDWIDTH" ]; then
99 if [ -z "$ARG_LCDHEIGHT" ]; then
103 echo "Enter the LCD width (default: 320)"
104 if [ -z "$ARG_LCDWIDTH" ]; then
105 app_lcd_width
=`input`
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`
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"
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"
131 prefixtools arm-elf-eabi-
135 # scan the $PATH for the given command
142 # echo "checks for $file in $path" >&2
143 if test -f "$path/$file"; then
148 # check whether caller wants literal return value if not found
149 if [ "$2" = "--lit" ]; then
154 # scan the $PATH for sdl-config - check whether for a (cross-)win32
157 # sdl-config might (not) be prefixed for cross compiles so try both.
158 files
="${CROSS_COMPILE}sdl-config:sdl-config"
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
174 if [ "yes" != "${winbuild}" ]; then
184 # check for availability of sigaltstack to support our thread engine
185 check_sigaltstack
() {
186 cat >$tmpdir/check_threads.c
<<EOF
188 int main(int argc, char **argv)
191 #define NULL (void*)0
193 sigaltstack(NULL, NULL);
197 $CC -o $tmpdir/check_threads
$tmpdir/check_threads.c
1> /dev
/null
199 rm -rf $tmpdir/check_threads
*
203 # check for availability of Fiber on Win32 to support our thread engine
205 cat >$tmpdir/check_threads.c
<<EOF
207 int main(int argc, char **argv)
209 ConvertThreadToFiber(NULL);
213 $CC -o $tmpdir/check_threads
$tmpdir/check_threads.c
2>/dev
/null
215 rm -rf $tmpdir/check_threads
*
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
231 GCCOPTS
=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib// -e s/-Wundef//`
233 GCCOPTS
="$GCCOPTS -fno-builtin -g"
235 LDOPTS
="$LDOPTS -lm" # button-sdl.c uses sqrt()
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
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"
255 CROSS_COMPILE
=${CROSS_COMPILE:-"i586-mingw32msvc-"}
257 prefixtools
"$CROSS_COMPILE"
259 endian
="little" # windows is little endian
260 echo "Enabling MMX support"
261 GCCOPTS
="$GCCOPTS -mmmx"
265 echo "Cygwin host detected"
268 LDOPTS
="$LDOPTS -mconsole"
275 echo "MinGW host detected"
278 LDOPTS
="$LDOPTS -mconsole"
284 sigaltstack
=`check_sigaltstack`
285 echo "Linux host detected"
286 LDOPTS
="$LDOPTS -ldl"
290 sigaltstack
=`check_sigaltstack`
291 echo "FreeBSD host detected"
292 LDOPTS
="$LDOPTS -ldl"
296 sigaltstack
=`check_sigaltstack`
297 echo "Darwin host detected"
298 LDOPTS
="$LDOPTS -ldl"
299 SHARED_LDFLAG
="-dynamiclib -Wl\,-single_module"
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"
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!"
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
346 cat >$tmpdir/conftest-
$id.c
<<EOF
348 int main(int argc, char **argv)
351 char *varp = (char *)&var;
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
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
385 rm -f $tmpdir/conftest-
$id*
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"
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
418 GCCOPTS
="$CCOPTS -m1"
419 GCCOPTIMIZE
="-fomit-frame-pointer -fschedule-insns"
425 prefixtools calmrisc16-unknown-elf-
426 GCCOPTS
="-Wl\,--no-check-sections $CCOPTS"
427 GCCOPTIMIZE
="-fomit-frame-pointer"
432 prefixtools m68k-elf-
433 GCCOPTS
="$CCOPTS -mcpu=5249 -malign-int -mstrict-align"
434 GCCOPTIMIZE
="-fomit-frame-pointer"
441 GCCOPTS
="$CCOPTS -mcpu=arm7tdmi"
442 GCCOPTIMIZE
="-fomit-frame-pointer"
448 GCCOPTS
="$CCOPTS -mcpu=arm9tdmi"
449 GCCOPTIMIZE
="-fomit-frame-pointer"
455 GCCOPTS
="$CCOPTS -mbig-endian -mcpu=arm940t"
456 GCCOPTIMIZE
="-fomit-frame-pointer"
462 GCCOPTS
="$CCOPTS -mcpu=arm940t"
463 GCCOPTIMIZE
="-fomit-frame-pointer"
469 GCCOPTS
="$CCOPTS -mcpu=arm9e"
470 GCCOPTIMIZE
="-fomit-frame-pointer"
476 GCCOPTS
="$CCOPTS -mcpu=arm926ej-s"
477 GCCOPTIMIZE
="-fomit-frame-pointer"
483 GCCOPTS
="$CCOPTS -mcpu=arm1136jf-s"
484 GCCOPTIMIZE
="-fomit-frame-pointer"
490 GCCOPTS
="$CCOPTS -mcpu=arm1176jz-s"
491 GCCOPTIMIZE
="-fomit-frame-pointer"
497 GCCOPTS
="$CCOPTS -march=armv5te"
498 GCCOPTIMIZE
="-fomit-frame-pointer"
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"
515 # Scratchbox sets up "gcc" based on the active target
518 GCCOPTS
=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib// -e s/-Wundef//`
519 GCCOPTS
="$GCCOPTS -fno-builtin -g -I\$(SIMDIR)"
521 LDOPTS
="-lm -ldl $LDOPTS"
522 GLOBAL_LDOPTS
="$GLOBAL_LDOPTS -Wl,-z,defs"
523 SHARED_LDFLAG
="-shared"
526 thread_support
="HAVE_SIGALTSTACK_THREADS"
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."
535 extradefines
="$extradefines -DMAEMO5"
536 echo "Found N900 maemo version"
538 elif pkg-config
--atleast-version=4 maemo-version
; then
539 if [ "$1" == "5" ]; then
540 echo "ERROR: Maemo 5 SDK required."
543 extradefines
="$extradefines -DMAEMO4"
544 echo "Found N8xx maemo version"
546 echo "Unable to determine maemo version. Is the maemo-version-dev package installed?"
551 if [ $is_n900 -eq 1 ]; then
552 GCCOPTS
="$GCCOPTS `pkg-config --cflags sdl`"
553 LDOPTS
="$LDOPTS `pkg-config --libs sdl`"
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"
583 echo "Detected x86 target"
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"
592 echo "Detected x86 target"
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"
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)"
616 LDOPTS
="-lm -ldl $LDOPTS"
617 GLOBAL_LDOPTS
="$GLOBAL_LDOPTS -Wl,-z,defs"
618 SHARED_LDFLAG
="-shared"
621 thread_support
="HAVE_SIGALTSTACK_THREADS"
624 GCCOPTS
="$GCCOPTS -I$PNDSDK/arm-angstrom-linux-gnueabi/usr/include"
628 prefixtools
"$PNDSDK/bin/arm-angstrom-linux-gnueabi-"
631 GCCOPTS
="$GCCOPTS `$PNDSDK/bin/sdl-config --cflags`"
632 LDOPTS
="$LDOPTS `$PNDSDK/bin/sdl-config --libs`"
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"
642 GCCOPTS
=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib//`
644 LDOPTS
="-lasound -lpthread -lm -ldl -lrt $LDOPTS"
645 GLOBAL_LDOPTS
="$GLOBAL_LDOPTS -Wl,-z,defs"
646 SHARED_LDFLAG
="-shared"
649 thread_support
="HAVE_SIGALTSTACK_THREADS"
653 GCCOPTS
="$GCCOPTS -D_GNU_SOURCE=1 -U_FORTIFY_SOURCE -D_REENTRANT"
657 prefixtools
"arm-ypr0-linux-gnueabi-"
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."
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."
671 buildhost
=$
(uname |
tr "[:upper:]" "[:lower:]")
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"
683 SHARED_LDFLAG
="-shared"
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."
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."
698 buildhost
=$
(uname |
tr "[:upper:]" "[:lower:]")
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"
712 SHARED_LDFLAG
="-shared"
717 atype
=`echo "$1" | cut -c 2-`
718 ##################################################################
719 # Prompt for specific developer options
721 if [ "$atype" ]; then
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
745 while [ $cont = "1" ]; do
747 if [ "$interact" ]; then
750 option
=`echo "$atype" | cut -c 1`
755 if [ "yes" = "$profile" ]; then
756 echo "Debug is incompatible with profiling"
758 echo "DEBUG build enabled"
763 echo "logf() support enabled"
767 echo "Using Rockbox' small C library"
768 extradefines
="$extradefines -DHAVE_ROCKBOX_C_LIBRARY"
771 echo "Including test plugins"
772 extradefines
="$extradefines -DHAVE_TEST_PLUGINS"
775 echo "bootchart enabled (logf also enabled)"
780 echo "Logf to serial port enabled (logf also enabled)"
785 echo "Simulator build enabled"
789 if [ "yes" = "$use_debug" ]; then
790 echo "Profiling is incompatible with debug"
792 echo "Profiling support is enabled"
797 echo "Voice build selected"
801 if [ "$modelname" = "archosplayer" ]; then
802 have_ata_poweroff
="#define HAVE_ATA_POWER_OFF"
803 echo "ATA power off enabled"
807 if [ "$t_model" = "ondio" ]; then
808 have_backlight
="#define HAVE_BACKLIGHT"
809 echo "Backlight functions enabled"
813 if [ "$modelname" = "iaudiom5" ]; then
814 have_fmradio_in
="#define HAVE_FMRADIO_IN"
815 echo "FM radio functions enabled"
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)"
826 echo "Enabling Windows 32 cross-compiling"
827 win32crosscompile
="yes"
829 "") # Match enter press when finished with advanced options
833 echo "[ERROR] Option $option unsupported"
836 if [ "$interact" ]; then
837 btype
="$btype$option"
839 atype
=`echo "$atype" | cut -c 2-`
840 [ "$atype" ] || cont
=0
845 if [ "yes" = "$voice" ]; then
846 # Ask about languages to build
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"
856 if [ "yes" = "$use_debug" ]; then
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
871 extradefines
="$extradefines -DSIMULATOR"
875 if [ "yes" = "$profile" ]; then
876 extradefines
="$extradefines -DRB_PROFILE"
877 PROFILE_OPTS
="-finstrument-functions"
881 # Configure voice settings
884 if [ ! "$ARG_TTS" ]; then
885 echo "Building $thislang voice for $modelname. Select options"
889 if [ -n "`findtool flite`" ]; then
893 DEFAULT_TTS_OPTS
=$FLITE_OPTS
894 DEFAULT_NOISEFLOOR
="500"
897 if [ -n "`findtool espeak`" ]; then
901 DEFAULT_TTS_OPTS
=$ESPEAK_OPTS
902 DEFAULT_NOISEFLOOR
="500"
905 if [ -n "`findtool festival`" ]; then
906 FESTIVAL
="(F)estival "
909 FESTIVAL_OPTS
="--language italian"
912 FESTIVAL_OPTS
="--language spanish"
915 FESTIVAL_OPTS
="--language finnish"
918 FESTIVAL_OPTS
="--language czech"
924 DEFAULT_TTS
="festival"
925 DEFAULT_TTS_OPTS
=$FESTIVAL_OPTS
926 DEFAULT_NOISEFLOOR
="500"
929 if [ -n "`findtool swift`" ]; then
933 DEFAULT_TTS_OPTS
=$SWIFT_OPTS
934 DEFAULT_NOISEFLOOR
="500"
937 # Allow SAPI if Windows is in use
938 if [ -n "`findtool winver`" ]; then
942 DEFAULT_TTS_OPTS
=$SAPI_OPTS
943 DEFAULT_NOISEFLOOR
="500"
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"
952 if [ "$ARG_TTS" ]; then
955 echo "TTS engine to use: ${FLITE}${FESTIVAL}${ESPEAK}${SAPI}${SWIFT}(${DEFAULT_CHOICE})?"
957 if [ -z "$option" ]; then option
=${DEFAULT_CHOICE}; fi
958 advopts
="$advopts --tts=$option"
963 NOISEFLOOR
="500" # TODO: check this value
969 TTS_OPTS
=$ESPEAK_OPTS
972 TTS_ENGINE
="festival"
974 TTS_OPTS
=$FESTIVAL_OPTS
987 TTS_ENGINE
=$DEFAULT_TTS
988 TTS_OPTS
=$DEFAULT_TTS_OPTS
989 NOISEFLOOR
=$DEFAULT_NOISEFLOOR
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
1000 if [ "$ARG_VOICE" ]; then
1004 for voice
in $voicelist; do
1005 printf "%3d. %s\n" "$i" "$voice"
1008 printf "Please select which Festival voice to use (default is $TTS_FESTIVAL_VOICE): "
1012 for voice
in $voicelist; do
1013 if [ "$i" = "$CHOICE" -o "$voice" = "$CHOICE" ]; then
1014 TTS_FESTIVAL_VOICE
="$voice"
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"
1033 if [ -n "`findtool lame`" ]; then
1035 ENC_OPTS
="--resample 12 -t -m m -h -V 9.999 -S -B 64 --vbr-new"
1037 echo "You need LAME in the system path to build voice files for"
1038 echo "HWCODEC targets."
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"
1052 if [ -n "`findtool cygpath`" ]; then
1053 TEMPDIR
=`cygpath . -a -w`
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"
1064 if [ "$ARG_LANG" ]; then
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"
1072 for one
in $langs; do
1077 advopts
="$advopts --language=$pick"
1083 # Allow the user to pass a comma-separated list of langauges
1084 for thispick
in `echo $pick | sed 's/,/ /g'`; do
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
1098 if [ -z "$output" ]; then
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!"
1111 Usage: configure [OPTION]...
1113 --target=TARGET Sets the target, TARGET can be either the target ID or
1114 corresponding string. Run without this option to see all
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
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
1133 --lcdheight=Y Sets the height of the LCD. Used only for application
1136 --language=LANG Set the language used for voice generation (used only if
1139 --tts=ENGINE Set the TTS engine used for voice generation (used only
1142 --voice=VOICE Set voice to use with selected TTS (used only if TYPE is
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
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
1166 --prefix Target installation directory
1167 --help Shows this message (must not be used with other options)
1185 ARG_PREFIX
="$PREFIX"
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;;
1207 ARG_THREAD_SUPPORT
=0;;
1208 --prefix=*) ARG_PREFIX
=`echo "$arg" | cut -d = -f 2`;;
1210 *) err
=1; echo "[ERROR] Option '$arg' unsupported";;
1213 [ "$err" ] && exit 1
1217 if [ "$TMPDIR" != "" ]; then
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:"
1233 echo " mkdir build-dir"
1234 echo " cd build-dir"
1235 echo " ../tools/configure"
1237 echo "Much happiness will arise from this. Enjoy"
1242 # get our current directory
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"
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
1266 # cd back to the build dir
1271 appsdir
='$(ROOTDIR)/apps'
1272 toolsdir
='$(ROOTDIR)/tools'
1275 ##################################################################
1276 # Figure out target platform
1279 if [ "$ARG_TARGET" ]; then
1280 buildfor
=$ARG_TARGET
1282 echo "Enter target platform:"
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
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
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
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
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 ----
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
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
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
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
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
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.
1388 modelname
="archosplayer"
1389 target
="ARCHOS_PLAYER"
1391 tool
="$rootdir/tools/scramble"
1393 appextra
="player:gui"
1394 archosrom
="$pwd/rombox.ucl"
1395 flash
="$pwd/rockbox.ucl"
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
1408 t_manufacturer
="archos"
1414 modelname
="archosrecorder"
1415 target
="ARCHOS_RECORDER"
1417 tool
="$rootdir/tools/scramble"
1418 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1419 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1421 appextra
="recorder:gui:radio"
1422 #archosrom="$pwd/rombox.ucl"
1423 flash
="$pwd/rockbox.ucl"
1426 # toolset is the tools within the tools directory that we build for
1427 # this particular target.
1428 toolset
=$archosbitmaptools
1430 t_manufacturer
="archos"
1436 modelname
="archosfmrecorder"
1437 target
="ARCHOS_FMRECORDER"
1439 tool
="$rootdir/tools/scramble -fm"
1440 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1441 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1443 appextra
="recorder:gui:radio"
1444 #archosrom="$pwd/rombox.ucl"
1445 flash
="$pwd/rockbox.ucl"
1448 # toolset is the tools within the tools directory that we build for
1449 # this particular target.
1450 toolset
=$archosbitmaptools
1452 t_manufacturer
="archos"
1458 modelname
="archosrecorderv2"
1459 target
="ARCHOS_RECORDERV2"
1461 tool
="$rootdir/tools/scramble -v2"
1462 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1463 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1465 appextra
="recorder:gui:radio"
1466 #archosrom="$pwd/rombox.ucl"
1467 flash
="$pwd/rockbox.ucl"
1470 # toolset is the tools within the tools directory that we build for
1471 # this particular target.
1472 toolset
=$archosbitmaptools
1474 t_manufacturer
="archos"
1480 modelname
="archosondiosp"
1481 target
="ARCHOS_ONDIOSP"
1483 tool
="$rootdir/tools/scramble -osp"
1484 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1485 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1487 appextra
="recorder:gui:radio"
1488 #archosrom="$pwd/rombox.ucl"
1489 flash
="$pwd/rockbox.ucl"
1492 # toolset is the tools within the tools directory that we build for
1493 # this particular target.
1494 toolset
=$archosbitmaptools
1496 t_manufacturer
="archos"
1502 modelname
="archosondiofm"
1503 target
="ARCHOS_ONDIOFM"
1505 tool
="$rootdir/tools/scramble -ofm"
1506 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1507 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1509 appextra
="recorder:gui:radio"
1510 #archosrom="$pwd/rombox.ucl"
1511 flash
="$pwd/rockbox.ucl"
1514 toolset
=$archosbitmaptools
1516 t_manufacturer
="archos"
1522 modelname
="archosav300"
1523 target
="ARCHOS_AV300"
1526 tool
="$rootdir/tools/scramble -mm=C"
1527 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1528 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1530 appextra
="recorder:gui:radio"
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
1538 t_manufacturer
="archos"
1544 modelname
="iriverh120"
1545 target
="IRIVER_H120"
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"
1559 # toolset is the tools within the tools directory that we build for
1560 # this particular target.
1561 toolset
=$iriverbitmaptools
1563 t_manufacturer
="iriver"
1569 modelname
="iriverh300"
1570 target
="IRIVER_H300"
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"
1582 # toolset is the tools within the tools directory that we build for
1583 # this particular target.
1584 toolset
=$iriverbitmaptools
1586 t_manufacturer
="iriver"
1592 modelname
="iriverh100"
1593 target
="IRIVER_H100"
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"
1607 # toolset is the tools within the tools directory that we build for
1608 # this particular target.
1609 toolset
=$iriverbitmaptools
1611 t_manufacturer
="iriver"
1617 modelname
="iriverifp7xx"
1618 target
="IRIVER_IFP7XX"
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"
1628 # toolset is the tools within the tools directory that we build for
1629 # this particular target.
1630 toolset
=$genericbitmaptools
1632 t_manufacturer
="pnx0101"
1633 t_model
="iriver-ifp7xx"
1638 modelname
="iriverh10"
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"
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
1657 t_manufacturer
="iriver"
1663 modelname
="iriverh10_5gb"
1664 target
="IRIVER_H10_5GB"
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"
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
1682 t_manufacturer
="iriver"
1688 modelname
="ipodcolor"
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"
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
1706 t_manufacturer
="ipod"
1712 modelname
="ipodnano1g"
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"
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
1730 t_manufacturer
="ipod"
1736 modelname
="ipodvideo"
1738 memory
=64 # always. This is reduced at runtime if needed
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"
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
1754 t_manufacturer
="ipod"
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"
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
1778 t_manufacturer
="ipod"
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"
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
1802 t_manufacturer
="ipod"
1808 modelname
="ipodmini1g"
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"
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
1826 t_manufacturer
="ipod"
1832 modelname
="ipodmini2g"
1833 target
="IPOD_MINI2G"
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"
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
1850 t_manufacturer
="ipod"
1856 modelname
="ipod1g2g"
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"
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
1874 t_manufacturer
="ipod"
1880 modelname
="ipodnano2g"
1881 target
="IPOD_NANO2G"
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"
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
1897 t_manufacturer
="s5l8700"
1898 t_model
="ipodnano2g"
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"
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
1920 t_manufacturer
="s5l8702"
1926 modelname
="iaudiox5"
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"
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
1946 t_manufacturer
="iaudio"
1952 modelname
="iaudiom5"
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"
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
1972 t_manufacturer
="iaudio"
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"
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
1996 t_manufacturer
="tcc77x"
2006 tool
="$rootdir/tools/scramble -add=d2"
2008 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2009 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2011 bootoutput
="bootloader-cowond2.bin"
2012 appextra
="recorder:gui:radio"
2015 toolset
="$tccbitmaptools"
2016 # architecture, manufacturer and model for the target-tree build
2018 t_manufacturer
="tcc780x"
2024 modelname
="iaudiom3"
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"
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
2042 t_manufacturer
="iaudio"
2048 modelname
="gigabeatfx"
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"
2059 toolset
=$gigabeatbitmaptools
2060 boottool
="$rootdir/tools/scramble -gigabeat"
2061 bootoutput
="FWIMG01.DAT"
2062 # architecture, manufacturer and model for the target-tree build
2064 t_manufacturer
="s3c2440"
2065 t_model
="gigabeat-fx"
2070 modelname
="gigabeats"
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"
2081 toolset
="$gigabeatbitmaptools"
2082 boottool
="$rootdir/tools/scramble -gigabeats"
2084 # architecture, manufacturer and model for the target-tree build
2086 t_manufacturer
="imx31"
2087 t_model
="gigabeat-s"
2092 modelname
="mrobe500"
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"
2105 toolset
=$gigabeatbitmaptools
2107 bootoutput
="rockbox.mrboot"
2108 # architecture, manufacturer and model for the target-tree build
2110 t_manufacturer
="tms320dm320"
2116 modelname
="mrobe100"
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"
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
2137 t_manufacturer
="olympus"
2143 modelname
="logikdax"
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"
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
2161 t_manufacturer
="tcc77x"
2167 modelname
="zenvisionm30gb"
2168 target
="CREATIVE_ZVM"
2171 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2172 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2173 tool
="$rootdir/tools/scramble -creative=zvm"
2175 output
="rockbox.zvm"
2176 appextra
="recorder:gui:radio"
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
2184 t_manufacturer
="tms320dm320"
2185 t_model
="creative-zvm"
2190 modelname
="zenvisionm60gb"
2191 target
="CREATIVE_ZVM60GB"
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"
2198 output
="rockbox.zvm60"
2199 appextra
="recorder:gui:radio"
2202 toolset
=$ipodbitmaptools
2203 boottool
="$rootdir/tools/scramble -creative=zvm60"
2204 bootoutput
="rockbox.zvm60boot"
2205 # architecture, manufacturer and model for the target-tree build
2207 t_manufacturer
="tms320dm320"
2208 t_model
="creative-zvm"
2213 modelname
="zenvision"
2214 target
="CREATIVE_ZV"
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"
2222 appextra
="recorder:gui:radio"
2225 toolset
=$ipodbitmaptools
2226 boottool
="$rootdir/tools/scramble -creative=zenvision"
2227 bootoutput
="rockbox.zvboot"
2228 # architecture, manufacturer and model for the target-tree build
2230 t_manufacturer
="tms320dm320"
2231 t_model
="creative-zvm"
2236 modelname
="creativezenxfi2"
2237 target
="CREATIVE_ZENXFI2"
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"
2247 toolset
=$scramblebitmaptools
2249 t_manufacturer
="imx233"
2250 t_model
="creative-zenxfi2"
2256 modelname
="creativezenxfi3"
2257 target
="CREATIVE_ZENXFI3"
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"
2267 toolset
=$scramblebitmaptools
2269 t_manufacturer
="imx233"
2270 t_model
="creative-zenxfi3"
2276 modelname
="sansae200"
2278 memory
=32 # supposedly
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"
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
2295 t_manufacturer
="sandisk"
2296 t_model
="sansa-e200"
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.
2304 modelname
="sansae200r"
2306 memory
=32 # supposedly
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"
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
2323 t_manufacturer
="sandisk"
2324 t_model
="sansa-e200"
2329 modelname
="sansac200"
2331 memory
=32 # supposedly
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"
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
2348 t_manufacturer
="sandisk"
2349 t_model
="sansa-c200"
2354 modelname
="sansam200"
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"
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
2372 t_manufacturer
="tcc77x"
2378 modelname
="sansac100"
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"
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
2396 t_manufacturer
="tcc77x"
2402 modelname
="sansaclip"
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"
2413 toolset
=$scramblebitmaptools
2415 t_manufacturer
="as3525"
2416 t_model
="sansa-clip"
2417 if [ "$ARG_ARM_THUMB" != 0 ]; then ARG_ARM_THUMB
=1; fi
2419 GCCOPTS
=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2425 modelname
="sansae200v2"
2426 target
="SANSA_E200V2"
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"
2436 toolset
=$scramblebitmaptools
2438 t_manufacturer
="as3525"
2439 t_model
="sansa-e200v2"
2446 modelname
="sansam200v4"
2447 target
="SANSA_M200V4"
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"
2457 toolset
=$scramblebitmaptools
2459 t_manufacturer
="as3525"
2460 t_model
="sansa-m200v4"
2461 if [ "$ARG_ARM_THUMB" != 0 ]; then ARG_ARM_THUMB
=1; fi
2463 GCCOPTS
=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2469 modelname
="sansafuze"
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"
2480 toolset
=$scramblebitmaptools
2482 t_manufacturer
="as3525"
2483 t_model
="sansa-fuze"
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"
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
2506 t_manufacturer
="as3525"
2507 t_model
="sansa-c200v2"
2508 if [ "$ARG_ARM_THUMB" != 0 ]; then ARG_ARM_THUMB
=1; fi
2510 GCCOPTS
=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2515 modelname
="sansaclipv2"
2516 target
="SANSA_CLIPV2"
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"
2526 toolset
=$scramblebitmaptools
2528 t_manufacturer
="as3525"
2529 t_model
="sansa-clipv2"
2534 echo "Sansa View is not yet supported!"
2537 modelname
="sansaview"
2541 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2542 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2543 output
="rockbox.mi4"
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
2554 t_manufacturer
="sandisk"
2555 t_model
="sansa-view"
2560 modelname
="sansaclipplus"
2561 target
="SANSA_CLIPPLUS"
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"
2571 toolset
=$scramblebitmaptools
2573 t_manufacturer
="as3525"
2574 t_model
="sansa-clipplus"
2580 modelname
="sansafuzev2"
2581 target
="SANSA_FUZEV2"
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"
2591 toolset
=$scramblebitmaptools
2593 t_manufacturer
="as3525"
2594 t_model
="sansa-fuzev2"
2600 modelname
="sansafuzeplus"
2601 target
="SANSA_FUZEPLUS"
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"
2611 toolset
=$scramblebitmaptools
2613 t_manufacturer
="imx233"
2614 t_model
="sansa-fuzeplus"
2620 modelname
="sansaclipzip"
2621 target
="SANSA_CLIPZIP"
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"
2631 toolset
=$scramblebitmaptools
2633 t_manufacturer
="as3525"
2634 t_model
="sansa-clipzip"
2640 modelname
="sansaconnect"
2641 target
="SANSA_CONNECT"
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"
2651 toolset
=$scramblebitmaptools
2653 t_manufacturer
="tms320dm320"
2654 t_model
="sansa-connect"
2660 modelname
="tatungtpj1022"
2661 target
="TATUNG_TPJ1022"
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"
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
2679 t_manufacturer
="tatung"
2685 modelname
="gogearsa9200"
2686 target
="PHILIPS_SA9200"
2687 memory
=32 # supposedly
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"
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
2704 t_manufacturer
="philips"
2710 modelname
="gogearhdd1630"
2711 target
="PHILIPS_HDD1630"
2712 memory
=32 # supposedly
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"
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
2729 t_manufacturer
="philips"
2735 modelname
="gogearhdd6330"
2736 target
="PHILIPS_HDD6330"
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"
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
2754 t_manufacturer
="philips"
2760 modelname
="meizum6sl"
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"
2771 toolset
=$genericbitmaptools
2773 bootoutput
="rockboot.ebn"
2774 # architecture, manufacturer and model for the target-tree build
2776 t_manufacturer
="s5l8700"
2777 t_model
="meizu-m6sl"
2782 modelname
="meizum6sp"
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"
2793 toolset
=$genericbitmaptools
2795 bootoutput
="rockboot.ebn"
2796 # architecture, manufacturer and model for the target-tree build
2798 t_manufacturer
="s5l8700"
2799 t_model
="meizu-m6sp"
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"
2815 toolset
=$genericbitmaptools
2817 bootoutput
="rockboot.ebn"
2818 # architecture, manufacturer and model for the target-tree build
2820 t_manufacturer
="s5l8700"
2826 modelname
="ondavx747"
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"
2837 toolset
=$genericbitmaptools
2838 boottool
="$rootdir/tools/scramble -ccpmp"
2839 bootoutput
="ccpmp.bin"
2840 # architecture, manufacturer and model for the target-tree build
2842 t_manufacturer
="ingenic_jz47xx"
2843 t_model
="onda_vx747"
2848 modelname
="ondavx767"
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"
2859 toolset
=$genericbitmaptools
2860 boottool
="$rootdir/tools/scramble -ccpmp"
2861 bootoutput
="ccpmp.bin"
2862 # architecture, manufacturer and model for the target-tree build
2864 t_manufacturer
="ingenic_jz47xx"
2865 t_model
="onda_vx767"
2870 modelname
="ondavx747p"
2871 target
="ONDA_VX747P"
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"
2881 toolset
=$genericbitmaptools
2882 boottool
="$rootdir/tools/scramble -ccpmp"
2883 bootoutput
="ccpmp.bin"
2884 # architecture, manufacturer and model for the target-tree build
2886 t_manufacturer
="ingenic_jz47xx"
2887 t_model
="onda_vx747"
2892 modelname
="ondavx777"
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"
2903 toolset
=$genericbitmaptools
2904 boottool
="$rootdir/tools/scramble -ccpmp"
2905 bootoutput
="ccpmp.bin"
2906 # architecture, manufacturer and model for the target-tree build
2908 t_manufacturer
="ingenic_jz47xx"
2909 t_model
="onda_vx747"
2914 modelname
="lyreproto1"
2915 target
="LYRE_PROTO1"
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"
2925 toolset
=$scramblebitmaptools
2927 bootoutput
="bootloader-proto1.lyre"
2928 # architecture, manufacturer and model for the target-tree build
2930 t_manufacturer
="at91sam"
2931 t_model
="lyre_proto1"
2936 modelname
="mini2440"
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"
2947 toolset
=$scramblebitmaptools
2949 bootoutput
="bootloader-mini2440.lyre"
2950 # architecture, manufacturer and model for the target-tree build
2952 t_manufacturer
="s3c2440"
2958 modelname
="samsungyh820"
2959 target
="SAMSUNG_YH820"
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"
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
2977 t_manufacturer
="samsung"
2983 modelname
="samsungyh920"
2984 target
="SAMSUNG_YH920"
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"
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
3002 t_manufacturer
="samsung"
3008 modelname
="samsungyh925"
3009 target
="SAMSUNG_YH925"
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"
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
3027 t_manufacturer
="samsung"
3033 modelname
="samsungyps3"
3034 target
="SAMSUNG_YPS3"
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"
3044 toolset
=$genericbitmaptools
3046 bootoutput
="rockboot.ebn"
3047 # architecture, manufacturer and model for the target-tree build
3049 t_manufacturer
="s5l8700"
3056 target
="PBELL_VIBE500"
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"
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
3074 t_manufacturer
="pbell"
3080 modelname
="mpiohd200"
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"
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
3097 t_manufacturer
="mpio"
3103 modelname
="mpiohd300"
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"
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
3120 t_manufacturer
="mpio"
3126 modelname
="rk27generic"
3127 target
="RK27_GENERIC"
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"
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
3143 t_manufacturer
="rk27xx"
3144 t_model
="rk27generic"
3149 modelname
="hifimanhm60x"
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"
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
3166 t_manufacturer
="rk27xx"
3172 modelname
="hifimanhm801"
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"
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
3189 t_manufacturer
="rk27xx"
3205 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
3206 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
3208 bootoutput
="rockbox"
3209 appextra
="recorder:gui:radio"
3212 # architecture, manufacturer and model for the target-tree build
3214 t_manufacturer
="sdl"
3225 sharedir
="/data/data/org.rockbox/app_rockbox/rockbox"
3226 bindir
="/data/data/org.rockbox/lib"
3227 libdir
="/data/data/org.rockbox/app_rockbox"
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"
3240 # architecture, manufacturer and model for the target-tree build
3242 t_manufacturer
="android"
3249 modelname
="nokian8xx"
3252 sharedir
="/opt/rockbox/share/rockbox"
3253 bindir
="/opt/rockbox/bin"
3254 libdir
="/opt/rockbox/lib"
3260 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
3261 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
3263 bootoutput
="rockbox"
3264 appextra
="recorder:gui:radio"
3267 # architecture, manufacturer and model for the target-tree build
3269 t_manufacturer
="maemo"
3276 modelname
="nokian900"
3279 sharedir
="/opt/rockbox/share/rockbox"
3280 bindir
="/opt/rockbox/bin"
3281 libdir
="/opt/rockbox/lib"
3287 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
3288 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
3290 bootoutput
="rockbox"
3291 appextra
="recorder:gui:radio"
3294 # architecture, manufacturer and model for the target-tree build
3296 t_manufacturer
="maemo"
3306 sharedir
="rockbox/share/rockbox"
3307 bindir
="rockbox/bin"
3308 libdir
="rockbox/lib"
3314 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
3315 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
3317 bootoutput
="rockbox"
3318 appextra
="recorder:gui:radio"
3321 # architecture, manufacturer and model for the target-tree build
3323 t_manufacturer
="pandora"
3330 modelname
="samsungypr0"
3331 target
="SAMSUNG_YPR0"
3337 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
3338 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
3340 bootoutput
="rockbox"
3341 appextra
="recorder:gui:radio"
3344 # architecture, manufacturer and model for the target-tree build
3346 t_manufacturer
="ypr0"
3353 modelname
="androidmips"
3357 sharedir
="/data/data/org.rockbox/app_rockbox/rockbox"
3358 bindir
="/data/data/org.rockbox/lib"
3359 libdir
="/data/data/org.rockbox/app_rockbox"
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"
3372 # architecture, manufacturer and model for the target-tree build
3374 t_manufacturer
="android"
3379 echo "Please select a supported target platform!"
3385 echo "Platform set to $modelname"
3389 ############################################################################
3390 # Amount of memory, for those that can differ. They have $memory unset at
3394 if [ -z "$memory" ]; then
3397 if [ "$ARG_RAM" ]; then
3400 echo "Enter size of your RAM (in MB): (Defaults to 32)"
3413 if [ "$ARG_RAM" ]; then
3416 echo "Enter size of your RAM (in MB): (Defaults to 2)"
3429 echo "Memory size selected: $memory MB"
3430 [ "$ARG_TYPE" ] ||
echo ""
3434 ##################################################################
3435 # Figure out build "type"
3438 # the ifp7x0 is the only platform that supports building a gdb stub like
3442 gdbstub
=", (G)DB stub"
3444 sansae200r|sansae200
)
3445 gdbstub
=", (I)nstaller"
3448 gdbstub
=", (E)raser"
3451 gdbstub
=", (E)raser"
3456 if [ "$ARG_TYPE" ]; then
3459 echo "Build (N)ormal, (A)dvanced, (S)imulator, (B)ootloader, (C)heckWPS, (D)atabase tool, (W)arble codec tool$gdbstub: (Defaults to N)"
3465 appsdir
='$(ROOTDIR)/bootloader'
3467 extradefines
="$extradefines -DBOOTLOADER -DE200R_INSTALLER -ffunction-sections -fdata-sections"
3469 echo "e200R-installer build selected"
3472 appsdir
='$(ROOTDIR)/bootloader'
3474 extradefines
="$extradefines -DBOOTLOADER -DSANSA_PP_ERASE -ffunction-sections -fdata-sections"
3476 echo "sansa eraser build selected"
3479 if test $t_manufacturer = "archos"; then
3480 # Archos SH-based players do this somewhat differently for
3482 appsdir
='$(ROOTDIR)/flash/bootbox'
3485 appsdir
='$(ROOTDIR)/bootloader'
3488 if test -n "$boottool"; then
3491 if test -n "$bootoutput"; then
3495 extradefines
="$extradefines -DBOOTLOADER -ffunction-sections -fdata-sections"
3497 echo "Bootloader build selected"
3500 if [ "$modelname" = "sansae200r" ]; then
3501 echo "Do not use the e200R target for simulator builds. Use e200 instead."
3506 extradefines
="$extradefines -DSIMULATOR"
3509 echo "Simulator build selected"
3512 echo "Advanced build selected"
3513 whichadvanced
$btype
3516 extradefines
="$extradefines -DSTUB" # for target makefile symbol EXTRA_DEFINES
3517 appsdir
='$(ROOTDIR)/gdb'
3526 echo "GDB stub build selected"
3534 extradefines
="$extradefines -DDEBUG"
3535 appsdir
='$(ROOTDIR)/tools/checkwps';
3536 output
='checkwps.'${modelname};
3538 echo "CheckWPS build selected"
3546 appsdir
='$(ROOTDIR)/tools/database';
3551 output
="database_${modelname}.exe"
3554 output
='database.'${modelname};
3558 echo "Database tool build selected"
3566 extradefines
="$extradefines -DDEBUG"
3567 output
='warble.'${modelname};
3569 echo "Warble build selected"
3572 if [ "$modelname" = "sansae200r" ]; then
3573 echo "Do not use the e200R target for regular builds. Use e200 instead."
3577 btype
="N" # set it explicitly since RET only gets here as well
3578 echo "Normal build selected"
3582 # to be able running "make manual" from non-manual configuration
3585 manualdev
="archosfmrecorder"
3588 manualdev
="iriverh100"
3591 manualdev
="ipodmini1g"
3594 manualdev
=$modelname
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:
3614 if [ "yes" = "$simulator" ]; then
3615 # setup compiler and things for simulator
3618 if [ -d "simdisk" ]; then
3619 echo "Subdirectory 'simdisk' already present"
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'`
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."
3643 # gccver should now be "3.3.5", "3.4.3", "2.95.3-6" and similar, but don't
3646 num1
=`echo $gccver | cut -d . -f1`
3647 num2
=`echo $gccver | cut -d . -f2`
3648 gccnum
=`(expr $num1 "*" 100 + $num2) 2>/dev/null`
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
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"
3671 ""|
"$CROSS_COMPILE")
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..."
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"
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 /'`
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"
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
3746 elif [ -n "$(echo $cpp_defines | grep -w __m68k__)" ]; then
3748 elif [ -n "$(echo $cpp_defines | grep -w __arm__)" ]; then
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
3756 elif [ -n "$(echo $cpp_defines | grep -w __x86_64__)" ]; then
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)"
3766 echo "Automatically selected arch: $arch"
3770 if [ -n "$arch_version" ]; then
3771 echo "Manually selected arch: $arch (ver $arch_version)"
3773 echo "Manually selected arch: $arch"
3778 if [ -n "$arch_version" ]; then
3779 Darch_version
="#define ARCH_VERSION $arch_version"
3782 if test -n "$ccache"; then
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"
3794 defendian
="ROCKBOX_LITTLE_ENDIAN"
3797 if [ "$ARG_RBDIR" != "" ]; then
3798 if [ -z `echo $ARG_RBDIR | grep '^/'` ]; then
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 */
3832 #define arch_amd64 6
3833 #define ARCH_AMD64 6
3835 /* Define target machine architecture */
3836 #define ARCH ${arch}
3837 /* Optinally define architecture version */
3840 /* Define endianess for the target or simulator platform */
3841 #define ${defendian} 1
3843 /* Define the GCC version used for the build */
3844 #define GCCNUM ${GCCNUM}
3846 /* Define this if you build rockbox to support the logf logging and display */
3849 /* Define this if you want logf to output to the serial port */
3852 /* Define this to record a chart with timings for the stages of boot */
3855 /* optional define for a backlight modded Ondio */
3858 /* optional define for FM radio mod for iAudio M5 */
3861 /* optional define for ATA poweroff on Player */
3862 ${have_ata_poweroff}
3864 /* optional defines for RTC mod for h1x0 */
3868 /* the threading backend we use */
3869 #define ${thread_support}
3871 /* lcd dimensions for application builds from configure */
3875 /* root of Rockbox */
3876 #define ROCKBOX_DIR "${rbdir}"
3877 #define ROCKBOX_SHARE_PATH "${sharedir}"
3878 #define ROCKBOX_BINARY_PATH "${bindir}"
3879 #define ROCKBOX_LIBRARY_PATH "${libdir}"
3881 #endif /* __BUILD_AUTOCONF_H */
3884 if test -n "$t_cpu"; then
3885 TARGET_INC
="-I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer/$t_model"
3887 if [ "$application" = "yes" ] && [ "$t_manufacturer" = "maemo" ]; then
3888 # Maemo needs the SDL port, too
3889 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl/app"
3890 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl"
3891 elif [ "$application" = "yes" ] && [ "$t_manufacturer" = "pandora" ]; then
3892 # Pandora needs the SDL port, too
3893 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl/app"
3894 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl"
3895 elif [ "$simulator" = "yes" ]; then # a few more includes for the sim target tree
3896 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl"
3897 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/hosted"
3900 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer"
3901 test -n "$t_soc" && TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu/$t_soc"
3902 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu"
3906 if test "$swcodec" = "yes"; then
3907 voicetoolset
="rbspeexenc voicefont wavtrim"
3909 voicetoolset
="voicefont wavtrim"
3912 if test "$apps" = "apps"; then
3913 # only when we build "real" apps we build the .lng files
3917 #### Fix the cmdline ###
3918 if [ -n "$ARG_PREFIX" ]; then
3919 cmdline
="$cmdline --prefix=\$(PREFIX)"
3921 if [ -n "$ARG_LCDWIDTH" ]; then
3922 cmdline
="$cmdline --lcdwidth=$ARG_LCDWIDTH --lcdheight=$ARG_LCDHEIGHT "
3925 # remove parts from the cmdline we're going to set unconditionally
3926 cmdline
=`echo $cmdline | sed -e s,--target=[a-zA-Z_0-9]\*,,g \
3927 -e s,--ram=[0-9]\*,,g \
3928 -e s,--rbdir=[./a-zA-Z0-9]\*,,g \
3929 -e s,--type=[a-zA-Z]\*,,g`
3930 cmdline
="$cmdline --target=\$(MODELNAME) --ram=\$(MEMORYSIZE) --rbdir=\$(RBDIR) --type=$btype$advopts"
3934 cat > Makefile
<<EOF
3935 ## Automatically generated. http://www.rockbox.org/
3937 export ROOTDIR=${rootdir}
3938 export FIRMDIR=\$(ROOTDIR)/firmware
3939 export APPSDIR=${appsdir}
3940 export TOOLSDIR=${toolsdir}
3941 export DOCSDIR=${rootdir}/docs
3942 export MANUALDIR=${rootdir}/manual
3943 export DEBUG=${debug}
3944 export MODELNAME=${modelname}
3945 export ARCHOSROM=${archosrom}
3946 export FLASHFILE=${flash}
3947 export TARGET_ID=${target_id}
3948 export TARGET=-D${target}
3950 export ARCH_VERSION=${arch_version}
3952 export MANUFACTURER=${t_manufacturer}
3953 export OBJDIR=${pwd}
3954 export BUILDDIR=${pwd}
3955 export RBCODEC_BLD=${pwd}/lib/rbcodec
3956 export LANGUAGE=${language}
3957 export VOICELANGUAGE=${voicelanguage}
3958 export MEMORYSIZE=${memory}
3959 export BUILDDATE:=\$(shell date -u +'-DYEAR=%Y -DMONTH=%m -DDAY=%d')
3960 export MKFIRMWARE=${tool}
3961 export BMP2RB_MONO=${bmp2rb_mono}
3962 export BMP2RB_NATIVE=${bmp2rb_native}
3963 export BMP2RB_REMOTEMONO=${bmp2rb_remotemono}
3964 export BMP2RB_REMOTENATIVE=${bmp2rb_remotenative}
3965 export BINARY=${output}
3966 export APPEXTRA=${appextra}
3967 export ENABLEDPLUGINS=${plugins}
3968 export SOFTWARECODECS=${swcodec}
3969 export EXTRA_DEFINES=${extradefines}
3970 export HOSTCC=${HOSTCC}
3971 export HOSTAR=${HOSTAR}
3978 export WINDRES=${WINDRES}
3979 export DLLTOOL=${DLLTOOL}
3980 export DLLWRAP=${DLLWRAP}
3981 export RANLIB=${RANLIB}
3982 export PREFIX=${ARG_PREFIX}
3983 export PROFILE_OPTS=${PROFILE_OPTS}
3984 export APP_TYPE=${app_type}
3985 export APPLICATION=${application}
3986 export SIMDIR=\$(ROOTDIR)/uisimulator/sdl
3987 export GCCOPTS=${GCCOPTS}
3988 export TARGET_INC=${TARGET_INC}
3989 export LOADADDRESS=${loadaddress}
3990 export SHARED_LDFLAG=${SHARED_LDFLAG}
3991 export SHARED_CFLAGS=${SHARED_CFLAGS}
3992 export LDOPTS=${LDOPTS}
3993 export GLOBAL_LDOPTS=${GLOBAL_LDOPTS}
3994 export GCCVER=${gccver}
3995 export GCCNUM=${gccnum}
3996 export UNAME=${uname}
3997 export MANUALDEV=${manualdev}
3998 export TTS_OPTS=${TTS_OPTS}
3999 export TTS_ENGINE=${TTS_ENGINE}
4000 export ENC_OPTS=${ENC_OPTS}
4001 export ENCODER=${ENCODER}
4002 export USE_ELF=${USE_ELF}
4003 export RBDIR=${rbdir}
4004 export ROCKBOX_SHARE_PATH=${sharedir}
4005 export ROCKBOX_BINARY_PATH=${bindir}
4006 export ROCKBOX_LIBRARY_PATH=${libdir}
4007 export SDLCONFIG=${sdl}
4008 export LCDORIENTATION=${lcd_orientation}
4009 export ANDROID_ARCH=${ANDROID_ARCH}
4011 CONFIGURE_OPTIONS=${cmdline}
4013 include \$(TOOLSDIR)/root.make
4016 echo "Created Makefile"