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"
503 prefixtools mipsel-elf-
504 # mips is predefined, but we want it for paths. use __mips instead
505 GCCOPTS
="$CCOPTS -march=mips32 -mtune=r4600 -mno-mips16 -mno-long-calls -Umips"
506 GCCOPTS
="$GCCOPTS -ffunction-sections -msoft-float -G 0 -Wno-parentheses"
507 GCCOPTIMIZE
="-fomit-frame-pointer"
513 # Scratchbox sets up "gcc" based on the active target
516 GCCOPTS
=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib// -e s/-Wundef//`
517 GCCOPTS
="$GCCOPTS -fno-builtin -g -I\$(SIMDIR)"
519 LDOPTS
="-lm -ldl $LDOPTS"
520 GLOBAL_LDOPTS
="$GLOBAL_LDOPTS -Wl,-z,defs"
521 SHARED_LDFLAG
="-shared"
524 thread_support
="HAVE_SIGALTSTACK_THREADS"
527 # Determine maemo version
528 if pkg-config
--atleast-version=5 maemo-version
; then
529 if [ "$1" == "4" ]; then
530 echo "ERROR: Maemo 4 SDK required."
533 extradefines
="$extradefines -DMAEMO5"
534 echo "Found N900 maemo version"
536 elif pkg-config
--atleast-version=4 maemo-version
; then
537 if [ "$1" == "5" ]; then
538 echo "ERROR: Maemo 5 SDK required."
541 extradefines
="$extradefines -DMAEMO4"
542 echo "Found N8xx maemo version"
544 echo "Unable to determine maemo version. Is the maemo-version-dev package installed?"
549 if [ $is_n900 -eq 1 ]; then
550 GCCOPTS
="$GCCOPTS `pkg-config --cflags sdl`"
551 LDOPTS
="$LDOPTS `pkg-config --libs sdl`"
553 GCCOPTS
="$GCCOPTS `sdl-config --cflags`"
554 LDOPTS
="$LDOPTS `sdl-config --libs`"
557 # glib and libosso support
558 GCCOPTS
="$GCCOPTS `pkg-config --cflags libosso glib-2.0 gthread-2.0`"
559 LDOPTS
="$LDOPTS `pkg-config --libs libosso glib-2.0 gthread-2.0`"
561 # libhal support: Battery monitoring
562 GCCOPTS
="$GCCOPTS `pkg-config --cflags hal`"
563 LDOPTS
="$LDOPTS `pkg-config --libs hal`"
565 GCCOPTS
="$GCCOPTS -O2 -fno-strict-aliasing"
566 if [ $is_n900 -eq 1 ]; then
567 # gstreamer support: Audio output.
568 GCCOPTS
="$GCCOPTS `pkg-config --cflags gstreamer-base-0.10 gstreamer-plugins-base-0.10 gstreamer-app-0.10`"
569 LDOPTS
="$LDOPTS `pkg-config --libs gstreamer-base-0.10 gstreamer-plugins-base-0.10 gstreamer-app-0.10`"
571 # N900 specific: libplayback support
572 GCCOPTS
="$GCCOPTS `pkg-config --cflags libplayback-1`"
573 LDOPTS
="$LDOPTS `pkg-config --libs libplayback-1`"
575 # N900 specific: Enable ARMv7 NEON support
576 if sb-conf show
-A |
grep -q -i arm
; then
577 echo "Detected ARM target"
578 GCCOPTS
="$GCCOPTS -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp"
579 extradefines
="$extradefines -DMAEMO_ARM_BUILD"
581 echo "Detected x86 target"
584 # N8xx specific: Enable armv5te instructions
585 if sb-conf show
-A |
grep -q -i arm
; then
586 echo "Detected ARM target"
587 GCCOPTS
="$GCCOPTS -mcpu=arm1136jf-s -mfloat-abi=softfp -mfpu=vfp"
588 extradefines
="$extradefines -DMAEMO_ARM_BUILD"
590 echo "Detected x86 target"
596 # Note: The new "Ivanovic" pandora toolchain is not able to compile rockbox.
597 # You have to use the sebt3 toolchain:
598 # http://www.gp32x.com/board/index.php?/topic/58490-yactfeau/
600 PNDSDK
="/usr/local/angstrom/arm"
601 if [ ! -x $PNDSDK/bin
/arm-angstrom-linux-gnueabi-gcc
]; then
602 echo "Pandora SDK gcc not found in $PNDSDK/bin/arm-angstrom-linux-gnueabi-gcc"
606 PATH
=$PNDSDK/bin
:$PATH:$PNDSDK/arm-angstrom-linux-gnueabi
/usr
/bin
607 PKG_CONFIG_PATH
=$PNDSDK/arm-angstrom-linux-gnueabi
/usr
/lib
/pkgconfig
608 LDOPTS
="-L$PNDSDK/arm-angstrom-linux-gnueabi/usr/lib -Wl,-rpath,$PNDSDK/arm-angstrom-linux-gnueabi/usr/lib $LDOPTS"
609 PKG_CONFIG
="pkg-config"
611 GCCOPTS
=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib// -e s/-Wundef//`
612 GCCOPTS
="$GCCOPTS -fno-builtin -g -I\$(SIMDIR)"
614 LDOPTS
="-lm -ldl $LDOPTS"
615 GLOBAL_LDOPTS
="$GLOBAL_LDOPTS -Wl,-z,defs"
616 SHARED_LDFLAG
="-shared"
619 thread_support
="HAVE_SIGALTSTACK_THREADS"
622 GCCOPTS
="$GCCOPTS -I$PNDSDK/arm-angstrom-linux-gnueabi/usr/include"
626 prefixtools
"$PNDSDK/bin/arm-angstrom-linux-gnueabi-"
629 GCCOPTS
="$GCCOPTS `$PNDSDK/bin/sdl-config --cflags`"
630 LDOPTS
="$LDOPTS `$PNDSDK/bin/sdl-config --libs`"
633 GCCOPTS
="$GCCOPTS -O2 -fno-strict-aliasing"
634 GCCOPTS
="$GCCOPTS -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp"
635 GCCOPTS
="$GCCOPTS -ffast-math -fsingle-precision-constant"
640 GCCOPTS
=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib//`
642 LDOPTS
="-lasound -lpthread -lm -ldl -lrt $LDOPTS"
643 GLOBAL_LDOPTS
="$GLOBAL_LDOPTS -Wl,-z,defs"
644 SHARED_LDFLAG
="-shared"
650 GCCOPTS
="$GCCOPTS -D_GNU_SOURCE=1 -U_FORTIFY_SOURCE -D_REENTRANT"
654 prefixtools
"arm-ypr0-linux-gnueabi-"
658 if [ -z "$ANDROID_SDK_PATH" ]; then
659 echo "ERROR: You need the Android SDK installed and have the ANDROID_SDK_PATH"
660 echo "environment variable point to the root directory of the Android SDK."
663 if [ -z "$ANDROID_NDK_PATH" ]; then
664 echo "ERROR: You need the Android NDK installed (r5 or higher) and have the ANDROID_NDK_PATH"
665 echo "environment variable point to the root directory of the Android NDK."
668 buildhost
=$
(uname |
tr "[:upper:]" "[:lower:]")
669 GCCOPTS
=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib// -e s/-Wundef//`
670 LDOPTS
="$LDOPTS -Wl,-soname,librockbox.so -shared -ldl -llog"
671 GLOBAL_LDOPTS
="-Wl,-z,defs -Wl,-z,noexecstack -shared"
672 ANDROID_ARCH
=$1 # for android.make too
673 # arch dependant stuff
674 case $ANDROID_ARCH in
678 gcctarget
="arm-linux-androideabi-"
679 # sigaltstack is not available in pre-android-9, however asm
680 # threads work fine so far
681 thread_support
="ASSEMBLER_THREADS"
682 GCCOPTS
="$GCCOPTS -march=armv5te -mtune=xscale -msoft-float -fomit-frame-pointer \
683 --sysroot=$ANDROID_NDK_PATH/platforms/android-5/arch-arm"
684 LDOPTS
="$LDOPTS --sysroot=$ANDROID_NDK_PATH/platforms/android-5/arch-arm"
689 gcctarget
="mipsel-linux-android-"
690 thread_support
="HAVE_SIGALTSTACK_THREADS"
691 GCCOPTS
="$GCCOPTS -march=mips32 -mtune=r4600 -mno-mips16 -mno-long-calls -fomit-frame-pointer \
692 --sysroot=$ANDROID_NDK_PATH/platforms/android-14/arch-mips -fPIC"
693 LDOPTS
="$LDOPTS --sysroot=$ANDROID_NDK_PATH/platforms/android-14/arch-mips"
698 gcctarget
="i686-linux-android-"
699 gccdir
=x86-
$gccchoice
700 thread_support
="HAVE_SIGALTSTACK_THREADS"
701 GCCOPTS
="$GCCOPTS -Wa,--noexecstack -ffunction-sections -fomit-frame-pointer\
702 --sysroot=$ANDROID_NDK_PATH/platforms/android-9/arch-x86"
703 LDOPTS
="$LDOPTS --sysroot=$ANDROID_NDK_PATH/platforms/android-9/arch-x86"
706 echo "ERROR: androidcc(): Unknown target architecture"
710 echo "Application environment deemed $endian endian"
711 if [ -z "$gccdir" ]; then
712 gccdir
=$gcctarget$gccchoice
714 gccprefix
=$ANDROID_NDK_PATH/toolchains
/$gccdir/prebuilt
/$buildhost-x86
715 PATH
=$PATH:$gccprefix/bin
716 prefixtools
$gcctarget
720 atype
=`echo "$1" | cut -c 2-`
721 ##################################################################
722 # Prompt for specific developer options
724 if [ "$atype" ]; then
729 printf "Enter your developer options (press only enter when done)\n\
730 (D)EBUG, (L)ogf, Boot(c)hart, (S)imulator, (P)rofiling, (V)oice, (W)in32 crosscompile,\n\
731 (T)est plugins, S(m)all C lib, Logf to Ser(i)al port:"
732 if [ "$modelname" = "archosplayer" ]; then
733 printf ", Use (A)TA poweroff"
735 if [ "$t_model" = "ondio" ]; then
736 printf ", (B)acklight MOD"
738 if [ "$modelname" = "iaudiom5" ]; then
739 printf ", (F)M radio MOD"
741 if [ "$modelname" = "iriverh120" ]; then
748 while [ $cont = "1" ]; do
750 if [ "$interact" ]; then
753 option
=`echo "$atype" | cut -c 1`
758 if [ "yes" = "$profile" ]; then
759 echo "Debug is incompatible with profiling"
761 echo "DEBUG build enabled"
766 echo "logf() support enabled"
770 echo "Using Rockbox' small C library"
771 extradefines
="$extradefines -DHAVE_ROCKBOX_C_LIBRARY"
774 echo "Including test plugins"
775 extradefines
="$extradefines -DHAVE_TEST_PLUGINS"
778 echo "bootchart enabled (logf also enabled)"
783 echo "Logf to serial port enabled (logf also enabled)"
788 echo "Simulator build enabled"
792 if [ "yes" = "$use_debug" ]; then
793 echo "Profiling is incompatible with debug"
795 echo "Profiling support is enabled"
800 echo "Voice build selected"
804 if [ "$modelname" = "archosplayer" ]; then
805 have_ata_poweroff
="#define HAVE_ATA_POWER_OFF"
806 echo "ATA power off enabled"
810 if [ "$t_model" = "ondio" ]; then
811 have_backlight
="#define HAVE_BACKLIGHT"
812 echo "Backlight functions enabled"
816 if [ "$modelname" = "iaudiom5" ]; then
817 have_fmradio_in
="#define HAVE_FMRADIO_IN"
818 echo "FM radio functions enabled"
822 if [ "$modelname" = "iriverh120" ]; then
823 config_rtc
="#define CONFIG_RTC RTC_DS1339_DS3231"
824 have_rtc_alarm
="#define HAVE_RTC_ALARM"
825 echo "RTC functions enabled (DS1339/DS3231)"
829 echo "Enabling Windows 32 cross-compiling"
830 win32crosscompile
="yes"
832 "") # Match enter press when finished with advanced options
836 echo "[ERROR] Option $option unsupported"
839 if [ "$interact" ]; then
840 btype
="$btype$option"
842 atype
=`echo "$atype" | cut -c 2-`
843 [ "$atype" ] || cont
=0
848 if [ "yes" = "$voice" ]; then
849 # Ask about languages to build
851 voicelanguage
=`whichlang`
852 echo "Voice language set to $voicelanguage"
854 # Configure encoder and TTS engine for each language
855 for thislang
in `echo $voicelanguage | sed 's/,/ /g'`; do
856 voiceconfig
"$thislang"
859 if [ "yes" = "$use_debug" ]; then
861 GCCOPTS
="$GCCOPTS -g -DDEBUG"
863 if [ "yes" = "$logf" ]; then
864 use_logf
="#define ROCKBOX_HAS_LOGF 1"
866 if [ "yes" = "$logf_serial" ]; then
867 use_logf_serial
="#define LOGF_SERIAL 1"
869 if [ "yes" = "$bootchart" ]; then
870 use_bootchart
="#define DO_BOOTCHART 1"
872 if [ "yes" = "$simulator" ]; then
874 extradefines
="$extradefines -DSIMULATOR"
878 if [ "yes" = "$profile" ]; then
879 extradefines
="$extradefines -DRB_PROFILE"
880 PROFILE_OPTS
="-finstrument-functions"
884 # Configure voice settings
887 if [ ! "$ARG_TTS" ]; then
888 echo "Building $thislang voice for $modelname. Select options"
892 if [ -n "`findtool flite`" ]; then
896 DEFAULT_TTS_OPTS
=$FLITE_OPTS
897 DEFAULT_NOISEFLOOR
="500"
900 if [ -n "`findtool espeak`" ]; then
904 DEFAULT_TTS_OPTS
=$ESPEAK_OPTS
905 DEFAULT_NOISEFLOOR
="500"
908 if [ -n "`findtool festival`" ]; then
909 FESTIVAL
="(F)estival "
912 FESTIVAL_OPTS
="--language italian"
915 FESTIVAL_OPTS
="--language spanish"
918 FESTIVAL_OPTS
="--language finnish"
921 FESTIVAL_OPTS
="--language czech"
927 DEFAULT_TTS
="festival"
928 DEFAULT_TTS_OPTS
=$FESTIVAL_OPTS
929 DEFAULT_NOISEFLOOR
="500"
932 if [ -n "`findtool swift`" ]; then
936 DEFAULT_TTS_OPTS
=$SWIFT_OPTS
937 DEFAULT_NOISEFLOOR
="500"
940 # Allow SAPI if Windows is in use
941 if [ -n "`findtool winver`" ]; then
945 DEFAULT_TTS_OPTS
=$SAPI_OPTS
946 DEFAULT_NOISEFLOOR
="500"
950 if [ "$FESTIVAL" = "$FLITE" ] && [ "$FLITE" = "$ESPEAK" ] && [ "$ESPEAK" = "$SAPI" ] && [ "$SAPI" = "$SWIFT" ]; then
951 echo "You need Festival, eSpeak or Flite in your path, or SAPI available to build voice files"
955 if [ "$ARG_TTS" ]; then
958 echo "TTS engine to use: ${FLITE}${FESTIVAL}${ESPEAK}${SAPI}${SWIFT}(${DEFAULT_CHOICE})?"
960 if [ -z "$option" ]; then option
=${DEFAULT_CHOICE}; fi
961 advopts
="$advopts --tts=$option"
966 NOISEFLOOR
="500" # TODO: check this value
972 TTS_OPTS
=$ESPEAK_OPTS
975 TTS_ENGINE
="festival"
977 TTS_OPTS
=$FESTIVAL_OPTS
990 TTS_ENGINE
=$DEFAULT_TTS
991 TTS_OPTS
=$DEFAULT_TTS_OPTS
992 NOISEFLOOR
=$DEFAULT_NOISEFLOOR
994 echo "Using $TTS_ENGINE for TTS"
996 # Select which voice to use for Festival
997 if [ "$TTS_ENGINE" = "festival" ]; then
998 voicelist
=`echo "(voice.list)"|festival -i 2>/dev/null |tr "\n" " "|sed -e 's/.*festival> (\(.*\)) festival>/\1/'|sort`
999 for voice
in $voicelist; do
1000 TTS_FESTIVAL_VOICE
="$voice" # Default choice
1003 if [ "$ARG_VOICE" ]; then
1007 for voice
in $voicelist; do
1008 printf "%3d. %s\n" "$i" "$voice"
1011 printf "Please select which Festival voice to use (default is $TTS_FESTIVAL_VOICE): "
1015 for voice
in $voicelist; do
1016 if [ "$i" = "$CHOICE" -o "$voice" = "$CHOICE" ]; then
1017 TTS_FESTIVAL_VOICE
="$voice"
1021 advopts
="$advopts --voice=$CHOICE"
1022 echo "Festival voice set to $TTS_FESTIVAL_VOICE"
1023 echo "(voice_$TTS_FESTIVAL_VOICE)" > festival-prolog.scm
1026 # Read custom tts options from command line
1027 if [ "$ARG_TTSOPTS" ]; then
1028 TTS_OPTS
="$ARG_TTSOPTS"
1029 echo "$TTS_ENGINE options set to $TTS_OPTS"
1032 if [ "$swcodec" = "yes" ]; then
1033 ENCODER
="rbspeexenc"
1034 ENC_OPTS
="-q 4 -c 10"
1036 if [ -n "`findtool lame`" ]; then
1038 ENC_OPTS
="--resample 12 -t -m m -h -V 9.999 -S -B 64 --vbr-new"
1040 echo "You need LAME in the system path to build voice files for"
1041 echo "HWCODEC targets."
1046 echo "Using $ENCODER for encoding voice clips"
1048 # Read custom encoder options from command line
1049 if [ "$ARG_ENCOPTS" ]; then
1050 ENC_OPTS
="$ARG_ENCOPTS"
1051 echo "$ENCODER options set to $ENC_OPTS"
1055 if [ -n "`findtool cygpath`" ]; then
1056 TEMPDIR
=`cygpath . -a -w`
1061 # figure out which languages that are around
1062 for file in $rootdir/apps
/lang
/*.lang
; do
1063 clean
=`basename $file .lang`
1064 langs
="$langs $clean"
1067 if [ "$ARG_LANG" ]; then
1070 echo "Select a number for the language to use (default is english)"
1071 # FIXME The multiple-language feature is currently broken
1072 # echo "You may enter a comma-separated list of languages to build"
1075 for one
in $langs; do
1080 advopts
="$advopts --language=$pick"
1086 # Allow the user to pass a comma-separated list of langauges
1087 for thispick
in `echo $pick | sed 's/,/ /g'`; do
1089 for one
in $langs; do
1090 # Accept both the language number and name
1091 if [ "$num" = "$thispick" ] ||
[ "$thispick" = "$one" ]; then
1092 if [ "$output" = "" ]; then
1101 if [ -z "$output" ]; then
1109 echo "Rockbox configure script."
1110 echo "Invoke this in a directory to generate a Makefile to build Rockbox"
1111 echo "Do *NOT* run this within the tools directory!"
1114 Usage: configure [OPTION]...
1116 --target=TARGET Sets the target, TARGET can be either the target ID or
1117 corresponding string. Run without this option to see all
1120 --ram=RAM Sets the RAM for certain targets. Even though any number
1121 is accepted, not every number is correct. The default
1122 value will be applied, if you entered a wrong number
1123 (which depends on the target). Watch the output. Run
1124 without this option if you are not sure which the right
1127 --type=TYPE Sets the build type. Shortcuts are also valid.
1128 Run without this option to see all available types.
1129 Multiple values are allowed and managed in the input
1130 order. So --type=b stands for Bootloader build, while
1131 --type=ab stands for "Backlight MOD" build.
1133 --lcdwidth=X Sets the width of the LCD. Used only for application
1136 --lcdheight=Y Sets the height of the LCD. Used only for application
1139 --language=LANG Set the language used for voice generation (used only if
1142 --tts=ENGINE Set the TTS engine used for voice generation (used only
1145 --voice=VOICE Set voice to use with selected TTS (used only if TYPE is
1148 --ttsopts=OPTS Set TTS engine manual options (used only if TYPE is AV).
1150 --encopts=OPTS Set encoder manual options (used only if ATYPE is AV).
1152 --rbdir=dir Use alternative rockbox directory (default: ${rbdir}).
1153 This is useful for having multiple alternate builds on
1154 your device that you can load with ROLO. However as the
1155 bootloader looks for .rockbox you won't be able to boot
1158 --ccache Enable ccache use (done by default these days)
1159 --no-ccache Disable ccache use
1161 --thumb Build with -mthumb (for ARM builds)
1162 --no-thumb The opposite of --thumb (don't use thumb even for targets
1163 where this is the default
1164 --sdl-threads Force use of SDL threads. They have inferior performance,
1165 but are better debuggable with GDB
1166 --no-sdl-threads Disallow use of SDL threads. This prevents the default
1167 behavior of falling back to them if no native thread
1169 --prefix Target installation directory
1170 --help Shows this message (must not be used with other options)
1188 ARG_PREFIX
="$PREFIX"
1193 --ccache) ARG_CCACHE
=1;;
1194 --no-ccache) ARG_CCACHE
=0;;
1195 --encopts=*) ARG_ENCOPTS
=`echo "$arg" | cut -d = -f 2`;;
1196 --language=*) ARG_LANG
=`echo "$arg" | cut -d = -f 2`;;
1197 --lcdwidth=*) ARG_LCDWIDTH
=`echo "$arg" | cut -d = -f 2`;;
1198 --lcdheight=*) ARG_LCDHEIGHT
=`echo "$arg" | cut -d = -f 2`;;
1199 --ram=*) ARG_RAM
=`echo "$arg" | cut -d = -f 2`;;
1200 --rbdir=*) ARG_RBDIR
=`echo "$arg" | cut -d = -f 2`;;
1201 --target=*) ARG_TARGET
=`echo "$arg" | cut -d = -f 2`;;
1202 --tts=*) ARG_TTS
=`echo "$arg" | cut -d = -f 2`;;
1203 --ttsopts=*) ARG_TTSOPTS
=`echo "$arg" | cut -d = -f 2`;;
1204 --type=*) ARG_TYPE
=`echo "$arg" | cut -d = -f 2`;;
1205 --voice=*) ARG_VOICE
=`echo "$arg" | cut -d = -f 2`;;
1206 --thumb) ARG_ARM_THUMB
=1;;
1207 --no-thumb) ARG_ARM_THUMB
=0;;
1208 --sdl-threads)ARG_THREAD_SUPPORT
=1;;
1210 ARG_THREAD_SUPPORT
=0;;
1211 --prefix=*) ARG_PREFIX
=`echo "$arg" | cut -d = -f 2`;;
1213 *) err
=1; echo "[ERROR] Option '$arg' unsupported";;
1216 [ "$err" ] && exit 1
1220 if [ "$TMPDIR" != "" ]; then
1225 echo Using temporary directory
$tmpdir
1227 if test -r "configure"; then
1228 # this is a check for a configure script in the current directory, it there
1229 # is one, try to figure out if it is this one!
1231 if { grep "^# Jukebox" configure
>/dev
/null
2>&1 ; } then
1232 echo "WEEEEEEEEP. Don't run this configure script within the tools directory."
1233 echo "It will only cause you pain and grief. Instead do this:"
1236 echo " mkdir build-dir"
1237 echo " cd build-dir"
1238 echo " ../tools/configure"
1240 echo "Much happiness will arise from this. Enjoy"
1245 # get our current directory
1248 if { echo $pwd |
grep " "; } then
1249 echo "You're running this script in a path that contains space. The build"
1250 echo "system is unfortunately not clever enough to deal with this. Please"
1251 echo "run the script from a different path, rename the path or fix the build"
1256 if [ -z "$rootdir" ]; then
1257 ##################################################################
1258 # Figure out where the source code root is!
1260 rootdir
=`dirname $0`/..
/
1262 #####################################################################
1263 # Convert the possibly relative directory name to an absolute version
1269 # cd back to the build dir
1274 appsdir
='$(ROOTDIR)/apps'
1275 toolsdir
='$(ROOTDIR)/tools'
1278 ##################################################################
1279 # Figure out target platform
1282 if [ "$ARG_TARGET" ]; then
1283 buildfor
=$ARG_TARGET
1285 echo "Enter target platform:"
1287 ==Archos== ==iriver== ==Apple iPod==
1288 0) Player/Studio 10) H120/H140 20) Color/Photo
1289 1) Recorder 11) H320/H340 21) Nano 1G
1290 2) FM Recorder 12) iHP-100/110/115 22) Video
1291 3) Recorder v2 13) iFP-790 23) 3G
1292 4) Ondio SP 14) H10 20Gb 24) 4G Grayscale
1293 5) Ondio FM 15) H10 5/6Gb 25) Mini 1G
1294 6) AV300 26) Mini 2G
1295 ==Toshiba== 27) 1G, 2G
1296 ==Cowon/iAudio== 40) Gigabeat F/X 28) Nano 2G
1297 30) X5/X5V/X5L 41) Gigabeat S 29) Classic/6G
1299 32) 7 ==Olympus= ==SanDisk==
1300 33) D2 70) M:Robe 500 50) Sansa e200
1301 34) M3/M3L 71) M:Robe 100 51) Sansa e200R
1303 ==Creative== ==Philips== 53) Sansa m200
1304 90) Zen Vision:M 30GB 100) GoGear SA9200 54) Sansa c100
1305 91) Zen Vision:M 60GB 101) GoGear HDD1630/ 55) Sansa Clip
1306 92) Zen Vision HDD1830 56) Sansa e200v2
1307 93) Zen X-Fi2 102) GoGear HDD6330 57) Sansa m200v4
1308 94) Zen X-Fi3 58) Sansa Fuze
1309 ==Meizu== 59) Sansa c200v2
1310 ==Onda== 110) M6SL 60) Sansa Clipv2
1311 120) VX747 111) M6SP 61) Sansa View
1312 121) VX767 112) M3 62) Sansa Clip+
1313 122) VX747+ 63) Sansa Fuze v2
1314 123) VX777 ==Tatung== 64) Sansa Fuze+
1315 150) Elio TPJ-1022 65) Sansa Clip Zip
1316 ==Samsung== 66) Sansa Connect
1317 140) YH-820 ==Packard Bell==
1318 141) YH-920 160) Vibe 500 ==Logik==
1319 142) YH-925 80) DAX 1GB MP3/DAB
1321 170) HD200 ==Lyre project==
1322 ==Application== 171) HD300 130) Lyre proto 1
1323 200) SDL 131) Mini2440
1324 201) Android ==ROCKCHIP==
1325 202) Nokia N8xx 180) rk27xx generic ==HiFiMAN==
1326 203) Nokia N900 190) HM-60x
1327 204) Pandora 191) HM-801
1336 # Set of tools built for all target platforms:
1337 toolset
="rdf2binary convbdf codepages"
1339 # Toolsets for some target families:
1340 archosbitmaptools
="$toolset scramble descramble sh2d uclpack bmp2rb"
1341 iriverbitmaptools
="$toolset scramble descramble mkboot bmp2rb"
1342 iaudiobitmaptools
="$toolset scramble descramble mkboot bmp2rb"
1343 ipodbitmaptools
="$toolset scramble bmp2rb"
1344 gigabeatbitmaptools
="$toolset scramble descramble bmp2rb"
1345 tccbitmaptools
="$toolset scramble bmp2rb"
1346 # generic is used by IFP, Meizu and Onda
1347 genericbitmaptools
="$toolset bmp2rb"
1348 # scramble is used by all other targets
1349 scramblebitmaptools
="$genericbitmaptools scramble"
1352 # ---- For each target ----
1355 # target_id: a unique number identifying this target, IS NOT the menu number.
1356 # Just use the currently highest number+1 when you add a new
1358 # modelname: short model name used all over to identify this target
1359 # memory: number of megabytes of RAM this target has. If the amount can
1360 # be selected by the size prompt, let memory be unset here
1361 # target: -Ddefine passed to the build commands to make the correct
1362 # config-*.h file get included etc
1363 # tool: the tool that takes a plain binary and converts that into a
1364 # working "firmware" file for your target
1365 # output: the final output file name
1366 # boottool: the tool that takes a plain binary and generates a bootloader
1367 # file for your target (or blank to use $tool)
1368 # bootoutput:the final output file name for the bootloader (or blank to use
1370 # appextra: passed to the APPEXTRA variable in the Makefiles.
1371 # TODO: add proper explanation
1372 # archosrom: used only for Archos targets that build a special flashable .ucl
1374 # flash: name of output for flashing, for targets where there's a special
1375 # file output for this.
1376 # plugins: set to 'yes' to build the plugins. Early development builds can
1377 # set this to no in the early stages to have an easier life for a
1379 # swcodec: set 'yes' on swcodec targets
1380 # toolset: lists what particular tools in the tools/ directory that this
1381 # target needs to have built prior to building Rockbox
1384 # *cc: sets up gcc and compiler options for your target builds. Note
1385 # that if you select a simulator build, the compiler selection is
1386 # overridden later in the script.
1392 modelname
="archosplayer"
1393 target
="ARCHOS_PLAYER"
1395 tool
="$rootdir/tools/scramble"
1397 appextra
="player:gui"
1398 archosrom
="$pwd/rombox.ucl"
1399 flash
="$pwd/rockbox.ucl"
1403 # toolset is the tools within the tools directory that we build for
1404 # this particular target.
1405 toolset
="$toolset scramble descramble sh2d player_unifont uclpack"
1407 # Note: the convbdf is present in the toolset just because: 1) the
1408 # firmware/Makefile assumes it is present always, and 2) we will need it when we
1409 # build the player simulator
1412 t_manufacturer
="archos"
1418 modelname
="archosrecorder"
1419 target
="ARCHOS_RECORDER"
1421 tool
="$rootdir/tools/scramble"
1422 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1423 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1425 appextra
="recorder:gui:radio"
1426 #archosrom="$pwd/rombox.ucl"
1427 flash
="$pwd/rockbox.ucl"
1430 # toolset is the tools within the tools directory that we build for
1431 # this particular target.
1432 toolset
=$archosbitmaptools
1434 t_manufacturer
="archos"
1440 modelname
="archosfmrecorder"
1441 target
="ARCHOS_FMRECORDER"
1443 tool
="$rootdir/tools/scramble -fm"
1444 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1445 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1447 appextra
="recorder:gui:radio"
1448 #archosrom="$pwd/rombox.ucl"
1449 flash
="$pwd/rockbox.ucl"
1452 # toolset is the tools within the tools directory that we build for
1453 # this particular target.
1454 toolset
=$archosbitmaptools
1456 t_manufacturer
="archos"
1462 modelname
="archosrecorderv2"
1463 target
="ARCHOS_RECORDERV2"
1465 tool
="$rootdir/tools/scramble -v2"
1466 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1467 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1469 appextra
="recorder:gui:radio"
1470 #archosrom="$pwd/rombox.ucl"
1471 flash
="$pwd/rockbox.ucl"
1474 # toolset is the tools within the tools directory that we build for
1475 # this particular target.
1476 toolset
=$archosbitmaptools
1478 t_manufacturer
="archos"
1484 modelname
="archosondiosp"
1485 target
="ARCHOS_ONDIOSP"
1487 tool
="$rootdir/tools/scramble -osp"
1488 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1489 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1491 appextra
="recorder:gui:radio"
1492 #archosrom="$pwd/rombox.ucl"
1493 flash
="$pwd/rockbox.ucl"
1496 # toolset is the tools within the tools directory that we build for
1497 # this particular target.
1498 toolset
=$archosbitmaptools
1500 t_manufacturer
="archos"
1506 modelname
="archosondiofm"
1507 target
="ARCHOS_ONDIOFM"
1509 tool
="$rootdir/tools/scramble -ofm"
1510 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1511 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1513 appextra
="recorder:gui:radio"
1514 #archosrom="$pwd/rombox.ucl"
1515 flash
="$pwd/rockbox.ucl"
1518 toolset
=$archosbitmaptools
1520 t_manufacturer
="archos"
1526 modelname
="archosav300"
1527 target
="ARCHOS_AV300"
1530 tool
="$rootdir/tools/scramble -mm=C"
1531 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1532 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1534 appextra
="recorder:gui:radio"
1537 # toolset is the tools within the tools directory that we build for
1538 # this particular target.
1539 toolset
="$toolset scramble descramble bmp2rb"
1540 # architecture, manufacturer and model for the target-tree build
1542 t_manufacturer
="archos"
1548 modelname
="iriverh120"
1549 target
="IRIVER_H120"
1552 tool
="$rootdir/tools/scramble -add=h120"
1553 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1554 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
1555 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1556 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1557 output
="rockbox.iriver"
1558 bootoutput
="bootloader.iriver"
1559 appextra
="recorder:gui:radio"
1560 flash
="$pwd/rombox.iriver"
1563 # toolset is the tools within the tools directory that we build for
1564 # this particular target.
1565 toolset
=$iriverbitmaptools
1567 t_manufacturer
="iriver"
1573 modelname
="iriverh300"
1574 target
="IRIVER_H300"
1577 tool
="$rootdir/tools/scramble -add=h300"
1578 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1579 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1580 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1581 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1582 output
="rockbox.iriver"
1583 appextra
="recorder:gui:radio"
1586 # toolset is the tools within the tools directory that we build for
1587 # this particular target.
1588 toolset
=$iriverbitmaptools
1590 t_manufacturer
="iriver"
1596 modelname
="iriverh100"
1597 target
="IRIVER_H100"
1600 tool
="$rootdir/tools/scramble -add=h100"
1601 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1602 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
1603 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1604 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1605 output
="rockbox.iriver"
1606 bootoutput
="bootloader.iriver"
1607 appextra
="recorder:gui:radio"
1608 flash
="$pwd/rombox.iriver"
1611 # toolset is the tools within the tools directory that we build for
1612 # this particular target.
1613 toolset
=$iriverbitmaptools
1615 t_manufacturer
="iriver"
1621 modelname
="iriverifp7xx"
1622 target
="IRIVER_IFP7XX"
1626 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1627 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1628 output
="rockbox.wma"
1629 appextra
="recorder:gui:radio"
1632 # toolset is the tools within the tools directory that we build for
1633 # this particular target.
1634 toolset
=$genericbitmaptools
1636 t_manufacturer
="pnx0101"
1637 t_model
="iriver-ifp7xx"
1642 modelname
="iriverh10"
1646 tool
="$rootdir/tools/scramble -mi4v3 -model=h10 -type=RBOS"
1647 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1648 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1649 output
="rockbox.mi4"
1650 appextra
="recorder:gui:radio"
1653 boottool
="$rootdir/tools/scramble -mi4v3 -model=h10 -type=RBBL"
1654 bootoutput
="H10_20GC.mi4"
1655 # toolset is the tools within the tools directory that we build for
1656 # this particular target.
1657 toolset
=$scramblebitmaptools
1658 # architecture, manufacturer and model for the target-tree build
1661 t_manufacturer
="iriver"
1667 modelname
="iriverh10_5gb"
1668 target
="IRIVER_H10_5GB"
1671 tool
="$rootdir/tools/scramble -mi4v2 -model=h105 -type=RBOS"
1672 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1673 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1674 output
="rockbox.mi4"
1675 appextra
="recorder:gui:radio"
1678 boottool
="$rootdir/tools/scramble -mi4v2 -model=h105 -type=RBBL"
1679 bootoutput
="H10.mi4"
1680 # toolset is the tools within the tools directory that we build for
1681 # this particular target.
1682 toolset
=$scramblebitmaptools
1683 # architecture, manufacturer and model for the target-tree build
1686 t_manufacturer
="iriver"
1692 modelname
="ipodcolor"
1696 tool
="$rootdir/tools/scramble -add=ipco"
1697 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1698 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1699 output
="rockbox.ipod"
1700 appextra
="recorder:gui:radio"
1703 bootoutput
="bootloader-$modelname.ipod"
1704 # toolset is the tools within the tools directory that we build for
1705 # this particular target.
1706 toolset
=$ipodbitmaptools
1707 # architecture, manufacturer and model for the target-tree build
1710 t_manufacturer
="ipod"
1716 modelname
="ipodnano1g"
1720 tool
="$rootdir/tools/scramble -add=nano"
1721 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1722 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1723 output
="rockbox.ipod"
1724 appextra
="recorder:gui:radio"
1727 bootoutput
="bootloader-$modelname.ipod"
1728 # toolset is the tools within the tools directory that we build for
1729 # this particular target.
1730 toolset
=$ipodbitmaptools
1731 # architecture, manufacturer and model for the target-tree build
1734 t_manufacturer
="ipod"
1740 modelname
="ipodvideo"
1742 memory
=64 # always. This is reduced at runtime if needed
1744 tool
="$rootdir/tools/scramble -add=ipvd"
1745 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1746 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1747 output
="rockbox.ipod"
1748 appextra
="recorder:gui:radio"
1751 bootoutput
="bootloader-$modelname.ipod"
1752 # toolset is the tools within the tools directory that we build for
1753 # this particular target.
1754 toolset
=$ipodbitmaptools
1755 # architecture, manufacturer and model for the target-tree build
1758 t_manufacturer
="ipod"
1768 tool
="$rootdir/tools/scramble -add=ip3g"
1769 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1770 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1771 output
="rockbox.ipod"
1772 appextra
="recorder:gui:radio"
1775 bootoutput
="bootloader-$modelname.ipod"
1776 # toolset is the tools within the tools directory that we build for
1777 # this particular target.
1778 toolset
=$ipodbitmaptools
1779 # architecture, manufacturer and model for the target-tree build
1782 t_manufacturer
="ipod"
1792 tool
="$rootdir/tools/scramble -add=ip4g"
1793 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1794 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1795 output
="rockbox.ipod"
1796 appextra
="recorder:gui:radio"
1799 bootoutput
="bootloader-$modelname.ipod"
1800 # toolset is the tools within the tools directory that we build for
1801 # this particular target.
1802 toolset
=$ipodbitmaptools
1803 # architecture, manufacturer and model for the target-tree build
1806 t_manufacturer
="ipod"
1812 modelname
="ipodmini1g"
1816 tool
="$rootdir/tools/scramble -add=mini"
1817 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1818 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1819 output
="rockbox.ipod"
1820 appextra
="recorder:gui:radio"
1823 bootoutput
="bootloader-$modelname.ipod"
1824 # toolset is the tools within the tools directory that we build for
1825 # this particular target.
1826 toolset
=$ipodbitmaptools
1827 # architecture, manufacturer and model for the target-tree build
1830 t_manufacturer
="ipod"
1836 modelname
="ipodmini2g"
1837 target
="IPOD_MINI2G"
1840 tool
="$rootdir/tools/scramble -add=mn2g"
1841 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1842 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1843 output
="rockbox.ipod"
1844 appextra
="recorder:gui:radio"
1847 bootoutput
="bootloader-$modelname.ipod"
1848 # toolset is the tools within the tools directory that we build for
1849 # this particular target.
1850 toolset
=$ipodbitmaptools
1851 # architecture, manufacturer and model for the target-tree build
1854 t_manufacturer
="ipod"
1860 modelname
="ipod1g2g"
1864 tool
="$rootdir/tools/scramble -add=1g2g"
1865 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1866 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1867 output
="rockbox.ipod"
1868 appextra
="recorder:gui:radio"
1871 bootoutput
="bootloader-$modelname.ipod"
1872 # toolset is the tools within the tools directory that we build for
1873 # this particular target.
1874 toolset
=$ipodbitmaptools
1875 # architecture, manufacturer and model for the target-tree build
1878 t_manufacturer
="ipod"
1884 modelname
="ipodnano2g"
1885 target
="IPOD_NANO2G"
1888 tool
="$rootdir/tools/scramble -add=nn2g"
1889 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1890 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1891 output
="rockbox.ipod"
1892 appextra
="recorder:gui:radio"
1895 bootoutput
="bootloader-$modelname.ipod"
1896 # toolset is the tools within the tools directory that we build for
1897 # this particular target.
1898 toolset
=$ipodbitmaptools
1899 # architecture, manufacturer and model for the target-tree build
1901 t_manufacturer
="s5l8700"
1902 t_model
="ipodnano2g"
1911 tool
="$rootdir/tools/scramble -add=ip6g"
1912 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1913 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1914 output
="rockbox.ipod"
1915 appextra
="recorder:gui:radio"
1918 bootoutput
="bootloader-$modelname.ipod"
1919 # toolset is the tools within the tools directory that we build for
1920 # this particular target.
1921 toolset
=$ipodbitmaptools
1922 # architecture, manufacturer and model for the target-tree build
1924 t_manufacturer
="s5l8702"
1930 modelname
="iaudiox5"
1934 tool
="$rootdir/tools/scramble -add=iax5"
1935 boottool
="$rootdir/tools/scramble -iaudiox5"
1936 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1937 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1938 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1939 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 7"
1940 output
="rockbox.iaudio"
1941 bootoutput
="x5_fw.bin"
1942 appextra
="recorder:gui:radio"
1945 # toolset is the tools within the tools directory that we build for
1946 # this particular target.
1947 toolset
="$iaudiobitmaptools"
1948 # architecture, manufacturer and model for the target-tree build
1950 t_manufacturer
="iaudio"
1956 modelname
="iaudiom5"
1960 tool
="$rootdir/tools/scramble -add=iam5"
1961 boottool
="$rootdir/tools/scramble -iaudiom5"
1962 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1963 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
1964 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1965 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 7"
1966 output
="rockbox.iaudio"
1967 bootoutput
="m5_fw.bin"
1968 appextra
="recorder:gui:radio"
1971 # toolset is the tools within the tools directory that we build for
1972 # this particular target.
1973 toolset
="$iaudiobitmaptools"
1974 # architecture, manufacturer and model for the target-tree build
1976 t_manufacturer
="iaudio"
1986 tool
="$rootdir/tools/scramble -add=i7"
1987 boottool
="$rootdir/tools/scramble -tcc=crc"
1988 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1989 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1990 output
="rockbox.iaudio"
1991 appextra
="recorder:gui:radio"
1994 bootoutput
="I7_FW.BIN"
1995 # toolset is the tools within the tools directory that we build for
1996 # this particular target.
1997 toolset
="$tccbitmaptools"
1998 # architecture, manufacturer and model for the target-tree build
2000 t_manufacturer
="tcc77x"
2010 tool
="$rootdir/tools/scramble -add=d2"
2012 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2013 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2015 bootoutput
="bootloader-cowond2.bin"
2016 appextra
="recorder:gui:radio"
2019 toolset
="$tccbitmaptools"
2020 # architecture, manufacturer and model for the target-tree build
2022 t_manufacturer
="tcc780x"
2028 modelname
="iaudiom3"
2032 tool
="$rootdir/tools/scramble -add=iam3"
2033 boottool
="$rootdir/tools/scramble -iaudiom3"
2034 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2035 bmp2rb_native
="$rootdir/tools/bmp2rb -f 7"
2036 output
="rockbox.iaudio"
2037 bootoutput
="cowon_m3.bin"
2038 appextra
="recorder:gui:radio"
2041 # toolset is the tools within the tools directory that we build for
2042 # this particular target.
2043 toolset
="$iaudiobitmaptools"
2044 # architecture, manufacturer and model for the target-tree build
2046 t_manufacturer
="iaudio"
2052 modelname
="gigabeatfx"
2056 tool
="$rootdir/tools/scramble -add=giga"
2057 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2058 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2059 output
="rockbox.gigabeat"
2060 appextra
="recorder:gui:radio"
2063 toolset
=$gigabeatbitmaptools
2064 boottool
="$rootdir/tools/scramble -gigabeat"
2065 bootoutput
="FWIMG01.DAT"
2066 # architecture, manufacturer and model for the target-tree build
2068 t_manufacturer
="s3c2440"
2069 t_model
="gigabeat-fx"
2074 modelname
="gigabeats"
2078 tool
="$rootdir/tools/scramble -add=gigs"
2079 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2080 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2081 output
="rockbox.gigabeat"
2082 appextra
="recorder:gui:radio"
2085 toolset
="$gigabeatbitmaptools"
2086 boottool
="$rootdir/tools/scramble -gigabeats"
2088 # architecture, manufacturer and model for the target-tree build
2090 t_manufacturer
="imx31"
2091 t_model
="gigabeat-s"
2096 modelname
="mrobe500"
2100 tool
="$rootdir/tools/scramble -add=m500"
2101 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2102 bmp2rb_native
="$rootdir/tools/bmp2rb -f 8"
2103 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
2104 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
2105 output
="rockbox.mrobe500"
2106 appextra
="recorder:gui:radio"
2109 toolset
=$gigabeatbitmaptools
2111 bootoutput
="rockbox.mrboot"
2112 # architecture, manufacturer and model for the target-tree build
2114 t_manufacturer
="tms320dm320"
2120 modelname
="mrobe100"
2124 tool
="$rootdir/tools/scramble -mi4v2 -model=m100 -type=RBOS"
2125 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2126 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
2127 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
2128 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
2129 output
="rockbox.mi4"
2130 appextra
="recorder:gui:radio"
2133 boottool
="$rootdir/tools/scramble -mi4v2 -model=m100 -type=RBBL"
2134 bootoutput
="pp5020.mi4"
2135 # toolset is the tools within the tools directory that we build for
2136 # this particular target.
2137 toolset
=$scramblebitmaptools
2138 # architecture, manufacturer and model for the target-tree build
2141 t_manufacturer
="olympus"
2147 modelname
="logikdax"
2151 tool
="$rootdir/tools/scramble -add=ldax"
2152 boottool
="$rootdir/tools/scramble -tcc=crc"
2153 bootoutput
="player.rom"
2154 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2155 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
2156 output
="rockbox.logik"
2157 appextra
="recorder:gui:radio"
2160 # toolset is the tools within the tools directory that we build for
2161 # this particular target.
2162 toolset
=$tccbitmaptools
2163 # architecture, manufacturer and model for the target-tree build
2165 t_manufacturer
="tcc77x"
2171 modelname
="zenvisionm30gb"
2172 target
="CREATIVE_ZVM"
2175 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2176 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2177 tool
="$rootdir/tools/scramble -creative=zvm"
2179 output
="rockbox.zvm"
2180 appextra
="recorder:gui:radio"
2183 toolset
=$ipodbitmaptools
2184 boottool
="$rootdir/tools/scramble -creative=zvm -no-ciff"
2185 bootoutput
="rockbox.zvmboot"
2186 # architecture, manufacturer and model for the target-tree build
2188 t_manufacturer
="tms320dm320"
2189 t_model
="creative-zvm"
2194 modelname
="zenvisionm60gb"
2195 target
="CREATIVE_ZVM60GB"
2198 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2199 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2200 tool
="$rootdir/tools/scramble -creative=zvm60 -no-ciff"
2202 output
="rockbox.zvm60"
2203 appextra
="recorder:gui:radio"
2206 toolset
=$ipodbitmaptools
2207 boottool
="$rootdir/tools/scramble -creative=zvm60"
2208 bootoutput
="rockbox.zvm60boot"
2209 # architecture, manufacturer and model for the target-tree build
2211 t_manufacturer
="tms320dm320"
2212 t_model
="creative-zvm"
2217 modelname
="zenvision"
2218 target
="CREATIVE_ZV"
2221 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2222 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2223 tool
="$rootdir/tools/scramble -creative=zenvision -no-ciff"
2226 appextra
="recorder:gui:radio"
2229 toolset
=$ipodbitmaptools
2230 boottool
="$rootdir/tools/scramble -creative=zenvision"
2231 bootoutput
="rockbox.zvboot"
2232 # architecture, manufacturer and model for the target-tree build
2234 t_manufacturer
="tms320dm320"
2235 t_model
="creative-zvm"
2240 modelname
="creativezenxfi2"
2241 target
="CREATIVE_ZENXFI2"
2243 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2244 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2245 tool
="$rootdir/tools/scramble -add=zxf2"
2246 output
="rockbox.creative"
2247 bootoutput
="bootloader-zenxfi2.creative"
2248 appextra
="gui:recorder:radio"
2251 toolset
=$scramblebitmaptools
2253 t_manufacturer
="imx233"
2254 t_model
="creative-zenxfi2"
2260 modelname
="creativezenxfi3"
2261 target
="CREATIVE_ZENXFI3"
2263 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2264 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2265 tool
="$rootdir/tools/scramble -add=zxf3"
2266 output
="rockbox.creative"
2267 bootoutput
="bootloader-zenxfi3.creative"
2268 appextra
="gui:recorder:radio"
2271 toolset
=$scramblebitmaptools
2273 t_manufacturer
="imx233"
2274 t_model
="creative-zenxfi3"
2280 modelname
="sansae200"
2282 memory
=32 # supposedly
2284 tool
="$rootdir/tools/scramble -mi4v3 -model=e200 -type=RBOS"
2285 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2286 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2287 output
="rockbox.mi4"
2288 appextra
="recorder:gui:radio"
2291 boottool
="$rootdir/tools/scramble -mi4v3 -model=e200 -type=RBBL"
2292 bootoutput
="PP5022.mi4"
2293 # toolset is the tools within the tools directory that we build for
2294 # this particular target.
2295 toolset
=$scramblebitmaptools
2296 # architecture, manufacturer and model for the target-tree build
2299 t_manufacturer
="sandisk"
2300 t_model
="sansa-e200"
2304 # the e200R model is pretty much identical to the e200, it only has a
2305 # different option to the scramble tool when building a bootloader and
2306 # makes the bootloader output file name in all lower case.
2308 modelname
="sansae200r"
2310 memory
=32 # supposedly
2312 tool
="$rootdir/tools/scramble -mi4v3 -model=e20r -type=RBOS"
2313 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2314 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2315 output
="rockbox.mi4"
2316 appextra
="recorder:gui:radio"
2319 boottool
="$rootdir/tools/scramble -mi4r -model=e20r -type=RBBL"
2320 bootoutput
="pp5022.mi4"
2321 # toolset is the tools within the tools directory that we build for
2322 # this particular target.
2323 toolset
=$scramblebitmaptools
2324 # architecture, manufacturer and model for the target-tree build
2327 t_manufacturer
="sandisk"
2328 t_model
="sansa-e200"
2333 modelname
="sansac200"
2335 memory
=32 # supposedly
2337 tool
="$rootdir/tools/scramble -mi4v3 -model=c200 -type=RBOS"
2338 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2339 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2340 output
="rockbox.mi4"
2341 appextra
="recorder:gui:radio"
2344 boottool
="$rootdir/tools/scramble -mi4v3 -model=c200 -type=RBBL"
2345 bootoutput
="firmware.mi4"
2346 # toolset is the tools within the tools directory that we build for
2347 # this particular target.
2348 toolset
=$scramblebitmaptools
2349 # architecture, manufacturer and model for the target-tree build
2352 t_manufacturer
="sandisk"
2353 t_model
="sansa-c200"
2358 modelname
="sansam200"
2362 tool
="$rootdir/tools/scramble -add=m200"
2363 boottool
="$rootdir/tools/scramble -tcc=crc"
2364 bootoutput
="player.rom"
2365 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2366 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
2367 output
="rockbox.m200"
2368 appextra
="recorder:gui:radio"
2371 # toolset is the tools within the tools directory that we build for
2372 # this particular target.
2373 toolset
=$tccbitmaptools
2374 # architecture, manufacturer and model for the target-tree build
2376 t_manufacturer
="tcc77x"
2382 modelname
="sansac100"
2386 tool
="$rootdir/tools/scramble -add=c100"
2387 boottool
="$rootdir/tools/scramble -tcc=crc"
2388 bootoutput
="player.rom"
2389 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2390 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2391 output
="rockbox.c100"
2392 appextra
="recorder:gui:radio"
2395 # toolset is the tools within the tools directory that we build for
2396 # this particular target.
2397 toolset
=$tccbitmaptools
2398 # architecture, manufacturer and model for the target-tree build
2400 t_manufacturer
="tcc77x"
2406 modelname
="sansaclip"
2409 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2410 bmp2rb_native
="$bmp2rb_mono"
2411 tool
="$rootdir/tools/scramble -add=clip"
2412 output
="rockbox.sansa"
2413 bootoutput
="bootloader-clip.sansa"
2414 appextra
="recorder:gui:radio"
2417 toolset
=$scramblebitmaptools
2419 t_manufacturer
="as3525"
2420 t_model
="sansa-clip"
2421 if [ "$ARG_ARM_THUMB" != 0 ]; then ARG_ARM_THUMB
=1; fi
2423 GCCOPTS
=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2429 modelname
="sansae200v2"
2430 target
="SANSA_E200V2"
2432 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2433 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2434 tool
="$rootdir/tools/scramble -add=e2v2"
2435 output
="rockbox.sansa"
2436 bootoutput
="bootloader-e200v2.sansa"
2437 appextra
="recorder:gui:radio"
2440 toolset
=$scramblebitmaptools
2442 t_manufacturer
="as3525"
2443 t_model
="sansa-e200v2"
2450 modelname
="sansam200v4"
2451 target
="SANSA_M200V4"
2453 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2454 bmp2rb_native
="$bmp2rb_mono"
2455 tool
="$rootdir/tools/scramble -add=m2v4"
2456 output
="rockbox.sansa"
2457 bootoutput
="bootloader-m200v4.sansa"
2458 appextra
="recorder:gui:radio"
2461 toolset
=$scramblebitmaptools
2463 t_manufacturer
="as3525"
2464 t_model
="sansa-m200v4"
2465 if [ "$ARG_ARM_THUMB" != 0 ]; then ARG_ARM_THUMB
=1; fi
2467 GCCOPTS
=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2473 modelname
="sansafuze"
2476 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2477 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2478 tool
="$rootdir/tools/scramble -add=fuze"
2479 output
="rockbox.sansa"
2480 bootoutput
="bootloader-fuze.sansa"
2481 appextra
="recorder:gui:radio"
2484 toolset
=$scramblebitmaptools
2486 t_manufacturer
="as3525"
2487 t_model
="sansa-fuze"
2494 modelname
="sansac200v2"
2495 target
="SANSA_C200V2"
2496 memory
=2 # as per OF diagnosis mode
2497 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2498 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2499 tool
="$rootdir/tools/scramble -add=c2v2"
2500 output
="rockbox.sansa"
2501 bootoutput
="bootloader-c200v2.sansa"
2502 appextra
="recorder:gui:radio"
2505 # toolset is the tools within the tools directory that we build for
2506 # this particular target.
2507 toolset
=$scramblebitmaptools
2508 # architecture, manufacturer and model for the target-tree build
2510 t_manufacturer
="as3525"
2511 t_model
="sansa-c200v2"
2512 if [ "$ARG_ARM_THUMB" != 0 ]; then ARG_ARM_THUMB
=1; fi
2514 GCCOPTS
=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2519 modelname
="sansaclipv2"
2520 target
="SANSA_CLIPV2"
2522 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2523 bmp2rb_native
="$bmp2rb_mono"
2524 tool
="$rootdir/tools/scramble -add=clv2"
2525 output
="rockbox.sansa"
2526 bootoutput
="bootloader-clipv2.sansa"
2527 appextra
="recorder:gui:radio"
2530 toolset
=$scramblebitmaptools
2532 t_manufacturer
="as3525"
2533 t_model
="sansa-clipv2"
2538 echo "Sansa View is not yet supported!"
2541 modelname
="sansaview"
2545 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2546 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2547 output
="rockbox.mi4"
2551 boottool
="$rootdir/tools/scramble -mi4v3 -model=view -type=RBBL"
2552 bootoutput
="firmware.mi4"
2553 # toolset is the tools within the tools directory that we build for
2554 # this particular target.
2555 toolset
=$scramblebitmaptools
2558 t_manufacturer
="sandisk"
2559 t_model
="sansa-view"
2564 modelname
="sansaclipplus"
2565 target
="SANSA_CLIPPLUS"
2567 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2568 bmp2rb_native
="$bmp2rb_mono"
2569 tool
="$rootdir/tools/scramble -add=cli+"
2570 output
="rockbox.sansa"
2571 bootoutput
="bootloader-clipplus.sansa"
2572 appextra
="recorder:gui:radio"
2575 toolset
=$scramblebitmaptools
2577 t_manufacturer
="as3525"
2578 t_model
="sansa-clipplus"
2584 modelname
="sansafuzev2"
2585 target
="SANSA_FUZEV2"
2587 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2588 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
2589 tool
="$rootdir/tools/scramble -add=fuz2"
2590 output
="rockbox.sansa"
2591 bootoutput
="bootloader-fuzev2.sansa"
2592 appextra
="recorder:gui:radio"
2595 toolset
=$scramblebitmaptools
2597 t_manufacturer
="as3525"
2598 t_model
="sansa-fuzev2"
2604 modelname
="sansafuzeplus"
2605 target
="SANSA_FUZEPLUS"
2607 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2608 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2609 tool
="$rootdir/tools/scramble -add=fuz+"
2610 output
="rockbox.sansa"
2611 bootoutput
="bootloader-fuzeplus.sansa"
2612 appextra
="gui:recorder:radio"
2615 toolset
=$scramblebitmaptools
2617 t_manufacturer
="imx233"
2618 t_model
="sansa-fuzeplus"
2624 modelname
="sansaclipzip"
2625 target
="SANSA_CLIPZIP"
2627 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2628 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2629 tool
="$rootdir/tools/scramble -add=clzp"
2630 output
="rockbox.sansa"
2631 bootoutput
="bootloader-clipzip.sansa"
2632 appextra
="recorder:gui:radio"
2635 toolset
=$scramblebitmaptools
2637 t_manufacturer
="as3525"
2638 t_model
="sansa-clipzip"
2644 modelname
="sansaconnect"
2645 target
="SANSA_CONNECT"
2647 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2648 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2649 tool
="$rootdir/tools/scramble -add=conn"
2650 output
="rockbox.sansa"
2651 bootoutput
="bootloader-connect.sansa"
2652 appextra
="recorder:gui"
2655 toolset
=$scramblebitmaptools
2657 t_manufacturer
="tms320dm320"
2658 t_model
="sansa-connect"
2664 modelname
="tatungtpj1022"
2665 target
="TATUNG_TPJ1022"
2668 tool
="$rootdir/tools/scramble -add tpj2"
2669 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2670 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
2671 output
="rockbox.elio"
2672 appextra
="recorder:gui:radio"
2675 boottool
="$rootdir/tools/scramble -mi4v2"
2676 bootoutput
="pp5020.mi4"
2677 # toolset is the tools within the tools directory that we build for
2678 # this particular target.
2679 toolset
=$scramblebitmaptools
2680 # architecture, manufacturer and model for the target-tree build
2683 t_manufacturer
="tatung"
2689 modelname
="gogearsa9200"
2690 target
="PHILIPS_SA9200"
2691 memory
=32 # supposedly
2693 tool
="$rootdir/tools/scramble -mi4v3 -model=9200 -type=RBOS"
2694 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2695 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2696 output
="rockbox.mi4"
2697 appextra
="recorder:gui:radio"
2700 boottool
="$rootdir/tools/scramble -mi4v3 -model=9200 -type=RBBL"
2701 bootoutput
="FWImage.ebn"
2702 # toolset is the tools within the tools directory that we build for
2703 # this particular target.
2704 toolset
=$scramblebitmaptools
2705 # architecture, manufacturer and model for the target-tree build
2708 t_manufacturer
="philips"
2714 modelname
="gogearhdd1630"
2715 target
="PHILIPS_HDD1630"
2716 memory
=32 # supposedly
2718 tool
="$rootdir/tools/scramble -mi4v3 -model=1630 -type=RBOS"
2719 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2720 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2721 output
="rockbox.mi4"
2722 appextra
="recorder:gui:radio"
2725 boottool
="$rootdir/tools/scramble -mi4v3 -model=1630 -type=RBBL"
2726 bootoutput
="FWImage.ebn"
2727 # toolset is the tools within the tools directory that we build for
2728 # this particular target.
2729 toolset
=$scramblebitmaptools
2730 # architecture, manufacturer and model for the target-tree build
2733 t_manufacturer
="philips"
2739 modelname
="gogearhdd6330"
2740 target
="PHILIPS_HDD6330"
2743 tool
="$rootdir/tools/scramble -mi4v3 -model=6330 -type=RBOS"
2744 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2745 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
2746 output
="rockbox.mi4"
2747 appextra
="recorder:gui:radio"
2750 boottool
="$rootdir/tools/scramble -mi4v3 -model=6330 -type=RBBL"
2751 bootoutput
="FWImage.ebn"
2752 # toolset is the tools within the tools directory that we build for
2753 # this particular target.
2754 toolset
=$scramblebitmaptools
2755 # architecture, manufacturer and model for the target-tree build
2758 t_manufacturer
="philips"
2764 modelname
="meizum6sl"
2769 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2770 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2771 output
="rockbox.meizu"
2772 appextra
="recorder:gui:radio"
2775 toolset
=$genericbitmaptools
2777 bootoutput
="rockboot.ebn"
2778 # architecture, manufacturer and model for the target-tree build
2780 t_manufacturer
="s5l8700"
2781 t_model
="meizu-m6sl"
2786 modelname
="meizum6sp"
2791 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2792 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2793 output
="rockbox.meizu"
2794 appextra
="recorder:gui:radio"
2797 toolset
=$genericbitmaptools
2799 bootoutput
="rockboot.ebn"
2800 # architecture, manufacturer and model for the target-tree build
2802 t_manufacturer
="s5l8700"
2803 t_model
="meizu-m6sp"
2813 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2814 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2815 output
="rockbox.meizu"
2816 appextra
="recorder:gui:radio"
2819 toolset
=$genericbitmaptools
2821 bootoutput
="rockboot.ebn"
2822 # architecture, manufacturer and model for the target-tree build
2824 t_manufacturer
="s5l8700"
2830 modelname
="ondavx747"
2834 tool
="$rootdir/tools/scramble -add=x747"
2835 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2836 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2837 output
="rockbox.vx747"
2838 appextra
="recorder:gui:radio"
2841 toolset
=$genericbitmaptools
2842 boottool
="$rootdir/tools/scramble -ccpmp"
2843 bootoutput
="ccpmp.bin"
2844 # architecture, manufacturer and model for the target-tree build
2846 t_manufacturer
="ingenic_jz47xx"
2847 t_model
="onda_vx747"
2852 modelname
="ondavx767"
2857 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2858 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2859 output
="rockbox.vx767"
2860 appextra
="recorder:gui:radio"
2863 toolset
=$genericbitmaptools
2864 boottool
="$rootdir/tools/scramble -ccpmp"
2865 bootoutput
="ccpmp.bin"
2866 # architecture, manufacturer and model for the target-tree build
2868 t_manufacturer
="ingenic_jz47xx"
2869 t_model
="onda_vx767"
2874 modelname
="ondavx747p"
2875 target
="ONDA_VX747P"
2878 tool
="$rootdir/tools/scramble -add=747p"
2879 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2880 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2881 output
="rockbox.vx747p"
2882 appextra
="recorder:gui:radio"
2885 toolset
=$genericbitmaptools
2886 boottool
="$rootdir/tools/scramble -ccpmp"
2887 bootoutput
="ccpmp.bin"
2888 # architecture, manufacturer and model for the target-tree build
2890 t_manufacturer
="ingenic_jz47xx"
2891 t_model
="onda_vx747"
2896 modelname
="ondavx777"
2900 tool
="$rootdir/tools/scramble -add=x777"
2901 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2902 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2903 output
="rockbox.vx777"
2904 appextra
="recorder:gui:radio"
2907 toolset
=$genericbitmaptools
2908 boottool
="$rootdir/tools/scramble -ccpmp"
2909 bootoutput
="ccpmp.bin"
2910 # architecture, manufacturer and model for the target-tree build
2912 t_manufacturer
="ingenic_jz47xx"
2913 t_model
="onda_vx747"
2918 modelname
="lyreproto1"
2919 target
="LYRE_PROTO1"
2923 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2924 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2925 output
="rockbox.lyre"
2926 appextra
="recorder:gui:radio"
2929 toolset
=$scramblebitmaptools
2931 bootoutput
="bootloader-proto1.lyre"
2932 # architecture, manufacturer and model for the target-tree build
2934 t_manufacturer
="at91sam"
2935 t_model
="lyre_proto1"
2940 modelname
="mini2440"
2944 tool
="$rootdir/tools/scramble -add=m244"
2945 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2946 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2947 output
="rockbox.mini2440"
2948 appextra
="recorder:gui:radio"
2951 toolset
=$scramblebitmaptools
2953 bootoutput
="bootloader-mini2440.lyre"
2954 # architecture, manufacturer and model for the target-tree build
2956 t_manufacturer
="s3c2440"
2962 modelname
="samsungyh820"
2963 target
="SAMSUNG_YH820"
2966 tool
="$rootdir/tools/scramble -mi4v2 -model=y820 -type=RBOS"
2967 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2968 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2969 output
="rockbox.mi4"
2970 appextra
="recorder:gui:radio"
2973 boottool
="$rootdir/tools/scramble -mi4v2 -model=y820 -type=RBBL"
2974 bootoutput
="FW_YH820.mi4"
2975 # toolset is the tools within the tools directory that we build for
2976 # this particular target.
2977 toolset
=$scramblebitmaptools
2978 # architecture, manufacturer and model for the target-tree build
2981 t_manufacturer
="samsung"
2987 modelname
="samsungyh920"
2988 target
="SAMSUNG_YH920"
2991 tool
="$rootdir/tools/scramble -mi4v2 -model=y920 -type=RBOS"
2992 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2993 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
2994 output
="rockbox.mi4"
2995 appextra
="recorder:gui:radio"
2998 boottool
="$rootdir/tools/scramble -mi4v2 -model=y920 -type=RBBL"
2999 bootoutput
="PP5020.mi4"
3000 # toolset is the tools within the tools directory that we build for
3001 # this particular target.
3002 toolset
=$scramblebitmaptools
3003 # architecture, manufacturer and model for the target-tree build
3006 t_manufacturer
="samsung"
3012 modelname
="samsungyh925"
3013 target
="SAMSUNG_YH925"
3016 tool
="$rootdir/tools/scramble -mi4v2 -model=y925 -type=RBOS"
3017 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
3018 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
3019 output
="rockbox.mi4"
3020 appextra
="recorder:gui:radio"
3023 boottool
="$rootdir/tools/scramble -mi4v2 -model=y925 -type=RBBL"
3024 bootoutput
="FW_YH925.mi4"
3025 # toolset is the tools within the tools directory that we build for
3026 # this particular target.
3027 toolset
=$scramblebitmaptools
3028 # architecture, manufacturer and model for the target-tree build
3031 t_manufacturer
="samsung"
3037 modelname
="samsungyps3"
3038 target
="SAMSUNG_YPS3"
3042 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
3043 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
3044 output
="rockbox.yps3"
3045 appextra
="recorder:gui:radio"
3048 toolset
=$genericbitmaptools
3050 bootoutput
="rockboot.ebn"
3051 # architecture, manufacturer and model for the target-tree build
3053 t_manufacturer
="s5l8700"
3060 target
="PBELL_VIBE500"
3063 tool
="$rootdir/tools/scramble -mi4v3 -model=v500 -type=RBOS"
3064 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
3065 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
3066 output
="rockbox.mi4"
3067 appextra
="recorder:gui:radio"
3070 boottool
="$rootdir/tools/scramble -mi4v3 -model=v500 -type=RBBL"
3071 bootoutput
="jukebox.mi4"
3072 # toolset is the tools within the tools directory that we build for
3073 # this particular target.
3074 toolset
=$scramblebitmaptools
3075 # architecture, manufacturer and model for the target-tree build
3078 t_manufacturer
="pbell"
3084 modelname
="mpiohd200"
3088 tool
="$rootdir/tools/scramble -add=hd20"
3089 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
3090 bmp2rb_native
="$rootdir/tools/bmp2rb -f 7"
3091 output
="rockbox.mpio"
3092 bootoutput
="bootloader.mpio"
3093 appextra
="recorder:gui:radio"
3096 # toolset is the tools within the tools directory that we build for
3097 # this particular target.
3098 toolset
="$genericbitmaptools"
3099 # architecture, manufacturer and model for the target-tree build
3101 t_manufacturer
="mpio"
3107 modelname
="mpiohd300"
3111 tool
="$rootdir/tools/scramble -add=hd30"
3112 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
3113 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
3114 output
="rockbox.mpio"
3115 bootoutput
="bootloader.mpio"
3116 appextra
="recorder:gui:radio"
3119 # toolset is the tools within the tools directory that we build for
3120 # this particular target.
3121 toolset
="$genericbitmaptools"
3122 # architecture, manufacturer and model for the target-tree build
3124 t_manufacturer
="mpio"
3130 modelname
="rk27generic"
3131 target
="RK27_GENERIC"
3134 tool
="$rootdir/tools/scramble -rkw -modelnum=73"
3135 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
3136 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
3137 output
="rockbox.rkw"
3138 bootoutput
="bootloader.rkw"
3139 appextra
="recorder:gui:radio"
3142 # toolset is the tools within the tools directory that we build for
3143 # this particular target.
3144 toolset
="$genericbitmaptools"
3145 # architecture, manufacturer and model for the target-tree build
3147 t_manufacturer
="rk27xx"
3148 t_model
="rk27generic"
3153 modelname
="hifimanhm60x"
3157 tool
="$rootdir/tools/scramble -rkw -modelnum=79"
3158 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
3159 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
3160 output
="rockbox.rkw"
3161 bootoutput
="bootloader.rkw"
3162 appextra
="recorder:gui"
3165 # toolset is the tools within the tools directory that we build for
3166 # this particular target.
3167 toolset
="$genericbitmaptools"
3168 # architecture, manufacturer and model for the target-tree build
3170 t_manufacturer
="rk27xx"
3176 modelname
="hifimanhm801"
3180 tool
="$rootdir/tools/scramble -rkw -modelnum=82"
3181 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
3182 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
3183 output
="rockbox.rkw"
3184 bootoutput
="bootloader.rkw"
3185 appextra
="recorder:gui"
3188 # toolset is the tools within the tools directory that we build for
3189 # this particular target.
3190 toolset
="$genericbitmaptools"
3191 # architecture, manufacturer and model for the target-tree build
3193 t_manufacturer
="rk27xx"
3209 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
3210 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
3212 bootoutput
="rockbox"
3213 appextra
="recorder:gui:radio"
3216 # architecture, manufacturer and model for the target-tree build
3218 t_manufacturer
="sdl"
3229 sharedir
="/data/data/org.rockbox/app_rockbox/rockbox"
3230 bindir
="/data/data/org.rockbox/lib"
3231 libdir
="/data/data/org.rockbox/app_rockbox"
3237 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
3238 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
3239 output
="librockbox.so"
3240 bootoutput
="librockbox.so"
3241 appextra
="recorder:gui:radio:hosted/android"
3244 # architecture, manufacturer and model for the target-tree build
3246 t_manufacturer
="android"
3253 modelname
="nokian8xx"
3256 sharedir
="/opt/rockbox/share/rockbox"
3257 bindir
="/opt/rockbox/bin"
3258 libdir
="/opt/rockbox/lib"
3264 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
3265 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
3267 bootoutput
="rockbox"
3268 appextra
="recorder:gui:radio"
3271 # architecture, manufacturer and model for the target-tree build
3273 t_manufacturer
="maemo"
3280 modelname
="nokian900"
3283 sharedir
="/opt/rockbox/share/rockbox"
3284 bindir
="/opt/rockbox/bin"
3285 libdir
="/opt/rockbox/lib"
3291 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
3292 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
3294 bootoutput
="rockbox"
3295 appextra
="recorder:gui:radio"
3298 # architecture, manufacturer and model for the target-tree build
3300 t_manufacturer
="maemo"
3310 sharedir
="rockbox/share/rockbox"
3311 bindir
="rockbox/bin"
3312 libdir
="rockbox/lib"
3318 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
3319 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
3321 bootoutput
="rockbox"
3322 appextra
="recorder:gui:radio"
3325 # architecture, manufacturer and model for the target-tree build
3327 t_manufacturer
="pandora"
3334 modelname
="samsungypr0"
3335 target
="SAMSUNG_YPR0"
3341 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
3342 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
3344 bootoutput
="rockbox"
3345 appextra
="recorder:gui:radio"
3348 # architecture, manufacturer and model for the target-tree build
3350 t_manufacturer
="ypr0"
3357 modelname
="androidmips"
3361 sharedir
="/data/data/org.rockbox/app_rockbox/rockbox"
3362 bindir
="/data/data/org.rockbox/lib"
3363 libdir
="/data/data/org.rockbox/app_rockbox"
3369 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
3370 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
3371 output
="librockbox.so"
3372 bootoutput
="librockbox.so"
3373 appextra
="recorder:gui:radio:hosted/android"
3376 # architecture, manufacturer and model for the target-tree build
3378 t_manufacturer
="android"
3385 modelname
="androidx86"
3389 sharedir
="/data/data/org.rockbox/app_rockbox/rockbox"
3390 bindir
="/data/data/org.rockbox/lib"
3391 libdir
="/data/data/org.rockbox/app_rockbox"
3397 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
3398 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
3399 output
="librockbox.so"
3400 bootoutput
="librockbox.so"
3401 appextra
="recorder:gui:radio:hosted/android"
3404 # architecture, manufacturer and model for the target-tree build
3406 t_manufacturer
="android"
3411 echo "Please select a supported target platform!"
3417 echo "Platform set to $modelname"
3421 ############################################################################
3422 # Amount of memory, for those that can differ. They have $memory unset at
3426 if [ -z "$memory" ]; then
3429 if [ "$ARG_RAM" ]; then
3432 echo "Enter size of your RAM (in MB): (Defaults to 32)"
3445 if [ "$ARG_RAM" ]; then
3448 echo "Enter size of your RAM (in MB): (Defaults to 2)"
3461 echo "Memory size selected: $memory MB"
3462 [ "$ARG_TYPE" ] ||
echo ""
3466 ##################################################################
3467 # Figure out build "type"
3470 # the ifp7x0 is the only platform that supports building a gdb stub like
3474 gdbstub
=", (G)DB stub"
3476 sansae200r|sansae200
)
3477 gdbstub
=", (I)nstaller"
3480 gdbstub
=", (E)raser"
3483 gdbstub
=", (E)raser"
3488 if [ "$ARG_TYPE" ]; then
3491 echo "Build (N)ormal, (A)dvanced, (S)imulator, (B)ootloader, (C)heckWPS, (D)atabase tool, (W)arble codec tool$gdbstub: (Defaults to N)"
3497 appsdir
='$(ROOTDIR)/bootloader'
3499 extradefines
="$extradefines -DBOOTLOADER -DE200R_INSTALLER -ffunction-sections -fdata-sections"
3501 echo "e200R-installer build selected"
3504 appsdir
='$(ROOTDIR)/bootloader'
3506 extradefines
="$extradefines -DBOOTLOADER -DSANSA_PP_ERASE -ffunction-sections -fdata-sections"
3508 echo "sansa eraser build selected"
3511 if test $t_manufacturer = "archos"; then
3512 # Archos SH-based players do this somewhat differently for
3514 appsdir
='$(ROOTDIR)/flash/bootbox'
3517 appsdir
='$(ROOTDIR)/bootloader'
3520 if test -n "$boottool"; then
3523 if test -n "$bootoutput"; then
3527 extradefines
="$extradefines -DBOOTLOADER -ffunction-sections -fdata-sections"
3529 echo "Bootloader build selected"
3532 if [ "$modelname" = "sansae200r" ]; then
3533 echo "Do not use the e200R target for simulator builds. Use e200 instead."
3538 extradefines
="$extradefines -DSIMULATOR"
3541 echo "Simulator build selected"
3544 echo "Advanced build selected"
3545 whichadvanced
$btype
3548 extradefines
="$extradefines -DSTUB" # for target makefile symbol EXTRA_DEFINES
3549 appsdir
='$(ROOTDIR)/gdb'
3558 echo "GDB stub build selected"
3567 extradefines
="$extradefines -DDEBUG"
3568 appsdir
='$(ROOTDIR)/tools/checkwps';
3569 output
='checkwps.'${modelname};
3571 echo "CheckWPS build selected"
3575 simcc
"database-sdl"
3577 appsdir
='$(ROOTDIR)/tools/database';
3582 output
="database_${modelname}.exe"
3585 output
='database.'${modelname};
3588 # architecture, manufacturer and model for the target-tree build
3590 t_manufacturer
="sdl"
3592 echo "Database tool build selected"
3600 extradefines
="$extradefines -DDEBUG"
3601 output
='warble.'${modelname};
3603 echo "Warble build selected"
3606 if [ "$modelname" = "sansae200r" ]; then
3607 echo "Do not use the e200R target for regular builds. Use e200 instead."
3611 btype
="N" # set it explicitly since RET only gets here as well
3612 echo "Normal build selected"
3616 # to be able running "make manual" from non-manual configuration
3619 manualdev
="archosfmrecorder"
3622 manualdev
="iriverh100"
3625 manualdev
="ipodmini1g"
3628 manualdev
=$modelname
3632 if [ -z "$debug" ]; then
3633 GCCOPTS
="$GCCOPTS $GCCOPTIMIZE"
3636 if [ "yes" = "$application" ]; then
3637 echo Building Rockbox as an Application
3638 extradefines
="$extradefines -DAPPLICATION"
3641 echo "Using source code root directory: $rootdir"
3643 # this was once possible to change at build-time, but no more:
3648 if [ "yes" = "$simulator" ]; then
3649 # setup compiler and things for simulator
3652 if [ -d "simdisk" ]; then
3653 echo "Subdirectory 'simdisk' already present"
3656 echo "Created a 'simdisk' subdirectory for simulating the hard disk"
3660 # Now, figure out version number of the (gcc) compiler we are about to use
3661 gccver
=`$CC -dumpversion`;
3663 # figure out the binutil version too and display it, mostly for the build
3664 # system etc to be able to see it easier
3665 if [ $uname = "Darwin" ]; then
3666 ldver
=`$LD -v 2>&1 | sed -e 's/[^0-9.-]//g'`
3668 ldver
=`$LD --version | head -n 1 | sed -e 's/\ /\n/g' | tail -n 1`
3671 if [ -z "$gccver" ]; then
3672 echo "[WARNING] The compiler you must use ($CC) is not in your path!"
3673 echo "[WARNING] this may cause your build to fail since we cannot do the"
3674 echo "[WARNING] checks we want now."
3677 # gccver should now be "3.3.5", "3.4.3", "2.95.3-6" and similar, but don't
3680 num1
=`echo $gccver | cut -d . -f1`
3681 num2
=`echo $gccver | cut -d . -f2`
3682 gccnum
=`(expr $num1 "*" 100 + $num2) 2>/dev/null`
3689 echo "Using $CC $gccver ($gccnum)"
3691 if test "$gccnum" -ge "400"; then
3692 # gcc 4.0 is just *so* much pickier on arguments that differ in signedness
3693 # so we ignore that warnings for now
3695 GCCOPTS
="$GCCOPTS -Wno-pointer-sign"
3698 if test "$gccnum" -ge "402"; then
3699 # disable warning about "warning: initialized field overwritten" as gcc 4.2
3700 # and later would throw it for several valid cases
3701 GCCOPTS
="$GCCOPTS -Wno-override-init"
3705 ""|
"$CROSS_COMPILE")
3709 # Verify that the cross-compiler is of a recommended version!
3710 if test "$gccver" != "$gccchoice"; then
3711 echo "WARNING: Your cross-compiler $CC $gccver is not of the recommended"
3712 echo "WARNING: version $gccchoice!"
3713 echo "WARNING: This may cause your build to fail since it may be a version"
3714 echo "WARNING: that isn't functional or known to not be the best choice."
3715 echo "WARNING: If you suffer from build problems, you know that this is"
3716 echo "WARNING: a likely source for them..."
3724 echo "Using $LD $ldver"
3726 # check the compiler for SH platforms
3727 if test "$CC" = "sh-elf-gcc"; then
3728 if test "$gccnum" -lt "400"; then
3729 echo "WARNING: Consider upgrading your compiler to the 4.0.X series!"
3730 echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler"
3732 # figure out patch status
3733 gccpatch
=`$CC --version`;
3735 if { echo $gccpatch |
grep "rockbox" >/dev
/null
2>&1; } then
3736 echo "gcc $gccver is rockbox patched"
3737 # then convert -O to -Os to get smaller binaries!
3738 GCCOPTS
=`echo $GCCOPTS | sed 's/ -O / -Os /'`
3740 echo "WARNING: You use an unpatched gcc compiler: $gccver"
3741 echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler"
3746 if test "$CC" = "m68k-elf-gcc"; then
3747 # convert -O to -Os to get smaller binaries!
3748 GCCOPTS
=`echo $GCCOPTS | sed 's/ -O / -Os /'`
3751 if [ "$ARG_CCACHE" = "1" ]; then
3752 echo "Enable ccache for building"
3754 elif [ "$ARG_CCACHE" != "0" ]; then
3755 ccache
=`findtool ccache`
3756 if test -n "$ccache"; then
3757 echo "Found and uses ccache ($ccache)"
3761 # figure out the full path to the various commands if possible
3762 HOSTCC
=`findtool gcc --lit`
3763 HOSTAR
=`findtool ar --lit`
3764 CC
=`findtool ${CC} --lit`
3765 CPP
=`findtool ${CPP} --lit`
3766 LD
=`findtool ${LD} --lit`
3767 AR
=`findtool ${AR} --lit`
3768 AS
=`findtool ${AS} --lit`
3769 OC
=`findtool ${OC} --lit`
3770 WINDRES
=`findtool ${WINDRES} --lit`
3771 DLLTOOL
=`findtool ${DLLTOOL} --lit`
3772 DLLWRAP
=`findtool ${DLLWRAP} --lit`
3773 RANLIB
=`findtool ${RANLIB} --lit`
3776 if [ -z "$arch" ]; then
3777 cpp_defines
=$
(echo "" |
$CPP $GCCOPTS -dD)
3778 if [ -n "$(echo $cpp_defines | grep -w __sh__)" ]; then
3780 elif [ -n "$(echo $cpp_defines | grep -w __m68k__)" ]; then
3782 elif [ -n "$(echo $cpp_defines | grep -w __arm__)" ]; then
3784 # cpp defines like "#define __ARM_ARCH_4TE__ 1" (where we want to extract the 4)
3785 arch_version
="$(echo $cpp_defines | tr ' ' '\012' | grep __ARM_ARCH | sed -e 's,.*\([0-9]\).*,\1,')"
3786 elif [ -n "$(echo $cpp_defines | grep -w __mips__)" ]; then
3788 arch_version
="$(echo $cpp_defines | tr ' ' '\012' | grep _MIPS_ARCH_MIPS | sed -e 's,.*\([0-9][0-9]\).*,\1,')"
3789 elif [ -n "$(echo $cpp_defines | grep -w __i386__)" ]; then
3791 elif [ -n "$(echo $cpp_defines | grep -w __x86_64__)" ]; then
3795 echo "Warning: Could not determine target arch"
3797 if [ "$arch" != "none" ]; then
3798 if [ -n "$arch_version" ]; then
3799 echo "Automatically selected arch: $arch (ver $arch_version)"
3801 echo "Automatically selected arch: $arch"
3805 if [ -n "$arch_version" ]; then
3806 echo "Manually selected arch: $arch (ver $arch_version)"
3808 echo "Manually selected arch: $arch"
3813 if [ -n "$arch_version" ]; then
3814 Darch_version
="#define ARCH_VERSION $arch_version"
3817 if test -n "$ccache"; then
3821 if test "$ARG_ARM_THUMB" = "1"; then
3822 extradefines
="$extradefines -DUSE_THUMB"
3823 CC
="$toolsdir/thumb-cc.py $CC"
3826 if test "X$endian" = "Xbig"; then
3827 defendian
="ROCKBOX_BIG_ENDIAN"
3829 defendian
="ROCKBOX_LITTLE_ENDIAN"
3832 if [ "$ARG_RBDIR" != "" ]; then
3833 if [ -z `echo $ARG_RBDIR | grep '^/'` ]; then
3838 echo "Using alternate rockbox dir: ${rbdir}"
3841 cat > autoconf.h
<<EOF
3842 /* This header was made by configure */
3843 #ifndef __BUILD_AUTOCONF_H
3844 #define __BUILD_AUTOCONF_H
3846 /* lower case names match the what's exported in the Makefile
3847 * upper case name looks nicer in the code */
3867 #define arch_amd64 6
3868 #define ARCH_AMD64 6
3870 /* Define target machine architecture */
3871 #define ARCH ${arch}
3872 /* Optionally define architecture version */
3875 /* Define endianess for the target or simulator platform */
3876 #define ${defendian} 1
3878 /* Define the GCC version used for the build */
3879 #define GCCNUM ${gccnum}
3881 /* Define this if you build rockbox to support the logf logging and display */
3884 /* Define this if you want logf to output to the serial port */
3887 /* Define this to record a chart with timings for the stages of boot */
3890 /* optional define for a backlight modded Ondio */
3893 /* optional define for FM radio mod for iAudio M5 */
3896 /* optional define for ATA poweroff on Player */
3897 ${have_ata_poweroff}
3899 /* optional defines for RTC mod for h1x0 */
3903 /* the threading backend we use */
3904 #define ${thread_support}
3906 /* lcd dimensions for application builds from configure */
3910 /* root of Rockbox */
3911 #define ROCKBOX_DIR "${rbdir}"
3912 #define ROCKBOX_SHARE_PATH "${sharedir}"
3913 #define ROCKBOX_BINARY_PATH "${bindir}"
3914 #define ROCKBOX_LIBRARY_PATH "${libdir}"
3916 #endif /* __BUILD_AUTOCONF_H */
3919 if test -n "$t_cpu"; then
3920 TARGET_INC
="-I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer/$t_model"
3922 if [ "$application" = "yes" ] && [ "$t_manufacturer" = "maemo" ]; then
3923 # Maemo needs the SDL port, too
3924 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl/app"
3925 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl"
3926 elif [ "$application" = "yes" ] && [ "$t_manufacturer" = "pandora" ]; then
3927 # Pandora needs the SDL port, too
3928 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl/app"
3929 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl"
3930 elif [ "$simulator" = "yes" ]; then # a few more includes for the sim target tree
3931 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl"
3932 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/hosted"
3935 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer"
3936 test -n "$t_soc" && TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu/$t_soc"
3937 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu"
3941 if test "$swcodec" = "yes"; then
3942 voicetoolset
="rbspeexenc voicefont wavtrim"
3944 voicetoolset
="voicefont wavtrim"
3947 if test "$apps" = "apps"; then
3948 # only when we build "real" apps we build the .lng files
3952 #### Fix the cmdline ###
3953 if [ -n "$ARG_PREFIX" ]; then
3954 cmdline
="$cmdline --prefix=\$(PREFIX)"
3956 if [ -n "$ARG_LCDWIDTH" ]; then
3957 cmdline
="$cmdline --lcdwidth=$ARG_LCDWIDTH --lcdheight=$ARG_LCDHEIGHT "
3960 # remove parts from the cmdline we're going to set unconditionally
3961 cmdline
=`echo $cmdline | sed -e s,--target=[a-zA-Z_0-9]\*,,g \
3962 -e s,--ram=[0-9]\*,,g \
3963 -e s,--rbdir=[./a-zA-Z0-9]\*,,g \
3964 -e s,--type=[a-zA-Z]\*,,g`
3965 cmdline
="$cmdline --target=\$(MODELNAME) --ram=\$(MEMORYSIZE) --rbdir=\$(RBDIR) --type=$btype$advopts"
3969 cat > Makefile
<<EOF
3970 ## Automatically generated. http://www.rockbox.org/
3972 export ROOTDIR=${rootdir}
3973 export FIRMDIR=\$(ROOTDIR)/firmware
3974 export APPSDIR=${appsdir}
3975 export TOOLSDIR=${toolsdir}
3976 export DOCSDIR=${rootdir}/docs
3977 export MANUALDIR=${rootdir}/manual
3978 export DEBUG=${debug}
3979 export MODELNAME=${modelname}
3980 export ARCHOSROM=${archosrom}
3981 export FLASHFILE=${flash}
3982 export TARGET_ID=${target_id}
3983 export TARGET=-D${target}
3985 export ARCH_VERSION=${arch_version}
3987 export MANUFACTURER=${t_manufacturer}
3988 export OBJDIR=${pwd}
3989 export BUILDDIR=${pwd}
3990 export RBCODEC_BLD=${pwd}/lib/rbcodec
3991 export LANGUAGE=${language}
3992 export VOICELANGUAGE=${voicelanguage}
3993 export MEMORYSIZE=${memory}
3994 export BUILDDATE:=\$(shell date -u +'-DYEAR=%Y -DMONTH=%m -DDAY=%d')
3995 export MKFIRMWARE=${tool}
3996 export BMP2RB_MONO=${bmp2rb_mono}
3997 export BMP2RB_NATIVE=${bmp2rb_native}
3998 export BMP2RB_REMOTEMONO=${bmp2rb_remotemono}
3999 export BMP2RB_REMOTENATIVE=${bmp2rb_remotenative}
4000 export BINARY=${output}
4001 export APPEXTRA=${appextra}
4002 export ENABLEDPLUGINS=${plugins}
4003 export SOFTWARECODECS=${swcodec}
4004 export EXTRA_DEFINES=${extradefines}
4005 export HOSTCC=${HOSTCC}
4006 export HOSTAR=${HOSTAR}
4013 export WINDRES=${WINDRES}
4014 export DLLTOOL=${DLLTOOL}
4015 export DLLWRAP=${DLLWRAP}
4016 export RANLIB=${RANLIB}
4017 export PREFIX=${ARG_PREFIX}
4018 export PROFILE_OPTS=${PROFILE_OPTS}
4019 export APP_TYPE=${app_type}
4020 export APPLICATION=${application}
4021 export SIMDIR=\$(ROOTDIR)/uisimulator/sdl
4022 export GCCOPTS=${GCCOPTS}
4023 export TARGET_INC=${TARGET_INC}
4024 export LOADADDRESS=${loadaddress}
4025 export SHARED_LDFLAG=${SHARED_LDFLAG}
4026 export SHARED_CFLAGS=${SHARED_CFLAGS}
4027 export LDOPTS=${LDOPTS}
4028 export GLOBAL_LDOPTS=${GLOBAL_LDOPTS}
4029 export GCCVER=${gccver}
4030 export GCCNUM=${gccnum}
4031 export UNAME=${uname}
4032 export MANUALDEV=${manualdev}
4033 export TTS_OPTS=${TTS_OPTS}
4034 export TTS_ENGINE=${TTS_ENGINE}
4035 export ENC_OPTS=${ENC_OPTS}
4036 export ENCODER=${ENCODER}
4037 export USE_ELF=${USE_ELF}
4038 export RBDIR=${rbdir}
4039 export ROCKBOX_SHARE_PATH=${sharedir}
4040 export ROCKBOX_BINARY_PATH=${bindir}
4041 export ROCKBOX_LIBRARY_PATH=${libdir}
4042 export SDLCONFIG=${sdl}
4043 export LCDORIENTATION=${lcd_orientation}
4044 export ANDROID_ARCH=${ANDROID_ARCH}
4046 CONFIGURE_OPTIONS=${cmdline}
4048 include \$(TOOLSDIR)/root.make
4051 echo "Created Makefile"