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"
33 # Begin Function Definitions
43 WINDRES
=${prefix}windres
44 DLLTOOL
=${prefix}dlltool
45 DLLWRAP
=${prefix}dllwrap
46 RANLIB
=${prefix}ranlib
54 # setup files and paths depending on the platform
55 if [ -z "$ARG_PREFIX" ]; then
56 sharedir
="/usr/local/share/rockbox"
57 bindir
="/usr/local/bin"
58 libdir
="/usr/local/lib"
60 if [ -d "$ARG_PREFIX" ]; then
61 if [ -z `echo $ARG_PREFIX | grep "^/"` ]; then
62 ARG_PREFIX
=`realpath $ARG_PREFIX`
63 if [ "0" != "$?" ]; then
64 echo "ERROR: Could not get prefix path (is realpath installed?)."
68 sharedir
="$ARG_PREFIX/share/rockbox"
69 bindir
="$ARG_PREFIX/bin"
70 libdir
="$ARG_PREFIX/lib"
72 echo "ERROR: PREFIX does not exist"
78 # Set the application LCD size according to the following priorities:
79 # 1) If --lcdwidth and --lcdheight are set, use them
80 # 2) If a size is passed to the app_set_lcd_size() function, use that
81 # 3) Otherwise ask the user
83 if [ -z "$ARG_LCDWIDTH" ]; then
86 if [ -z "$ARG_LCDHEIGHT" ]; then
90 echo "Enter the LCD width (default: 320)"
91 if [ -z "$ARG_LCDWIDTH" ]; then
94 app_lcd_width
="$ARG_LCDWIDTH"
96 if [ -z "$app_lcd_width" ]; then app_lcd_width
="320"; fi
97 echo "Enter the LCD height (default: 480)"
98 if [ -z "$ARG_LCDHEIGHT" ]; then
99 app_lcd_height
=`input`
101 app_lcd_height
="$ARG_LCDHEIGHT"
103 if [ -z "$app_lcd_height" ]; then app_lcd_height
="480"; fi
104 echo "Selected $app_lcd_width x $app_lcd_height resolution"
105 ARG_LCDWIDTH
=$app_lcd_width
106 ARG_LCDHEIGHT
=$app_lcd_height
108 app_lcd_width
="#define LCD_WIDTH $app_lcd_width"
109 app_lcd_height
="#define LCD_HEIGHT $app_lcd_height"
113 if [ "$ARG_ARM_EABI" != "0" ]; then
114 prefixtools arm-elf-eabi-
122 # scan the $PATH for the given command
129 # echo "checks for $file in $path" >&2
130 if test -f "$path/$file"; then
135 # check whether caller wants literal return value if not found
136 if [ "$2" = "--lit" ]; then
141 # scan the $PATH for sdl-config - check whether for a (cross-)win32
150 #echo "checks for $file in $path" >&2
151 if test -f "$path/$file"; then
152 if [ "0" != `$path/$file --libs |grep -c mwindows` ]; then
153 if [ "yes" = "${winbuild}" ]; then
158 if [ "yes" != "${winbuild}" ]; then
167 # check for availability of sigaltstack to support our thread engine
168 check_sigaltstack
() {
169 cat >$tmpdir/check_threads.c
<<EOF
171 int main(int argc, char **argv)
174 #define NULL (void*)0
176 sigaltstack(NULL, NULL);
180 $CC -o $tmpdir/check_threads
$tmpdir/check_threads.c
1> /dev
/null
182 rm -rf $tmpdir/check_threads
*
186 # check for availability of Fiber on Win32 to support our thread engine
188 cat >$tmpdir/check_threads.c
<<EOF
190 int main(int argc, char **argv)
192 ConvertThreadToFiber(NULL);
196 $CC -o $tmpdir/check_threads
$tmpdir/check_threads.c
2>/dev
/null
198 rm -rf $tmpdir/check_threads
*
204 # default tool setup for native building
205 prefixtools
"$CROSS_COMPILE"
206 ARG_ARM_THUMB
=0 # can't use thumb in native builds
210 GCCOPTS
=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib// -e s/-Wundef// -e s/-O//`
211 GCCOPTS
="$GCCOPTS -fno-builtin -g"
213 LDOPTS
='-lm' # button-sdl.c uses sqrt()
217 # default output binary name, don't override app_get_platform()
218 if [ "$app_type" != "sdl-app" ]; then
222 # default share option, override below if needed
223 SHARED_FLAG
="-shared"
225 if [ "$win32crosscompile" = "yes" ]; then
226 LDOPTS
="$LDOPTS -mconsole"
232 echo "Cygwin host detected"
235 LDOPTS
="$LDOPTS -mconsole"
241 echo "MinGW host detected"
244 LDOPTS
="$LDOPTS -mconsole"
250 sigaltstack
=`check_sigaltstack`
251 echo "Linux host detected"
252 LDOPTS
="$LDOPTS -ldl"
256 sigaltstack
=`check_sigaltstack`
257 echo "FreeBSD host detected"
258 LDOPTS
="$LDOPTS -ldl"
262 sigaltstack
=`check_sigaltstack`
263 echo "Darwin host detected"
264 LDOPTS
="$LDOPTS -ldl"
265 SHARED_FLAG
="-dynamiclib -Wl\,-single_module"
269 sigaltstack
=`check_sigaltstack`
270 echo "*Solaris host detected"
272 GCCOPTS
="$GCCOPTS -fPIC"
273 LDOPTS
="$LDOPTS -ldl"
277 echo "[ERROR] Unsupported system: $uname, fix configure and retry"
283 [ "$winbuild" != "yes" ] && GLOBAL_LDOPTS
="$GLOBAL_LDOPTS -Wl,-z,defs"
284 sdl
=`findsdl $winbuild`
286 if [ -n `echo $app_type | grep "sdl"` ]; then
287 if [ -z "$sdl" ]; then
288 echo "configure didn't find sdl-config, which indicates that you"
289 echo "don't have SDL (properly) installed. Please correct and"
290 echo "re-run configure!"
293 # generic sdl-config checker
294 GCCOPTS
="$GCCOPTS `$sdl --cflags`"
295 LDOPTS
="$LDOPTS `$sdl --libs`"
300 GCCOPTS
="$GCCOPTS -I\$(SIMDIR)"
302 if test "X$win32crosscompile" != "Xyes"; then
305 # fPIC is needed to make shared objects link
306 # setting visibility to hidden is necessary to avoid strange crashes
307 # due to symbol clashing
308 GCCOPTS
="$GCCOPTS -fPIC -fvisibility=hidden"
309 # x86_64 supports MMX by default
313 echo "Enabling MMX support"
314 GCCOPTS
="$GCCOPTS -mmmx"
319 cat >$tmpdir/conftest-
$id.c
<<EOF
321 int main(int argc, char **argv)
324 char *varp = (char *)&var;
332 $CC -o $tmpdir/conftest-
$id $tmpdir/conftest-
$id.c
2>/dev
/null
334 # when cross compiling, the endianess cannot be detected because the above program doesn't run
335 # on the local machine. assume little endian but print a warning
336 endian
=`$tmpdir/conftest-$id 2> /dev/null`
337 if [ "$endian" != "" ] && [ $endian -gt "1" ]; then
345 if [ "$CROSS_COMPILE" != "" ]; then
346 echo "WARNING: Cross Compiling, cannot detect endianess. Assuming little endian!"
349 if [ "$app_type" = "sdl-sim" ]; then
350 echo "Simulator environment deemed $endian endian"
351 elif [ "$app_type" = "sdl-app" ]; then
352 echo "Application environment deemed $endian endian"
353 elif [ "$app_type" = "checkwps" ]; then
354 echo "CheckWPS environment deemed $endian endian"
357 # use wildcard here to make it work even if it was named *.exe like
359 rm -f $tmpdir/conftest-
$id*
361 # We are crosscompiling
362 # add cross-compiler option(s)
363 prefixtools i586-mingw32msvc-
364 LDOPTS
="$LDOPTS -mconsole"
366 output
="rockboxui.exe"
367 endian
="little" # windows is little endian
368 echo "Enabling MMX support"
369 GCCOPTS
="$GCCOPTS -mmmx"
373 if [ -z "$ARG_THREAD_SUPPORT" ] ||
[ "$ARG_THREAD_SUPPORT" = "0" ]; then
374 if [ "$sigaltstack" = "0" ]; then
375 thread_support
="HAVE_SIGALTSTACK_THREADS"
376 LDOPTS
="$LDOPTS -lpthread" # pthread needed
377 echo "Selected sigaltstack threads"
378 elif [ "$fibers" = "0" ]; then
379 thread_support
="HAVE_WIN32_FIBER_THREADS"
380 echo "Selected Win32 Fiber threads"
384 if [ -n `echo $app_type | grep "sdl"` ] && [ -z "$thread_support" ] \
385 && [ "$ARG_THREAD_SUPPORT" != "0" ]; then
386 thread_support
="HAVE_SDL_THREADS"
387 if [ "$ARG_THREAD_SUPPORT" = "1" ]; then
388 echo "Selected SDL threads"
390 echo "WARNING: Falling back to SDL threads"
396 # functions for setting up cross-compiler names and options
397 # also set endianess and what the exact recommended gcc version is
398 # the gcc version should most likely match what versions we build with
403 GCCOPTS
="$CCOPTS -m1"
404 GCCOPTIMIZE
="-fomit-frame-pointer -fschedule-insns"
410 prefixtools calmrisc16-unknown-elf-
411 GCCOPTS
="-Wl\,--no-check-sections $CCOPTS"
412 GCCOPTIMIZE
="-fomit-frame-pointer"
417 prefixtools m68k-elf-
418 GCCOPTS
="$CCOPTS -mcpu=5249 -malign-int -mstrict-align"
419 GCCOPTIMIZE
="-fomit-frame-pointer"
426 GCCOPTS
="$CCOPTS -mcpu=arm7tdmi"
427 if test "X$1" != "Xshort" -a "$ARG_ARM_EABI" = "0"; then
428 GCCOPTS
="$GCCOPTS -mlong-calls"
430 GCCOPTIMIZE
="-fomit-frame-pointer"
436 GCCOPTS
="$CCOPTS -mcpu=arm9tdmi"
437 if test "$modelname" != "gigabeatfx" -a "$t_manufacturer" != "as3525" -a "$ARG_ARM_EABI" = "0"; then
438 GCCOPTS
="$GCCOPTS -mlong-calls"
440 GCCOPTIMIZE
="-fomit-frame-pointer"
446 GCCOPTS
="$CCOPTS -mbig-endian -mcpu=arm940t"
447 if test "$ARG_ARM_EABI" = "0"; then
448 GCCOPTS
="$GCCOPTS -mlong-calls"
450 GCCOPTIMIZE
="-fomit-frame-pointer"
456 GCCOPTS
="$CCOPTS -mcpu=arm940t"
457 if test "$ARG_ARM_EABI" = "0"; then
458 GCCOPTS
="$GCCOPTS -mlong-calls"
460 GCCOPTIMIZE
="-fomit-frame-pointer"
466 GCCOPTS
="$CCOPTS -mcpu=arm9e"
467 if test "$ARG_ARM_EABI" = "0"; then
468 GCCOPTS
="$GCCOPTS -mlong-calls"
470 GCCOPTIMIZE
="-fomit-frame-pointer"
476 GCCOPTS
="$CCOPTS -mcpu=arm926ej-s"
477 if test "$t_manufacturer" != "as3525" -a "$ARG_ARM_EABI" = "0"; then
478 GCCOPTS
="$GCCOPTS -mlong-calls"
480 GCCOPTIMIZE
="-fomit-frame-pointer"
486 GCCOPTS
="$CCOPTS -mcpu=arm1136jf-s"
487 if test "$modelname" != "gigabeats" -a "$ARG_ARM_EABI" = "0"; then
488 GCCOPTS
="$GCCOPTS -mlong-calls"
490 GCCOPTIMIZE
="-fomit-frame-pointer"
496 GCCOPTS
="$CCOPTS -mcpu=arm1176jz-s"
497 if test "$ARG_ARM_EABI" = "0"; then
498 GCCOPTS
="$GCCOPTS -mlong-calls"
500 GCCOPTIMIZE
="-fomit-frame-pointer"
505 prefixtools mipsel-elf-
506 # mips is predefined, but we want it for paths. use __mips instead
507 GCCOPTS
="$CCOPTS -march=mips32 -mtune=r4600 -mno-mips16 -mno-long-calls -Umips"
508 GCCOPTS
="$GCCOPTS -ffunction-sections -msoft-float -G 0 -Wno-parentheses"
509 GCCOPTIMIZE
="-fomit-frame-pointer"
515 # Scratchbox sets up "gcc" based on the active target
518 GCCOPTS
=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib// -e s/-Wundef//`
519 GCCOPTS
="$GCCOPTS -fno-builtin -g -I\$(SIMDIR)"
521 LDOPTS
="-lm -ldl $LDOPTS"
522 GLOBAL_LDOPTS
="$GLOBAL_LDOPTS -Wl,-z,defs"
523 SHARED_FLAG
="-shared"
525 thread_support
="HAVE_SIGALTSTACK_THREADS"
528 # Determine maemo version
529 if pkg-config
--atleast-version=5 maemo-version
; then
530 if [ "$1" == "4" ]; then
531 echo "ERROR: Maemo 4 SDK required."
534 extradefines
="$extradefines -DMAEMO5"
535 echo "Found N900 maemo version"
537 elif pkg-config
--atleast-version=4 maemo-version
; then
538 if [ "$1" == "5" ]; then
539 echo "ERROR: Maemo 5 SDK required."
542 extradefines
="$extradefines -DMAEMO4"
543 echo "Found N8xx maemo version"
545 echo "Unable to determine maemo version. Is the maemo-version-dev package installed?"
550 if [ $is_n900 -eq 1 ]; then
551 GCCOPTS
="$GCCOPTS `pkg-config --cflags sdl`"
552 LDOPTS
="$LDOPTS `pkg-config --libs sdl`"
554 GCCOPTS
="$GCCOPTS `sdl-config --cflags`"
555 LDOPTS
="$LDOPTS `sdl-config --libs`"
558 # glib and libosso support
559 GCCOPTS
="$GCCOPTS `pkg-config --cflags libosso glib-2.0 gthread-2.0`"
560 LDOPTS
="$LDOPTS `pkg-config --libs libosso glib-2.0 gthread-2.0`"
562 # libhal support: Battery monitoring
563 GCCOPTS
="$GCCOPTS `pkg-config --cflags hal`"
564 LDOPTS
="$LDOPTS `pkg-config --libs hal`"
566 GCCOPTS
="$GCCOPTS -O2 -fno-strict-aliasing"
567 if [ $is_n900 -eq 1 ]; then
568 # gstreamer support: Audio output.
569 GCCOPTS
="$GCCOPTS `pkg-config --cflags gstreamer-base-0.10 gstreamer-plugins-base-0.10 gstreamer-app-0.10`"
570 LDOPTS
="$LDOPTS `pkg-config --libs gstreamer-base-0.10 gstreamer-plugins-base-0.10 gstreamer-app-0.10`"
572 # N900 specific: libplayback support
573 GCCOPTS
="$GCCOPTS `pkg-config --cflags libplayback-1`"
574 LDOPTS
="$LDOPTS `pkg-config --libs libplayback-1`"
576 # N900 specific: Enable ARMv7 NEON support
577 if sb-conf current |
grep ARMEL
; then
578 GCCOPTS
="$GCCOPTS -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp"
579 extradefines
="$extradefines -DMAEMO_ARM_BUILD"
582 # N8xx specific: Enable armv5te instructions
583 if sb-conf current |
grep ARMEL
; then
584 GCCOPTS
="$GCCOPTS -mcpu=arm1136jf-s -mfloat-abi=softfp -mfpu=vfp"
585 extradefines
="$extradefines -DMAEMO_ARM_BUILD"
591 if [ -z "$ANDROID_SDK_PATH" ]; then
592 echo "ERROR: You need the Android SDK installed and have the ANDROID_SDK_PATH"
593 echo "environment variable point to the root directory of the Android SDK."
596 if [ -z "$ANDROID_NDK_PATH" ]; then
597 echo "ERROR: You need the Android NDK installed (r5 or higher) and have the ANDROID_NDK_PATH"
598 echo "environment variable point to the root directory of the Android NDK."
601 buildhost
=`uname | tr [:upper:] [:lower:]`
603 gcctarget
="arm-linux-androideabi-"
604 gccprefix
=$ANDROID_NDK_PATH/toolchains
/$gcctarget$gccchoice/prebuilt
/$buildhost-x86
605 PATH
=$PATH:$gccprefix/bin
606 prefixtools
$gcctarget
607 GCCOPTS
=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib// -e s/-Wundef//`
608 GCCOPTS
="$GCCOPTS -ffunction-sections -march=armv5te -mtune=xscale -msoft-float -fomit-frame-pointer \
609 --sysroot=$ANDROID_NDK_PATH/platforms/android-4/arch-arm"
610 GLOBAL_LDOPTS
="$GLOBAL_LDOPTS -nostdlib -lc -Wl,--no-undefined -Wl,--gc-sections -Wl,-z,noexecstack \
611 --sysroot=$ANDROID_NDK_PATH/platforms/android-4/arch-arm"
612 LDOPTS
="$LDOPTS -shared -nostdlib -ldl -llog"
613 extradefines
="$extradefines -DANDROID"
615 SHARED_FLAG
="-shared"
619 atype
=`echo "$1" | cut -c 2-`
620 ##################################################################
621 # Prompt for specific developer options
623 if [ "$atype" ]; then
628 printf "Enter your developer options (press only enter when done)\n\
629 (D)EBUG, (L)ogf, Boot(c)hart, (S)imulator, (P)rofiling, (V)oice, (W)in32 crosscompile,\n\
630 (T)est plugins, S(m)all C lib:"
631 if [ "$memory" = "2" ]; then
634 if [ "$modelname" = "archosplayer" ]; then
635 printf ", Use (A)TA poweroff"
637 if [ "$t_model" = "ondio" ]; then
638 printf ", (B)acklight MOD"
640 if [ "$modelname" = "iaudiom5" ]; then
641 printf ", (F)M radio MOD"
643 if [ "$modelname" = "iriverh120" ]; then
650 while [ $cont = "1" ]; do
652 if [ "$interact" ]; then
655 option
=`echo "$atype" | cut -c 1`
660 if [ "yes" = "$profile" ]; then
661 echo "Debug is incompatible with profiling"
663 echo "DEBUG build enabled"
668 echo "logf() support enabled"
672 echo "Using Rockbox' small C library"
673 extradefines
="$extradefines -DHAVE_ROCKBOX_C_LIBRARY"
676 echo "Including test plugins"
677 extradefines
="$extradefines -DHAVE_TEST_PLUGINS"
680 echo "bootchart enabled (logf also enabled)"
685 echo "Simulator build enabled"
689 if [ "yes" = "$use_debug" ]; then
690 echo "Profiling is incompatible with debug"
692 echo "Profiling support is enabled"
697 echo "Voice build selected"
701 if [ "$memory" = "2" ]; then
703 echo "Memory size selected: 8MB"
707 if [ "$modelname" = "archosplayer" ]; then
708 have_ata_poweroff
="#define HAVE_ATA_POWER_OFF"
709 echo "ATA power off enabled"
713 if [ "$t_model" = "ondio" ]; then
714 have_backlight
="#define HAVE_BACKLIGHT"
715 echo "Backlight functions enabled"
719 if [ "$modelname" = "iaudiom5" ]; then
720 have_fmradio_in
="#define HAVE_FMRADIO_IN"
721 echo "FM radio functions enabled"
725 if [ "$modelname" = "iriverh120" ]; then
726 config_rtc
="#define CONFIG_RTC RTC_DS1339_DS3231"
727 have_rtc_alarm
="#define HAVE_RTC_ALARM"
728 echo "RTC functions enabled (DS1339/DS3231)"
732 echo "Enabling Windows 32 cross-compiling"
733 win32crosscompile
="yes"
735 "") # Match enter press when finished with advanced options
739 echo "[ERROR] Option $option unsupported"
742 if [ "$interact" ]; then
743 btype
="$btype$option"
745 atype
=`echo "$atype" | cut -c 2-`
746 [ "$atype" ] || cont
=0
751 if [ "yes" = "$voice" ]; then
752 # Ask about languages to build
754 voicelanguage
=`whichlang`
755 echo "Voice language set to $voicelanguage"
757 # Configure encoder and TTS engine for each language
758 for thislang
in `echo $voicelanguage | sed 's/,/ /g'`; do
759 voiceconfig
"$thislang"
762 if [ "yes" = "$use_debug" ]; then
764 GCCOPTS
="$GCCOPTS -g -DDEBUG"
766 if [ "yes" = "$logf" ]; then
767 use_logf
="#define ROCKBOX_HAS_LOGF 1"
769 if [ "yes" = "$bootchart" ]; then
770 use_bootchart
="#define DO_BOOTCHART 1"
772 if [ "yes" = "$simulator" ]; then
774 extradefines
="$extradefines -DSIMULATOR"
778 if [ "yes" = "$profile" ]; then
779 extradefines
="$extradefines -DRB_PROFILE"
780 PROFILE_OPTS
="-finstrument-functions"
784 # Configure voice settings
787 if [ ! "$ARG_TTS" ]; then
788 echo "Building $thislang voice for $modelname. Select options"
792 if [ -n "`findtool flite`" ]; then
796 DEFAULT_TTS_OPTS
=$FLITE_OPTS
797 DEFAULT_NOISEFLOOR
="500"
800 if [ -n "`findtool espeak`" ]; then
804 DEFAULT_TTS_OPTS
=$ESPEAK_OPTS
805 DEFAULT_NOISEFLOOR
="500"
808 if [ -n "`findtool festival`" ]; then
809 FESTIVAL
="(F)estival "
812 FESTIVAL_OPTS
="--language italian"
815 FESTIVAL_OPTS
="--language spanish"
818 FESTIVAL_OPTS
="--language finnish"
821 FESTIVAL_OPTS
="--language czech"
827 DEFAULT_TTS
="festival"
828 DEFAULT_TTS_OPTS
=$FESTIVAL_OPTS
829 DEFAULT_NOISEFLOOR
="500"
832 if [ -n "`findtool swift`" ]; then
836 DEFAULT_TTS_OPTS
=$SWIFT_OPTS
837 DEFAULT_NOISEFLOOR
="500"
840 # Allow SAPI if Windows is in use
841 if [ -n "`findtool winver`" ]; then
845 DEFAULT_TTS_OPTS
=$SAPI_OPTS
846 DEFAULT_NOISEFLOOR
="500"
850 if [ "$FESTIVAL" = "$FLITE" ] && [ "$FLITE" = "$ESPEAK" ] && [ "$ESPEAK" = "$SAPI" ] && [ "$SAPI" = "$SWIFT" ]; then
851 echo "You need Festival, eSpeak or Flite in your path, or SAPI available to build voice files"
855 if [ "$ARG_TTS" ]; then
858 echo "TTS engine to use: ${FLITE}${FESTIVAL}${ESPEAK}${SAPI}${SWIFT}(${DEFAULT_CHOICE})?"
861 advopts
="$advopts --tts=$option"
865 NOISEFLOOR
="500" # TODO: check this value
871 TTS_OPTS
=$ESPEAK_OPTS
874 TTS_ENGINE
="festival"
876 TTS_OPTS
=$FESTIVAL_OPTS
889 TTS_ENGINE
=$DEFAULT_TTS
890 TTS_OPTS
=$DEFAULT_TTS_OPTS
891 NOISEFLOOR
=$DEFAULT_NOISEFLOOR
893 echo "Using $TTS_ENGINE for TTS"
895 # Select which voice to use for Festival
896 if [ "$TTS_ENGINE" = "festival" ]; then
897 voicelist
=`echo "(voice.list)"|festival -i 2>/dev/null |tr "\n" " "|sed -e 's/.*festival> (\(.*\)) festival>/\1/'|sort`
898 for voice
in $voicelist; do
899 TTS_FESTIVAL_VOICE
="$voice" # Default choice
902 if [ "$ARG_VOICE" ]; then
906 for voice
in $voicelist; do
907 printf "%3d. %s\n" "$i" "$voice"
910 printf "Please select which Festival voice to use (default is $TTS_FESTIVAL_VOICE): "
914 for voice
in $voicelist; do
915 if [ "$i" = "$CHOICE" -o "$voice" = "$CHOICE" ]; then
916 TTS_FESTIVAL_VOICE
="$voice"
920 advopts
="$advopts --voice=$CHOICE"
921 echo "Festival voice set to $TTS_FESTIVAL_VOICE"
922 echo "(voice_$TTS_FESTIVAL_VOICE)" > festival-prolog.scm
925 # Read custom tts options from command line
926 if [ "$ARG_TTSOPTS" ]; then
927 TTS_OPTS
="$ARG_TTSOPTS"
928 advopts
="$advopts --ttsopts='$TTS_OPTS'"
929 echo "$TTS_ENGINE options set to $TTS_OPTS"
932 if [ "$swcodec" = "yes" ]; then
935 ENC_OPTS
="-q 4 -c 10"
937 if [ -n "`findtool lame`" ]; then
940 ENC_OPTS
="--resample 12 -t -m m -h -V 9.999 -S -B 64 --vbr-new"
942 echo "You need LAME in the system path to build voice files for"
943 echo "HWCODEC targets."
948 echo "Using $ENCODER for encoding voice clips"
950 # Read custom encoder options from command line
951 if [ "$ARG_ENCOPTS" ]; then
952 ENC_OPTS
="$ARG_ENCOPTS"
953 advopts
="$advopts --encopts='$ENC_OPTS'"
954 echo "$ENCODER options set to $ENC_OPTS"
958 if [ -n "`findtool cygpath`" ]; then
959 TEMPDIR
=`cygpath . -a -w`
964 # figure out which languages that are around
965 for file in $rootdir/apps
/lang
/*.lang
; do
966 clean
=`basename $file .lang`
967 langs
="$langs $clean"
970 if [ "$ARG_LANG" ]; then
973 echo "Select a number for the language to use (default is english)"
974 # FIXME The multiple-language feature is currently broken
975 # echo "You may enter a comma-separated list of languages to build"
978 for one
in $langs; do
984 advopts
="$advopts --language=$pick"
989 # Allow the user to pass a comma-separated list of langauges
990 for thispick
in `echo $pick | sed 's/,/ /g'`; do
992 for one
in $langs; do
993 # Accept both the language number and name
994 if [ "$num" = "$thispick" ] ||
[ "$thispick" = "$one" ]; then
995 if [ "$output" = "" ]; then
1004 if [ -z "$output" ]; then
1012 echo "Rockbox configure script."
1013 echo "Invoke this in a directory to generate a Makefile to build Rockbox"
1014 echo "Do *NOT* run this within the tools directory!"
1017 Usage: configure [OPTION]...
1019 --target=TARGET Sets the target, TARGET can be either the target ID or
1020 corresponding string. Run without this option to see all
1023 --ram=RAM Sets the RAM for certain targets. Even though any number
1024 is accepted, not every number is correct. The default
1025 value will be applied, if you entered a wrong number
1026 (which depends on the target). Watch the output. Run
1027 without this option if you are not sure which the right
1030 --type=TYPE Sets the build type. Shortcuts are also valid.
1031 Run without this option to see all available types.
1032 Multiple values are allowed and managed in the input
1033 order. So --type=b stands for Bootloader build, while
1034 --type=ab stands for "Backlight MOD" build.
1036 --language=LANG Set the language used for voice generation (used only if
1039 --tts=ENGINE Set the TTS engine used for voice generation (used only
1042 --voice=VOICE Set voice to use with selected TTS (used only if TYPE is
1045 --ttsopts=OPTS Set TTS engine manual options (used only if TYPE is AV).
1047 --encopts=OPTS Set encoder manual options (used only if ATYPE is AV).
1049 --rbdir=dir Use alternative rockbox directory (default: ${rbdir}).
1050 This is useful for having multiple alternate builds on
1051 your device that you can load with ROLO. However as the
1052 bootloader looks for .rockbox you won't be able to boot
1055 --ccache Enable ccache use (done by default these days)
1056 --no-ccache Disable ccache use
1058 --eabi Make configure prefer toolchains that are able to compile
1059 for the new ARM standard abi EABI
1060 --no-eabi The opposite of --eabi (prefer old non-eabi toolchains)
1061 --thumb Build with -mthumb (for ARM builds)
1062 --no-thumb The opposite of --thumb (don't use thumb even for targets
1063 where this is the default
1064 --sdl-threads Force use of SDL threads. They have inferior performance,
1065 but are better debuggable with GDB
1066 --no-sdl-threads Disallow use of SDL threads. This prevents the default
1067 behavior of falling back to them if no native thread
1069 --prefix Target installation directory
1070 --help Shows this message (must not be used with other options)
1089 ARG_PREFIX
="$PREFIX"
1094 --ccache) ARG_CCACHE
=1;;
1095 --no-ccache) ARG_CCACHE
=0;;
1096 --encopts=*) ARG_ENCOPTS
=`echo "$arg" | cut -d = -f 2`;;
1097 --language=*) ARG_LANG
=`echo "$arg" | cut -d = -f 2`;;
1098 --lcdwidth=*) ARG_LCDWIDTH
=`echo "$arg" | cut -d = -f 2`;;
1099 --lcdheight=*) ARG_LCDHEIGHT
=`echo "$arg" | cut -d = -f 2`;;
1100 --ram=*) ARG_RAM
=`echo "$arg" | cut -d = -f 2`;;
1101 --rbdir=*) ARG_RBDIR
=`echo "$arg" | cut -d = -f 2`;;
1102 --target=*) ARG_TARGET
=`echo "$arg" | cut -d = -f 2`;;
1103 --tts=*) ARG_TTS
=`echo "$arg" | cut -d = -f 2`;;
1104 --ttsopts=*) ARG_TTSOPTS
=`echo "$arg" | cut -d = -f 2`;;
1105 --type=*) ARG_TYPE
=`echo "$arg" | cut -d = -f 2`;;
1106 --voice=*) ARG_VOICE
=`echo "$arg" | cut -d = -f 2`;;
1107 --eabi) ARG_ARM_EABI
=1;;
1108 --no-eabi) ARG_ARM_EABI
=0;;
1109 --thumb) ARG_ARM_THUMB
=1;;
1110 --no-thumb) ARG_ARM_THUMB
=0;;
1111 --sdl-threads)ARG_THREAD_SUPPORT
=1;;
1113 ARG_THREAD_SUPPORT
=0;;
1114 --prefix=*) ARG_PREFIX
=`echo "$arg" | cut -d = -f 2`;;
1116 *) err
=1; echo "[ERROR] Option '$arg' unsupported";;
1119 [ "$err" ] && exit 1
1123 if [ "$TMPDIR" != "" ]; then
1128 echo Using temporary directory
$tmpdir
1130 if test -r "configure"; then
1131 # this is a check for a configure script in the current directory, it there
1132 # is one, try to figure out if it is this one!
1134 if { grep "^# Jukebox" configure
>/dev
/null
2>&1 ; } then
1135 echo "WEEEEEEEEP. Don't run this configure script within the tools directory."
1136 echo "It will only cause you pain and grief. Instead do this:"
1139 echo " mkdir build-dir"
1140 echo " cd build-dir"
1141 echo " ../tools/configure"
1143 echo "Much happiness will arise from this. Enjoy"
1148 # get our current directory
1151 if { echo $pwd |
grep " "; } then
1152 echo "You're running this script in a path that contains space. The build"
1153 echo "system is unfortunately not clever enough to deal with this. Please"
1154 echo "run the script from a different path, rename the path or fix the build"
1159 if [ -z "$rootdir" ]; then
1160 ##################################################################
1161 # Figure out where the source code root is!
1163 rootdir
=`dirname $0`/..
/
1165 #####################################################################
1166 # Convert the possibly relative directory name to an absolute version
1172 # cd back to the build dir
1177 appsdir
='\$(ROOTDIR)/apps'
1178 firmdir
='\$(ROOTDIR)/firmware'
1179 toolsdir
='\$(ROOTDIR)/tools'
1182 ##################################################################
1183 # Figure out target platform
1186 if [ "$ARG_TARGET" ]; then
1187 buildfor
=$ARG_TARGET
1189 echo "Enter target platform:"
1191 ==Archos== ==iriver== ==Apple iPod==
1192 0) Player/Studio 10) H120/H140 20) Color/Photo
1193 1) Recorder 11) H320/H340 21) Nano 1G
1194 2) FM Recorder 12) iHP-100/110/115 22) Video
1195 3) Recorder v2 13) iFP-790 23) 3G
1196 4) Ondio SP 14) H10 20Gb 24) 4G Grayscale
1197 5) Ondio FM 15) H10 5/6Gb 25) Mini 1G
1198 6) AV300 26) Mini 2G
1199 ==Toshiba== 27) 1G, 2G
1200 ==Cowon/iAudio== 40) Gigabeat F/X 28) Nano 2G
1201 30) X5/X5V/X5L 41) Gigabeat S 29) Classic/6G
1203 32) 7 ==Olympus= ==SanDisk==
1204 33) D2 70) M:Robe 500 50) Sansa e200
1205 34) M3/M3L 71) M:Robe 100 51) Sansa e200R
1207 ==Creative== ==Philips== 53) Sansa m200
1208 90) Zen Vision:M 30GB 100) GoGear SA9200 54) Sansa c100
1209 91) Zen Vision:M 60GB 101) GoGear HDD1630/ 55) Sansa Clip
1210 92) Zen Vision HDD1830 56) Sansa e200v2
1211 102) GoGear HDD6330 57) Sansa m200v4
1212 ==Onda== 58) Sansa Fuze
1213 120) VX747 ==Meizu== 59) Sansa c200v2
1214 121) VX767 110) M6SL 60) Sansa Clipv2
1215 122) VX747+ 111) M6SP 61) Sansa View
1216 123) VX777 112) M3 62) Sansa Clip+
1218 ==Samsung== ==Tatung==
1219 140) YH-820 150) Elio TPJ-1022 ==Logik==
1220 141) YH-920 80) DAX 1GB MP3/DAB
1221 142) YH-925 ==Packard Bell==
1222 143) YP-S3 160) Vibe 500 ==Lyre project==
1224 ==Application== ==MPIO== 131) Mini2440
1226 201) Android 171) HD300
1235 # Set of tools built for all target platforms:
1236 toolset
="rdf2binary convbdf codepages"
1238 # Toolsets for some target families:
1239 archosbitmaptools
="$toolset scramble descramble sh2d uclpack bmp2rb"
1240 iriverbitmaptools
="$toolset scramble descramble mkboot bmp2rb"
1241 iaudiobitmaptools
="$toolset scramble descramble mkboot bmp2rb"
1242 ipodbitmaptools
="$toolset scramble bmp2rb"
1243 gigabeatbitmaptools
="$toolset scramble descramble bmp2rb"
1244 tccbitmaptools
="$toolset scramble bmp2rb"
1245 # generic is used by IFP, Meizu and Onda
1246 genericbitmaptools
="$toolset bmp2rb"
1247 # scramble is used by all other targets
1248 scramblebitmaptools
="$genericbitmaptools scramble"
1251 # ---- For each target ----
1254 # target_id: a unique number identifying this target, IS NOT the menu number.
1255 # Just use the currently highest number+1 when you add a new
1257 # modelname: short model name used all over to identify this target
1258 # memory: number of megabytes of RAM this target has. If the amount can
1259 # be selected by the size prompt, let memory be unset here
1260 # target: -Ddefine passed to the build commands to make the correct
1261 # config-*.h file get included etc
1262 # tool: the tool that takes a plain binary and converts that into a
1263 # working "firmware" file for your target
1264 # output: the final output file name
1265 # boottool: the tool that takes a plain binary and generates a bootloader
1266 # file for your target (or blank to use $tool)
1267 # bootoutput:the final output file name for the bootloader (or blank to use
1269 # appextra: passed to the APPEXTRA variable in the Makefiles.
1270 # TODO: add proper explanation
1271 # archosrom: used only for Archos targets that build a special flashable .ucl
1273 # flash: name of output for flashing, for targets where there's a special
1274 # file output for this.
1275 # plugins: set to 'yes' to build the plugins. Early development builds can
1276 # set this to no in the early stages to have an easier life for a
1278 # swcodec: set 'yes' on swcodec targets
1279 # toolset: lists what particular tools in the tools/ directory that this
1280 # target needs to have built prior to building Rockbox
1283 # *cc: sets up gcc and compiler options for your target builds. Note
1284 # that if you select a simulator build, the compiler selection is
1285 # overridden later in the script.
1291 modelname
="archosplayer"
1292 target
="-DARCHOS_PLAYER"
1294 tool
="$rootdir/tools/scramble"
1296 appextra
="player:gui"
1297 archosrom
="$pwd/rombox.ucl"
1298 flash
="$pwd/rockbox.ucl"
1302 # toolset is the tools within the tools directory that we build for
1303 # this particular target.
1304 toolset
="$toolset scramble descramble sh2d player_unifont uclpack"
1306 # Note: the convbdf is present in the toolset just because: 1) the
1307 # firmware/Makefile assumes it is present always, and 2) we will need it when we
1308 # build the player simulator
1311 t_manufacturer
="archos"
1317 modelname
="archosrecorder"
1318 target
="-DARCHOS_RECORDER"
1320 tool
="$rootdir/tools/scramble"
1321 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1322 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1324 appextra
="recorder:gui:radio"
1325 #archosrom="$pwd/rombox.ucl"
1326 flash
="$pwd/rockbox.ucl"
1329 # toolset is the tools within the tools directory that we build for
1330 # this particular target.
1331 toolset
=$archosbitmaptools
1333 t_manufacturer
="archos"
1339 modelname
="archosfmrecorder"
1340 target
="-DARCHOS_FMRECORDER"
1342 tool
="$rootdir/tools/scramble -fm"
1343 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1344 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1346 appextra
="recorder:gui:radio"
1347 #archosrom="$pwd/rombox.ucl"
1348 flash
="$pwd/rockbox.ucl"
1351 # toolset is the tools within the tools directory that we build for
1352 # this particular target.
1353 toolset
=$archosbitmaptools
1355 t_manufacturer
="archos"
1361 modelname
="archosrecorderv2"
1362 target
="-DARCHOS_RECORDERV2"
1364 tool
="$rootdir/tools/scramble -v2"
1365 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1366 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1368 appextra
="recorder:gui:radio"
1369 #archosrom="$pwd/rombox.ucl"
1370 flash
="$pwd/rockbox.ucl"
1373 # toolset is the tools within the tools directory that we build for
1374 # this particular target.
1375 toolset
=$archosbitmaptools
1377 t_manufacturer
="archos"
1383 modelname
="archosondiosp"
1384 target
="-DARCHOS_ONDIOSP"
1386 tool
="$rootdir/tools/scramble -osp"
1387 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1388 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1390 appextra
="recorder:gui:radio"
1391 #archosrom="$pwd/rombox.ucl"
1392 flash
="$pwd/rockbox.ucl"
1395 # toolset is the tools within the tools directory that we build for
1396 # this particular target.
1397 toolset
=$archosbitmaptools
1399 t_manufacturer
="archos"
1405 modelname
="archosondiofm"
1406 target
="-DARCHOS_ONDIOFM"
1408 tool
="$rootdir/tools/scramble -ofm"
1409 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1410 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1412 appextra
="recorder:gui:radio"
1413 #archosrom="$pwd/rombox.ucl"
1414 flash
="$pwd/rockbox.ucl"
1417 toolset
=$archosbitmaptools
1419 t_manufacturer
="archos"
1425 modelname
="archosav300"
1426 target
="-DARCHOS_AV300"
1429 tool
="$rootdir/tools/scramble -mm=C"
1430 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1431 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1433 appextra
="recorder:gui:radio"
1436 # toolset is the tools within the tools directory that we build for
1437 # this particular target.
1438 toolset
="$toolset scramble descramble bmp2rb"
1439 # architecture, manufacturer and model for the target-tree build
1441 t_manufacturer
="archos"
1447 modelname
="iriverh120"
1448 target
="-DIRIVER_H120"
1451 tool
="$rootdir/tools/scramble -add=h120"
1452 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1453 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
1454 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1455 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1456 output
="rockbox.iriver"
1457 bootoutput
="bootloader.iriver"
1458 appextra
="recorder:gui:radio"
1459 flash
="$pwd/rombox.iriver"
1462 # toolset is the tools within the tools directory that we build for
1463 # this particular target.
1464 toolset
=$iriverbitmaptools
1466 t_manufacturer
="iriver"
1472 modelname
="iriverh300"
1473 target
="-DIRIVER_H300"
1476 tool
="$rootdir/tools/scramble -add=h300"
1477 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1478 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1479 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1480 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1481 output
="rockbox.iriver"
1482 appextra
="recorder:gui:radio"
1485 # toolset is the tools within the tools directory that we build for
1486 # this particular target.
1487 toolset
=$iriverbitmaptools
1489 t_manufacturer
="iriver"
1495 modelname
="iriverh100"
1496 target
="-DIRIVER_H100"
1499 tool
="$rootdir/tools/scramble -add=h100"
1500 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1501 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
1502 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1503 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1504 output
="rockbox.iriver"
1505 bootoutput
="bootloader.iriver"
1506 appextra
="recorder:gui:radio"
1507 flash
="$pwd/rombox.iriver"
1510 # toolset is the tools within the tools directory that we build for
1511 # this particular target.
1512 toolset
=$iriverbitmaptools
1514 t_manufacturer
="iriver"
1520 modelname
="iriverifp7xx"
1521 target
="-DIRIVER_IFP7XX"
1525 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1526 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1527 output
="rockbox.wma"
1528 appextra
="recorder:gui:radio"
1531 # toolset is the tools within the tools directory that we build for
1532 # this particular target.
1533 toolset
=$genericbitmaptools
1535 t_manufacturer
="pnx0101"
1536 t_model
="iriver-ifp7xx"
1541 modelname
="iriverh10"
1542 target
="-DIRIVER_H10"
1545 tool
="$rootdir/tools/scramble -mi4v3 -model=h10 -type=RBOS"
1546 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1547 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1548 output
="rockbox.mi4"
1549 appextra
="recorder:gui:radio"
1552 boottool
="$rootdir/tools/scramble -mi4v3 -model=h10 -type=RBBL"
1553 bootoutput
="H10_20GC.mi4"
1554 # toolset is the tools within the tools directory that we build for
1555 # this particular target.
1556 toolset
=$scramblebitmaptools
1557 # architecture, manufacturer and model for the target-tree build
1559 t_manufacturer
="iriver"
1565 modelname
="iriverh10_5gb"
1566 target
="-DIRIVER_H10_5GB"
1569 tool
="$rootdir/tools/scramble -mi4v2 -model=h105 -type=RBOS"
1570 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1571 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1572 output
="rockbox.mi4"
1573 appextra
="recorder:gui:radio"
1576 boottool
="$rootdir/tools/scramble -mi4v2 -model=h105 -type=RBBL"
1577 bootoutput
="H10.mi4"
1578 # toolset is the tools within the tools directory that we build for
1579 # this particular target.
1580 toolset
=$scramblebitmaptools
1581 # architecture, manufacturer and model for the target-tree build
1583 t_manufacturer
="iriver"
1589 modelname
="ipodcolor"
1590 target
="-DIPOD_COLOR"
1593 tool
="$rootdir/tools/scramble -add=ipco"
1594 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1595 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1596 output
="rockbox.ipod"
1597 appextra
="recorder:gui:radio"
1600 bootoutput
="bootloader-$modelname.ipod"
1601 # toolset is the tools within the tools directory that we build for
1602 # this particular target.
1603 toolset
=$ipodbitmaptools
1604 # architecture, manufacturer and model for the target-tree build
1606 t_manufacturer
="ipod"
1612 modelname
="ipodnano1g"
1613 target
="-DIPOD_NANO"
1616 tool
="$rootdir/tools/scramble -add=nano"
1617 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1618 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1619 output
="rockbox.ipod"
1620 appextra
="recorder:gui:radio"
1623 bootoutput
="bootloader-$modelname.ipod"
1624 # toolset is the tools within the tools directory that we build for
1625 # this particular target.
1626 toolset
=$ipodbitmaptools
1627 # architecture, manufacturer and model for the target-tree build
1629 t_manufacturer
="ipod"
1635 modelname
="ipodvideo"
1636 target
="-DIPOD_VIDEO"
1637 memory
=64 # always. This is reduced at runtime if needed
1639 tool
="$rootdir/tools/scramble -add=ipvd"
1640 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1641 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1642 output
="rockbox.ipod"
1643 appextra
="recorder:gui:radio"
1646 bootoutput
="bootloader-$modelname.ipod"
1647 # toolset is the tools within the tools directory that we build for
1648 # this particular target.
1649 toolset
=$ipodbitmaptools
1650 # architecture, manufacturer and model for the target-tree build
1652 t_manufacturer
="ipod"
1662 tool
="$rootdir/tools/scramble -add=ip3g"
1663 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1664 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1665 output
="rockbox.ipod"
1666 appextra
="recorder:gui:radio"
1669 bootoutput
="bootloader-$modelname.ipod"
1670 # toolset is the tools within the tools directory that we build for
1671 # this particular target.
1672 toolset
=$ipodbitmaptools
1673 # architecture, manufacturer and model for the target-tree build
1675 t_manufacturer
="ipod"
1685 tool
="$rootdir/tools/scramble -add=ip4g"
1686 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1687 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1688 output
="rockbox.ipod"
1689 appextra
="recorder:gui:radio"
1692 bootoutput
="bootloader-$modelname.ipod"
1693 # toolset is the tools within the tools directory that we build for
1694 # this particular target.
1695 toolset
=$ipodbitmaptools
1696 # architecture, manufacturer and model for the target-tree build
1698 t_manufacturer
="ipod"
1704 modelname
="ipodmini1g"
1705 target
="-DIPOD_MINI"
1708 tool
="$rootdir/tools/scramble -add=mini"
1709 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1710 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1711 output
="rockbox.ipod"
1712 appextra
="recorder:gui:radio"
1715 bootoutput
="bootloader-$modelname.ipod"
1716 # toolset is the tools within the tools directory that we build for
1717 # this particular target.
1718 toolset
=$ipodbitmaptools
1719 # architecture, manufacturer and model for the target-tree build
1721 t_manufacturer
="ipod"
1727 modelname
="ipodmini2g"
1728 target
="-DIPOD_MINI2G"
1731 tool
="$rootdir/tools/scramble -add=mn2g"
1732 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1733 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1734 output
="rockbox.ipod"
1735 appextra
="recorder:gui:radio"
1738 bootoutput
="bootloader-$modelname.ipod"
1739 # toolset is the tools within the tools directory that we build for
1740 # this particular target.
1741 toolset
=$ipodbitmaptools
1742 # architecture, manufacturer and model for the target-tree build
1744 t_manufacturer
="ipod"
1750 modelname
="ipod1g2g"
1751 target
="-DIPOD_1G2G"
1754 tool
="$rootdir/tools/scramble -add=1g2g"
1755 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1756 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1757 output
="rockbox.ipod"
1758 appextra
="recorder:gui:radio"
1761 bootoutput
="bootloader-$modelname.ipod"
1762 # toolset is the tools within the tools directory that we build for
1763 # this particular target.
1764 toolset
=$ipodbitmaptools
1765 # architecture, manufacturer and model for the target-tree build
1767 t_manufacturer
="ipod"
1773 modelname
="ipodnano2g"
1774 target
="-DIPOD_NANO2G"
1777 tool
="$rootdir/tools/scramble -add=nn2g"
1778 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1779 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1780 output
="rockbox.ipod"
1781 appextra
="recorder:gui:radio"
1784 bootoutput
="bootloader-$modelname.ipod"
1785 # toolset is the tools within the tools directory that we build for
1786 # this particular target.
1787 toolset
=$ipodbitmaptools
1788 # architecture, manufacturer and model for the target-tree build
1790 t_manufacturer
="s5l8700"
1791 t_model
="ipodnano2g"
1800 tool
="$rootdir/tools/scramble -add=ip6g"
1801 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1802 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1803 output
="rockbox.ipod"
1804 appextra
="recorder:gui:radio"
1807 bootoutput
="bootloader-$modelname.ipod"
1808 # toolset is the tools within the tools directory that we build for
1809 # this particular target.
1810 toolset
=$ipodbitmaptools
1811 # architecture, manufacturer and model for the target-tree build
1813 t_manufacturer
="s5l8702"
1819 modelname
="iaudiox5"
1820 target
="-DIAUDIO_X5"
1823 tool
="$rootdir/tools/scramble -add=iax5"
1824 boottool
="$rootdir/tools/scramble -iaudiox5"
1825 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1826 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1827 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1828 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 7"
1829 output
="rockbox.iaudio"
1830 bootoutput
="x5_fw.bin"
1831 appextra
="recorder:gui:radio"
1834 # toolset is the tools within the tools directory that we build for
1835 # this particular target.
1836 toolset
="$iaudiobitmaptools"
1837 # architecture, manufacturer and model for the target-tree build
1839 t_manufacturer
="iaudio"
1845 modelname
="iaudiom5"
1846 target
="-DIAUDIO_M5"
1849 tool
="$rootdir/tools/scramble -add=iam5"
1850 boottool
="$rootdir/tools/scramble -iaudiom5"
1851 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1852 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
1853 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1854 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 7"
1855 output
="rockbox.iaudio"
1856 bootoutput
="m5_fw.bin"
1857 appextra
="recorder:gui:radio"
1860 # toolset is the tools within the tools directory that we build for
1861 # this particular target.
1862 toolset
="$iaudiobitmaptools"
1863 # architecture, manufacturer and model for the target-tree build
1865 t_manufacturer
="iaudio"
1875 tool
="$rootdir/tools/scramble -add=i7"
1876 boottool
="$rootdir/tools/scramble -tcc=crc"
1877 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1878 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1879 output
="rockbox.iaudio"
1880 appextra
="recorder:gui:radio"
1883 bootoutput
="I7_FW.BIN"
1884 # toolset is the tools within the tools directory that we build for
1885 # this particular target.
1886 toolset
="$tccbitmaptools"
1887 # architecture, manufacturer and model for the target-tree build
1889 t_manufacturer
="tcc77x"
1899 tool
="$rootdir/tools/scramble -add=d2"
1901 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1902 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1904 bootoutput
="bootloader-cowond2.bin"
1905 appextra
="recorder:gui:radio"
1908 toolset
="$tccbitmaptools"
1909 # architecture, manufacturer and model for the target-tree build
1911 t_manufacturer
="tcc780x"
1917 modelname
="iaudiom3"
1918 target
="-DIAUDIO_M3"
1921 tool
="$rootdir/tools/scramble -add=iam3"
1922 boottool
="$rootdir/tools/scramble -iaudiom3"
1923 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1924 bmp2rb_native
="$rootdir/tools/bmp2rb -f 7"
1925 output
="rockbox.iaudio"
1926 bootoutput
="cowon_m3.bin"
1927 appextra
="recorder:gui:radio"
1930 # toolset is the tools within the tools directory that we build for
1931 # this particular target.
1932 toolset
="$iaudiobitmaptools"
1933 # architecture, manufacturer and model for the target-tree build
1935 t_manufacturer
="iaudio"
1941 modelname
="gigabeatfx"
1942 target
="-DGIGABEAT_F"
1945 tool
="$rootdir/tools/scramble -add=giga"
1946 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1947 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1948 output
="rockbox.gigabeat"
1949 appextra
="recorder:gui:radio"
1952 toolset
=$gigabeatbitmaptools
1953 boottool
="$rootdir/tools/scramble -gigabeat"
1954 bootoutput
="FWIMG01.DAT"
1955 # architecture, manufacturer and model for the target-tree build
1957 t_manufacturer
="s3c2440"
1958 t_model
="gigabeat-fx"
1963 modelname
="gigabeats"
1964 target
="-DGIGABEAT_S"
1967 tool
="$rootdir/tools/scramble -add=gigs"
1968 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1969 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1970 output
="rockbox.gigabeat"
1971 appextra
="recorder:gui:radio"
1974 toolset
="$gigabeatbitmaptools"
1975 boottool
="$rootdir/tools/scramble -gigabeats"
1977 # architecture, manufacturer and model for the target-tree build
1979 t_manufacturer
="imx31"
1980 t_model
="gigabeat-s"
1985 modelname
="mrobe500"
1986 target
="-DMROBE_500"
1989 tool
="$rootdir/tools/scramble -add=m500"
1990 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1991 bmp2rb_native
="$rootdir/tools/bmp2rb -f 8"
1992 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1993 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1994 output
="rockbox.mrobe500"
1995 appextra
="recorder:gui:radio"
1998 toolset
=$gigabeatbitmaptools
2000 bootoutput
="rockbox.mrboot"
2001 # architecture, manufacturer and model for the target-tree build
2003 t_manufacturer
="tms320dm320"
2009 modelname
="mrobe100"
2010 target
="-DMROBE_100"
2013 tool
="$rootdir/tools/scramble -mi4v2 -model=m100 -type=RBOS"
2014 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2015 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
2016 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
2017 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
2018 output
="rockbox.mi4"
2019 appextra
="recorder:gui:radio"
2022 boottool
="$rootdir/tools/scramble -mi4v2 -model=m100 -type=RBBL"
2023 bootoutput
="pp5020.mi4"
2024 # toolset is the tools within the tools directory that we build for
2025 # this particular target.
2026 toolset
=$scramblebitmaptools
2027 # architecture, manufacturer and model for the target-tree build
2029 t_manufacturer
="olympus"
2035 modelname
="logikdax"
2036 target
="-DLOGIK_DAX"
2039 tool
="$rootdir/tools/scramble -add=ldax"
2040 boottool
="$rootdir/tools/scramble -tcc=crc"
2041 bootoutput
="player.rom"
2042 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2043 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
2044 output
="rockbox.logik"
2045 appextra
="recorder:gui:radio"
2048 # toolset is the tools within the tools directory that we build for
2049 # this particular target.
2050 toolset
=$tccbitmaptools
2051 # architecture, manufacturer and model for the target-tree build
2053 t_manufacturer
="tcc77x"
2059 modelname
="zenvisionm30gb"
2060 target
="-DCREATIVE_ZVM"
2063 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2064 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2065 tool
="$rootdir/tools/scramble -creative=zvm"
2067 output
="rockbox.zvm"
2068 appextra
="recorder:gui:radio"
2071 toolset
=$ipodbitmaptools
2072 boottool
="$rootdir/tools/scramble -creative=zvm -no-ciff"
2073 bootoutput
="rockbox.zvmboot"
2074 # architecture, manufacturer and model for the target-tree build
2076 t_manufacturer
="tms320dm320"
2077 t_model
="creative-zvm"
2082 modelname
="zenvisionm60gb"
2083 target
="-DCREATIVE_ZVM60GB"
2086 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2087 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2088 tool
="$rootdir/tools/scramble -creative=zvm60 -no-ciff"
2090 output
="rockbox.zvm60"
2091 appextra
="recorder:gui:radio"
2094 toolset
=$ipodbitmaptools
2095 boottool
="$rootdir/tools/scramble -creative=zvm60"
2096 bootoutput
="rockbox.zvm60boot"
2097 # architecture, manufacturer and model for the target-tree build
2099 t_manufacturer
="tms320dm320"
2100 t_model
="creative-zvm"
2105 modelname
="zenvision"
2106 target
="-DCREATIVE_ZV"
2109 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2110 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2111 tool
="$rootdir/tools/scramble -creative=zenvision -no-ciff"
2114 appextra
="recorder:gui:radio"
2117 toolset
=$ipodbitmaptools
2118 boottool
="$rootdir/tools/scramble -creative=zenvision"
2119 bootoutput
="rockbox.zvboot"
2120 # architecture, manufacturer and model for the target-tree build
2122 t_manufacturer
="tms320dm320"
2123 t_model
="creative-zvm"
2128 modelname
="sansae200"
2129 target
="-DSANSA_E200"
2130 memory
=32 # supposedly
2132 tool
="$rootdir/tools/scramble -mi4v3 -model=e200 -type=RBOS"
2133 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2134 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2135 output
="rockbox.mi4"
2136 appextra
="recorder:gui:radio"
2139 boottool
="$rootdir/tools/scramble -mi4v3 -model=e200 -type=RBBL"
2140 bootoutput
="PP5022.mi4"
2141 # toolset is the tools within the tools directory that we build for
2142 # this particular target.
2143 toolset
=$scramblebitmaptools
2144 # architecture, manufacturer and model for the target-tree build
2146 t_manufacturer
="sandisk"
2147 t_model
="sansa-e200"
2151 # the e200R model is pretty much identical to the e200, it only has a
2152 # different option to the scramble tool when building a bootloader and
2153 # makes the bootloader output file name in all lower case.
2155 modelname
="sansae200r"
2156 target
="-DSANSA_E200"
2157 memory
=32 # supposedly
2159 tool
="$rootdir/tools/scramble -mi4v3 -model=e20r -type=RBOS"
2160 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2161 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2162 output
="rockbox.mi4"
2163 appextra
="recorder:gui:radio"
2166 boottool
="$rootdir/tools/scramble -mi4r -model=e20r -type=RBBL"
2167 bootoutput
="pp5022.mi4"
2168 # toolset is the tools within the tools directory that we build for
2169 # this particular target.
2170 toolset
=$scramblebitmaptools
2171 # architecture, manufacturer and model for the target-tree build
2173 t_manufacturer
="sandisk"
2174 t_model
="sansa-e200"
2179 modelname
="sansac200"
2180 target
="-DSANSA_C200"
2181 memory
=32 # supposedly
2183 tool
="$rootdir/tools/scramble -mi4v3 -model=c200 -type=RBOS"
2184 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2185 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2186 output
="rockbox.mi4"
2187 appextra
="recorder:gui:radio"
2190 boottool
="$rootdir/tools/scramble -mi4v3 -model=c200 -type=RBBL"
2191 bootoutput
="firmware.mi4"
2192 # toolset is the tools within the tools directory that we build for
2193 # this particular target.
2194 toolset
=$scramblebitmaptools
2195 # architecture, manufacturer and model for the target-tree build
2197 t_manufacturer
="sandisk"
2198 t_model
="sansa-c200"
2203 modelname
="sansam200"
2204 target
="-DSANSA_M200"
2207 tool
="$rootdir/tools/scramble -add=m200"
2208 boottool
="$rootdir/tools/scramble -tcc=crc"
2209 bootoutput
="player.rom"
2210 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2211 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
2212 output
="rockbox.m200"
2213 appextra
="recorder:gui:radio"
2216 # toolset is the tools within the tools directory that we build for
2217 # this particular target.
2218 toolset
=$tccbitmaptools
2219 # architecture, manufacturer and model for the target-tree build
2221 t_manufacturer
="tcc77x"
2227 modelname
="sansac100"
2228 target
="-DSANSA_C100"
2231 tool
="$rootdir/tools/scramble -add=c100"
2232 boottool
="$rootdir/tools/scramble -tcc=crc"
2233 bootoutput
="player.rom"
2234 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2235 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2236 output
="rockbox.c100"
2237 appextra
="recorder:gui:radio"
2240 # toolset is the tools within the tools directory that we build for
2241 # this particular target.
2242 toolset
=$tccbitmaptools
2243 # architecture, manufacturer and model for the target-tree build
2245 t_manufacturer
="tcc77x"
2251 modelname
="sansaclip"
2252 target
="-DSANSA_CLIP"
2254 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2255 bmp2rb_native
="$bmp2rb_mono"
2256 tool
="$rootdir/tools/scramble -add=clip"
2257 output
="rockbox.sansa"
2258 bootoutput
="bootloader-clip.sansa"
2259 appextra
="recorder:gui:radio"
2262 toolset
=$scramblebitmaptools
2264 t_manufacturer
="as3525"
2265 t_model
="sansa-clip"
2266 if [ "$ARG_ARM_THUMB" != 0 ]; then ARG_ARM_THUMB
=1; fi
2268 GCCOPTS
=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2274 modelname
="sansae200v2"
2275 target
="-DSANSA_E200V2"
2277 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2278 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2279 tool
="$rootdir/tools/scramble -add=e2v2"
2280 output
="rockbox.sansa"
2281 bootoutput
="bootloader-e200v2.sansa"
2282 appextra
="recorder:gui:radio"
2285 toolset
=$scramblebitmaptools
2287 t_manufacturer
="as3525"
2288 t_model
="sansa-e200v2"
2295 modelname
="sansam200v4"
2296 target
="-DSANSA_M200V4"
2298 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2299 bmp2rb_native
="$bmp2rb_mono"
2300 tool
="$rootdir/tools/scramble -add=m2v4"
2301 output
="rockbox.sansa"
2302 bootoutput
="bootloader-m200v4.sansa"
2303 appextra
="recorder:gui:radio"
2306 toolset
=$scramblebitmaptools
2308 t_manufacturer
="as3525"
2309 t_model
="sansa-m200v4"
2310 if [ "$ARG_ARM_THUMB" != 0 ]; then ARG_ARM_THUMB
=1; fi
2312 GCCOPTS
=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2318 modelname
="sansafuze"
2319 target
="-DSANSA_FUZE"
2321 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2322 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2323 tool
="$rootdir/tools/scramble -add=fuze"
2324 output
="rockbox.sansa"
2325 bootoutput
="bootloader-fuze.sansa"
2326 appextra
="recorder:gui:radio"
2329 toolset
=$scramblebitmaptools
2331 t_manufacturer
="as3525"
2332 t_model
="sansa-fuze"
2339 modelname
="sansac200v2"
2340 target
="-DSANSA_C200V2"
2341 memory
=2 # as per OF diagnosis mode
2342 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2343 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2344 tool
="$rootdir/tools/scramble -add=c2v2"
2345 output
="rockbox.sansa"
2346 bootoutput
="bootloader-c200v2.sansa"
2347 appextra
="recorder:gui:radio"
2350 # toolset is the tools within the tools directory that we build for
2351 # this particular target.
2352 toolset
=$scramblebitmaptools
2353 # architecture, manufacturer and model for the target-tree build
2355 t_manufacturer
="as3525"
2356 t_model
="sansa-c200v2"
2357 if [ "$ARG_ARM_THUMB" != 0 ]; then ARG_ARM_THUMB
=1; fi
2359 GCCOPTS
=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2364 modelname
="sansaclipv2"
2365 target
="-DSANSA_CLIPV2"
2367 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2368 bmp2rb_native
="$bmp2rb_mono"
2369 tool
="$rootdir/tools/scramble -add=clv2"
2370 output
="rockbox.sansa"
2371 bootoutput
="bootloader-clipv2.sansa"
2372 appextra
="recorder:gui:radio"
2375 toolset
=$scramblebitmaptools
2377 t_manufacturer
="as3525"
2378 t_model
="sansa-clipv2"
2383 echo "Sansa View is not yet supported!"
2386 modelname
="sansaview"
2387 target
="-DSANSA_VIEW"
2390 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2391 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2392 output
="rockbox.mi4"
2396 boottool
="$rootdir/tools/scramble -mi4v3 -model=view -type=RBBL"
2397 bootoutput
="firmware.mi4"
2398 # toolset is the tools within the tools directory that we build for
2399 # this particular target.
2400 toolset
=$scramblebitmaptools
2402 t_manufacturer
="sandisk"
2403 t_model
="sansa-view"
2408 modelname
="sansaclipplus"
2409 target
="-DSANSA_CLIPPLUS"
2411 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2412 bmp2rb_native
="$bmp2rb_mono"
2413 tool
="$rootdir/tools/scramble -add=cli+"
2414 output
="rockbox.sansa"
2415 bootoutput
="bootloader-clipplus.sansa"
2416 appextra
="recorder:gui:radio"
2419 toolset
=$scramblebitmaptools
2421 t_manufacturer
="as3525"
2422 t_model
="sansa-clipplus"
2428 modelname
="sansafuzev2"
2429 target
="-DSANSA_FUZEV2"
2431 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2432 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
2433 tool
="$rootdir/tools/scramble -add=fuz2"
2434 output
="rockbox.sansa"
2435 bootoutput
="bootloader-fuzev2.sansa"
2436 appextra
="recorder:gui:radio"
2439 toolset
=$scramblebitmaptools
2441 t_manufacturer
="as3525"
2442 t_model
="sansa-fuzev2"
2448 modelname
="tatungtpj1022"
2449 target
="-DTATUNG_TPJ1022"
2452 tool
="$rootdir/tools/scramble -add tpj2"
2453 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2454 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
2455 output
="rockbox.elio"
2456 appextra
="recorder:gui:radio"
2459 boottool
="$rootdir/tools/scramble -mi4v2"
2460 bootoutput
="pp5020.mi4"
2461 # toolset is the tools within the tools directory that we build for
2462 # this particular target.
2463 toolset
=$scramblebitmaptools
2464 # architecture, manufacturer and model for the target-tree build
2466 t_manufacturer
="tatung"
2472 modelname
="gogearsa9200"
2473 target
="-DPHILIPS_SA9200"
2474 memory
=32 # supposedly
2476 tool
="$rootdir/tools/scramble -mi4v3 -model=9200 -type=RBOS"
2477 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2478 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2479 output
="rockbox.mi4"
2480 appextra
="recorder:gui:radio"
2483 boottool
="$rootdir/tools/scramble -mi4v3 -model=9200 -type=RBBL"
2484 bootoutput
="FWImage.ebn"
2485 # toolset is the tools within the tools directory that we build for
2486 # this particular target.
2487 toolset
=$scramblebitmaptools
2488 # architecture, manufacturer and model for the target-tree build
2490 t_manufacturer
="philips"
2496 modelname
="gogearhdd1630"
2497 target
="-DPHILIPS_HDD1630"
2498 memory
=32 # supposedly
2500 tool
="$rootdir/tools/scramble -mi4v3 -model=1630 -type=RBOS"
2501 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2502 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2503 output
="rockbox.mi4"
2504 appextra
="recorder:gui:radio"
2507 boottool
="$rootdir/tools/scramble -mi4v3 -model=1630 -type=RBBL"
2508 bootoutput
="FWImage.ebn"
2509 # toolset is the tools within the tools directory that we build for
2510 # this particular target.
2511 toolset
=$scramblebitmaptools
2512 # architecture, manufacturer and model for the target-tree build
2514 t_manufacturer
="philips"
2520 modelname
="gogearhdd6330"
2521 target
="-DPHILIPS_HDD6330"
2524 tool
="$rootdir/tools/scramble -mi4v3 -model=6330 -type=RBOS"
2525 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2526 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
2527 output
="rockbox.mi4"
2528 appextra
="recorder:gui:radio"
2531 boottool
="$rootdir/tools/scramble -mi4v3 -model=6330 -type=RBBL"
2532 bootoutput
="FWImage.ebn"
2533 # toolset is the tools within the tools directory that we build for
2534 # this particular target.
2535 toolset
=$scramblebitmaptools
2536 # architecture, manufacturer and model for the target-tree build
2538 t_manufacturer
="philips"
2544 modelname
="meizum6sl"
2545 target
="-DMEIZU_M6SL"
2549 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2550 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2551 output
="rockbox.meizu"
2552 appextra
="recorder:gui:radio"
2555 toolset
=$genericbitmaptools
2557 bootoutput
="rockboot.ebn"
2558 # architecture, manufacturer and model for the target-tree build
2560 t_manufacturer
="s5l8700"
2561 t_model
="meizu-m6sl"
2566 modelname
="meizum6sp"
2567 target
="-DMEIZU_M6SP"
2571 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2572 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2573 output
="rockbox.meizu"
2574 appextra
="recorder:gui:radio"
2577 toolset
=$genericbitmaptools
2579 bootoutput
="rockboot.ebn"
2580 # architecture, manufacturer and model for the target-tree build
2582 t_manufacturer
="s5l8700"
2583 t_model
="meizu-m6sp"
2593 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2594 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2595 output
="rockbox.meizu"
2596 appextra
="recorder:gui:radio"
2599 toolset
=$genericbitmaptools
2601 bootoutput
="rockboot.ebn"
2602 # architecture, manufacturer and model for the target-tree build
2604 t_manufacturer
="s5l8700"
2610 modelname
="ondavx747"
2611 target
="-DONDA_VX747"
2614 tool
="$rootdir/tools/scramble -add=x747"
2615 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2616 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2617 output
="rockbox.vx747"
2618 appextra
="recorder:gui:radio"
2621 toolset
=$genericbitmaptools
2622 boottool
="$rootdir/tools/scramble -ccpmp"
2623 bootoutput
="ccpmp.bin"
2624 # architecture, manufacturer and model for the target-tree build
2626 t_manufacturer
="ingenic_jz47xx"
2627 t_model
="onda_vx747"
2632 modelname
="ondavx767"
2633 target
="-DONDA_VX767"
2637 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2638 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2639 output
="rockbox.vx767"
2640 appextra
="recorder:gui:radio"
2643 toolset
=$genericbitmaptools
2644 boottool
="$rootdir/tools/scramble -ccpmp"
2645 bootoutput
="ccpmp.bin"
2646 # architecture, manufacturer and model for the target-tree build
2648 t_manufacturer
="ingenic_jz47xx"
2649 t_model
="onda_vx767"
2654 modelname
="ondavx747p"
2655 target
="-DONDA_VX747P"
2658 tool
="$rootdir/tools/scramble -add=747p"
2659 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2660 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2661 output
="rockbox.vx747p"
2662 appextra
="recorder:gui:radio"
2665 toolset
=$genericbitmaptools
2666 boottool
="$rootdir/tools/scramble -ccpmp"
2667 bootoutput
="ccpmp.bin"
2668 # architecture, manufacturer and model for the target-tree build
2670 t_manufacturer
="ingenic_jz47xx"
2671 t_model
="onda_vx747"
2676 modelname
="ondavx777"
2677 target
="-DONDA_VX777"
2680 tool
="$rootdir/tools/scramble -add=x777"
2681 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2682 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2683 output
="rockbox.vx777"
2684 appextra
="recorder:gui:radio"
2687 toolset
=$genericbitmaptools
2688 boottool
="$rootdir/tools/scramble -ccpmp"
2689 bootoutput
="ccpmp.bin"
2690 # architecture, manufacturer and model for the target-tree build
2692 t_manufacturer
="ingenic_jz47xx"
2693 t_model
="onda_vx747"
2698 modelname
="lyreproto1"
2699 target
="-DLYRE_PROTO1"
2703 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2704 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2705 output
="rockbox.lyre"
2706 appextra
="recorder:gui:radio"
2709 toolset
=$scramblebitmaptools
2711 bootoutput
="bootloader-proto1.lyre"
2712 # architecture, manufacturer and model for the target-tree build
2714 t_manufacturer
="at91sam"
2715 t_model
="lyre_proto1"
2720 modelname
="mini2440"
2724 tool
="$rootdir/tools/scramble -add=m244"
2725 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2726 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2727 output
="rockbox.mini2440"
2728 appextra
="recorder:gui:radio"
2731 toolset
=$scramblebitmaptools
2733 bootoutput
="bootloader-mini2440.lyre"
2734 # architecture, manufacturer and model for the target-tree build
2736 t_manufacturer
="s3c2440"
2742 modelname
="samsungyh820"
2743 target
="-DSAMSUNG_YH820"
2746 tool
="$rootdir/tools/scramble -mi4v2 -model=y820 -type=RBOS"
2747 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2748 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2749 output
="rockbox.mi4"
2750 appextra
="recorder:gui:radio"
2753 boottool
="$rootdir/tools/scramble -mi4v2 -model=y820 -type=RBBL"
2754 bootoutput
="FW_YH820.mi4"
2755 # toolset is the tools within the tools directory that we build for
2756 # this particular target.
2757 toolset
=$scramblebitmaptools
2758 # architecture, manufacturer and model for the target-tree build
2760 t_manufacturer
="samsung"
2766 modelname
="samsungyh920"
2767 target
="-DSAMSUNG_YH920"
2770 tool
="$rootdir/tools/scramble -mi4v2 -model=y920 -type=RBOS"
2771 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2772 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
2773 output
="rockbox.mi4"
2774 appextra
="recorder:gui:radio"
2777 boottool
="$rootdir/tools/scramble -mi4v2 -model=y920 -type=RBBL"
2778 bootoutput
="PP5020.mi4"
2779 # toolset is the tools within the tools directory that we build for
2780 # this particular target.
2781 toolset
=$scramblebitmaptools
2782 # architecture, manufacturer and model for the target-tree build
2784 t_manufacturer
="samsung"
2790 modelname
="samsungyh925"
2791 target
="-DSAMSUNG_YH925"
2794 tool
="$rootdir/tools/scramble -mi4v2 -model=y925 -type=RBOS"
2795 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2796 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2797 output
="rockbox.mi4"
2798 appextra
="recorder:gui:radio"
2801 boottool
="$rootdir/tools/scramble -mi4v2 -model=y925 -type=RBBL"
2802 bootoutput
="FW_YH925.mi4"
2803 # toolset is the tools within the tools directory that we build for
2804 # this particular target.
2805 toolset
=$scramblebitmaptools
2806 # architecture, manufacturer and model for the target-tree build
2808 t_manufacturer
="samsung"
2814 modelname
="samsungyps3"
2815 target
="-DSAMSUNG_YPS3"
2819 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2820 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2821 output
="rockbox.yps3"
2822 appextra
="recorder:gui:radio"
2825 toolset
=$genericbitmaptools
2827 bootoutput
="rockboot.ebn"
2828 # architecture, manufacturer and model for the target-tree build
2830 t_manufacturer
="s5l8700"
2837 target
="-DPBELL_VIBE500"
2840 tool
="$rootdir/tools/scramble -mi4v3 -model=v500 -type=RBOS"
2841 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2842 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
2843 output
="rockbox.mi4"
2844 appextra
="recorder:gui:radio"
2847 boottool
="$rootdir/tools/scramble -mi4v3 -model=v500 -type=RBBL"
2848 bootoutput
="jukebox.mi4"
2849 # toolset is the tools within the tools directory that we build for
2850 # this particular target.
2851 toolset
=$scramblebitmaptools
2852 # architecture, manufacturer and model for the target-tree build
2854 t_manufacturer
="pbell"
2860 modelname
="mpiohd200"
2861 target
="-DMPIO_HD200"
2864 tool
="$rootdir/tools/scramble -add=hd20"
2865 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2866 bmp2rb_native
="$rootdir/tools/bmp2rb -f 7"
2867 output
="rockbox.mpio"
2868 bootoutput
="bootloader.mpio"
2869 appextra
="recorder:gui:radio"
2872 # toolset is the tools within the tools directory that we build for
2873 # this particular target.
2874 toolset
="$genericbitmaptools"
2875 # architecture, manufacturer and model for the target-tree build
2877 t_manufacturer
="mpio"
2883 modelname
="mpiohd300"
2884 target
="-DMPIO_HD300"
2887 tool
="$rootdir/tools/scramble -add=hd30"
2888 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2889 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
2890 output
="rockbox.mpio"
2891 bootoutput
="bootloader.mpio"
2892 appextra
="recorder:gui:radio"
2895 # toolset is the tools within the tools directory that we build for
2896 # this particular target.
2897 toolset
="$genericbitmaptools"
2898 # architecture, manufacturer and model for the target-tree build
2900 t_manufacturer
="mpio"
2906 modelname
="application"
2907 app_modelname
="sdlapp"
2908 target
="-DAPPLICATION"
2916 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2917 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2919 bootoutput
="rockbox"
2920 appextra
="recorder:gui:radio"
2923 # architecture, manufacturer and model for the target-tree build
2925 t_manufacturer
="sdl"
2931 modelname
="application"
2932 app_modelname
="android"
2933 target
="-DAPPLICATION"
2936 sharedir
="/data/data/org.rockbox/app_rockbox/rockbox"
2937 bindir
="/data/data/org.rockbox/lib"
2938 libdir
="/data/data/org.rockbox/app_rockbox"
2944 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2945 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2946 output
="librockbox.so"
2947 bootoutput
="librockbox.so"
2948 appextra
="recorder:gui:radio"
2951 # architecture, manufacturer and model for the target-tree build
2953 t_manufacturer
="android"
2959 modelname
="application"
2960 app_modelname
="nokian8xx"
2962 target
="-DAPPLICATION"
2963 app_set_lcd_size
800 480
2964 sharedir
="/opt/rockbox/share/rockbox"
2965 bindir
="/opt/rockbox/bin"
2966 libdir
="/opt/rockbox/lib"
2972 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2973 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2975 bootoutput
="rockbox"
2976 appextra
="recorder:gui:radio"
2979 # architecture, manufacturer and model for the target-tree build
2981 t_manufacturer
="maemo"
2987 modelname
="application"
2988 app_modelname
="nokian900"
2990 target
="-DAPPLICATION"
2991 app_set_lcd_size
800 480
2992 sharedir
="/opt/rockbox/share/rockbox"
2993 bindir
="/opt/rockbox/bin"
2994 libdir
="/opt/rockbox/lib"
3000 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
3001 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
3003 bootoutput
="rockbox"
3004 appextra
="recorder:gui:radio"
3007 # architecture, manufacturer and model for the target-tree build
3009 t_manufacturer
="maemo"
3014 echo "Please select a supported target platform!"
3020 echo "Platform set to $modelname"
3024 ############################################################################
3025 # Amount of memory, for those that can differ. They have $memory unset at
3029 if [ -z "$memory" ]; then
3032 if [ "$ARG_RAM" ]; then
3035 echo "Enter size of your RAM (in MB): (Defaults to 32)"
3048 if [ "$ARG_RAM" ]; then
3051 echo "Enter size of your RAM (in MB): (Defaults to 2)"
3064 echo "Memory size selected: $memory MB"
3065 [ "$ARG_TYPE" ] ||
echo ""
3069 ##################################################################
3070 # Figure out build "type"
3073 # the ifp7x0 is the only platform that supports building a gdb stub like
3077 gdbstub
="(G)DB stub, "
3079 sansae200r|sansae200
)
3080 gdbstub
="(I)nstaller, "
3083 gdbstub
="(E)raser, "
3088 if [ "$ARG_TYPE" ]; then
3091 echo "Build (N)ormal, (A)dvanced, (S)imulator, (B)ootloader, (C)heckWPS, (D)atabase tool, $gdbstub(M)anual: (Defaults to N)"
3097 appsdir
='\$(ROOTDIR)/bootloader'
3099 extradefines
="$extradefines -DBOOTLOADER -DE200R_INSTALLER -ffunction-sections -fdata-sections"
3101 echo "e200R-installer build selected"
3104 appsdir
='\$(ROOTDIR)/bootloader'
3106 echo "C2(4)0 or C2(5)0"
3110 extradefines
="$extradefines -DBOOTLOADER -DC200_ERASE -DC240_ERASE -ffunction-sections -fdata-sections"
3111 echo "c240 eraser build selected"
3114 extradefines
="$extradefines -DBOOTLOADER -DC200_ERASE -DC250_ERASE -ffunction-sections -fdata-sections"
3115 echo "c240 eraser build selected"
3119 echo "c200 eraser build selected"
3122 if test $t_manufacturer = "archos"; then
3123 # Archos SH-based players do this somewhat differently for
3125 appsdir
='\$(ROOTDIR)/flash/bootbox'
3128 appsdir
='\$(ROOTDIR)/bootloader'
3131 if test -n "$boottool"; then
3134 if test -n "$bootoutput"; then
3138 extradefines
="$extradefines -DBOOTLOADER -ffunction-sections -fdata-sections"
3140 echo "Bootloader build selected"
3143 if [ "$modelname" = "sansae200r" ]; then
3144 echo "Do not use the e200R target for simulator builds. Use e200 instead."
3149 extradefines
="$extradefines -DSIMULATOR"
3152 echo "Simulator build selected"
3155 echo "Advanced build selected"
3156 whichadvanced
$btype
3159 extradefines
="$extradefines -DSTUB" # for target makefile symbol EXTRA_DEFINES
3160 appsdir
='\$(ROOTDIR)/gdb'
3169 echo "GDB stub build selected"
3174 echo "Manual build selected"
3182 extradefines
="$extradefines -DDEBUG"
3183 appsdir
='\$(ROOTDIR)/tools/checkwps';
3184 output
='checkwps.'${modelname};
3186 echo "CheckWPS build selected"
3194 appsdir
='\$(ROOTDIR)/tools/database';
3199 output
="database_${modelname}.exe"
3202 output
='database.'${modelname};
3206 echo "Database tool build selected"
3209 if [ "$modelname" = "sansae200r" ]; then
3210 echo "Do not use the e200R target for regular builds. Use e200 instead."
3214 btype
="N" # set it explicitly since RET only gets here as well
3215 echo "Normal build selected"
3219 # to be able running "make manual" from non-manual configuration
3222 manualdev
="archosfmrecorder"
3225 manualdev
="iriverh100"
3228 manualdev
="ipodmini1g"
3231 manualdev
=$modelname
3235 if [ -z "$debug" ]; then
3236 GCCOPTS
="$GCCOPTS $GCCOPTIMIZE"
3239 echo "Using source code root directory: $rootdir"
3241 # this was once possible to change at build-time, but no more:
3246 if [ "yes" = "$simulator" ]; then
3247 # setup compiler and things for simulator
3250 if [ -d "simdisk" ]; then
3251 echo "Subdirectory 'simdisk' already present"
3254 echo "Created a 'simdisk' subdirectory for simulating the hard disk"
3258 # Now, figure out version number of the (gcc) compiler we are about to use
3259 gccver
=`$CC -dumpversion`;
3261 # figure out the binutil version too and display it, mostly for the build
3262 # system etc to be able to see it easier
3263 if [ $uname = "Darwin" ]; then
3264 ldver
=`$LD -v 2>&1 | sed -e 's/[^0-9.-]//g'`
3266 ldver
=`$LD --version | head -n 1 | sed -e 's/[^0-9.]//g'`
3269 if [ -z "$gccver" ]; then
3270 echo "[WARNING] The compiler you must use ($CC) is not in your path!"
3271 echo "[WARNING] this may cause your build to fail since we cannot do the"
3272 echo "[WARNING] checks we want now."
3275 # gccver should now be "3.3.5", "3.4.3", "2.95.3-6" and similar, but don't
3278 num1
=`echo $gccver | cut -d . -f1`
3279 num2
=`echo $gccver | cut -d . -f2`
3280 gccnum
=`(expr $num1 "*" 100 + $num2) 2>/dev/null`
3287 echo "Using $CC $gccver ($gccnum)"
3289 if test "$gccnum" -ge "400"; then
3290 # gcc 4.0 is just *so* much pickier on arguments that differ in signedness
3291 # so we ignore that warnings for now
3293 GCCOPTS
="$GCCOPTS -Wno-pointer-sign"
3296 if test "$gccnum" -ge "402"; then
3297 # disable warning about "warning: initialized field overwritten" as gcc 4.2
3298 # and later would throw it for several valid cases
3299 GCCOPTS
="$GCCOPTS -Wno-override-init"
3303 ""|
"$CROSS_COMPILE")
3307 # cross-compile for win32
3310 # Verify that the cross-compiler is of a recommended version!
3311 if test "$gccver" != "$gccchoice"; then
3312 echo "WARNING: Your cross-compiler $CC $gccver is not of the recommended"
3313 echo "WARNING: version $gccchoice!"
3314 echo "WARNING: This may cause your build to fail since it may be a version"
3315 echo "WARNING: that isn't functional or known to not be the best choice."
3316 echo "WARNING: If you suffer from build problems, you know that this is"
3317 echo "WARNING: a likely source for them..."
3325 echo "Using $LD $ldver"
3327 # check the compiler for SH platforms
3328 if test "$CC" = "sh-elf-gcc"; then
3329 if test "$gccnum" -lt "400"; then
3330 echo "WARNING: Consider upgrading your compiler to the 4.0.X series!"
3331 echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler"
3333 # figure out patch status
3334 gccpatch
=`$CC --version`;
3336 if { echo $gccpatch |
grep "rockbox" >/dev
/null
2>&1; } then
3337 echo "gcc $gccver is rockbox patched"
3338 # then convert -O to -Os to get smaller binaries!
3339 GCCOPTS
=`echo $GCCOPTS | sed 's/ -O / -Os /'`
3341 echo "WARNING: You use an unpatched gcc compiler: $gccver"
3342 echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler"
3347 if test "$CC" = "m68k-elf-gcc"; then
3348 # convert -O to -Os to get smaller binaries!
3349 GCCOPTS
=`echo $GCCOPTS | sed 's/ -O / -Os /'`
3352 if [ "$ARG_CCACHE" = "1" ]; then
3353 echo "Enable ccache for building"
3355 elif [ "$ARG_CCACHE" != "0" ]; then
3356 ccache
=`findtool ccache`
3357 if test -n "$ccache"; then
3358 echo "Found and uses ccache ($ccache)"
3362 # figure out the full path to the various commands if possible
3363 HOSTCC
=`findtool gcc --lit`
3364 HOSTAR
=`findtool ar --lit`
3365 CC
=`findtool ${CC} --lit`
3366 LD
=`findtool ${AR} --lit`
3367 AR
=`findtool ${AR} --lit`
3368 AS
=`findtool ${AS} --lit`
3369 OC
=`findtool ${OC} --lit`
3370 WINDRES
=`findtool ${WINDRES} --lit`
3371 DLLTOOL
=`findtool ${DLLTOOL} --lit`
3372 DLLWRAP
=`findtool ${DLLWRAP} --lit`
3373 RANLIB
=`findtool ${RANLIB} --lit`
3375 if test -n "$ccache"; then
3379 if test "$ARG_ARM_THUMB" = "1"; then
3380 extradefines
="$extradefines -DUSE_THUMB"
3381 CC
="$toolsdir/thumb-cc.py $CC"
3384 if test "X$endian" = "Xbig"; then
3385 defendian
="ROCKBOX_BIG_ENDIAN"
3387 defendian
="ROCKBOX_LITTLE_ENDIAN"
3390 if [ "$ARG_RBDIR" != "" ]; then
3391 if [ -z `echo $ARG_RBDIR | grep '^/'` ]; then
3396 echo "Using alternate rockbox dir: ${rbdir}"
3400 -e "s<@ENDIAN@<${defendian}<g" \
3401 -e "s<^#undef ROCKBOX_HAS_LOGF<$use_logf<g" \
3402 -e "s<^#undef DO_BOOTCHART<$use_bootchart<g" \
3403 -e "s<@config_rtc@<$config_rtc<g" \
3404 -e "s<@have_rtc_alarm@<$have_rtc_alarm<g" \
3405 -e "s<@thread_support@<$thread_support<g" \
3406 -e "s<@RBDIR@<${rbdir}<g" \
3407 -e "s<@sharepath@<${sharedir}<g" \
3408 -e "s<@binpath@<${bindir}<g" \
3409 -e "s<@libpath@<${libdir}<g" \
3410 -e "s<@have_backlight@<$have_backlight<g" \
3411 -e "s<@have_fmradio_in@<$have_fmradio_in<g" \
3412 -e "s<@have_ata_poweroff@<$have_ata_poweroff<g" \
3413 -e "s<@lcd_width@<$app_lcd_width<g" \
3414 -e "s<@lcd_height@<$app_lcd_height<g" \
3416 /* This header was made by configure */
3417 #ifndef __BUILD_AUTOCONF_H
3418 #define __BUILD_AUTOCONF_H
3420 /* Define endianess for the target or simulator platform */
3423 /* Define this if you build rockbox to support the logf logging and display */
3424 #undef ROCKBOX_HAS_LOGF
3426 /* Define this to record a chart with timings for the stages of boot */
3429 /* optional define for a backlight modded Ondio */
3432 /* optional define for FM radio mod for iAudio M5 */
3435 /* optional define for ATA poweroff on Player */
3438 /* optional defines for RTC mod for h1x0 */
3442 /* the threading backend we use */
3443 #define @thread_support@
3445 /* lcd dimensions for application builds from configure */
3449 /* root of Rockbox */
3450 #define ROCKBOX_DIR "@RBDIR@"
3451 #define ROCKBOX_SHARE_PATH "@sharepath@"
3452 #define ROCKBOX_BINARY_PATH "@binpath@"
3453 #define ROCKBOX_LIBRARY_PATH "@libpath@"
3455 #endif /* __BUILD_AUTOCONF_H */
3458 if test -n "$t_cpu"; then
3459 TARGET_INC
="-I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer/$t_model"
3461 if [ "$t_cpu" = "hosted" ] && [ "$t_manufacturer" = "maemo" ]; then
3462 # Maemo needs the SDL port, too
3463 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl/app"
3464 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl"
3465 elif [ "$simulator" = "yes" ]; then # a few more includes for the sim target tree
3466 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl"
3467 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/hosted"
3469 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer"
3470 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu"
3474 if test "$simulator" = "yes"; then
3475 # add simul make stuff on the #SIMUL# line
3476 simmagic1
="s<@SIMUL1@<\$(SILENT)\$(MAKE) -C \$(SIMDIR) OBJDIR=\$(BUILDDIR)/sim<"
3477 simmagic2
="s<@SIMUL2@<\$(SILENT)\$(MAKE) -C \$(ROOTDIR)/uisimulator/common OBJDIR=\$(BUILDDIR)/comsim<"
3479 # delete the lines that match
3480 simmagic1
='/@SIMUL1@/D'
3481 simmagic2
='/@SIMUL2@/D'
3484 if test "$swcodec" = "yes"; then
3485 voicetoolset
="rbspeexenc voicefont wavtrim"
3487 voicetoolset
="voicefont wavtrim"
3490 if test "$apps" = "apps"; then
3491 # only when we build "real" apps we build the .lng files
3495 #### Fix the cmdline ###
3496 if [ "$ARG_CCACHE" = "1" ]; then
3498 elif [ "$ARG_CCACHE" = "0" ]; then
3499 cmdline
="--no-ccache "
3501 if [ "$ARG_ARM_EABI" = "1" ]; then
3502 cmdline
="$cmdline--eabi "
3504 if [ -n "$ARG_PREFIX" ]; then
3505 cmdline
="$cmdline--prefix=\$(PREFIX) "
3507 if [ "$modelname" = "application" ]; then
3508 cmdline
="$cmdline--target=$app_modelname --lcdwidth=$ARG_LCDWIDTH --lcdheight=$ARG_LCDHEIGHT "
3510 cmdline
="$cmdline--target=\$(MODELNAME) "
3513 cmdline
="$cmdline--ram=\$(MEMORYSIZE) --rbdir=\$(RBDIR) --type=$btype$advopts"
3518 -e "s<@ROOTDIR@<${rootdir}<g" \
3519 -e "s<@DEBUG@<${debug}<g" \
3520 -e "s<@MEMORY@<${memory}<g" \
3521 -e "s<@TARGET_ID@<${target_id}<g" \
3522 -e "s<@TARGET@<${target}<g" \
3523 -e "s<@CPU@<${t_cpu}<g" \
3524 -e "s<@MANUFACTURER@<${t_manufacturer}<g" \
3525 -e "s<@MODELNAME@<${modelname}<g" \
3526 -e "s<@LANGUAGE@<${language}<g" \
3527 -e "s:@VOICELANGUAGE@:${voicelanguage}:g" \
3528 -e "s<@PWD@<${pwd}<g" \
3529 -e "s<@HOSTCC@<${HOSTCC}<g" \
3530 -e "s<@HOSTAR@<${HOSTAR}<g" \
3531 -e "s<@CC@<${CC}<g" \
3532 -e "s<@LD@<${LD}<g" \
3533 -e "s<@AR@<${AR}<g" \
3534 -e "s<@AS@<${AS}<g" \
3535 -e "s<@OC@<${OC}<g" \
3536 -e "s<@WINDRES@<${WINDRES}<g" \
3537 -e "s<@DLLTOOL@<${DLLTOOL}<g" \
3538 -e "s<@DLLWRAP@<${DLLWRAP}<g" \
3539 -e "s<@RANLIB@<${RANLIB}<g" \
3540 -e "s<@TOOL@<${tool}<g" \
3541 -e "s<@BMP2RB_NATIVE@<${bmp2rb_native}<g" \
3542 -e "s<@BMP2RB_MONO@<${bmp2rb_mono}<g" \
3543 -e "s<@BMP2RB_REMOTENATIVE@<${bmp2rb_remotenative}<g" \
3544 -e "s<@BMP2RB_REMOTEMONO@<${bmp2rb_remotemono}<g" \
3545 -e "s<@OUTPUT@<${output}<g" \
3546 -e "s<@APPEXTRA@<${appextra}<g" \
3547 -e "s<@ARCHOSROM@<${archosrom}<g" \
3548 -e "s<@FLASHFILE@<${flash}<g" \
3549 -e "s<@PLUGINS@<${plugins}<g" \
3550 -e "s<@CODECS@<${swcodec}<g" \
3551 -e "s<@PROFILE_OPTS@<${PROFILE_OPTS}<g" \
3552 -e "s<@SHARED_FLAG@<${SHARED_FLAG}<g" \
3553 -e "s<@GCCOPTS@<${GCCOPTS}<g" \
3554 -e "s<@TARGET_INC@<${TARGET_INC}<g" \
3555 -e "s<@LDOPTS@<${LDOPTS}<g" \
3556 -e "s<@GLOBAL_LDOPTS@<${GLOBAL_LDOPTS}<g" \
3557 -e "s<@LOADADDRESS@<${loadaddress}<g" \
3558 -e "s<@EXTRADEF@<${extradefines}<g" \
3559 -e "s<@APPSDIR@<${appsdir}<g" \
3560 -e "s<@FIRMDIR@<${firmdir}<g" \
3561 -e "s<@TOOLSDIR@<${toolsdir}<g" \
3562 -e "s<@APPS@<${apps}<g" \
3563 -e "s<@APP_TYPE@<${app_type}<g" \
3564 -e "s<@GCCVER@<${gccver}<g" \
3565 -e "s<@GCCNUM@<${gccnum}<g" \
3566 -e "s<@UNAME@<${uname}<g" \
3567 -e "s<@ENDIAN@<${defendian}<g" \
3568 -e "s<@TOOLSET@<${toolset}<g" \
3571 -e "s<@MANUALDEV@<${manualdev}<g" \
3572 -e "s<@ENCODER@<${ENC_CMD}<g" \
3573 -e "s<@ENC_OPTS@<${ENC_OPTS}<g" \
3574 -e "s<@TTS_ENGINE@<${TTS_ENGINE}<g" \
3575 -e "s<@TTS_OPTS@<${TTS_OPTS}<g" \
3576 -e "s<@VOICETOOLSET@<${voicetoolset}<g" \
3577 -e "s<@LANGS@<${buildlangs}<g" \
3578 -e "s<@USE_ELF@<${USE_ELF}<g" \
3579 -e "s<@RBDIR@<${rbdir}<g" \
3580 -e "s<@sharepath@<${sharedir}<g" \
3581 -e "s<@binpath@<${bindir}<g" \
3582 -e "s<@libpath@<${libdir}<g" \
3583 -e "s<@PREFIX@<$ARG_PREFIX<g" \
3584 -e "s<@CMDLINE@<$cmdline<g" \
3585 -e "s<@SDLCONFIG@<$sdl<g" \
3587 ## Automatically generated. http://www.rockbox.org/
3589 export ROOTDIR=@ROOTDIR@
3590 export FIRMDIR=@FIRMDIR@
3591 export APPSDIR=@APPSDIR@
3592 export TOOLSDIR=@TOOLSDIR@
3593 export DOCSDIR=\$(ROOTDIR)/docs
3594 export MANUALDIR=\${ROOTDIR}/manual
3595 export DEBUG=@DEBUG@
3596 export MODELNAME=@MODELNAME@
3597 export ARCHOSROM=@ARCHOSROM@
3598 export FLASHFILE=@FLASHFILE@
3599 export TARGET_ID=@TARGET_ID@
3600 export TARGET=@TARGET@
3602 export MANUFACTURER=@MANUFACTURER@
3604 export BUILDDIR=@PWD@
3605 export LANGUAGE=@LANGUAGE@
3606 export VOICELANGUAGE=@VOICELANGUAGE@
3607 export MEMORYSIZE=@MEMORY@
3608 export BUILDDATE:=\$(shell date -u +'-DYEAR=%Y -DMONTH=%m -DDAY=%d')
3609 export MKFIRMWARE=@TOOL@
3610 export BMP2RB_MONO=@BMP2RB_MONO@
3611 export BMP2RB_NATIVE=@BMP2RB_NATIVE@
3612 export BMP2RB_REMOTEMONO=@BMP2RB_REMOTEMONO@
3613 export BMP2RB_REMOTENATIVE=@BMP2RB_REMOTENATIVE@
3614 export BINARY=@OUTPUT@
3615 export APPEXTRA=@APPEXTRA@
3616 export ENABLEDPLUGINS=@PLUGINS@
3617 export SOFTWARECODECS=@CODECS@
3618 export EXTRA_DEFINES=@EXTRADEF@
3619 export HOSTCC=@HOSTCC@
3620 export HOSTAR=@HOSTAR@
3626 export WINDRES=@WINDRES@
3627 export DLLTOOL=@DLLTOOL@
3628 export DLLWRAP=@DLLWRAP@
3629 export RANLIB=@RANLIB@
3630 export PREFIX=@PREFIX@
3631 export PROFILE_OPTS=@PROFILE_OPTS@
3632 export APP_TYPE=@APP_TYPE@
3633 export SIMDIR=\$(ROOTDIR)/uisimulator/sdl
3634 export GCCOPTS=@GCCOPTS@
3635 export TARGET_INC=@TARGET_INC@
3636 export LOADADDRESS=@LOADADDRESS@
3637 export SHARED_FLAG=@SHARED_FLAG@
3638 export LDOPTS=@LDOPTS@
3639 export GLOBAL_LDOPTS=@GLOBAL_LDOPTS@
3640 export GCCVER=@GCCVER@
3641 export GCCNUM=@GCCNUM@
3642 export UNAME=@UNAME@
3643 export MANUALDEV=@MANUALDEV@
3644 export TTS_OPTS=@TTS_OPTS@
3645 export TTS_ENGINE=@TTS_ENGINE@
3646 export ENC_OPTS=@ENC_OPTS@
3647 export ENCODER=@ENCODER@
3648 export USE_ELF=@USE_ELF@
3649 export RBDIR=@RBDIR@
3650 export ROCKBOX_SHARE_PATH=@sharepath@
3651 export ROCKBOX_BINARY_PATH=@binpath@
3652 export ROCKBOX_LIBRARY_PATH=@libpath@
3653 export SDLCONFIG=@SDLCONFIG@
3655 CONFIGURE_OPTIONS=@CMDLINE@
3657 include \$(TOOLSDIR)/root.make
3661 echo "Created Makefile"