3 # Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
11 # global CC options for all platforms
12 CCOPTS
="-W -Wall -Wundef -O -nostdlib -ffreestanding -Wstrict-prototypes -pipe -std=gnu99"
14 # global LD options for all platforms
18 use_logf
="#undef ROCKBOX_HAS_LOGF"
19 use_bootchart
="#undef DO_BOOTCHART"
21 scriptver
=`echo '$Revision$' | sed -e 's:\\$::g' -e 's/Revision: //'`
28 thread_support
="ASSEMBLER_THREADS"
34 # Begin Function Definitions
44 WINDRES
=${prefix}windres
45 DLLTOOL
=${prefix}dlltool
46 DLLWRAP
=${prefix}dllwrap
47 RANLIB
=${prefix}ranlib
55 # setup files and paths depending on the platform
56 if [ -z "$ARG_PREFIX" ]; then
57 sharedir
="/usr/local/share/rockbox"
58 bindir
="/usr/local/bin"
59 libdir
="/usr/local/lib"
61 if [ -d "$ARG_PREFIX" ]; then
62 if [ -z `echo $ARG_PREFIX | grep "^/"` ]; then
63 ARG_PREFIX
=`realpath $ARG_PREFIX`
64 if [ "0" != "$?" ]; then
65 echo "ERROR: Could not get prefix path (is realpath installed?)."
69 sharedir
="$ARG_PREFIX/share/rockbox"
70 bindir
="$ARG_PREFIX/bin"
71 libdir
="$ARG_PREFIX/lib"
73 echo "ERROR: PREFIX directory $ARG_PREFIX does not exist"
79 # Set the application LCD size according to the following priorities:
80 # 1) If --lcdwidth and --lcdheight are set, use them
81 # 2) If a size is passed to the app_set_lcd_size() function, use that
82 # 3) Otherwise ask the user
84 if [ -z "$ARG_LCDWIDTH" ]; then
87 if [ -z "$ARG_LCDHEIGHT" ]; then
91 echo "Enter the LCD width (default: 320)"
92 if [ -z "$ARG_LCDWIDTH" ]; then
95 app_lcd_width
="$ARG_LCDWIDTH"
97 if [ -z "$app_lcd_width" ]; then app_lcd_width
="320"; fi
98 echo "Enter the LCD height (default: 480)"
99 if [ -z "$ARG_LCDHEIGHT" ]; then
100 app_lcd_height
=`input`
102 app_lcd_height
="$ARG_LCDHEIGHT"
104 if [ -z "$app_lcd_height" ]; then app_lcd_height
="480"; fi
105 if [ $app_lcd_width -gt $app_lcd_height ]; then
106 lcd_orientation
="landscape"
108 lcd_orientation
="portrait"
110 echo "Selected $app_lcd_width x $app_lcd_height resolution ($lcd_orientation)"
111 ARG_LCDWIDTH
=$app_lcd_width
112 ARG_LCDHEIGHT
=$app_lcd_height
114 app_lcd_width
="#define LCD_WIDTH $app_lcd_width"
115 app_lcd_height
="#define LCD_HEIGHT $app_lcd_height"
119 if [ "$ARG_ARM_EABI" != "0" ]; then
120 prefixtools arm-elf-eabi-
128 # scan the $PATH for the given command
135 # echo "checks for $file in $path" >&2
136 if test -f "$path/$file"; then
141 # check whether caller wants literal return value if not found
142 if [ "$2" = "--lit" ]; then
147 # scan the $PATH for sdl-config - check whether for a (cross-)win32
150 # sdl-config might (not) be prefixed for cross compiles so try both.
151 files
="sdl-config:${CROSS}sdl-config"
159 #echo "checks for $file in $path" >&2
160 if test -f "$path/$file"; then
161 if [ "0" != `$path/$file --libs |grep -c mwindows` ]; then
162 if [ "yes" = "${winbuild}" ]; then
167 if [ "yes" != "${winbuild}" ]; then
177 # check for availability of sigaltstack to support our thread engine
178 check_sigaltstack
() {
179 cat >$tmpdir/check_threads.c
<<EOF
181 int main(int argc, char **argv)
184 #define NULL (void*)0
186 sigaltstack(NULL, NULL);
190 $CC -o $tmpdir/check_threads
$tmpdir/check_threads.c
1> /dev
/null
192 rm -rf $tmpdir/check_threads
*
196 # check for availability of Fiber on Win32 to support our thread engine
198 cat >$tmpdir/check_threads.c
<<EOF
200 int main(int argc, char **argv)
202 ConvertThreadToFiber(NULL);
206 $CC -o $tmpdir/check_threads
$tmpdir/check_threads.c
2>/dev
/null
208 rm -rf $tmpdir/check_threads
*
214 # default tool setup for native building
215 prefixtools
"$CROSS_COMPILE"
216 ARG_ARM_THUMB
=0 # can't use thumb in native builds
220 GCCOPTS
=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib// -e s/-Wundef// -e s/-O//`
221 GCCOPTS
="$GCCOPTS -fno-builtin -g"
223 LDOPTS
='-lm' # button-sdl.c uses sqrt()
227 # default output binary name, don't override app_get_platform()
228 if [ "$app_type" != "sdl-app" ]; then
232 # default share option, override below if needed
233 SHARED_LDFLAG
="-shared"
234 SHARED_CFLAGS
="-fPIC -fvisibility=hidden"
236 if [ "$win32crosscompile" = "yes" ]; then
237 LDOPTS
="$LDOPTS -mconsole"
240 CROSS
=${CROSS:-"i586-mingw32msvc-"}
245 echo "Cygwin host detected"
248 LDOPTS
="$LDOPTS -mconsole"
255 echo "MinGW host detected"
258 LDOPTS
="$LDOPTS -mconsole"
264 sigaltstack
=`check_sigaltstack`
265 echo "Linux host detected"
266 LDOPTS
="$LDOPTS -ldl"
270 sigaltstack
=`check_sigaltstack`
271 echo "FreeBSD host detected"
272 LDOPTS
="$LDOPTS -ldl"
276 sigaltstack
=`check_sigaltstack`
277 echo "Darwin host detected"
278 LDOPTS
="$LDOPTS -ldl"
279 SHARED_LDFLAG
="-dynamiclib -Wl\,-single_module"
283 sigaltstack
=`check_sigaltstack`
284 echo "*Solaris host detected"
286 GCCOPTS
="$GCCOPTS -fPIC"
287 LDOPTS
="$LDOPTS -ldl"
291 echo "[ERROR] Unsupported system: $uname, fix configure and retry"
297 [ "$winbuild" != "yes" ] && GLOBAL_LDOPTS
="$GLOBAL_LDOPTS -Wl,-z,defs"
298 sdl
=`findsdl $winbuild`
300 if [ -n `echo $app_type | grep "sdl"` ]; then
301 if [ -z "$sdl" ]; then
302 echo "configure didn't find sdl-config, which indicates that you"
303 echo "don't have SDL (properly) installed. Please correct and"
304 echo "re-run configure!"
307 # generic sdl-config checker
308 GCCOPTS
="$GCCOPTS `$sdl --cflags`"
309 LDOPTS
="$LDOPTS `$sdl --libs`"
314 GCCOPTS
="$GCCOPTS -I\$(SIMDIR)"
316 if test "X$win32crosscompile" != "Xyes"; then
317 if test "`uname -m`" = "i686"; then
318 echo "Enabling MMX support"
319 GCCOPTS
="$GCCOPTS -mmmx"
321 # x86_64 supports MMX by default
324 cat >$tmpdir/conftest-
$id.c
<<EOF
326 int main(int argc, char **argv)
329 char *varp = (char *)&var;
337 $CC -o $tmpdir/conftest-
$id $tmpdir/conftest-
$id.c
2>/dev
/null
339 # when cross compiling, the endianess cannot be detected because the above program doesn't run
340 # on the local machine. assume little endian but print a warning
341 endian
=`$tmpdir/conftest-$id 2> /dev/null`
342 if [ "$endian" != "" ] && [ $endian -gt "1" ]; then
350 if [ "$CROSS_COMPILE" != "" ]; then
351 echo "WARNING: Cross Compiling, cannot detect endianess. Assuming little endian!"
354 if [ "$app_type" = "sdl-sim" ]; then
355 echo "Simulator environment deemed $endian endian"
356 elif [ "$app_type" = "sdl-app" ]; then
357 echo "Application environment deemed $endian endian"
358 elif [ "$app_type" = "checkwps" ]; then
359 echo "CheckWPS environment deemed $endian endian"
362 # use wildcard here to make it work even if it was named *.exe like
364 rm -f $tmpdir/conftest-
$id*
366 # We are crosscompiling
367 # add cross-compiler option(s)
369 LDOPTS
="$LDOPTS -mconsole"
371 output
="rockboxui.exe"
372 endian
="little" # windows is little endian
373 echo "Enabling MMX support"
374 GCCOPTS
="$GCCOPTS -mmmx"
378 if [ -z "$ARG_THREAD_SUPPORT" ] ||
[ "$ARG_THREAD_SUPPORT" = "0" ]; then
379 if [ "$sigaltstack" = "0" ]; then
380 thread_support
="HAVE_SIGALTSTACK_THREADS"
381 LDOPTS
="$LDOPTS -lpthread" # pthread needed
382 echo "Selected sigaltstack threads"
383 elif [ "$fibers" = "0" ]; then
384 thread_support
="HAVE_WIN32_FIBER_THREADS"
385 echo "Selected Win32 Fiber threads"
389 if [ -n `echo $app_type | grep "sdl"` ] && [ -z "$thread_support" ] \
390 && [ "$ARG_THREAD_SUPPORT" != "0" ]; then
391 thread_support
="HAVE_SDL_THREADS"
392 if [ "$ARG_THREAD_SUPPORT" = "1" ]; then
393 echo "Selected SDL threads"
395 echo "WARNING: Falling back to SDL threads"
401 # functions for setting up cross-compiler names and options
402 # also set endianess and what the exact recommended gcc version is
403 # the gcc version should most likely match what versions we build with
408 GCCOPTS
="$CCOPTS -m1"
409 GCCOPTIMIZE
="-fomit-frame-pointer -fschedule-insns"
415 prefixtools calmrisc16-unknown-elf-
416 GCCOPTS
="-Wl\,--no-check-sections $CCOPTS"
417 GCCOPTIMIZE
="-fomit-frame-pointer"
422 prefixtools m68k-elf-
423 GCCOPTS
="$CCOPTS -mcpu=5249 -malign-int -mstrict-align"
424 GCCOPTIMIZE
="-fomit-frame-pointer"
431 GCCOPTS
="$CCOPTS -mcpu=arm7tdmi"
432 if test "X$1" != "Xshort" -a "$ARG_ARM_EABI" = "0"; then
433 GCCOPTS
="$GCCOPTS -mlong-calls"
435 GCCOPTIMIZE
="-fomit-frame-pointer"
441 GCCOPTS
="$CCOPTS -mcpu=arm9tdmi"
442 if test "$modelname" != "gigabeatfx" -a "$t_manufacturer" != "as3525" -a "$ARG_ARM_EABI" = "0"; then
443 GCCOPTS
="$GCCOPTS -mlong-calls"
445 GCCOPTIMIZE
="-fomit-frame-pointer"
451 GCCOPTS
="$CCOPTS -mbig-endian -mcpu=arm940t"
452 if test "$ARG_ARM_EABI" = "0"; then
453 GCCOPTS
="$GCCOPTS -mlong-calls"
455 GCCOPTIMIZE
="-fomit-frame-pointer"
461 GCCOPTS
="$CCOPTS -mcpu=arm940t"
462 if test "$ARG_ARM_EABI" = "0"; then
463 GCCOPTS
="$GCCOPTS -mlong-calls"
465 GCCOPTIMIZE
="-fomit-frame-pointer"
471 GCCOPTS
="$CCOPTS -mcpu=arm9e"
472 if test "$ARG_ARM_EABI" = "0"; then
473 GCCOPTS
="$GCCOPTS -mlong-calls"
475 GCCOPTIMIZE
="-fomit-frame-pointer"
481 GCCOPTS
="$CCOPTS -mcpu=arm926ej-s"
482 if test "$t_manufacturer" != "as3525" -a "$ARG_ARM_EABI" = "0"; then
483 GCCOPTS
="$GCCOPTS -mlong-calls"
485 GCCOPTIMIZE
="-fomit-frame-pointer"
491 GCCOPTS
="$CCOPTS -mcpu=arm1136jf-s"
492 if test "$modelname" != "gigabeats" -a "$ARG_ARM_EABI" = "0"; then
493 GCCOPTS
="$GCCOPTS -mlong-calls"
495 GCCOPTIMIZE
="-fomit-frame-pointer"
501 GCCOPTS
="$CCOPTS -mcpu=arm1176jz-s"
502 if test "$ARG_ARM_EABI" = "0"; then
503 GCCOPTS
="$GCCOPTS -mlong-calls"
505 GCCOPTIMIZE
="-fomit-frame-pointer"
511 GCCOPTS
="$CCOPTS -march=armv5te"
512 GCCOPTIMIZE
="-fomit-frame-pointer"
517 prefixtools mipsel-elf-
518 # mips is predefined, but we want it for paths. use __mips instead
519 GCCOPTS
="$CCOPTS -march=mips32 -mtune=r4600 -mno-mips16 -mno-long-calls -Umips"
520 GCCOPTS
="$GCCOPTS -ffunction-sections -msoft-float -G 0 -Wno-parentheses"
521 GCCOPTIMIZE
="-fomit-frame-pointer"
527 # Scratchbox sets up "gcc" based on the active target
530 GCCOPTS
=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib// -e s/-Wundef//`
531 GCCOPTS
="$GCCOPTS -fno-builtin -g -I\$(SIMDIR)"
533 LDOPTS
="-lm -ldl $LDOPTS"
534 GLOBAL_LDOPTS
="$GLOBAL_LDOPTS -Wl,-z,defs"
535 SHARED_LDFLAG
="-shared"
538 thread_support
="HAVE_SIGALTSTACK_THREADS"
541 # Determine maemo version
542 if pkg-config
--atleast-version=5 maemo-version
; then
543 if [ "$1" == "4" ]; then
544 echo "ERROR: Maemo 4 SDK required."
547 extradefines
="$extradefines -DMAEMO5"
548 echo "Found N900 maemo version"
550 elif pkg-config
--atleast-version=4 maemo-version
; then
551 if [ "$1" == "5" ]; then
552 echo "ERROR: Maemo 5 SDK required."
555 extradefines
="$extradefines -DMAEMO4"
556 echo "Found N8xx maemo version"
558 echo "Unable to determine maemo version. Is the maemo-version-dev package installed?"
563 if [ $is_n900 -eq 1 ]; then
564 GCCOPTS
="$GCCOPTS `pkg-config --cflags sdl`"
565 LDOPTS
="$LDOPTS `pkg-config --libs sdl`"
567 GCCOPTS
="$GCCOPTS `sdl-config --cflags`"
568 LDOPTS
="$LDOPTS `sdl-config --libs`"
571 # glib and libosso support
572 GCCOPTS
="$GCCOPTS `pkg-config --cflags libosso glib-2.0 gthread-2.0`"
573 LDOPTS
="$LDOPTS `pkg-config --libs libosso glib-2.0 gthread-2.0`"
575 # libhal support: Battery monitoring
576 GCCOPTS
="$GCCOPTS `pkg-config --cflags hal`"
577 LDOPTS
="$LDOPTS `pkg-config --libs hal`"
579 GCCOPTS
="$GCCOPTS -O2 -fno-strict-aliasing"
580 if [ $is_n900 -eq 1 ]; then
581 # gstreamer support: Audio output.
582 GCCOPTS
="$GCCOPTS `pkg-config --cflags gstreamer-base-0.10 gstreamer-plugins-base-0.10 gstreamer-app-0.10`"
583 LDOPTS
="$LDOPTS `pkg-config --libs gstreamer-base-0.10 gstreamer-plugins-base-0.10 gstreamer-app-0.10`"
585 # N900 specific: libplayback support
586 GCCOPTS
="$GCCOPTS `pkg-config --cflags libplayback-1`"
587 LDOPTS
="$LDOPTS `pkg-config --libs libplayback-1`"
589 # N900 specific: Enable ARMv7 NEON support
590 if sb-conf show
-A |
grep -q -i arm
; then
591 echo "Detected ARM target"
592 GCCOPTS
="$GCCOPTS -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp"
593 extradefines
="$extradefines -DMAEMO_ARM_BUILD"
595 echo "Detected x86 target"
598 # N8xx specific: Enable armv5te instructions
599 if sb-conf show
-A |
grep -q -i arm
; then
600 echo "Detected ARM target"
601 GCCOPTS
="$GCCOPTS -mcpu=arm1136jf-s -mfloat-abi=softfp -mfpu=vfp"
602 extradefines
="$extradefines -DMAEMO_ARM_BUILD"
604 echo "Detected x86 target"
610 # Note: The new "Ivanovic" pandora toolchain is not able to compile rockbox.
611 # You have to use the sebt3 toolchain:
612 # http://www.gp32x.com/board/index.php?/topic/58490-yactfeau/
614 PNDSDK
="/usr/local/angstrom/arm"
615 if [ ! -x $PNDSDK/bin
/arm-angstrom-linux-gnueabi-gcc
]; then
616 echo "Pandora SDK gcc not found in $PNDSDK/bin/arm-angstrom-linux-gnueabi-gcc"
620 PATH
=$PNDSDK/bin
:$PATH:$PNDSDK/arm-angstrom-linux-gnueabi
/usr
/bin
621 PKG_CONFIG_PATH
=$PNDSDK/arm-angstrom-linux-gnueabi
/usr
/lib
/pkgconfig
622 LDOPTS
="-L$PNDSDK/arm-angstrom-linux-gnueabi/usr/lib -Wl,-rpath,$PNDSDK/arm-angstrom-linux-gnueabi/usr/lib $LDOPTS"
623 PKG_CONFIG
="pkg-config"
625 GCCOPTS
=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib// -e s/-Wundef//`
626 GCCOPTS
="$GCCOPTS -fno-builtin -g -I\$(SIMDIR)"
628 LDOPTS
="-lm -ldl $LDOPTS"
629 GLOBAL_LDOPTS
="$GLOBAL_LDOPTS -Wl,-z,defs"
630 SHARED_LDFLAG
="-shared"
633 thread_support
="HAVE_SIGALTSTACK_THREADS"
636 GCCOPTS
="-I$PNDSDK/arm-angstrom-linux-gnueabi/usr/include"
640 prefixtools
"$PNDSDK/bin/arm-angstrom-linux-gnueabi-"
643 GCCOPTS
="$GCCOPTS `$PNDSDK/bin/sdl-config --cflags`"
644 LDOPTS
="$LDOPTS `$PNDSDK/bin/sdl-config --libs`"
647 GCCOPTS
="$GCCOPTS -O2 -fno-strict-aliasing"
648 GCCOPTS
="$GCCOPTS -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp"
649 GCCOPTS
="$GCCOPTS -ffast-math -fsingle-precision-constant"
653 if [ -z "$ANDROID_SDK_PATH" ]; then
654 echo "ERROR: You need the Android SDK installed and have the ANDROID_SDK_PATH"
655 echo "environment variable point to the root directory of the Android SDK."
658 if [ -z "$ANDROID_NDK_PATH" ]; then
659 echo "ERROR: You need the Android NDK installed (r5 or higher) and have the ANDROID_NDK_PATH"
660 echo "environment variable point to the root directory of the Android NDK."
663 buildhost
=$
(uname |
tr "[:upper:]" "[:lower:]")
665 gcctarget
="arm-linux-androideabi-"
666 gccprefix
=$ANDROID_NDK_PATH/toolchains
/$gcctarget$gccchoice/prebuilt
/$buildhost-x86
667 PATH
=$PATH:$gccprefix/bin
668 prefixtools
$gcctarget
669 GCCOPTS
=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib// -e s/-Wundef//`
670 GCCOPTS
="$GCCOPTS -ffunction-sections -march=armv5te -mtune=xscale -msoft-float -fomit-frame-pointer \
671 --sysroot=$ANDROID_NDK_PATH/platforms/android-5/arch-arm"
672 GLOBAL_LDOPTS
="$GLOBAL_LDOPTS -nostdlib -lc -Wl,--no-undefined -Wl,--gc-sections -Wl,-z,noexecstack \
673 --sysroot=$ANDROID_NDK_PATH/platforms/android-5/arch-arm"
674 LDOPTS
="$LDOPTS -shared -nostdlib -ldl -llog"
676 SHARED_LDFLAG
="-shared"
681 atype
=`echo "$1" | cut -c 2-`
682 ##################################################################
683 # Prompt for specific developer options
685 if [ "$atype" ]; then
690 printf "Enter your developer options (press only enter when done)\n\
691 (D)EBUG, (L)ogf, Boot(c)hart, (S)imulator, (P)rofiling, (V)oice, (W)in32 crosscompile,\n\
692 (T)est plugins, S(m)all C lib:"
693 if [ "$memory" = "2" ]; then
696 if [ "$modelname" = "archosplayer" ]; then
697 printf ", Use (A)TA poweroff"
699 if [ "$t_model" = "ondio" ]; then
700 printf ", (B)acklight MOD"
702 if [ "$modelname" = "iaudiom5" ]; then
703 printf ", (F)M radio MOD"
705 if [ "$modelname" = "iriverh120" ]; then
712 while [ $cont = "1" ]; do
714 if [ "$interact" ]; then
717 option
=`echo "$atype" | cut -c 1`
722 if [ "yes" = "$profile" ]; then
723 echo "Debug is incompatible with profiling"
725 echo "DEBUG build enabled"
730 echo "logf() support enabled"
734 echo "Using Rockbox' small C library"
735 extradefines
="$extradefines -DHAVE_ROCKBOX_C_LIBRARY"
738 echo "Including test plugins"
739 extradefines
="$extradefines -DHAVE_TEST_PLUGINS"
742 echo "bootchart enabled (logf also enabled)"
747 echo "Simulator build enabled"
751 if [ "yes" = "$use_debug" ]; then
752 echo "Profiling is incompatible with debug"
754 echo "Profiling support is enabled"
759 echo "Voice build selected"
763 if [ "$memory" = "2" ]; then
765 echo "Memory size selected: 8MB"
769 if [ "$modelname" = "archosplayer" ]; then
770 have_ata_poweroff
="#define HAVE_ATA_POWER_OFF"
771 echo "ATA power off enabled"
775 if [ "$t_model" = "ondio" ]; then
776 have_backlight
="#define HAVE_BACKLIGHT"
777 echo "Backlight functions enabled"
781 if [ "$modelname" = "iaudiom5" ]; then
782 have_fmradio_in
="#define HAVE_FMRADIO_IN"
783 echo "FM radio functions enabled"
787 if [ "$modelname" = "iriverh120" ]; then
788 config_rtc
="#define CONFIG_RTC RTC_DS1339_DS3231"
789 have_rtc_alarm
="#define HAVE_RTC_ALARM"
790 echo "RTC functions enabled (DS1339/DS3231)"
794 echo "Enabling Windows 32 cross-compiling"
795 win32crosscompile
="yes"
797 "") # Match enter press when finished with advanced options
801 echo "[ERROR] Option $option unsupported"
804 if [ "$interact" ]; then
805 btype
="$btype$option"
807 atype
=`echo "$atype" | cut -c 2-`
808 [ "$atype" ] || cont
=0
813 if [ "yes" = "$voice" ]; then
814 # Ask about languages to build
816 voicelanguage
=`whichlang`
817 echo "Voice language set to $voicelanguage"
819 # Configure encoder and TTS engine for each language
820 for thislang
in `echo $voicelanguage | sed 's/,/ /g'`; do
821 voiceconfig
"$thislang"
824 if [ "yes" = "$use_debug" ]; then
826 GCCOPTS
="$GCCOPTS -g -DDEBUG"
828 if [ "yes" = "$logf" ]; then
829 use_logf
="#define ROCKBOX_HAS_LOGF 1"
831 if [ "yes" = "$bootchart" ]; then
832 use_bootchart
="#define DO_BOOTCHART 1"
834 if [ "yes" = "$simulator" ]; then
836 extradefines
="$extradefines -DSIMULATOR"
840 if [ "yes" = "$profile" ]; then
841 extradefines
="$extradefines -DRB_PROFILE"
842 PROFILE_OPTS
="-finstrument-functions"
846 # Configure voice settings
849 if [ ! "$ARG_TTS" ]; then
850 echo "Building $thislang voice for $modelname. Select options"
854 if [ -n "`findtool flite`" ]; then
858 DEFAULT_TTS_OPTS
=$FLITE_OPTS
859 DEFAULT_NOISEFLOOR
="500"
862 if [ -n "`findtool espeak`" ]; then
866 DEFAULT_TTS_OPTS
=$ESPEAK_OPTS
867 DEFAULT_NOISEFLOOR
="500"
870 if [ -n "`findtool festival`" ]; then
871 FESTIVAL
="(F)estival "
874 FESTIVAL_OPTS
="--language italian"
877 FESTIVAL_OPTS
="--language spanish"
880 FESTIVAL_OPTS
="--language finnish"
883 FESTIVAL_OPTS
="--language czech"
889 DEFAULT_TTS
="festival"
890 DEFAULT_TTS_OPTS
=$FESTIVAL_OPTS
891 DEFAULT_NOISEFLOOR
="500"
894 if [ -n "`findtool swift`" ]; then
898 DEFAULT_TTS_OPTS
=$SWIFT_OPTS
899 DEFAULT_NOISEFLOOR
="500"
902 # Allow SAPI if Windows is in use
903 if [ -n "`findtool winver`" ]; then
907 DEFAULT_TTS_OPTS
=$SAPI_OPTS
908 DEFAULT_NOISEFLOOR
="500"
912 if [ "$FESTIVAL" = "$FLITE" ] && [ "$FLITE" = "$ESPEAK" ] && [ "$ESPEAK" = "$SAPI" ] && [ "$SAPI" = "$SWIFT" ]; then
913 echo "You need Festival, eSpeak or Flite in your path, or SAPI available to build voice files"
917 if [ "$ARG_TTS" ]; then
920 echo "TTS engine to use: ${FLITE}${FESTIVAL}${ESPEAK}${SAPI}${SWIFT}(${DEFAULT_CHOICE})?"
923 advopts
="$advopts --tts=$option"
927 NOISEFLOOR
="500" # TODO: check this value
933 TTS_OPTS
=$ESPEAK_OPTS
936 TTS_ENGINE
="festival"
938 TTS_OPTS
=$FESTIVAL_OPTS
951 TTS_ENGINE
=$DEFAULT_TTS
952 TTS_OPTS
=$DEFAULT_TTS_OPTS
953 NOISEFLOOR
=$DEFAULT_NOISEFLOOR
955 echo "Using $TTS_ENGINE for TTS"
957 # Select which voice to use for Festival
958 if [ "$TTS_ENGINE" = "festival" ]; then
959 voicelist
=`echo "(voice.list)"|festival -i 2>/dev/null |tr "\n" " "|sed -e 's/.*festival> (\(.*\)) festival>/\1/'|sort`
960 for voice
in $voicelist; do
961 TTS_FESTIVAL_VOICE
="$voice" # Default choice
964 if [ "$ARG_VOICE" ]; then
968 for voice
in $voicelist; do
969 printf "%3d. %s\n" "$i" "$voice"
972 printf "Please select which Festival voice to use (default is $TTS_FESTIVAL_VOICE): "
976 for voice
in $voicelist; do
977 if [ "$i" = "$CHOICE" -o "$voice" = "$CHOICE" ]; then
978 TTS_FESTIVAL_VOICE
="$voice"
982 advopts
="$advopts --voice=$CHOICE"
983 echo "Festival voice set to $TTS_FESTIVAL_VOICE"
984 echo "(voice_$TTS_FESTIVAL_VOICE)" > festival-prolog.scm
987 # Read custom tts options from command line
988 if [ "$ARG_TTSOPTS" ]; then
989 TTS_OPTS
="$ARG_TTSOPTS"
990 advopts
="$advopts --ttsopts='$TTS_OPTS'"
991 echo "$TTS_ENGINE options set to $TTS_OPTS"
994 if [ "$swcodec" = "yes" ]; then
996 ENC_OPTS
="-q 4 -c 10"
998 if [ -n "`findtool lame`" ]; then
1000 ENC_OPTS
="--resample 12 -t -m m -h -V 9.999 -S -B 64 --vbr-new"
1002 echo "You need LAME in the system path to build voice files for"
1003 echo "HWCODEC targets."
1008 echo "Using $ENCODER for encoding voice clips"
1010 # Read custom encoder options from command line
1011 if [ "$ARG_ENCOPTS" ]; then
1012 ENC_OPTS
="$ARG_ENCOPTS"
1013 advopts
="$advopts --encopts='$ENC_OPTS'"
1014 echo "$ENCODER options set to $ENC_OPTS"
1018 if [ -n "`findtool cygpath`" ]; then
1019 TEMPDIR
=`cygpath . -a -w`
1024 # figure out which languages that are around
1025 for file in $rootdir/apps
/lang
/*.lang
; do
1026 clean
=`basename $file .lang`
1027 langs
="$langs $clean"
1030 if [ "$ARG_LANG" ]; then
1033 echo "Select a number for the language to use (default is english)"
1034 # FIXME The multiple-language feature is currently broken
1035 # echo "You may enter a comma-separated list of languages to build"
1038 for one
in $langs; do
1044 advopts
="$advopts --language=$pick"
1049 # Allow the user to pass a comma-separated list of langauges
1050 for thispick
in `echo $pick | sed 's/,/ /g'`; do
1052 for one
in $langs; do
1053 # Accept both the language number and name
1054 if [ "$num" = "$thispick" ] ||
[ "$thispick" = "$one" ]; then
1055 if [ "$output" = "" ]; then
1064 if [ -z "$output" ]; then
1072 echo "Rockbox configure script."
1073 echo "Invoke this in a directory to generate a Makefile to build Rockbox"
1074 echo "Do *NOT* run this within the tools directory!"
1077 Usage: configure [OPTION]...
1079 --target=TARGET Sets the target, TARGET can be either the target ID or
1080 corresponding string. Run without this option to see all
1083 --ram=RAM Sets the RAM for certain targets. Even though any number
1084 is accepted, not every number is correct. The default
1085 value will be applied, if you entered a wrong number
1086 (which depends on the target). Watch the output. Run
1087 without this option if you are not sure which the right
1090 --type=TYPE Sets the build type. Shortcuts are also valid.
1091 Run without this option to see all available types.
1092 Multiple values are allowed and managed in the input
1093 order. So --type=b stands for Bootloader build, while
1094 --type=ab stands for "Backlight MOD" build.
1096 --lcdwidth=X Sets the width of the LCD. Used only for application
1099 --lcdheight=Y Sets the height of the LCD. Used only for application
1102 --language=LANG Set the language used for voice generation (used only if
1105 --tts=ENGINE Set the TTS engine used for voice generation (used only
1108 --voice=VOICE Set voice to use with selected TTS (used only if TYPE is
1111 --ttsopts=OPTS Set TTS engine manual options (used only if TYPE is AV).
1113 --encopts=OPTS Set encoder manual options (used only if ATYPE is AV).
1115 --rbdir=dir Use alternative rockbox directory (default: ${rbdir}).
1116 This is useful for having multiple alternate builds on
1117 your device that you can load with ROLO. However as the
1118 bootloader looks for .rockbox you won't be able to boot
1121 --ccache Enable ccache use (done by default these days)
1122 --no-ccache Disable ccache use
1124 --eabi Make configure prefer toolchains that are able to compile
1125 for the new ARM standard abi EABI
1126 --no-eabi The opposite of --eabi (prefer old non-eabi toolchains)
1127 --thumb Build with -mthumb (for ARM builds)
1128 --no-thumb The opposite of --thumb (don't use thumb even for targets
1129 where this is the default
1130 --sdl-threads Force use of SDL threads. They have inferior performance,
1131 but are better debuggable with GDB
1132 --no-sdl-threads Disallow use of SDL threads. This prevents the default
1133 behavior of falling back to them if no native thread
1135 --prefix Target installation directory
1136 --help Shows this message (must not be used with other options)
1155 ARG_PREFIX
="$PREFIX"
1160 --ccache) ARG_CCACHE
=1;;
1161 --no-ccache) ARG_CCACHE
=0;;
1162 --encopts=*) ARG_ENCOPTS
=`echo "$arg" | cut -d = -f 2`;;
1163 --language=*) ARG_LANG
=`echo "$arg" | cut -d = -f 2`;;
1164 --lcdwidth=*) ARG_LCDWIDTH
=`echo "$arg" | cut -d = -f 2`;;
1165 --lcdheight=*) ARG_LCDHEIGHT
=`echo "$arg" | cut -d = -f 2`;;
1166 --ram=*) ARG_RAM
=`echo "$arg" | cut -d = -f 2`;;
1167 --rbdir=*) ARG_RBDIR
=`echo "$arg" | cut -d = -f 2`;;
1168 --target=*) ARG_TARGET
=`echo "$arg" | cut -d = -f 2`;;
1169 --tts=*) ARG_TTS
=`echo "$arg" | cut -d = -f 2`;;
1170 --ttsopts=*) ARG_TTSOPTS
=`echo "$arg" | cut -d = -f 2`;;
1171 --type=*) ARG_TYPE
=`echo "$arg" | cut -d = -f 2`;;
1172 --voice=*) ARG_VOICE
=`echo "$arg" | cut -d = -f 2`;;
1173 --eabi) ARG_ARM_EABI
=1;;
1174 --no-eabi) ARG_ARM_EABI
=0;;
1175 --thumb) ARG_ARM_THUMB
=1;;
1176 --no-thumb) ARG_ARM_THUMB
=0;;
1177 --sdl-threads)ARG_THREAD_SUPPORT
=1;;
1179 ARG_THREAD_SUPPORT
=0;;
1180 --prefix=*) ARG_PREFIX
=`echo "$arg" | cut -d = -f 2`;;
1182 *) err
=1; echo "[ERROR] Option '$arg' unsupported";;
1185 [ "$err" ] && exit 1
1189 if [ "$TMPDIR" != "" ]; then
1194 echo Using temporary directory
$tmpdir
1196 if test -r "configure"; then
1197 # this is a check for a configure script in the current directory, it there
1198 # is one, try to figure out if it is this one!
1200 if { grep "^# Jukebox" configure
>/dev
/null
2>&1 ; } then
1201 echo "WEEEEEEEEP. Don't run this configure script within the tools directory."
1202 echo "It will only cause you pain and grief. Instead do this:"
1205 echo " mkdir build-dir"
1206 echo " cd build-dir"
1207 echo " ../tools/configure"
1209 echo "Much happiness will arise from this. Enjoy"
1214 # get our current directory
1217 if { echo $pwd |
grep " "; } then
1218 echo "You're running this script in a path that contains space. The build"
1219 echo "system is unfortunately not clever enough to deal with this. Please"
1220 echo "run the script from a different path, rename the path or fix the build"
1225 if [ -z "$rootdir" ]; then
1226 ##################################################################
1227 # Figure out where the source code root is!
1229 rootdir
=`dirname $0`/..
/
1231 #####################################################################
1232 # Convert the possibly relative directory name to an absolute version
1238 # cd back to the build dir
1243 appsdir
='$(ROOTDIR)/apps'
1244 toolsdir
='$(ROOTDIR)/tools'
1247 ##################################################################
1248 # Figure out target platform
1251 if [ "$ARG_TARGET" ]; then
1252 buildfor
=$ARG_TARGET
1254 echo "Enter target platform:"
1256 ==Archos== ==iriver== ==Apple iPod==
1257 0) Player/Studio 10) H120/H140 20) Color/Photo
1258 1) Recorder 11) H320/H340 21) Nano 1G
1259 2) FM Recorder 12) iHP-100/110/115 22) Video
1260 3) Recorder v2 13) iFP-790 23) 3G
1261 4) Ondio SP 14) H10 20Gb 24) 4G Grayscale
1262 5) Ondio FM 15) H10 5/6Gb 25) Mini 1G
1263 6) AV300 26) Mini 2G
1264 ==Toshiba== 27) 1G, 2G
1265 ==Cowon/iAudio== 40) Gigabeat F/X 28) Nano 2G
1266 30) X5/X5V/X5L 41) Gigabeat S 29) Classic/6G
1268 32) 7 ==Olympus= ==SanDisk==
1269 33) D2 70) M:Robe 500 50) Sansa e200
1270 34) M3/M3L 71) M:Robe 100 51) Sansa e200R
1272 ==Creative== ==Philips== 53) Sansa m200
1273 90) Zen Vision:M 30GB 100) GoGear SA9200 54) Sansa c100
1274 91) Zen Vision:M 60GB 101) GoGear HDD1630/ 55) Sansa Clip
1275 92) Zen Vision HDD1830 56) Sansa e200v2
1276 102) GoGear HDD6330 57) Sansa m200v4
1277 ==Onda== 58) Sansa Fuze
1278 120) VX747 ==Meizu== 59) Sansa c200v2
1279 121) VX767 110) M6SL 60) Sansa Clipv2
1280 122) VX747+ 111) M6SP 61) Sansa View
1281 123) VX777 112) M3 62) Sansa Clip+
1283 ==Samsung== ==Tatung== 64) Sansa Fuze+
1284 140) YH-820 150) Elio TPJ-1022 65) Sansa Clip Zip
1286 142) YH-925 ==Packard Bell== ==Logik==
1287 143) YP-S3 160) Vibe 500 80) DAX 1GB MP3/DAB
1289 ==Application== ==MPIO== ==Lyre project==
1290 200) SDL 170) HD200 130) Lyre proto 1
1291 201) Android 171) HD300 131) Mini2440
1293 203) Nokia N900 ==ROCKCHIP== ==HiFiMAN==
1294 204) Pandora 180) rk27xx generic 190) HM-60x
1302 # Set of tools built for all target platforms:
1303 toolset
="rdf2binary convbdf codepages"
1305 # Toolsets for some target families:
1306 archosbitmaptools
="$toolset scramble descramble sh2d uclpack bmp2rb"
1307 iriverbitmaptools
="$toolset scramble descramble mkboot bmp2rb"
1308 iaudiobitmaptools
="$toolset scramble descramble mkboot bmp2rb"
1309 ipodbitmaptools
="$toolset scramble bmp2rb"
1310 gigabeatbitmaptools
="$toolset scramble descramble bmp2rb"
1311 tccbitmaptools
="$toolset scramble bmp2rb"
1312 # generic is used by IFP, Meizu and Onda
1313 genericbitmaptools
="$toolset bmp2rb"
1314 # scramble is used by all other targets
1315 scramblebitmaptools
="$genericbitmaptools scramble"
1318 # ---- For each target ----
1321 # target_id: a unique number identifying this target, IS NOT the menu number.
1322 # Just use the currently highest number+1 when you add a new
1324 # modelname: short model name used all over to identify this target
1325 # memory: number of megabytes of RAM this target has. If the amount can
1326 # be selected by the size prompt, let memory be unset here
1327 # target: -Ddefine passed to the build commands to make the correct
1328 # config-*.h file get included etc
1329 # tool: the tool that takes a plain binary and converts that into a
1330 # working "firmware" file for your target
1331 # output: the final output file name
1332 # boottool: the tool that takes a plain binary and generates a bootloader
1333 # file for your target (or blank to use $tool)
1334 # bootoutput:the final output file name for the bootloader (or blank to use
1336 # appextra: passed to the APPEXTRA variable in the Makefiles.
1337 # TODO: add proper explanation
1338 # archosrom: used only for Archos targets that build a special flashable .ucl
1340 # flash: name of output for flashing, for targets where there's a special
1341 # file output for this.
1342 # plugins: set to 'yes' to build the plugins. Early development builds can
1343 # set this to no in the early stages to have an easier life for a
1345 # swcodec: set 'yes' on swcodec targets
1346 # toolset: lists what particular tools in the tools/ directory that this
1347 # target needs to have built prior to building Rockbox
1350 # *cc: sets up gcc and compiler options for your target builds. Note
1351 # that if you select a simulator build, the compiler selection is
1352 # overridden later in the script.
1358 modelname
="archosplayer"
1359 target
="-DARCHOS_PLAYER"
1361 tool
="$rootdir/tools/scramble"
1363 appextra
="player:gui"
1364 archosrom
="$pwd/rombox.ucl"
1365 flash
="$pwd/rockbox.ucl"
1369 # toolset is the tools within the tools directory that we build for
1370 # this particular target.
1371 toolset
="$toolset scramble descramble sh2d player_unifont uclpack"
1373 # Note: the convbdf is present in the toolset just because: 1) the
1374 # firmware/Makefile assumes it is present always, and 2) we will need it when we
1375 # build the player simulator
1378 t_manufacturer
="archos"
1384 modelname
="archosrecorder"
1385 target
="-DARCHOS_RECORDER"
1387 tool
="$rootdir/tools/scramble"
1388 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1389 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1391 appextra
="recorder:gui:radio"
1392 #archosrom="$pwd/rombox.ucl"
1393 flash
="$pwd/rockbox.ucl"
1396 # toolset is the tools within the tools directory that we build for
1397 # this particular target.
1398 toolset
=$archosbitmaptools
1400 t_manufacturer
="archos"
1406 modelname
="archosfmrecorder"
1407 target
="-DARCHOS_FMRECORDER"
1409 tool
="$rootdir/tools/scramble -fm"
1410 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1411 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1413 appextra
="recorder:gui:radio"
1414 #archosrom="$pwd/rombox.ucl"
1415 flash
="$pwd/rockbox.ucl"
1418 # toolset is the tools within the tools directory that we build for
1419 # this particular target.
1420 toolset
=$archosbitmaptools
1422 t_manufacturer
="archos"
1428 modelname
="archosrecorderv2"
1429 target
="-DARCHOS_RECORDERV2"
1431 tool
="$rootdir/tools/scramble -v2"
1432 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1433 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1435 appextra
="recorder:gui:radio"
1436 #archosrom="$pwd/rombox.ucl"
1437 flash
="$pwd/rockbox.ucl"
1440 # toolset is the tools within the tools directory that we build for
1441 # this particular target.
1442 toolset
=$archosbitmaptools
1444 t_manufacturer
="archos"
1450 modelname
="archosondiosp"
1451 target
="-DARCHOS_ONDIOSP"
1453 tool
="$rootdir/tools/scramble -osp"
1454 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1455 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1457 appextra
="recorder:gui:radio"
1458 #archosrom="$pwd/rombox.ucl"
1459 flash
="$pwd/rockbox.ucl"
1462 # toolset is the tools within the tools directory that we build for
1463 # this particular target.
1464 toolset
=$archosbitmaptools
1466 t_manufacturer
="archos"
1472 modelname
="archosondiofm"
1473 target
="-DARCHOS_ONDIOFM"
1475 tool
="$rootdir/tools/scramble -ofm"
1476 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1477 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1479 appextra
="recorder:gui:radio"
1480 #archosrom="$pwd/rombox.ucl"
1481 flash
="$pwd/rockbox.ucl"
1484 toolset
=$archosbitmaptools
1486 t_manufacturer
="archos"
1492 modelname
="archosav300"
1493 target
="-DARCHOS_AV300"
1496 tool
="$rootdir/tools/scramble -mm=C"
1497 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1498 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1500 appextra
="recorder:gui:radio"
1503 # toolset is the tools within the tools directory that we build for
1504 # this particular target.
1505 toolset
="$toolset scramble descramble bmp2rb"
1506 # architecture, manufacturer and model for the target-tree build
1508 t_manufacturer
="archos"
1514 modelname
="iriverh120"
1515 target
="-DIRIVER_H120"
1518 tool
="$rootdir/tools/scramble -add=h120"
1519 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1520 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
1521 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1522 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1523 output
="rockbox.iriver"
1524 bootoutput
="bootloader.iriver"
1525 appextra
="recorder:gui:radio"
1526 flash
="$pwd/rombox.iriver"
1529 # toolset is the tools within the tools directory that we build for
1530 # this particular target.
1531 toolset
=$iriverbitmaptools
1533 t_manufacturer
="iriver"
1539 modelname
="iriverh300"
1540 target
="-DIRIVER_H300"
1543 tool
="$rootdir/tools/scramble -add=h300"
1544 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1545 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1546 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1547 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1548 output
="rockbox.iriver"
1549 appextra
="recorder:gui:radio"
1552 # toolset is the tools within the tools directory that we build for
1553 # this particular target.
1554 toolset
=$iriverbitmaptools
1556 t_manufacturer
="iriver"
1562 modelname
="iriverh100"
1563 target
="-DIRIVER_H100"
1566 tool
="$rootdir/tools/scramble -add=h100"
1567 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1568 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
1569 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1570 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1571 output
="rockbox.iriver"
1572 bootoutput
="bootloader.iriver"
1573 appextra
="recorder:gui:radio"
1574 flash
="$pwd/rombox.iriver"
1577 # toolset is the tools within the tools directory that we build for
1578 # this particular target.
1579 toolset
=$iriverbitmaptools
1581 t_manufacturer
="iriver"
1587 modelname
="iriverifp7xx"
1588 target
="-DIRIVER_IFP7XX"
1592 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1593 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1594 output
="rockbox.wma"
1595 appextra
="recorder:gui:radio"
1598 # toolset is the tools within the tools directory that we build for
1599 # this particular target.
1600 toolset
=$genericbitmaptools
1602 t_manufacturer
="pnx0101"
1603 t_model
="iriver-ifp7xx"
1608 modelname
="iriverh10"
1609 target
="-DIRIVER_H10"
1612 tool
="$rootdir/tools/scramble -mi4v3 -model=h10 -type=RBOS"
1613 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1614 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1615 output
="rockbox.mi4"
1616 appextra
="recorder:gui:radio"
1619 boottool
="$rootdir/tools/scramble -mi4v3 -model=h10 -type=RBBL"
1620 bootoutput
="H10_20GC.mi4"
1621 # toolset is the tools within the tools directory that we build for
1622 # this particular target.
1623 toolset
=$scramblebitmaptools
1624 # architecture, manufacturer and model for the target-tree build
1626 t_manufacturer
="iriver"
1632 modelname
="iriverh10_5gb"
1633 target
="-DIRIVER_H10_5GB"
1636 tool
="$rootdir/tools/scramble -mi4v2 -model=h105 -type=RBOS"
1637 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1638 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1639 output
="rockbox.mi4"
1640 appextra
="recorder:gui:radio"
1643 boottool
="$rootdir/tools/scramble -mi4v2 -model=h105 -type=RBBL"
1644 bootoutput
="H10.mi4"
1645 # toolset is the tools within the tools directory that we build for
1646 # this particular target.
1647 toolset
=$scramblebitmaptools
1648 # architecture, manufacturer and model for the target-tree build
1650 t_manufacturer
="iriver"
1656 modelname
="ipodcolor"
1657 target
="-DIPOD_COLOR"
1660 tool
="$rootdir/tools/scramble -add=ipco"
1661 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1662 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1663 output
="rockbox.ipod"
1664 appextra
="recorder:gui:radio"
1667 bootoutput
="bootloader-$modelname.ipod"
1668 # toolset is the tools within the tools directory that we build for
1669 # this particular target.
1670 toolset
=$ipodbitmaptools
1671 # architecture, manufacturer and model for the target-tree build
1673 t_manufacturer
="ipod"
1679 modelname
="ipodnano1g"
1680 target
="-DIPOD_NANO"
1683 tool
="$rootdir/tools/scramble -add=nano"
1684 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1685 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1686 output
="rockbox.ipod"
1687 appextra
="recorder:gui:radio"
1690 bootoutput
="bootloader-$modelname.ipod"
1691 # toolset is the tools within the tools directory that we build for
1692 # this particular target.
1693 toolset
=$ipodbitmaptools
1694 # architecture, manufacturer and model for the target-tree build
1696 t_manufacturer
="ipod"
1702 modelname
="ipodvideo"
1703 target
="-DIPOD_VIDEO"
1704 memory
=64 # always. This is reduced at runtime if needed
1706 tool
="$rootdir/tools/scramble -add=ipvd"
1707 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1708 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1709 output
="rockbox.ipod"
1710 appextra
="recorder:gui:radio"
1713 bootoutput
="bootloader-$modelname.ipod"
1714 # toolset is the tools within the tools directory that we build for
1715 # this particular target.
1716 toolset
=$ipodbitmaptools
1717 # architecture, manufacturer and model for the target-tree build
1719 t_manufacturer
="ipod"
1729 tool
="$rootdir/tools/scramble -add=ip3g"
1730 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1731 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1732 output
="rockbox.ipod"
1733 appextra
="recorder:gui:radio"
1736 bootoutput
="bootloader-$modelname.ipod"
1737 # toolset is the tools within the tools directory that we build for
1738 # this particular target.
1739 toolset
=$ipodbitmaptools
1740 # architecture, manufacturer and model for the target-tree build
1742 t_manufacturer
="ipod"
1752 tool
="$rootdir/tools/scramble -add=ip4g"
1753 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1754 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1755 output
="rockbox.ipod"
1756 appextra
="recorder:gui:radio"
1759 bootoutput
="bootloader-$modelname.ipod"
1760 # toolset is the tools within the tools directory that we build for
1761 # this particular target.
1762 toolset
=$ipodbitmaptools
1763 # architecture, manufacturer and model for the target-tree build
1765 t_manufacturer
="ipod"
1771 modelname
="ipodmini1g"
1772 target
="-DIPOD_MINI"
1775 tool
="$rootdir/tools/scramble -add=mini"
1776 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1777 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1778 output
="rockbox.ipod"
1779 appextra
="recorder:gui:radio"
1782 bootoutput
="bootloader-$modelname.ipod"
1783 # toolset is the tools within the tools directory that we build for
1784 # this particular target.
1785 toolset
=$ipodbitmaptools
1786 # architecture, manufacturer and model for the target-tree build
1788 t_manufacturer
="ipod"
1794 modelname
="ipodmini2g"
1795 target
="-DIPOD_MINI2G"
1798 tool
="$rootdir/tools/scramble -add=mn2g"
1799 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1800 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1801 output
="rockbox.ipod"
1802 appextra
="recorder:gui:radio"
1805 bootoutput
="bootloader-$modelname.ipod"
1806 # toolset is the tools within the tools directory that we build for
1807 # this particular target.
1808 toolset
=$ipodbitmaptools
1809 # architecture, manufacturer and model for the target-tree build
1811 t_manufacturer
="ipod"
1817 modelname
="ipod1g2g"
1818 target
="-DIPOD_1G2G"
1821 tool
="$rootdir/tools/scramble -add=1g2g"
1822 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1823 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1824 output
="rockbox.ipod"
1825 appextra
="recorder:gui:radio"
1828 bootoutput
="bootloader-$modelname.ipod"
1829 # toolset is the tools within the tools directory that we build for
1830 # this particular target.
1831 toolset
=$ipodbitmaptools
1832 # architecture, manufacturer and model for the target-tree build
1834 t_manufacturer
="ipod"
1840 modelname
="ipodnano2g"
1841 target
="-DIPOD_NANO2G"
1844 tool
="$rootdir/tools/scramble -add=nn2g"
1845 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1846 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1847 output
="rockbox.ipod"
1848 appextra
="recorder:gui:radio"
1851 bootoutput
="bootloader-$modelname.ipod"
1852 # toolset is the tools within the tools directory that we build for
1853 # this particular target.
1854 toolset
=$ipodbitmaptools
1855 # architecture, manufacturer and model for the target-tree build
1857 t_manufacturer
="s5l8700"
1858 t_model
="ipodnano2g"
1867 tool
="$rootdir/tools/scramble -add=ip6g"
1868 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1869 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1870 output
="rockbox.ipod"
1871 appextra
="recorder:gui:radio"
1874 bootoutput
="bootloader-$modelname.ipod"
1875 # toolset is the tools within the tools directory that we build for
1876 # this particular target.
1877 toolset
=$ipodbitmaptools
1878 # architecture, manufacturer and model for the target-tree build
1880 t_manufacturer
="s5l8702"
1886 modelname
="iaudiox5"
1887 target
="-DIAUDIO_X5"
1890 tool
="$rootdir/tools/scramble -add=iax5"
1891 boottool
="$rootdir/tools/scramble -iaudiox5"
1892 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1893 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1894 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1895 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 7"
1896 output
="rockbox.iaudio"
1897 bootoutput
="x5_fw.bin"
1898 appextra
="recorder:gui:radio"
1901 # toolset is the tools within the tools directory that we build for
1902 # this particular target.
1903 toolset
="$iaudiobitmaptools"
1904 # architecture, manufacturer and model for the target-tree build
1906 t_manufacturer
="iaudio"
1912 modelname
="iaudiom5"
1913 target
="-DIAUDIO_M5"
1916 tool
="$rootdir/tools/scramble -add=iam5"
1917 boottool
="$rootdir/tools/scramble -iaudiom5"
1918 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1919 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
1920 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1921 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 7"
1922 output
="rockbox.iaudio"
1923 bootoutput
="m5_fw.bin"
1924 appextra
="recorder:gui:radio"
1927 # toolset is the tools within the tools directory that we build for
1928 # this particular target.
1929 toolset
="$iaudiobitmaptools"
1930 # architecture, manufacturer and model for the target-tree build
1932 t_manufacturer
="iaudio"
1942 tool
="$rootdir/tools/scramble -add=i7"
1943 boottool
="$rootdir/tools/scramble -tcc=crc"
1944 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1945 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1946 output
="rockbox.iaudio"
1947 appextra
="recorder:gui:radio"
1950 bootoutput
="I7_FW.BIN"
1951 # toolset is the tools within the tools directory that we build for
1952 # this particular target.
1953 toolset
="$tccbitmaptools"
1954 # architecture, manufacturer and model for the target-tree build
1956 t_manufacturer
="tcc77x"
1966 tool
="$rootdir/tools/scramble -add=d2"
1968 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1969 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1971 bootoutput
="bootloader-cowond2.bin"
1972 appextra
="recorder:gui:radio"
1975 toolset
="$tccbitmaptools"
1976 # architecture, manufacturer and model for the target-tree build
1978 t_manufacturer
="tcc780x"
1984 modelname
="iaudiom3"
1985 target
="-DIAUDIO_M3"
1988 tool
="$rootdir/tools/scramble -add=iam3"
1989 boottool
="$rootdir/tools/scramble -iaudiom3"
1990 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1991 bmp2rb_native
="$rootdir/tools/bmp2rb -f 7"
1992 output
="rockbox.iaudio"
1993 bootoutput
="cowon_m3.bin"
1994 appextra
="recorder:gui:radio"
1997 # toolset is the tools within the tools directory that we build for
1998 # this particular target.
1999 toolset
="$iaudiobitmaptools"
2000 # architecture, manufacturer and model for the target-tree build
2002 t_manufacturer
="iaudio"
2008 modelname
="gigabeatfx"
2009 target
="-DGIGABEAT_F"
2012 tool
="$rootdir/tools/scramble -add=giga"
2013 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2014 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2015 output
="rockbox.gigabeat"
2016 appextra
="recorder:gui:radio"
2019 toolset
=$gigabeatbitmaptools
2020 boottool
="$rootdir/tools/scramble -gigabeat"
2021 bootoutput
="FWIMG01.DAT"
2022 # architecture, manufacturer and model for the target-tree build
2024 t_manufacturer
="s3c2440"
2025 t_model
="gigabeat-fx"
2030 modelname
="gigabeats"
2031 target
="-DGIGABEAT_S"
2034 tool
="$rootdir/tools/scramble -add=gigs"
2035 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2036 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2037 output
="rockbox.gigabeat"
2038 appextra
="recorder:gui:radio"
2041 toolset
="$gigabeatbitmaptools"
2042 boottool
="$rootdir/tools/scramble -gigabeats"
2044 # architecture, manufacturer and model for the target-tree build
2046 t_manufacturer
="imx31"
2047 t_model
="gigabeat-s"
2052 modelname
="mrobe500"
2053 target
="-DMROBE_500"
2056 tool
="$rootdir/tools/scramble -add=m500"
2057 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2058 bmp2rb_native
="$rootdir/tools/bmp2rb -f 8"
2059 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
2060 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
2061 output
="rockbox.mrobe500"
2062 appextra
="recorder:gui:radio"
2065 toolset
=$gigabeatbitmaptools
2067 bootoutput
="rockbox.mrboot"
2068 # architecture, manufacturer and model for the target-tree build
2070 t_manufacturer
="tms320dm320"
2076 modelname
="mrobe100"
2077 target
="-DMROBE_100"
2080 tool
="$rootdir/tools/scramble -mi4v2 -model=m100 -type=RBOS"
2081 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2082 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
2083 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
2084 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
2085 output
="rockbox.mi4"
2086 appextra
="recorder:gui:radio"
2089 boottool
="$rootdir/tools/scramble -mi4v2 -model=m100 -type=RBBL"
2090 bootoutput
="pp5020.mi4"
2091 # toolset is the tools within the tools directory that we build for
2092 # this particular target.
2093 toolset
=$scramblebitmaptools
2094 # architecture, manufacturer and model for the target-tree build
2096 t_manufacturer
="olympus"
2102 modelname
="logikdax"
2103 target
="-DLOGIK_DAX"
2106 tool
="$rootdir/tools/scramble -add=ldax"
2107 boottool
="$rootdir/tools/scramble -tcc=crc"
2108 bootoutput
="player.rom"
2109 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2110 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
2111 output
="rockbox.logik"
2112 appextra
="recorder:gui:radio"
2115 # toolset is the tools within the tools directory that we build for
2116 # this particular target.
2117 toolset
=$tccbitmaptools
2118 # architecture, manufacturer and model for the target-tree build
2120 t_manufacturer
="tcc77x"
2126 modelname
="zenvisionm30gb"
2127 target
="-DCREATIVE_ZVM"
2130 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2131 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2132 tool
="$rootdir/tools/scramble -creative=zvm"
2134 output
="rockbox.zvm"
2135 appextra
="recorder:gui:radio"
2138 toolset
=$ipodbitmaptools
2139 boottool
="$rootdir/tools/scramble -creative=zvm -no-ciff"
2140 bootoutput
="rockbox.zvmboot"
2141 # architecture, manufacturer and model for the target-tree build
2143 t_manufacturer
="tms320dm320"
2144 t_model
="creative-zvm"
2149 modelname
="zenvisionm60gb"
2150 target
="-DCREATIVE_ZVM60GB"
2153 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2154 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2155 tool
="$rootdir/tools/scramble -creative=zvm60 -no-ciff"
2157 output
="rockbox.zvm60"
2158 appextra
="recorder:gui:radio"
2161 toolset
=$ipodbitmaptools
2162 boottool
="$rootdir/tools/scramble -creative=zvm60"
2163 bootoutput
="rockbox.zvm60boot"
2164 # architecture, manufacturer and model for the target-tree build
2166 t_manufacturer
="tms320dm320"
2167 t_model
="creative-zvm"
2172 modelname
="zenvision"
2173 target
="-DCREATIVE_ZV"
2176 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2177 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2178 tool
="$rootdir/tools/scramble -creative=zenvision -no-ciff"
2181 appextra
="recorder:gui:radio"
2184 toolset
=$ipodbitmaptools
2185 boottool
="$rootdir/tools/scramble -creative=zenvision"
2186 bootoutput
="rockbox.zvboot"
2187 # architecture, manufacturer and model for the target-tree build
2189 t_manufacturer
="tms320dm320"
2190 t_model
="creative-zvm"
2195 modelname
="sansae200"
2196 target
="-DSANSA_E200"
2197 memory
=32 # supposedly
2199 tool
="$rootdir/tools/scramble -mi4v3 -model=e200 -type=RBOS"
2200 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2201 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2202 output
="rockbox.mi4"
2203 appextra
="recorder:gui:radio"
2206 boottool
="$rootdir/tools/scramble -mi4v3 -model=e200 -type=RBBL"
2207 bootoutput
="PP5022.mi4"
2208 # toolset is the tools within the tools directory that we build for
2209 # this particular target.
2210 toolset
=$scramblebitmaptools
2211 # architecture, manufacturer and model for the target-tree build
2213 t_manufacturer
="sandisk"
2214 t_model
="sansa-e200"
2218 # the e200R model is pretty much identical to the e200, it only has a
2219 # different option to the scramble tool when building a bootloader and
2220 # makes the bootloader output file name in all lower case.
2222 modelname
="sansae200r"
2223 target
="-DSANSA_E200"
2224 memory
=32 # supposedly
2226 tool
="$rootdir/tools/scramble -mi4v3 -model=e20r -type=RBOS"
2227 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2228 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2229 output
="rockbox.mi4"
2230 appextra
="recorder:gui:radio"
2233 boottool
="$rootdir/tools/scramble -mi4r -model=e20r -type=RBBL"
2234 bootoutput
="pp5022.mi4"
2235 # toolset is the tools within the tools directory that we build for
2236 # this particular target.
2237 toolset
=$scramblebitmaptools
2238 # architecture, manufacturer and model for the target-tree build
2240 t_manufacturer
="sandisk"
2241 t_model
="sansa-e200"
2246 modelname
="sansac200"
2247 target
="-DSANSA_C200"
2248 memory
=32 # supposedly
2250 tool
="$rootdir/tools/scramble -mi4v3 -model=c200 -type=RBOS"
2251 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2252 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2253 output
="rockbox.mi4"
2254 appextra
="recorder:gui:radio"
2257 boottool
="$rootdir/tools/scramble -mi4v3 -model=c200 -type=RBBL"
2258 bootoutput
="firmware.mi4"
2259 # toolset is the tools within the tools directory that we build for
2260 # this particular target.
2261 toolset
=$scramblebitmaptools
2262 # architecture, manufacturer and model for the target-tree build
2264 t_manufacturer
="sandisk"
2265 t_model
="sansa-c200"
2270 modelname
="sansam200"
2271 target
="-DSANSA_M200"
2274 tool
="$rootdir/tools/scramble -add=m200"
2275 boottool
="$rootdir/tools/scramble -tcc=crc"
2276 bootoutput
="player.rom"
2277 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2278 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
2279 output
="rockbox.m200"
2280 appextra
="recorder:gui:radio"
2283 # toolset is the tools within the tools directory that we build for
2284 # this particular target.
2285 toolset
=$tccbitmaptools
2286 # architecture, manufacturer and model for the target-tree build
2288 t_manufacturer
="tcc77x"
2294 modelname
="sansac100"
2295 target
="-DSANSA_C100"
2298 tool
="$rootdir/tools/scramble -add=c100"
2299 boottool
="$rootdir/tools/scramble -tcc=crc"
2300 bootoutput
="player.rom"
2301 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2302 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2303 output
="rockbox.c100"
2304 appextra
="recorder:gui:radio"
2307 # toolset is the tools within the tools directory that we build for
2308 # this particular target.
2309 toolset
=$tccbitmaptools
2310 # architecture, manufacturer and model for the target-tree build
2312 t_manufacturer
="tcc77x"
2318 modelname
="sansaclip"
2319 target
="-DSANSA_CLIP"
2321 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2322 bmp2rb_native
="$bmp2rb_mono"
2323 tool
="$rootdir/tools/scramble -add=clip"
2324 output
="rockbox.sansa"
2325 bootoutput
="bootloader-clip.sansa"
2326 appextra
="recorder:gui:radio"
2329 toolset
=$scramblebitmaptools
2331 t_manufacturer
="as3525"
2332 t_model
="sansa-clip"
2333 if [ "$ARG_ARM_THUMB" != 0 ]; then ARG_ARM_THUMB
=1; fi
2335 GCCOPTS
=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2341 modelname
="sansae200v2"
2342 target
="-DSANSA_E200V2"
2344 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2345 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2346 tool
="$rootdir/tools/scramble -add=e2v2"
2347 output
="rockbox.sansa"
2348 bootoutput
="bootloader-e200v2.sansa"
2349 appextra
="recorder:gui:radio"
2352 toolset
=$scramblebitmaptools
2354 t_manufacturer
="as3525"
2355 t_model
="sansa-e200v2"
2362 modelname
="sansam200v4"
2363 target
="-DSANSA_M200V4"
2365 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2366 bmp2rb_native
="$bmp2rb_mono"
2367 tool
="$rootdir/tools/scramble -add=m2v4"
2368 output
="rockbox.sansa"
2369 bootoutput
="bootloader-m200v4.sansa"
2370 appextra
="recorder:gui:radio"
2373 toolset
=$scramblebitmaptools
2375 t_manufacturer
="as3525"
2376 t_model
="sansa-m200v4"
2377 if [ "$ARG_ARM_THUMB" != 0 ]; then ARG_ARM_THUMB
=1; fi
2379 GCCOPTS
=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2385 modelname
="sansafuze"
2386 target
="-DSANSA_FUZE"
2388 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2389 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2390 tool
="$rootdir/tools/scramble -add=fuze"
2391 output
="rockbox.sansa"
2392 bootoutput
="bootloader-fuze.sansa"
2393 appextra
="recorder:gui:radio"
2396 toolset
=$scramblebitmaptools
2398 t_manufacturer
="as3525"
2399 t_model
="sansa-fuze"
2406 modelname
="sansac200v2"
2407 target
="-DSANSA_C200V2"
2408 memory
=2 # as per OF diagnosis mode
2409 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2410 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2411 tool
="$rootdir/tools/scramble -add=c2v2"
2412 output
="rockbox.sansa"
2413 bootoutput
="bootloader-c200v2.sansa"
2414 appextra
="recorder:gui:radio"
2417 # toolset is the tools within the tools directory that we build for
2418 # this particular target.
2419 toolset
=$scramblebitmaptools
2420 # architecture, manufacturer and model for the target-tree build
2422 t_manufacturer
="as3525"
2423 t_model
="sansa-c200v2"
2424 if [ "$ARG_ARM_THUMB" != 0 ]; then ARG_ARM_THUMB
=1; fi
2426 GCCOPTS
=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2431 modelname
="sansaclipv2"
2432 target
="-DSANSA_CLIPV2"
2434 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2435 bmp2rb_native
="$bmp2rb_mono"
2436 tool
="$rootdir/tools/scramble -add=clv2"
2437 output
="rockbox.sansa"
2438 bootoutput
="bootloader-clipv2.sansa"
2439 appextra
="recorder:gui:radio"
2442 toolset
=$scramblebitmaptools
2444 t_manufacturer
="as3525"
2445 t_model
="sansa-clipv2"
2450 echo "Sansa View is not yet supported!"
2453 modelname
="sansaview"
2454 target
="-DSANSA_VIEW"
2457 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2458 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2459 output
="rockbox.mi4"
2463 boottool
="$rootdir/tools/scramble -mi4v3 -model=view -type=RBBL"
2464 bootoutput
="firmware.mi4"
2465 # toolset is the tools within the tools directory that we build for
2466 # this particular target.
2467 toolset
=$scramblebitmaptools
2469 t_manufacturer
="sandisk"
2470 t_model
="sansa-view"
2475 modelname
="sansaclipplus"
2476 target
="-DSANSA_CLIPPLUS"
2478 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2479 bmp2rb_native
="$bmp2rb_mono"
2480 tool
="$rootdir/tools/scramble -add=cli+"
2481 output
="rockbox.sansa"
2482 bootoutput
="bootloader-clipplus.sansa"
2483 appextra
="recorder:gui:radio"
2486 toolset
=$scramblebitmaptools
2488 t_manufacturer
="as3525"
2489 t_model
="sansa-clipplus"
2495 modelname
="sansafuzev2"
2496 target
="-DSANSA_FUZEV2"
2498 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2499 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
2500 tool
="$rootdir/tools/scramble -add=fuz2"
2501 output
="rockbox.sansa"
2502 bootoutput
="bootloader-fuzev2.sansa"
2503 appextra
="recorder:gui:radio"
2506 toolset
=$scramblebitmaptools
2508 t_manufacturer
="as3525"
2509 t_model
="sansa-fuzev2"
2515 modelname
="sansafuzeplus"
2516 target
="-DSANSA_FUZEPLUS"
2518 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2519 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2520 tool
="$rootdir/tools/scramble -add=fuz+"
2521 output
="rockbox.sansa"
2522 bootoutput
="bootloader-fuzeplus.sansa"
2523 appextra
="gui:recorder:radio"
2526 toolset
=$scramblebitmaptools
2528 t_manufacturer
="imx233"
2529 t_model
="sansa-fuzeplus"
2535 modelname
="sansaclipzip"
2536 target
="-DSANSA_CLIPZIP"
2538 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2539 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2540 tool
="$rootdir/tools/scramble -add=clzp"
2541 output
="rockbox.sansa"
2542 bootoutput
="bootloader-clipzip.sansa"
2543 appextra
="recorder:gui:radio"
2546 toolset
=$scramblebitmaptools
2548 t_manufacturer
="as3525"
2549 t_model
="sansa-clipzip"
2555 modelname
="tatungtpj1022"
2556 target
="-DTATUNG_TPJ1022"
2559 tool
="$rootdir/tools/scramble -add tpj2"
2560 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2561 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
2562 output
="rockbox.elio"
2563 appextra
="recorder:gui:radio"
2566 boottool
="$rootdir/tools/scramble -mi4v2"
2567 bootoutput
="pp5020.mi4"
2568 # toolset is the tools within the tools directory that we build for
2569 # this particular target.
2570 toolset
=$scramblebitmaptools
2571 # architecture, manufacturer and model for the target-tree build
2573 t_manufacturer
="tatung"
2579 modelname
="gogearsa9200"
2580 target
="-DPHILIPS_SA9200"
2581 memory
=32 # supposedly
2583 tool
="$rootdir/tools/scramble -mi4v3 -model=9200 -type=RBOS"
2584 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2585 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2586 output
="rockbox.mi4"
2587 appextra
="recorder:gui:radio"
2590 boottool
="$rootdir/tools/scramble -mi4v3 -model=9200 -type=RBBL"
2591 bootoutput
="FWImage.ebn"
2592 # toolset is the tools within the tools directory that we build for
2593 # this particular target.
2594 toolset
=$scramblebitmaptools
2595 # architecture, manufacturer and model for the target-tree build
2597 t_manufacturer
="philips"
2603 modelname
="gogearhdd1630"
2604 target
="-DPHILIPS_HDD1630"
2605 memory
=32 # supposedly
2607 tool
="$rootdir/tools/scramble -mi4v3 -model=1630 -type=RBOS"
2608 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2609 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2610 output
="rockbox.mi4"
2611 appextra
="recorder:gui:radio"
2614 boottool
="$rootdir/tools/scramble -mi4v3 -model=1630 -type=RBBL"
2615 bootoutput
="FWImage.ebn"
2616 # toolset is the tools within the tools directory that we build for
2617 # this particular target.
2618 toolset
=$scramblebitmaptools
2619 # architecture, manufacturer and model for the target-tree build
2621 t_manufacturer
="philips"
2627 modelname
="gogearhdd6330"
2628 target
="-DPHILIPS_HDD6330"
2631 tool
="$rootdir/tools/scramble -mi4v3 -model=6330 -type=RBOS"
2632 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2633 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
2634 output
="rockbox.mi4"
2635 appextra
="recorder:gui:radio"
2638 boottool
="$rootdir/tools/scramble -mi4v3 -model=6330 -type=RBBL"
2639 bootoutput
="FWImage.ebn"
2640 # toolset is the tools within the tools directory that we build for
2641 # this particular target.
2642 toolset
=$scramblebitmaptools
2643 # architecture, manufacturer and model for the target-tree build
2645 t_manufacturer
="philips"
2651 modelname
="meizum6sl"
2652 target
="-DMEIZU_M6SL"
2656 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2657 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2658 output
="rockbox.meizu"
2659 appextra
="recorder:gui:radio"
2662 toolset
=$genericbitmaptools
2664 bootoutput
="rockboot.ebn"
2665 # architecture, manufacturer and model for the target-tree build
2667 t_manufacturer
="s5l8700"
2668 t_model
="meizu-m6sl"
2673 modelname
="meizum6sp"
2674 target
="-DMEIZU_M6SP"
2678 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2679 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2680 output
="rockbox.meizu"
2681 appextra
="recorder:gui:radio"
2684 toolset
=$genericbitmaptools
2686 bootoutput
="rockboot.ebn"
2687 # architecture, manufacturer and model for the target-tree build
2689 t_manufacturer
="s5l8700"
2690 t_model
="meizu-m6sp"
2700 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2701 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2702 output
="rockbox.meizu"
2703 appextra
="recorder:gui:radio"
2706 toolset
=$genericbitmaptools
2708 bootoutput
="rockboot.ebn"
2709 # architecture, manufacturer and model for the target-tree build
2711 t_manufacturer
="s5l8700"
2717 modelname
="ondavx747"
2718 target
="-DONDA_VX747"
2721 tool
="$rootdir/tools/scramble -add=x747"
2722 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2723 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2724 output
="rockbox.vx747"
2725 appextra
="recorder:gui:radio"
2728 toolset
=$genericbitmaptools
2729 boottool
="$rootdir/tools/scramble -ccpmp"
2730 bootoutput
="ccpmp.bin"
2731 # architecture, manufacturer and model for the target-tree build
2733 t_manufacturer
="ingenic_jz47xx"
2734 t_model
="onda_vx747"
2739 modelname
="ondavx767"
2740 target
="-DONDA_VX767"
2744 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2745 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2746 output
="rockbox.vx767"
2747 appextra
="recorder:gui:radio"
2750 toolset
=$genericbitmaptools
2751 boottool
="$rootdir/tools/scramble -ccpmp"
2752 bootoutput
="ccpmp.bin"
2753 # architecture, manufacturer and model for the target-tree build
2755 t_manufacturer
="ingenic_jz47xx"
2756 t_model
="onda_vx767"
2761 modelname
="ondavx747p"
2762 target
="-DONDA_VX747P"
2765 tool
="$rootdir/tools/scramble -add=747p"
2766 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2767 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2768 output
="rockbox.vx747p"
2769 appextra
="recorder:gui:radio"
2772 toolset
=$genericbitmaptools
2773 boottool
="$rootdir/tools/scramble -ccpmp"
2774 bootoutput
="ccpmp.bin"
2775 # architecture, manufacturer and model for the target-tree build
2777 t_manufacturer
="ingenic_jz47xx"
2778 t_model
="onda_vx747"
2783 modelname
="ondavx777"
2784 target
="-DONDA_VX777"
2787 tool
="$rootdir/tools/scramble -add=x777"
2788 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2789 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2790 output
="rockbox.vx777"
2791 appextra
="recorder:gui:radio"
2794 toolset
=$genericbitmaptools
2795 boottool
="$rootdir/tools/scramble -ccpmp"
2796 bootoutput
="ccpmp.bin"
2797 # architecture, manufacturer and model for the target-tree build
2799 t_manufacturer
="ingenic_jz47xx"
2800 t_model
="onda_vx747"
2805 modelname
="lyreproto1"
2806 target
="-DLYRE_PROTO1"
2810 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2811 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2812 output
="rockbox.lyre"
2813 appextra
="recorder:gui:radio"
2816 toolset
=$scramblebitmaptools
2818 bootoutput
="bootloader-proto1.lyre"
2819 # architecture, manufacturer and model for the target-tree build
2821 t_manufacturer
="at91sam"
2822 t_model
="lyre_proto1"
2827 modelname
="mini2440"
2831 tool
="$rootdir/tools/scramble -add=m244"
2832 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2833 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2834 output
="rockbox.mini2440"
2835 appextra
="recorder:gui:radio"
2838 toolset
=$scramblebitmaptools
2840 bootoutput
="bootloader-mini2440.lyre"
2841 # architecture, manufacturer and model for the target-tree build
2843 t_manufacturer
="s3c2440"
2849 modelname
="samsungyh820"
2850 target
="-DSAMSUNG_YH820"
2853 tool
="$rootdir/tools/scramble -mi4v2 -model=y820 -type=RBOS"
2854 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2855 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2856 output
="rockbox.mi4"
2857 appextra
="recorder:gui:radio"
2860 boottool
="$rootdir/tools/scramble -mi4v2 -model=y820 -type=RBBL"
2861 bootoutput
="FW_YH820.mi4"
2862 # toolset is the tools within the tools directory that we build for
2863 # this particular target.
2864 toolset
=$scramblebitmaptools
2865 # architecture, manufacturer and model for the target-tree build
2867 t_manufacturer
="samsung"
2873 modelname
="samsungyh920"
2874 target
="-DSAMSUNG_YH920"
2877 tool
="$rootdir/tools/scramble -mi4v2 -model=y920 -type=RBOS"
2878 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2879 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
2880 output
="rockbox.mi4"
2881 appextra
="recorder:gui:radio"
2884 boottool
="$rootdir/tools/scramble -mi4v2 -model=y920 -type=RBBL"
2885 bootoutput
="PP5020.mi4"
2886 # toolset is the tools within the tools directory that we build for
2887 # this particular target.
2888 toolset
=$scramblebitmaptools
2889 # architecture, manufacturer and model for the target-tree build
2891 t_manufacturer
="samsung"
2897 modelname
="samsungyh925"
2898 target
="-DSAMSUNG_YH925"
2901 tool
="$rootdir/tools/scramble -mi4v2 -model=y925 -type=RBOS"
2902 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2903 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2904 output
="rockbox.mi4"
2905 appextra
="recorder:gui:radio"
2908 boottool
="$rootdir/tools/scramble -mi4v2 -model=y925 -type=RBBL"
2909 bootoutput
="FW_YH925.mi4"
2910 # toolset is the tools within the tools directory that we build for
2911 # this particular target.
2912 toolset
=$scramblebitmaptools
2913 # architecture, manufacturer and model for the target-tree build
2915 t_manufacturer
="samsung"
2921 modelname
="samsungyps3"
2922 target
="-DSAMSUNG_YPS3"
2926 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2927 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2928 output
="rockbox.yps3"
2929 appextra
="recorder:gui:radio"
2932 toolset
=$genericbitmaptools
2934 bootoutput
="rockboot.ebn"
2935 # architecture, manufacturer and model for the target-tree build
2937 t_manufacturer
="s5l8700"
2944 target
="-DPBELL_VIBE500"
2947 tool
="$rootdir/tools/scramble -mi4v3 -model=v500 -type=RBOS"
2948 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2949 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
2950 output
="rockbox.mi4"
2951 appextra
="recorder:gui:radio"
2954 boottool
="$rootdir/tools/scramble -mi4v3 -model=v500 -type=RBBL"
2955 bootoutput
="jukebox.mi4"
2956 # toolset is the tools within the tools directory that we build for
2957 # this particular target.
2958 toolset
=$scramblebitmaptools
2959 # architecture, manufacturer and model for the target-tree build
2961 t_manufacturer
="pbell"
2967 modelname
="mpiohd200"
2968 target
="-DMPIO_HD200"
2971 tool
="$rootdir/tools/scramble -add=hd20"
2972 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2973 bmp2rb_native
="$rootdir/tools/bmp2rb -f 7"
2974 output
="rockbox.mpio"
2975 bootoutput
="bootloader.mpio"
2976 appextra
="recorder:gui:radio"
2979 # toolset is the tools within the tools directory that we build for
2980 # this particular target.
2981 toolset
="$genericbitmaptools"
2982 # architecture, manufacturer and model for the target-tree build
2984 t_manufacturer
="mpio"
2990 modelname
="mpiohd300"
2991 target
="-DMPIO_HD300"
2994 tool
="$rootdir/tools/scramble -add=hd30"
2995 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2996 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
2997 output
="rockbox.mpio"
2998 bootoutput
="bootloader.mpio"
2999 appextra
="recorder:gui:radio"
3002 # toolset is the tools within the tools directory that we build for
3003 # this particular target.
3004 toolset
="$genericbitmaptools"
3005 # architecture, manufacturer and model for the target-tree build
3007 t_manufacturer
="mpio"
3013 modelname
="rk27generic"
3014 target
="-DRK27_GENERIC"
3017 tool
="$rootdir/tools/scramble -add=rk27"
3018 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
3019 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
3020 output
="rockbox.rk27"
3021 bootoutput
="bootloader.rk27"
3022 appextra
="recorder:gui:radio"
3025 # toolset is the tools within the tools directory that we build for
3026 # this particular target.
3027 toolset
="$genericbitmaptools"
3028 # architecture, manufacturer and model for the target-tree build
3030 t_manufacturer
="rk27xx"
3031 t_model
="rk27generic"
3036 modelname
="hifimanhm60x"
3040 tool
="$rootdir/tools/scramble -add=rk27"
3041 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
3042 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
3043 output
="rockbox.rk27"
3044 bootoutput
="bootloader.rk27"
3045 appextra
="recorder:gui"
3048 # toolset is the tools within the tools directory that we build for
3049 # this particular target.
3050 toolset
="$genericbitmaptools"
3051 # architecture, manufacturer and model for the target-tree build
3053 t_manufacturer
="rk27xx"
3059 modelname
="hifimanhm801"
3063 tool
="$rootdir/tools/scramble -add=rk27"
3064 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
3065 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
3066 output
="rockbox.rk27"
3067 bootoutput
="bootloader.rk27"
3068 appextra
="recorder:gui"
3071 # toolset is the tools within the tools directory that we build for
3072 # this particular target.
3073 toolset
="$genericbitmaptools"
3074 # architecture, manufacturer and model for the target-tree build
3076 t_manufacturer
="rk27xx"
3092 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
3093 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
3095 bootoutput
="rockbox"
3096 appextra
="recorder:gui:radio"
3099 # architecture, manufacturer and model for the target-tree build
3101 t_manufacturer
="sdl"
3112 sharedir
="/data/data/org.rockbox/app_rockbox/rockbox"
3113 bindir
="/data/data/org.rockbox/lib"
3114 libdir
="/data/data/org.rockbox/app_rockbox"
3120 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
3121 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
3122 output
="librockbox.so"
3123 bootoutput
="librockbox.so"
3124 appextra
="recorder:gui:radio:hosted/android"
3127 # architecture, manufacturer and model for the target-tree build
3129 t_manufacturer
="android"
3136 modelname
="nokian8xx"
3138 target
="-DNOKIAN8XX"
3139 sharedir
="/opt/rockbox/share/rockbox"
3140 bindir
="/opt/rockbox/bin"
3141 libdir
="/opt/rockbox/lib"
3147 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
3148 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
3150 bootoutput
="rockbox"
3151 appextra
="recorder:gui:radio"
3154 # architecture, manufacturer and model for the target-tree build
3156 t_manufacturer
="maemo"
3163 modelname
="nokian900"
3165 target
="-DNOKIAN900"
3166 sharedir
="/opt/rockbox/share/rockbox"
3167 bindir
="/opt/rockbox/bin"
3168 libdir
="/opt/rockbox/lib"
3174 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
3175 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
3177 bootoutput
="rockbox"
3178 appextra
="recorder:gui:radio"
3181 # architecture, manufacturer and model for the target-tree build
3183 t_manufacturer
="maemo"
3193 sharedir
="rockbox/share/rockbox"
3194 bindir
="rockbox/bin"
3195 libdir
="rockbox/lib"
3201 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
3202 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
3204 bootoutput
="rockbox"
3205 appextra
="recorder:gui:radio"
3208 # architecture, manufacturer and model for the target-tree build
3210 t_manufacturer
="pandora"
3215 echo "Please select a supported target platform!"
3221 echo "Platform set to $modelname"
3225 ############################################################################
3226 # Amount of memory, for those that can differ. They have $memory unset at
3230 if [ -z "$memory" ]; then
3233 if [ "$ARG_RAM" ]; then
3236 echo "Enter size of your RAM (in MB): (Defaults to 32)"
3249 if [ "$ARG_RAM" ]; then
3252 echo "Enter size of your RAM (in MB): (Defaults to 2)"
3265 echo "Memory size selected: $memory MB"
3266 [ "$ARG_TYPE" ] ||
echo ""
3270 ##################################################################
3271 # Figure out build "type"
3274 # the ifp7x0 is the only platform that supports building a gdb stub like
3278 gdbstub
=", (G)DB stub"
3280 sansae200r|sansae200
)
3281 gdbstub
=", (I)nstaller"
3284 gdbstub
=", (E)raser"
3287 gdbstub
=", (E)raser"
3292 if [ "$ARG_TYPE" ]; then
3295 echo "Build (N)ormal, (A)dvanced, (S)imulator, (B)ootloader, (C)heckWPS, (D)atabase tool$gdbstub: (Defaults to N)"
3301 appsdir
='$(ROOTDIR)/bootloader'
3303 extradefines
="$extradefines -DBOOTLOADER -DE200R_INSTALLER -ffunction-sections -fdata-sections"
3305 echo "e200R-installer build selected"
3308 appsdir
='$(ROOTDIR)/bootloader'
3310 extradefines
="$extradefines -DBOOTLOADER -DSANSA_PP_ERASE -ffunction-sections -fdata-sections"
3312 echo "sansa eraser build selected"
3315 if test $t_manufacturer = "archos"; then
3316 # Archos SH-based players do this somewhat differently for
3318 appsdir
='$(ROOTDIR)/flash/bootbox'
3321 appsdir
='$(ROOTDIR)/bootloader'
3324 if test -n "$boottool"; then
3327 if test -n "$bootoutput"; then
3331 extradefines
="$extradefines -DBOOTLOADER -ffunction-sections -fdata-sections"
3333 echo "Bootloader build selected"
3336 if [ "$modelname" = "sansae200r" ]; then
3337 echo "Do not use the e200R target for simulator builds. Use e200 instead."
3342 extradefines
="$extradefines -DSIMULATOR"
3345 echo "Simulator build selected"
3348 echo "Advanced build selected"
3349 whichadvanced
$btype
3352 extradefines
="$extradefines -DSTUB" # for target makefile symbol EXTRA_DEFINES
3353 appsdir
='$(ROOTDIR)/gdb'
3362 echo "GDB stub build selected"
3370 extradefines
="$extradefines -DDEBUG"
3371 appsdir
='$(ROOTDIR)/tools/checkwps';
3372 output
='checkwps.'${modelname};
3374 echo "CheckWPS build selected"
3382 appsdir
='$(ROOTDIR)/tools/database';
3387 output
="database_${modelname}.exe"
3390 output
='database.'${modelname};
3394 echo "Database tool build selected"
3397 if [ "$modelname" = "sansae200r" ]; then
3398 echo "Do not use the e200R target for regular builds. Use e200 instead."
3402 btype
="N" # set it explicitly since RET only gets here as well
3403 echo "Normal build selected"
3407 # to be able running "make manual" from non-manual configuration
3410 manualdev
="archosfmrecorder"
3413 manualdev
="iriverh100"
3416 manualdev
="ipodmini1g"
3419 manualdev
=$modelname
3423 if [ -z "$debug" ]; then
3424 GCCOPTS
="$GCCOPTS $GCCOPTIMIZE"
3427 if [ "yes" = "$application" ]; then
3428 echo Building Rockbox as an Application
3429 extradefines
="$extradefines -DAPPLICATION"
3432 echo "Using source code root directory: $rootdir"
3434 # this was once possible to change at build-time, but no more:
3439 if [ "yes" = "$simulator" ]; then
3440 # setup compiler and things for simulator
3443 if [ -d "simdisk" ]; then
3444 echo "Subdirectory 'simdisk' already present"
3447 echo "Created a 'simdisk' subdirectory for simulating the hard disk"
3451 # Now, figure out version number of the (gcc) compiler we are about to use
3452 gccver
=`$CC -dumpversion`;
3454 # figure out the binutil version too and display it, mostly for the build
3455 # system etc to be able to see it easier
3456 if [ $uname = "Darwin" ]; then
3457 ldver
=`$LD -v 2>&1 | sed -e 's/[^0-9.-]//g'`
3459 ldver
=`$LD --version | head -n 1 | sed -e 's/[^0-9.]//g'`
3462 if [ -z "$gccver" ]; then
3463 echo "[WARNING] The compiler you must use ($CC) is not in your path!"
3464 echo "[WARNING] this may cause your build to fail since we cannot do the"
3465 echo "[WARNING] checks we want now."
3468 # gccver should now be "3.3.5", "3.4.3", "2.95.3-6" and similar, but don't
3471 num1
=`echo $gccver | cut -d . -f1`
3472 num2
=`echo $gccver | cut -d . -f2`
3473 gccnum
=`(expr $num1 "*" 100 + $num2) 2>/dev/null`
3480 echo "Using $CC $gccver ($gccnum)"
3482 if test "$gccnum" -ge "400"; then
3483 # gcc 4.0 is just *so* much pickier on arguments that differ in signedness
3484 # so we ignore that warnings for now
3486 GCCOPTS
="$GCCOPTS -Wno-pointer-sign"
3489 if test "$gccnum" -ge "402"; then
3490 # disable warning about "warning: initialized field overwritten" as gcc 4.2
3491 # and later would throw it for several valid cases
3492 GCCOPTS
="$GCCOPTS -Wno-override-init"
3496 ""|
"$CROSS_COMPILE")
3500 # cross-compile for win32
3503 # Verify that the cross-compiler is of a recommended version!
3504 if test "$gccver" != "$gccchoice"; then
3505 echo "WARNING: Your cross-compiler $CC $gccver is not of the recommended"
3506 echo "WARNING: version $gccchoice!"
3507 echo "WARNING: This may cause your build to fail since it may be a version"
3508 echo "WARNING: that isn't functional or known to not be the best choice."
3509 echo "WARNING: If you suffer from build problems, you know that this is"
3510 echo "WARNING: a likely source for them..."
3518 echo "Using $LD $ldver"
3520 # check the compiler for SH platforms
3521 if test "$CC" = "sh-elf-gcc"; then
3522 if test "$gccnum" -lt "400"; then
3523 echo "WARNING: Consider upgrading your compiler to the 4.0.X series!"
3524 echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler"
3526 # figure out patch status
3527 gccpatch
=`$CC --version`;
3529 if { echo $gccpatch |
grep "rockbox" >/dev
/null
2>&1; } then
3530 echo "gcc $gccver is rockbox patched"
3531 # then convert -O to -Os to get smaller binaries!
3532 GCCOPTS
=`echo $GCCOPTS | sed 's/ -O / -Os /'`
3534 echo "WARNING: You use an unpatched gcc compiler: $gccver"
3535 echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler"
3540 if test "$CC" = "m68k-elf-gcc"; then
3541 # convert -O to -Os to get smaller binaries!
3542 GCCOPTS
=`echo $GCCOPTS | sed 's/ -O / -Os /'`
3545 if [ "$ARG_CCACHE" = "1" ]; then
3546 echo "Enable ccache for building"
3548 elif [ "$ARG_CCACHE" != "0" ]; then
3549 ccache
=`findtool ccache`
3550 if test -n "$ccache"; then
3551 echo "Found and uses ccache ($ccache)"
3555 # figure out the full path to the various commands if possible
3556 HOSTCC
=`findtool gcc --lit`
3557 HOSTAR
=`findtool ar --lit`
3558 CC
=`findtool ${CC} --lit`
3559 LD
=`findtool ${AR} --lit`
3560 AR
=`findtool ${AR} --lit`
3561 AS
=`findtool ${AS} --lit`
3562 OC
=`findtool ${OC} --lit`
3563 WINDRES
=`findtool ${WINDRES} --lit`
3564 DLLTOOL
=`findtool ${DLLTOOL} --lit`
3565 DLLWRAP
=`findtool ${DLLWRAP} --lit`
3566 RANLIB
=`findtool ${RANLIB} --lit`
3568 if test -n "$ccache"; then
3572 if test "$ARG_ARM_THUMB" = "1"; then
3573 extradefines
="$extradefines -DUSE_THUMB"
3574 CC
="$toolsdir/thumb-cc.py $CC"
3577 if test "X$endian" = "Xbig"; then
3578 defendian
="ROCKBOX_BIG_ENDIAN"
3580 defendian
="ROCKBOX_LITTLE_ENDIAN"
3583 if [ "$ARG_RBDIR" != "" ]; then
3584 if [ -z `echo $ARG_RBDIR | grep '^/'` ]; then
3589 echo "Using alternate rockbox dir: ${rbdir}"
3592 cat > autoconf.h
<<EOF
3593 /* This header was made by configure */
3594 #ifndef __BUILD_AUTOCONF_H
3595 #define __BUILD_AUTOCONF_H
3597 /* Define endianess for the target or simulator platform */
3598 #define ${defendian} 1
3600 /* Define this if you build rockbox to support the logf logging and display */
3603 /* Define this to record a chart with timings for the stages of boot */
3606 /* optional define for a backlight modded Ondio */
3609 /* optional define for FM radio mod for iAudio M5 */
3612 /* optional define for ATA poweroff on Player */
3613 ${have_ata_poweroff}
3615 /* optional defines for RTC mod for h1x0 */
3619 /* the threading backend we use */
3620 #define ${thread_support}
3622 /* lcd dimensions for application builds from configure */
3626 /* root of Rockbox */
3627 #define ROCKBOX_DIR "${rbdir}"
3628 #define ROCKBOX_SHARE_PATH "${sharedir}"
3629 #define ROCKBOX_BINARY_PATH "${bindir}"
3630 #define ROCKBOX_LIBRARY_PATH "${libdir}"
3632 #endif /* __BUILD_AUTOCONF_H */
3635 if test -n "$t_cpu"; then
3636 TARGET_INC
="-I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer/$t_model"
3638 if [ "$t_cpu" = "hosted" ] && [ "$t_manufacturer" = "maemo" ]; then
3639 # Maemo needs the SDL port, too
3640 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl/app"
3641 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl"
3642 elif [ "$t_cpu" = "hosted" ] && [ "$t_manufacturer" = "pandora" ]; then
3643 # Pandora needs the SDL port, too
3644 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl/app"
3645 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl"
3646 elif [ "$simulator" = "yes" ]; then # a few more includes for the sim target tree
3647 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl"
3648 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/hosted"
3651 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer"
3652 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu"
3656 if test "$swcodec" = "yes"; then
3657 voicetoolset
="rbspeexenc voicefont wavtrim"
3659 voicetoolset
="voicefont wavtrim"
3662 if test "$apps" = "apps"; then
3663 # only when we build "real" apps we build the .lng files
3667 #### Fix the cmdline ###
3668 if [ -n "$ARG_PREFIX" ]; then
3669 cmdline
="$cmdline --prefix=\$(PREFIX)"
3671 if [ -n "$ARG_LCDWIDTH" ]; then
3672 cmdline
="$cmdline --lcdwidth=$ARG_LCDWIDTH --lcdheight=$ARG_LCDHEIGHT "
3675 # remove parts from the cmdline we're going to set unconditionally
3676 cmdline
=`echo $cmdline | sed -e s,--target=[a-zA-Z_0-9]\*,,g \
3677 -e s,--ram=[0-9]\*,,g \
3678 -e s,--rbdir=[./a-zA-Z0-9]\*,,g \
3679 -e s,--type=[a-zA-Z]\*,,g`
3680 cmdline
="$cmdline --target=\$(MODELNAME) --ram=\$(MEMORYSIZE) --rbdir=\$(RBDIR) --type=$btype$advopts"
3684 cat > Makefile
<<EOF
3685 ## Automatically generated. http://www.rockbox.org/
3687 export ROOTDIR=${rootdir}
3688 export FIRMDIR=\$(ROOTDIR)/firmware
3689 export APPSDIR=${appsdir}
3690 export TOOLSDIR=${toolsdir}
3691 export DOCSDIR=${rootdir}/docs
3692 export MANUALDIR=${rootdir}/manual
3693 export DEBUG=${debug}
3694 export MODELNAME=${modelname}
3695 export ARCHOSROM=${archosrom}
3696 export FLASHFILE=${flash}
3697 export TARGET_ID=${target_id}
3698 export TARGET=${target}
3700 export MANUFACTURER=${t_manufacturer}
3701 export OBJDIR=${pwd}
3702 export BUILDDIR=${pwd}
3703 export LANGUAGE=${language}
3704 export VOICELANGUAGE=${voicelanguage}
3705 export MEMORYSIZE=${memory}
3706 export BUILDDATE:=\$(shell date -u +'-DYEAR=%Y -DMONTH=%m -DDAY=%d')
3707 export MKFIRMWARE=${tool}
3708 export BMP2RB_MONO=${bmp2rb_mono}
3709 export BMP2RB_NATIVE=${bmp2rb_native}
3710 export BMP2RB_REMOTEMONO=${bmp2rb_remotemono}
3711 export BMP2RB_REMOTENATIVE=${bmp2rb_remotenative}
3712 export BINARY=${output}
3713 export APPEXTRA=${appextra}
3714 export ENABLEDPLUGINS=${plugins}
3715 export SOFTWARECODECS=${swcodec}
3716 export EXTRA_DEFINES=${extradefines}
3717 export HOSTCC=${HOSTCC}
3718 export HOSTAR=${HOSTAR}
3724 export WINDRES=${WINDRES}
3725 export DLLTOOL=${DLLTOOL}
3726 export DLLWRAP=${DLLWRAP}
3727 export RANLIB=${RANLIB}
3728 export PREFIX=${ARG_PREFIX}
3729 export PROFILE_OPTS=${PROFILE_OPTS}
3730 export APP_TYPE=${app_type}
3731 export APPLICATION=${application}
3732 export SIMDIR=\$(ROOTDIR)/uisimulator/sdl
3733 export GCCOPTS=${GCCOPTS}
3734 export TARGET_INC=${TARGET_INC}
3735 export LOADADDRESS=${loadaddress}
3736 export SHARED_LDFLAG=${SHARED_LDFLAG}
3737 export SHARED_CFLAGS=${SHARED_CFLAGS}
3738 export LDOPTS=${LDOPTS}
3739 export GLOBAL_LDOPTS=${GLOBAL_LDOPTS}
3740 export GCCVER=${gccver}
3741 export GCCNUM=${gccnum}
3742 export UNAME=${uname}
3743 export MANUALDEV=${manualdev}
3744 export TTS_OPTS=${TTS_OPTS}
3745 export TTS_ENGINE=${TTS_ENGINE}
3746 export ENC_OPTS=${ENC_OPTS}
3747 export ENCODER=${ENCODER}
3748 export USE_ELF=${USE_ELF}
3749 export RBDIR=${rbdir}
3750 export ROCKBOX_SHARE_PATH=${sharedir}
3751 export ROCKBOX_BINARY_PATH=${bindir}
3752 export ROCKBOX_LIBRARY_PATH=${libdir}
3753 export SDLCONFIG=${sdl}
3754 export LCDORIENTATION=${lcd_orientation}
3756 CONFIGURE_OPTIONS=${cmdline}
3758 include \$(TOOLSDIR)/root.make
3761 echo "Created Makefile"