Theme Editor: Made new tabs raise to forefront
[kugel-rb.git] / tools / configure
blob91edd663e50d8ba050c9e7f96740265f4c67fd8f
1 #!/bin/sh
2 # __________ __ ___.
3 # Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 # \/ \/ \/ \/ \/
8 # $Id$
11 # global CC options for all platforms
12 CCOPTS="-W -Wall -Wundef -O -nostdlib -ffreestanding -Wstrict-prototypes -pipe"
14 use_logf="#undef ROCKBOX_HAS_LOGF"
15 use_bootchart="#undef DO_BOOTCHART"
17 scriptver=`echo '$Revision$' | sed -e 's:\\$::g' -e 's/Revision: //'`
19 rbdir=".rockbox"
22 # Begin Function Definitions
24 input() {
25 read response
26 echo $response
29 prefixtools () {
30 prefix="$1"
31 CC=${prefix}gcc
32 WINDRES=${prefix}windres
33 DLLTOOL=${prefix}dlltool
34 DLLWRAP=${prefix}dllwrap
35 RANLIB=${prefix}ranlib
36 LD=${prefix}ld
37 AR=${prefix}ar
38 AS=${prefix}as
39 OC=${prefix}objcopy
42 findarmgcc() {
43 models_not_checked_with_eabi="ipodnano1g ipod3g ipod4g ipodmini1g ipod1g2g vibe500 cowond2"
44 if [ "$ARG_ARM_EABI" != 1 ]; then # eabi not explicitely enabled
45 for model in $models_not_checked_with_eabi; do
46 if [ "$modelname" = "$model" ]; then
47 ARG_ARM_EABI="0"
48 echo "**************************************************************"
49 echo "**** Target $modelname is using non EABI compiler !"
50 echo "**** Please test a build with --eabi and enable"
51 echo "**** EABI compiler for this target"
52 echo "**************************************************************"
54 done
57 if [ "$ARG_ARM_EABI" != "0" ]; then
58 prefixtools arm-elf-eabi-
59 gccchoice="4.4.4"
60 else
61 prefixtools arm-elf-
62 gccchoice="4.0.3"
66 # scan the $PATH for the given command
67 findtool(){
68 file="$1"
70 IFS=":"
71 for path in $PATH
73 # echo "checks for $file in $path" >&2
74 if test -f "$path/$file"; then
75 echo "$path/$file"
76 return
78 done
79 # check whether caller wants literal return value if not found
80 if [ "$2" = "--lit" ]; then
81 echo "$file"
85 # scan the $PATH for sdl-config - check whether for a (cross-)win32
86 # sdl as requested
87 findsdl(){
88 file="sdl-config"
89 winbuild="$1"
91 IFS=":"
92 for path in $PATH
94 #echo "checks for $file in $path" >&2
95 if test -f "$path/$file"; then
96 if [ "0" != `$path/$file --libs |grep -c mwindows` ]; then
97 if [ "yes" = "${winbuild}" ]; then
98 echo "$path/$file"
99 return
101 else
102 if [ "yes" != "${winbuild}" ]; then
103 echo "$path/$file"
104 return
108 done
111 simcc () {
113 # default tool setup for native building
114 prefixtools "$CROSS_COMPILE"
115 ARG_ARM_THUMB=0 # can't use thumb in native builds
117 simver=sdl
118 winbuild="$crosscompile"
119 GCCOPTS='-W -Wall -g -fno-builtin'
120 GCCOPTIMIZE=''
121 LDOPTS=''
123 # default output binary name
124 output="rockboxui"
126 # default share option, override below if needed
127 SHARED_FLAG="-shared"
129 case $uname in
130 CYGWIN*)
131 echo "Cygwin host detected"
133 LDOPTS="-mconsole"
134 output="rockboxui.exe"
135 winbuild="yes"
138 MINGW*)
139 echo "MinGW host detected"
141 LDOPTS="-mconsole"
142 output="rockboxui.exe"
143 winbuild="yes"
146 Linux)
147 echo "Linux host detected"
150 FreeBSD)
151 echo "FreeBSD host detected"
154 Darwin)
155 echo "Darwin host detected"
157 SHARED_FLAG="-dynamiclib -Wl\,-single_module"
160 SunOS)
161 echo "*Solaris host detected"
163 GCCOPTS="$GCCOPTS -fPIC"
164 LDOPTS="-lm"
168 echo "[ERROR] Unsupported system: $uname, fix configure and retry"
169 exit 1
171 esac
173 sdl=`findsdl $winbuild`
175 if [ $1 = "sdl" ]; then
176 if [ -z "$sdl" ]; then
177 echo "configure didn't find sdl-config, which indicates that you"
178 echo "don't have SDL (properly) installed. Please correct and"
179 echo "re-run configure!"
180 exit 2
181 else
182 # generic sdl-config checker
183 GCCOPTS="$GCCOPTS `$sdl --cflags`"
184 LDOPTS="$LDOPTS `$sdl --libs`"
188 GCCOPTS="$GCCOPTS -I\$(SIMDIR)"
190 if test "X$crosscompile" != "Xyes"; then
191 case `uname -m` in
192 x86_64|amd64)
193 # fPIC is needed to make shared objects link
194 # setting visibility to hidden is necessary to avoid strange crashes
195 # due to symbol clashing
196 GCCOPTS="$GCCOPTS -fPIC -fvisibility=hidden"
197 # x86_64 supports MMX by default
200 i686)
201 echo "Enabling MMX support"
202 GCCOPTS="$GCCOPTS -mmmx"
204 esac
206 id=$$
207 cat >$tmpdir/conftest-$id.c <<EOF
208 #include <stdio.h>
209 int main(int argc, char **argv)
211 int var=0;
212 char *varp = (char *)&var;
213 *varp=1;
215 printf("%d\n", var);
216 return 0;
220 $CC -o $tmpdir/conftest-$id $tmpdir/conftest-$id.c 2>/dev/null
222 # when cross compiling, the endianess cannot be detected because the above program doesn't run
223 # on the local machine. assume little endian but print a warning
224 endian=`$tmpdir/conftest-$id 2> /dev/null`
225 if [ "$endian" != "" ] && [ $endian -gt "1" ]; then
226 # big endian
227 endian="big"
228 else
229 # little endian
230 endian="little"
233 if [ "$CROSS_COMPILE" != "" ]; then
234 echo "WARNING: Cross Compiling, cannot detect endianess. Assuming little endian!"
237 if [ $1 = "sdl" ]; then
238 echo "Simulator environment deemed $endian endian"
239 elif [ $1 = "checkwps" ]; then
240 echo "CheckWPS environment deemed $endian endian"
243 # use wildcard here to make it work even if it was named *.exe like
244 # on cygwin
245 rm -f $tmpdir/conftest-$id*
246 else
247 # We are crosscompiling
248 # add cross-compiler option(s)
249 prefixtools i586-mingw32msvc-
250 LDOPTS="$LDOPTS -mconsole"
251 output="rockboxui.exe"
252 endian="little" # windows is little endian
253 echo "Enabling MMX support"
254 GCCOPTS="$GCCOPTS -mmmx"
259 # functions for setting up cross-compiler names and options
260 # also set endianess and what the exact recommended gcc version is
261 # the gcc version should most likely match what versions we build with
262 # rockboxdev.sh
264 shcc () {
265 prefixtools sh-elf-
266 GCCOPTS="$CCOPTS -m1"
267 GCCOPTIMIZE="-fomit-frame-pointer -fschedule-insns"
268 endian="big"
269 gccchoice="4.0.3"
272 calmrisccc () {
273 prefixtools calmrisc16-unknown-elf-
274 GCCOPTS="-Wl\,--no-check-sections $CCOPTS"
275 GCCOPTIMIZE="-fomit-frame-pointer"
276 endian="big"
279 coldfirecc () {
280 prefixtools m68k-elf-
281 GCCOPTS="$CCOPTS -m5206e -Wa\,-m5249 -malign-int -mstrict-align"
282 GCCOPTIMIZE="-fomit-frame-pointer"
283 endian="big"
284 gccchoice="3.4.6"
287 arm7tdmicc () {
288 findarmgcc
289 GCCOPTS="$CCOPTS -mcpu=arm7tdmi"
290 if test "X$1" != "Xshort" -a "$ARG_ARM_EABI" = "0"; then
291 GCCOPTS="$GCCOPTS -mlong-calls"
293 GCCOPTIMIZE="-fomit-frame-pointer"
294 endian="little"
297 arm9tdmicc () {
298 findarmgcc
299 GCCOPTS="$CCOPTS -mcpu=arm9tdmi"
300 if test "$modelname" != "gigabeatfx" -a "$t_manufacturer" != "as3525" -a "$ARG_ARM_EABI" = "0"; then
301 GCCOPTS="$GCCOPTS -mlong-calls"
303 GCCOPTIMIZE="-fomit-frame-pointer"
304 endian="little"
307 arm940tbecc () {
308 findarmgcc
309 GCCOPTS="$CCOPTS -mbig-endian -mcpu=arm940t"
310 if test "$ARG_ARM_EABI" = "0"; then
311 GCCOPTS="$GCCOPTS -mlong-calls"
313 GCCOPTIMIZE="-fomit-frame-pointer"
314 endian="big"
317 arm940tcc () {
318 findarmgcc
319 GCCOPTS="$CCOPTS -mcpu=arm940t"
320 if test "$ARG_ARM_EABI" = "0"; then
321 GCCOPTS="$GCCOPTS -mlong-calls"
323 GCCOPTIMIZE="-fomit-frame-pointer"
324 endian="little"
327 arm946cc () {
328 findarmgcc
329 GCCOPTS="$CCOPTS -mcpu=arm9e"
330 if test "$ARG_ARM_EABI" = "0"; then
331 GCCOPTS="$GCCOPTS -mlong-calls"
333 GCCOPTIMIZE="-fomit-frame-pointer"
334 endian="little"
337 arm926ejscc () {
338 findarmgcc
339 GCCOPTS="$CCOPTS -mcpu=arm926ej-s"
340 if test "$t_manufacturer" != "as3525" -a "$ARG_ARM_EABI" = "0"; then
341 GCCOPTS="$GCCOPTS -mlong-calls"
343 GCCOPTIMIZE="-fomit-frame-pointer"
344 endian="little"
347 arm1136jfscc () {
348 findarmgcc
349 GCCOPTS="$CCOPTS -mcpu=arm1136jf-s"
350 if test "$modelname" != "gigabeats" -a "$ARG_ARM_EABI" = "0"; then
351 GCCOPTS="$GCCOPTS -mlong-calls"
353 GCCOPTIMIZE="-fomit-frame-pointer"
354 endian="little"
357 arm1176jzscc () {
358 findarmgcc
359 GCCOPTS="$CCOPTS -mcpu=arm1176jz-s"
360 if test "$ARG_ARM_EABI" = "0"; then
361 GCCOPTS="$GCCOPTS -mlong-calls"
363 GCCOPTIMIZE="-fomit-frame-pointer"
364 endian="little"
367 mipselcc () {
368 prefixtools mipsel-elf-
369 GCCOPTS="$CCOPTS -march=mips32 -mtune=r4600 -mno-mips16 -mno-long-calls"
370 GCCOPTS="$GCCOPTS -ffunction-sections -msoft-float -G 0 -Wno-parentheses"
371 GCCOPTIMIZE="-fomit-frame-pointer"
372 endian="little"
373 gccchoice="4.1.2"
376 whichadvanced () {
377 atype=`echo "$1" | cut -c 2-`
378 ##################################################################
379 # Prompt for specific developer options
381 if [ "$atype" ]; then
382 interact=
383 else
384 interact=1
385 echo ""
386 echo "Enter your developer options (press enter when done)"
387 printf "(D)EBUG, (L)ogf, Boot(c)hart, (S)imulator, (P)rofiling, (V)oice, (W)in32 crosscompile, (T)est plugins"
388 if [ "$memory" = "2" ]; then
389 printf ", (8)MB MOD"
391 if [ "$modelname" = "archosplayer" ]; then
392 printf ", Use (A)TA poweroff"
394 if [ "$t_model" = "ondio" ]; then
395 printf ", (B)acklight MOD"
397 if [ "$modelname" = "iaudiom5" ]; then
398 printf ", (F)M radio MOD"
400 if [ "$modelname" = "iriverh120" ]; then
401 printf ", (R)TC MOD"
403 echo ""
406 cont=1
407 while [ $cont = "1" ]; do
409 if [ "$interact" ]; then
410 option=`input`
411 else
412 option=`echo "$atype" | cut -c 1`
415 case $option in
416 [Dd])
417 if [ "yes" = "$profile" ]; then
418 echo "Debug is incompatible with profiling"
419 else
420 echo "DEBUG build enabled"
421 use_debug="yes"
424 [Ll])
425 echo "logf() support enabled"
426 logf="yes"
428 [Tt])
429 echo "Including test plugins"
430 extradefines="$extradefines -DHAVE_TEST_PLUGINS"
432 [Cc])
433 echo "bootchart enabled (logf also enabled)"
434 bootchart="yes"
435 logf="yes"
437 [Ss])
438 echo "Simulator build enabled"
439 simulator="yes"
441 [Pp])
442 if [ "yes" = "$use_debug" ]; then
443 echo "Profiling is incompatible with debug"
444 else
445 echo "Profiling support is enabled"
446 profile="yes"
449 [Vv])
450 echo "Voice build selected"
451 voice="yes"
454 if [ "$memory" = "2" ]; then
455 memory="8"
456 echo "Memory size selected: 8MB"
459 [Aa])
460 if [ "$modelname" = "archosplayer" ]; then
461 have_ata_poweroff="#define HAVE_ATA_POWER_OFF"
462 echo "ATA power off enabled"
465 [Bb])
466 if [ "$t_model" = "ondio" ]; then
467 have_backlight="#define HAVE_BACKLIGHT"
468 echo "Backlight functions enabled"
471 [Ff])
472 if [ "$modelname" = "iaudiom5" ]; then
473 have_fmradio_in="#define HAVE_FMRADIO_IN"
474 echo "FM radio functions enabled"
477 [Rr])
478 if [ "$modelname" = "iriverh120" ]; then
479 config_rtc="#define CONFIG_RTC RTC_DS1339_DS3231"
480 have_rtc_alarm="#define HAVE_RTC_ALARM"
481 echo "RTC functions enabled (DS1339/DS3231)"
484 [Ww])
485 echo "Enabling Windows 32 cross-compiling"
486 crosscompile="yes"
489 if [ "$interact" ]; then
490 cont=0
491 else
492 echo "[ERROR] Option $option unsupported"
495 esac
496 if [ "$interact" ]; then
497 btype="$btype$option"
498 else
499 atype=`echo "$atype" | cut -c 2-`
500 [ "$atype" ] || cont=0
502 done
503 echo "done"
505 if [ "yes" = "$voice" ]; then
506 # Ask about languages to build
507 picklang
508 voicelanguage=`whichlang`
509 echo "Voice language set to $voicelanguage"
511 # Configure encoder and TTS engine for each language
512 for thislang in `echo $voicelanguage | sed 's/,/ /g'`; do
513 voiceconfig "$thislang"
514 done
516 if [ "yes" = "$use_debug" ]; then
517 debug="-DDEBUG"
518 GCCOPTS="$GCCOPTS -g -DDEBUG"
520 if [ "yes" = "$logf" ]; then
521 use_logf="#define ROCKBOX_HAS_LOGF 1"
523 if [ "yes" = "$bootchart" ]; then
524 use_bootchart="#define DO_BOOTCHART 1"
526 if [ "yes" = "$simulator" ]; then
527 debug="-DDEBUG"
528 extradefines="$extradefines -DSIMULATOR"
529 archosrom=""
530 flash=""
532 if [ "yes" = "$profile" ]; then
533 extradefines="$extradefines -DRB_PROFILE"
534 PROFILE_OPTS="-finstrument-functions"
538 # Configure voice settings
539 voiceconfig () {
540 thislang=$1
541 if [ ! "$ARG_TTS" ]; then
542 echo "Building $thislang voice for $modelname. Select options"
543 echo ""
546 if [ -n "`findtool flite`" ]; then
547 FLITE="F(l)ite "
548 FLITE_OPTS=""
549 DEFAULT_TTS="flite"
550 DEFAULT_TTS_OPTS=$FLITE_OPTS
551 DEFAULT_NOISEFLOOR="500"
552 DEFAULT_CHOICE="L"
554 if [ -n "`findtool espeak`" ]; then
555 ESPEAK="(e)Speak "
556 ESPEAK_OPTS=""
557 DEFAULT_TTS="espeak"
558 DEFAULT_TTS_OPTS=$ESPEAK_OPTS
559 DEFAULT_NOISEFLOOR="500"
560 DEFAULT_CHOICE="e"
562 if [ -n "`findtool festival`" ]; then
563 FESTIVAL="(F)estival "
564 case "$thislang" in
565 "italiano")
566 FESTIVAL_OPTS="--language italian"
568 "espanol")
569 FESTIVAL_OPTS="--language spanish"
571 "finnish")
572 FESTIVAL_OPTS="--language finnish"
574 "czech")
575 FESTIVAL_OPTS="--language czech"
578 FESTIVAL_OPTS=""
580 esac
581 DEFAULT_TTS="festival"
582 DEFAULT_TTS_OPTS=$FESTIVAL_OPTS
583 DEFAULT_NOISEFLOOR="500"
584 DEFAULT_CHOICE="F"
586 if [ -n "`findtool swift`" ]; then
587 SWIFT="S(w)ift "
588 SWIFT_OPTS=""
589 DEFAULT_TTS="swift"
590 DEFAULT_TTS_OPTS=$SWIFT_OPTS
591 DEFAULT_NOISEFLOOR="500"
592 DEFAULT_CHOICE="w"
594 # Allow SAPI if Windows is in use
595 if [ -n "`findtool winver`" ]; then
596 SAPI="(S)API "
597 SAPI_OPTS=""
598 DEFAULT_TTS="sapi"
599 DEFAULT_TTS_OPTS=$SAPI_OPTS
600 DEFAULT_NOISEFLOOR="500"
601 DEFAULT_CHOICE="S"
604 if [ "$FESTIVAL" = "$FLITE" ] && [ "$FLITE" = "$ESPEAK" ] && [ "$ESPEAK" = "$SAPI" ] && [ "$SAPI" = "$SWIFT" ]; then
605 echo "You need Festival, eSpeak or Flite in your path, or SAPI available to build voice files"
606 exit 3
609 if [ "$ARG_TTS" ]; then
610 option=$ARG_TTS
611 else
612 echo "TTS engine to use: ${FLITE}${FESTIVAL}${ESPEAK}${SAPI}${SWIFT}(${DEFAULT_CHOICE})?"
613 option=`input`
615 advopts="$advopts --tts=$option"
616 case "$option" in
617 [Ll])
618 TTS_ENGINE="flite"
619 NOISEFLOOR="500" # TODO: check this value
620 TTS_OPTS=$FLITE_OPTS
622 [Ee])
623 TTS_ENGINE="espeak"
624 NOISEFLOOR="500"
625 TTS_OPTS=$ESPEAK_OPTS
627 [Ff])
628 TTS_ENGINE="festival"
629 NOISEFLOOR="500"
630 TTS_OPTS=$FESTIVAL_OPTS
632 [Ss])
633 TTS_ENGINE="sapi"
634 NOISEFLOOR="500"
635 TTS_OPTS=$SAPI_OPTS
637 [Ww])
638 TTS_ENGINE="swift"
639 NOISEFLOOR="500"
640 TTS_OPTS=$SWIFT_OPTS
643 TTS_ENGINE=$DEFAULT_TTS
644 TTS_OPTS=$DEFAULT_TTS_OPTS
645 NOISEFLOOR=$DEFAULT_NOISEFLOOR
646 esac
647 echo "Using $TTS_ENGINE for TTS"
649 # Select which voice to use for Festival
650 if [ "$TTS_ENGINE" = "festival" ]; then
651 voicelist=`echo "(voice.list)"|festival -i 2>/dev/null |tr "\n" " "|sed -e 's/.*festival> (\(.*\)) festival>/\1/'|sort`
652 for voice in $voicelist; do
653 TTS_FESTIVAL_VOICE="$voice" # Default choice
654 break
655 done
656 if [ "$ARG_VOICE" ]; then
657 CHOICE=$ARG_VOICE
658 else
660 for voice in $voicelist; do
661 printf "%3d. %s\n" "$i" "$voice"
662 i=`expr $i + 1`
663 done
664 printf "Please select which Festival voice to use (default is $TTS_FESTIVAL_VOICE): "
665 CHOICE=`input`
668 for voice in $voicelist; do
669 if [ "$i" = "$CHOICE" -o "$voice" = "$CHOICE" ]; then
670 TTS_FESTIVAL_VOICE="$voice"
672 i=`expr $i + 1`
673 done
674 advopts="$advopts --voice=$CHOICE"
675 echo "Festival voice set to $TTS_FESTIVAL_VOICE"
676 echo "(voice_$TTS_FESTIVAL_VOICE)" > festival-prolog.scm
679 # Read custom tts options from command line
680 if [ "$ARG_TTSOPTS" ]; then
681 TTS_OPTS="$ARG_TTSOPTS"
682 advopts="$advopts --ttsopts='$TTS_OPTS'"
683 echo "$TTS_ENGINE options set to $TTS_OPTS"
686 if [ "$swcodec" = "yes" ]; then
687 ENCODER="rbspeexenc"
688 ENC_CMD="rbspeexenc"
689 ENC_OPTS="-q 4 -c 10"
690 else
691 if [ -n "`findtool lame`" ]; then
692 ENCODER="lame"
693 ENC_CMD="lame"
694 ENC_OPTS="--resample 12 -t -m m -h -V 9.999 -S -B 64 --vbr-new"
695 else
696 echo "You need LAME in the system path to build voice files for"
697 echo "HWCODEC targets."
698 exit 4
702 echo "Using $ENCODER for encoding voice clips"
704 # Read custom encoder options from command line
705 if [ "$ARG_ENCOPTS" ]; then
706 ENC_OPTS="$ARG_ENCOPTS"
707 advopts="$advopts --encopts='$ENC_OPTS'"
708 echo "$ENCODER options set to $ENC_OPTS"
711 TEMPDIR="${pwd}"
712 if [ -n "`findtool cygpath`" ]; then
713 TEMPDIR=`cygpath . -a -w`
717 picklang() {
718 # figure out which languages that are around
719 for file in $rootdir/apps/lang/*.lang; do
720 clean=`basename $file .lang`
721 langs="$langs $clean"
722 done
724 if [ "$ARG_LANG" ]; then
725 pick=$ARG_LANG
726 else
727 echo "Select a number for the language to use (default is english)"
728 # FIXME The multiple-language feature is currently broken
729 # echo "You may enter a comma-separated list of languages to build"
731 num=1
732 for one in $langs; do
733 echo "$num. $one"
734 num=`expr $num + 1`
735 done
736 pick=`input`
738 advopts="$advopts --language=$pick"
741 whichlang() {
742 output=""
743 # Allow the user to pass a comma-separated list of langauges
744 for thispick in `echo $pick | sed 's/,/ /g'`; do
745 num=1
746 for one in $langs; do
747 # Accept both the language number and name
748 if [ "$num" = "$thispick" ] || [ "$thispick" = "$one" ]; then
749 if [ "$output" = "" ]; then
750 output=$one
751 else
752 output=$output,$one
755 num=`expr $num + 1`
756 done
757 done
758 if [ -z "$output" ]; then
759 # pick a default
760 output="english"
762 echo $output
765 help() {
766 echo "Rockbox configure script."
767 echo "Invoke this in a directory to generate a Makefile to build Rockbox"
768 echo "Do *NOT* run this within the tools directory!"
769 echo ""
770 cat <<EOF
771 Usage: configure [OPTION]...
772 Options:
773 --target=TARGET Sets the target, TARGET can be either the target ID or
774 corresponding string. Run without this option to see all
775 available targets.
777 --ram=RAM Sets the RAM for certain targets. Even though any number
778 is accepted, not every number is correct. The default
779 value will be applied, if you entered a wrong number
780 (which depends on the target). Watch the output. Run
781 without this option if you are not sure which the right
782 number is.
784 --type=TYPE Sets the build type. Shortcuts are also valid.
785 Run without this option to see all available types.
786 Multiple values are allowed and managed in the input
787 order. So --type=b stands for Bootloader build, while
788 --type=ab stands for "Backlight MOD" build.
790 --language=LANG Set the language used for voice generation (used only if
791 TYPE is AV).
793 --tts=ENGINE Set the TTS engine used for voice generation (used only
794 if TYPE is AV).
796 --voice=VOICE Set voice to use with selected TTS (used only if TYPE is
797 AV).
799 --ttsopts=OPTS Set TTS engine manual options (used only if TYPE is AV).
801 --encopts=OPTS Set encoder manual options (used only if ATYPE is AV).
803 --rbdir=dir Use alternative rockbox directory (default: ${rbdir}).
804 This is useful for having multiple alternate builds on
805 your device that you can load with ROLO. However as the
806 bootloader looks for .rockbox you won't be able to boot
807 into this build.
809 --ccache Enable ccache use (done by default these days)
810 --no-ccache Disable ccache use
812 --eabi Make configure prefer toolchains that are able to compile
813 for the new ARM standard abi EABI
814 --no-eabi The opposite of --eabi (prefer old non-eabi toolchains)
815 --thumb Build with -mthumb (for ARM builds)
816 --no-thumb The opposite of --thumb (don't use thumb even for targets
817 where this is the default
818 --help Shows this message (must not be used with other options)
822 exit
825 ARG_CCACHE=
826 ARG_ENCOPTS=
827 ARG_LANG=
828 ARG_RAM=
829 ARG_RBDIR=
830 ARG_TARGET=
831 ARG_TTS=
832 ARG_TTSOPTS=
833 ARG_TYPE=
834 ARG_VOICE=
835 ARG_ARM_EABI=
836 ARG_ARM_THUMB=
837 err=
838 for arg in "$@"; do
839 case "$arg" in
840 --ccache) ARG_CCACHE=1;;
841 --no-ccache) ARG_CCACHE=0;;
842 --encopts=*) ARG_ENCOPTS=`echo "$arg" | cut -d = -f 2`;;
843 --language=*) ARG_LANG=`echo "$arg" | cut -d = -f 2`;;
844 --ram=*) ARG_RAM=`echo "$arg" | cut -d = -f 2`;;
845 --rbdir=*) ARG_RBDIR=`echo "$arg" | cut -d = -f 2`;;
846 --target=*) ARG_TARGET=`echo "$arg" | cut -d = -f 2`;;
847 --tts=*) ARG_TTS=`echo "$arg" | cut -d = -f 2`;;
848 --ttsopts=*) ARG_TTSOPTS=`echo "$arg" | cut -d = -f 2`;;
849 --type=*) ARG_TYPE=`echo "$arg" | cut -d = -f 2`;;
850 --voice=*) ARG_VOICE=`echo "$arg" | cut -d = -f 2`;;
851 --eabi) ARG_ARM_EABI=1;;
852 --no-eabi) ARG_ARM_EABI=0;;
853 --thumb) ARG_ARM_THUMB=1;;
854 --no-thumb) ARG_ARM_THUMB=0;;
855 --help) help;;
856 *) err=1; echo "[ERROR] Option '$arg' unsupported";;
857 esac
858 done
859 [ "$err" ] && exit 1
861 advopts=
863 if [ "$TMPDIR" != "" ]; then
864 tmpdir=$TMPDIR
865 else
866 tmpdir=/tmp
868 echo Using temporary directory $tmpdir
870 if test -r "configure"; then
871 # this is a check for a configure script in the current directory, it there
872 # is one, try to figure out if it is this one!
874 if { grep "^# Jukebox" configure >/dev/null 2>&1 ; } then
875 echo "WEEEEEEEEP. Don't run this configure script within the tools directory."
876 echo "It will only cause you pain and grief. Instead do this:"
877 echo ""
878 echo " cd .."
879 echo " mkdir build-dir"
880 echo " cd build-dir"
881 echo " ../tools/configure"
882 echo ""
883 echo "Much happiness will arise from this. Enjoy"
884 exit 5
888 # get our current directory
889 pwd=`pwd`;
891 if { echo $pwd | grep " "; } then
892 echo "You're running this script in a path that contains space. The build"
893 echo "system is unfortunately not clever enough to deal with this. Please"
894 echo "run the script from a different path, rename the path or fix the build"
895 echo "system!"
896 exit 6
899 if [ -z "$rootdir" ]; then
900 ##################################################################
901 # Figure out where the source code root is!
903 rootdir=`dirname $0`/../
905 #####################################################################
906 # Convert the possibly relative directory name to an absolute version
908 now=`pwd`
909 cd $rootdir
910 rootdir=`pwd`
912 # cd back to the build dir
913 cd $now
916 apps="apps"
917 appsdir='\$(ROOTDIR)/apps'
918 firmdir='\$(ROOTDIR)/firmware'
919 toolsdir='\$(ROOTDIR)/tools'
922 ##################################################################
923 # Figure out target platform
926 if [ "$ARG_TARGET" ]; then
927 buildfor=$ARG_TARGET
928 else
929 echo "Enter target platform:"
930 cat <<EOF
931 ==Archos== ==iriver== ==Apple iPod==
932 0) Player/Studio 10) H120/H140 20) Color/Photo
933 1) Recorder 11) H320/H340 21) Nano 1G
934 2) FM Recorder 12) iHP-100/110/115 22) Video
935 3) Recorder v2 13) iFP-790 23) 3G
936 4) Ondio SP 14) H10 20Gb 24) 4G Grayscale
937 5) Ondio FM 15) H10 5/6Gb 25) Mini 1G
938 6) AV300 26) Mini 2G
939 ==Toshiba== 27) 1G, 2G
940 ==Cowon/iAudio== 40) Gigabeat F/X 28) Nano 2G
941 30) X5/X5V/X5L 41) Gigabeat S
942 31) M5/M5L ==SanDisk==
943 32) 7 ==Olympus= 50) Sansa e200
944 33) D2 70) M:Robe 500 51) Sansa e200R
945 34) M3/M3L 71) M:Robe 100 52) Sansa c200
946 53) Sansa m200
947 ==Creative== ==Philips== 54) Sansa c100
948 90) Zen Vision:M 30GB 100) GoGear SA9200 55) Sansa Clip
949 91) Zen Vision:M 60GB 101) GoGear HDD1630/ 56) Sansa e200v2
950 92) Zen Vision HDD1830 57) Sansa m200v4
951 102) GoGear HDD6330 58) Sansa Fuze
952 ==Onda== 59) Sansa c200v2
953 120) VX747 ==Meizu== 60) Sansa Clipv2
954 121) VX767 110) M6SL 61) Sansa View
955 122) VX747+ 111) M6SP 62) Sansa Clip+
956 123) VX777 112) M3 63) Sansa Fuze v2
958 ==Logik==
959 ==Samsung== ==Tatung== 80) DAX 1GB MP3/DAB
960 140) YH-820 150) Elio TPJ-1022
961 141) YH-920 ==Lyre project==
962 142) YH-925 ==Packard Bell== 130) Lyre proto 1
963 143) YP-S3 160) Vibe 500 131) Mini2440
965 ==MPIO==
966 170) HD200
969 buildfor=`input`;
972 # Set of tools built for all target platforms:
973 toolset="rdf2binary convbdf codepages"
975 # Toolsets for some target families:
976 archosbitmaptools="$toolset scramble descramble sh2d uclpack bmp2rb"
977 iriverbitmaptools="$toolset scramble descramble mkboot bmp2rb"
978 iaudiobitmaptools="$toolset scramble descramble mkboot bmp2rb"
979 ipodbitmaptools="$toolset scramble bmp2rb"
980 gigabeatbitmaptools="$toolset scramble descramble bmp2rb"
981 tccbitmaptools="$toolset scramble bmp2rb"
982 # generic is used by IFP, Meizu and Onda
983 genericbitmaptools="$toolset bmp2rb"
984 # scramble is used by all other targets
985 scramblebitmaptools="$genericbitmaptools scramble"
988 # ---- For each target ----
990 # *Variables*
991 # target_id: a unique number identifying this target, IS NOT the menu number.
992 # Just use the currently highest number+1 when you add a new
993 # target.
994 # modelname: short model name used all over to identify this target
995 # memory: number of megabytes of RAM this target has. If the amount can
996 # be selected by the size prompt, let memory be unset here
997 # target: -Ddefine passed to the build commands to make the correct
998 # config-*.h file get included etc
999 # tool: the tool that takes a plain binary and converts that into a
1000 # working "firmware" file for your target
1001 # output: the final output file name
1002 # boottool: the tool that takes a plain binary and generates a bootloader
1003 # file for your target (or blank to use $tool)
1004 # bootoutput:the final output file name for the bootloader (or blank to use
1005 # $output)
1006 # appextra: passed to the APPEXTRA variable in the Makefiles.
1007 # TODO: add proper explanation
1008 # archosrom: used only for Archos targets that build a special flashable .ucl
1009 # image.
1010 # flash: name of output for flashing, for targets where there's a special
1011 # file output for this.
1012 # plugins: set to 'yes' to build the plugins. Early development builds can
1013 # set this to no in the early stages to have an easier life for a
1014 # while
1015 # swcodec: set 'yes' on swcodec targets
1016 # toolset: lists what particular tools in the tools/ directory that this
1017 # target needs to have built prior to building Rockbox
1019 # *Functions*
1020 # *cc: sets up gcc and compiler options for your target builds. Note
1021 # that if you select a simulator build, the compiler selection is
1022 # overridden later in the script.
1024 case $buildfor in
1026 0|archosplayer)
1027 target_id=1
1028 modelname="archosplayer"
1029 target="-DARCHOS_PLAYER"
1030 shcc
1031 tool="$rootdir/tools/scramble"
1032 output="archos.mod"
1033 appextra="player:gui"
1034 archosrom="$pwd/rombox.ucl"
1035 flash="$pwd/rockbox.ucl"
1036 plugins="yes"
1037 swcodec=""
1039 # toolset is the tools within the tools directory that we build for
1040 # this particular target.
1041 toolset="$toolset scramble descramble sh2d player_unifont uclpack"
1043 # Note: the convbdf is present in the toolset just because: 1) the
1044 # firmware/Makefile assumes it is present always, and 2) we will need it when we
1045 # build the player simulator
1047 t_cpu="sh"
1048 t_manufacturer="archos"
1049 t_model="player"
1052 1|archosrecorder)
1053 target_id=2
1054 modelname="archosrecorder"
1055 target="-DARCHOS_RECORDER"
1056 shcc
1057 tool="$rootdir/tools/scramble"
1058 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1059 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1060 output="ajbrec.ajz"
1061 appextra="recorder:gui:radio"
1062 #archosrom="$pwd/rombox.ucl"
1063 flash="$pwd/rockbox.ucl"
1064 plugins="yes"
1065 swcodec=""
1066 # toolset is the tools within the tools directory that we build for
1067 # this particular target.
1068 toolset=$archosbitmaptools
1069 t_cpu="sh"
1070 t_manufacturer="archos"
1071 t_model="recorder"
1074 2|archosfmrecorder)
1075 target_id=3
1076 modelname="archosfmrecorder"
1077 target="-DARCHOS_FMRECORDER"
1078 shcc
1079 tool="$rootdir/tools/scramble -fm"
1080 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1081 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1082 output="ajbrec.ajz"
1083 appextra="recorder:gui:radio"
1084 #archosrom="$pwd/rombox.ucl"
1085 flash="$pwd/rockbox.ucl"
1086 plugins="yes"
1087 swcodec=""
1088 # toolset is the tools within the tools directory that we build for
1089 # this particular target.
1090 toolset=$archosbitmaptools
1091 t_cpu="sh"
1092 t_manufacturer="archos"
1093 t_model="fm_v2"
1096 3|archosrecorderv2)
1097 target_id=4
1098 modelname="archosrecorderv2"
1099 target="-DARCHOS_RECORDERV2"
1100 shcc
1101 tool="$rootdir/tools/scramble -v2"
1102 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1103 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1104 output="ajbrec.ajz"
1105 appextra="recorder:gui:radio"
1106 #archosrom="$pwd/rombox.ucl"
1107 flash="$pwd/rockbox.ucl"
1108 plugins="yes"
1109 swcodec=""
1110 # toolset is the tools within the tools directory that we build for
1111 # this particular target.
1112 toolset=$archosbitmaptools
1113 t_cpu="sh"
1114 t_manufacturer="archos"
1115 t_model="fm_v2"
1118 4|archosondiosp)
1119 target_id=7
1120 modelname="archosondiosp"
1121 target="-DARCHOS_ONDIOSP"
1122 shcc
1123 tool="$rootdir/tools/scramble -osp"
1124 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1125 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1126 output="ajbrec.ajz"
1127 appextra="recorder:gui:radio"
1128 #archosrom="$pwd/rombox.ucl"
1129 flash="$pwd/rockbox.ucl"
1130 plugins="yes"
1131 swcodec=""
1132 # toolset is the tools within the tools directory that we build for
1133 # this particular target.
1134 toolset=$archosbitmaptools
1135 t_cpu="sh"
1136 t_manufacturer="archos"
1137 t_model="ondio"
1140 5|archosondiofm)
1141 target_id=8
1142 modelname="archosondiofm"
1143 target="-DARCHOS_ONDIOFM"
1144 shcc
1145 tool="$rootdir/tools/scramble -ofm"
1146 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1147 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1148 output="ajbrec.ajz"
1149 appextra="recorder:gui:radio"
1150 #archosrom="$pwd/rombox.ucl"
1151 flash="$pwd/rockbox.ucl"
1152 plugins="yes"
1153 swcodec=""
1154 toolset=$archosbitmaptools
1155 t_cpu="sh"
1156 t_manufacturer="archos"
1157 t_model="ondio"
1160 6|archosav300)
1161 target_id=38
1162 modelname="archosav300"
1163 target="-DARCHOS_AV300"
1164 memory=16 # always
1165 arm7tdmicc
1166 tool="$rootdir/tools/scramble -mm=C"
1167 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1168 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
1169 output="cjbm.ajz"
1170 appextra="recorder:gui:radio"
1171 plugins="yes"
1172 swcodec=""
1173 # toolset is the tools within the tools directory that we build for
1174 # this particular target.
1175 toolset="$toolset scramble descramble bmp2rb"
1176 # architecture, manufacturer and model for the target-tree build
1177 t_cpu="arm"
1178 t_manufacturer="archos"
1179 t_model="av300"
1182 10|iriverh120)
1183 target_id=9
1184 modelname="iriverh120"
1185 target="-DIRIVER_H120"
1186 memory=32 # always
1187 coldfirecc
1188 tool="$rootdir/tools/scramble -add=h120"
1189 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1190 bmp2rb_native="$rootdir/tools/bmp2rb -f 2"
1191 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
1192 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0"
1193 output="rockbox.iriver"
1194 bootoutput="bootloader.iriver"
1195 appextra="recorder:gui:radio"
1196 flash="$pwd/rombox.iriver"
1197 plugins="yes"
1198 swcodec="yes"
1199 # toolset is the tools within the tools directory that we build for
1200 # this particular target.
1201 toolset=$iriverbitmaptools
1202 t_cpu="coldfire"
1203 t_manufacturer="iriver"
1204 t_model="h100"
1207 11|iriverh300)
1208 target_id=10
1209 modelname="iriverh300"
1210 target="-DIRIVER_H300"
1211 memory=32 # always
1212 coldfirecc
1213 tool="$rootdir/tools/scramble -add=h300"
1214 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1215 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1216 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
1217 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0"
1218 output="rockbox.iriver"
1219 appextra="recorder:gui:radio"
1220 plugins="yes"
1221 swcodec="yes"
1222 # toolset is the tools within the tools directory that we build for
1223 # this particular target.
1224 toolset=$iriverbitmaptools
1225 t_cpu="coldfire"
1226 t_manufacturer="iriver"
1227 t_model="h300"
1230 12|iriverh100)
1231 target_id=11
1232 modelname="iriverh100"
1233 target="-DIRIVER_H100"
1234 memory=16 # always
1235 coldfirecc
1236 tool="$rootdir/tools/scramble -add=h100"
1237 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1238 bmp2rb_native="$rootdir/tools/bmp2rb -f 2"
1239 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
1240 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0"
1241 output="rockbox.iriver"
1242 bootoutput="bootloader.iriver"
1243 appextra="recorder:gui:radio"
1244 flash="$pwd/rombox.iriver"
1245 plugins="yes"
1246 swcodec="yes"
1247 # toolset is the tools within the tools directory that we build for
1248 # this particular target.
1249 toolset=$iriverbitmaptools
1250 t_cpu="coldfire"
1251 t_manufacturer="iriver"
1252 t_model="h100"
1255 13|iriverifp7xx)
1256 target_id=19
1257 modelname="iriverifp7xx"
1258 target="-DIRIVER_IFP7XX"
1259 memory=1
1260 arm7tdmicc short
1261 tool="cp"
1262 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1263 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1264 output="rockbox.wma"
1265 appextra="recorder:gui:radio"
1266 plugins="yes"
1267 swcodec="yes"
1268 # toolset is the tools within the tools directory that we build for
1269 # this particular target.
1270 toolset=$genericbitmaptools
1271 t_cpu="arm"
1272 t_manufacturer="pnx0101"
1273 t_model="iriver-ifp7xx"
1276 14|iriverh10)
1277 target_id=22
1278 modelname="iriverh10"
1279 target="-DIRIVER_H10"
1280 memory=32 # always
1281 arm7tdmicc
1282 tool="$rootdir/tools/scramble -mi4v3 -model=h10 -type=RBOS"
1283 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1284 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
1285 output="rockbox.mi4"
1286 appextra="recorder:gui:radio"
1287 plugins="yes"
1288 swcodec="yes"
1289 boottool="$rootdir/tools/scramble -mi4v3 -model=h10 -type=RBBL"
1290 bootoutput="H10_20GC.mi4"
1291 # toolset is the tools within the tools directory that we build for
1292 # this particular target.
1293 toolset=$scramblebitmaptools
1294 # architecture, manufacturer and model for the target-tree build
1295 t_cpu="arm"
1296 t_manufacturer="iriver"
1297 t_model="h10"
1300 15|iriverh10_5gb)
1301 target_id=24
1302 modelname="iriverh10_5gb"
1303 target="-DIRIVER_H10_5GB"
1304 memory=32 # always
1305 arm7tdmicc
1306 tool="$rootdir/tools/scramble -mi4v2 -model=h105 -type=RBOS"
1307 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1308 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
1309 output="rockbox.mi4"
1310 appextra="recorder:gui:radio"
1311 plugins="yes"
1312 swcodec="yes"
1313 boottool="$rootdir/tools/scramble -mi4v2 -model=h105 -type=RBBL"
1314 bootoutput="H10.mi4"
1315 # toolset is the tools within the tools directory that we build for
1316 # this particular target.
1317 toolset=$scramblebitmaptools
1318 # architecture, manufacturer and model for the target-tree build
1319 t_cpu="arm"
1320 t_manufacturer="iriver"
1321 t_model="h10"
1324 20|ipodcolor)
1325 target_id=13
1326 modelname="ipodcolor"
1327 target="-DIPOD_COLOR"
1328 memory=32 # always
1329 arm7tdmicc
1330 tool="$rootdir/tools/scramble -add=ipco"
1331 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1332 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
1333 output="rockbox.ipod"
1334 appextra="recorder:gui:radio"
1335 plugins="yes"
1336 swcodec="yes"
1337 bootoutput="bootloader-$modelname.ipod"
1338 # toolset is the tools within the tools directory that we build for
1339 # this particular target.
1340 toolset=$ipodbitmaptools
1341 # architecture, manufacturer and model for the target-tree build
1342 t_cpu="arm"
1343 t_manufacturer="ipod"
1344 t_model="color"
1347 21|ipodnano1g)
1348 target_id=14
1349 modelname="ipodnano1g"
1350 target="-DIPOD_NANO"
1351 memory=32 # always
1352 arm7tdmicc
1353 tool="$rootdir/tools/scramble -add=nano"
1354 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1355 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
1356 output="rockbox.ipod"
1357 appextra="recorder:gui:radio"
1358 plugins="yes"
1359 swcodec="yes"
1360 bootoutput="bootloader-$modelname.ipod"
1361 # toolset is the tools within the tools directory that we build for
1362 # this particular target.
1363 toolset=$ipodbitmaptools
1364 # architecture, manufacturer and model for the target-tree build
1365 t_cpu="arm"
1366 t_manufacturer="ipod"
1367 t_model="nano"
1370 22|ipodvideo)
1371 target_id=15
1372 modelname="ipodvideo"
1373 target="-DIPOD_VIDEO"
1374 arm7tdmicc
1375 tool="$rootdir/tools/scramble -add=ipvd"
1376 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1377 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1378 output="rockbox.ipod"
1379 appextra="recorder:gui:radio"
1380 plugins="yes"
1381 swcodec="yes"
1382 bootoutput="bootloader-$modelname.ipod"
1383 # toolset is the tools within the tools directory that we build for
1384 # this particular target.
1385 toolset=$ipodbitmaptools
1386 # architecture, manufacturer and model for the target-tree build
1387 t_cpu="arm"
1388 t_manufacturer="ipod"
1389 t_model="video"
1392 23|ipod3g)
1393 target_id=16
1394 modelname="ipod3g"
1395 target="-DIPOD_3G"
1396 memory=32 # always
1397 arm7tdmicc
1398 tool="$rootdir/tools/scramble -add=ip3g"
1399 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1400 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
1401 output="rockbox.ipod"
1402 appextra="recorder:gui:radio"
1403 plugins="yes"
1404 swcodec="yes"
1405 bootoutput="bootloader-$modelname.ipod"
1406 # toolset is the tools within the tools directory that we build for
1407 # this particular target.
1408 toolset=$ipodbitmaptools
1409 # architecture, manufacturer and model for the target-tree build
1410 t_cpu="arm"
1411 t_manufacturer="ipod"
1412 t_model="3g"
1415 24|ipod4g)
1416 target_id=17
1417 modelname="ipod4g"
1418 target="-DIPOD_4G"
1419 memory=32 # always
1420 arm7tdmicc
1421 tool="$rootdir/tools/scramble -add=ip4g"
1422 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1423 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
1424 output="rockbox.ipod"
1425 appextra="recorder:gui:radio"
1426 plugins="yes"
1427 swcodec="yes"
1428 bootoutput="bootloader-$modelname.ipod"
1429 # toolset is the tools within the tools directory that we build for
1430 # this particular target.
1431 toolset=$ipodbitmaptools
1432 # architecture, manufacturer and model for the target-tree build
1433 t_cpu="arm"
1434 t_manufacturer="ipod"
1435 t_model="4g"
1438 25|ipodmini1g)
1439 target_id=18
1440 modelname="ipodmini1g"
1441 target="-DIPOD_MINI"
1442 memory=32 # always
1443 arm7tdmicc
1444 tool="$rootdir/tools/scramble -add=mini"
1445 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1446 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
1447 output="rockbox.ipod"
1448 appextra="recorder:gui:radio"
1449 plugins="yes"
1450 swcodec="yes"
1451 bootoutput="bootloader-$modelname.ipod"
1452 # toolset is the tools within the tools directory that we build for
1453 # this particular target.
1454 toolset=$ipodbitmaptools
1455 # architecture, manufacturer and model for the target-tree build
1456 t_cpu="arm"
1457 t_manufacturer="ipod"
1458 t_model="mini"
1461 26|ipodmini2g)
1462 target_id=21
1463 modelname="ipodmini2g"
1464 target="-DIPOD_MINI2G"
1465 memory=32 # always
1466 arm7tdmicc
1467 tool="$rootdir/tools/scramble -add=mn2g"
1468 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1469 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
1470 output="rockbox.ipod"
1471 appextra="recorder:gui:radio"
1472 plugins="yes"
1473 swcodec="yes"
1474 bootoutput="bootloader-$modelname.ipod"
1475 # toolset is the tools within the tools directory that we build for
1476 # this particular target.
1477 toolset=$ipodbitmaptools
1478 # architecture, manufacturer and model for the target-tree build
1479 t_cpu="arm"
1480 t_manufacturer="ipod"
1481 t_model="mini2g"
1484 27|ipod1g2g)
1485 target_id=29
1486 modelname="ipod1g2g"
1487 target="-DIPOD_1G2G"
1488 memory=32 # always
1489 arm7tdmicc
1490 tool="$rootdir/tools/scramble -add=1g2g"
1491 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1492 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
1493 output="rockbox.ipod"
1494 appextra="recorder:gui:radio"
1495 plugins="yes"
1496 swcodec="yes"
1497 bootoutput="bootloader-$modelname.ipod"
1498 # toolset is the tools within the tools directory that we build for
1499 # this particular target.
1500 toolset=$ipodbitmaptools
1501 # architecture, manufacturer and model for the target-tree build
1502 t_cpu="arm"
1503 t_manufacturer="ipod"
1504 t_model="1g2g"
1507 28|ipodnano2g)
1508 target_id=62
1509 modelname="ipodnano2g"
1510 target="-DIPOD_NANO2G"
1511 memory=32 # always
1512 arm940tcc
1513 tool="$rootdir/tools/scramble -add=nn2g"
1514 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1515 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1516 output="rockbox.ipod"
1517 appextra="recorder:gui:radio"
1518 plugins="yes"
1519 swcodec="yes"
1520 bootoutput="bootloader-$modelname.ipod"
1521 # toolset is the tools within the tools directory that we build for
1522 # this particular target.
1523 toolset=$ipodbitmaptools
1524 # architecture, manufacturer and model for the target-tree build
1525 t_cpu="arm"
1526 t_manufacturer="s5l8700"
1527 t_model="ipodnano2g"
1530 30|iaudiox5)
1531 target_id=12
1532 modelname="iaudiox5"
1533 target="-DIAUDIO_X5"
1534 memory=16 # always
1535 coldfirecc
1536 tool="$rootdir/tools/scramble -add=iax5"
1537 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1538 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1539 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
1540 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 7"
1541 output="rockbox.iaudio"
1542 appextra="recorder:gui:radio"
1543 plugins="yes"
1544 swcodec="yes"
1545 # toolset is the tools within the tools directory that we build for
1546 # this particular target.
1547 toolset="$iaudiobitmaptools"
1548 # architecture, manufacturer and model for the target-tree build
1549 t_cpu="coldfire"
1550 t_manufacturer="iaudio"
1551 t_model="x5"
1554 31|iaudiom5)
1555 target_id=28
1556 modelname="iaudiom5"
1557 target="-DIAUDIO_M5"
1558 memory=16 # always
1559 coldfirecc
1560 tool="$rootdir/tools/scramble -add=iam5"
1561 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1562 bmp2rb_native="$rootdir/tools/bmp2rb -f 2"
1563 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
1564 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 7"
1565 output="rockbox.iaudio"
1566 appextra="recorder:gui:radio"
1567 plugins="yes"
1568 swcodec="yes"
1569 # toolset is the tools within the tools directory that we build for
1570 # this particular target.
1571 toolset="$iaudiobitmaptools"
1572 # architecture, manufacturer and model for the target-tree build
1573 t_cpu="coldfire"
1574 t_manufacturer="iaudio"
1575 t_model="m5"
1578 32|iaudio7)
1579 target_id=32
1580 modelname="iaudio7"
1581 target="-DIAUDIO_7"
1582 memory=16 # always
1583 arm946cc
1584 tool="$rootdir/tools/scramble -add=i7"
1585 boottool="$rootdir/tools/scramble -tcc=crc"
1586 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1587 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1588 output="rockbox.iaudio"
1589 appextra="recorder:gui:radio"
1590 plugins="yes"
1591 swcodec="yes"
1592 bootoutput="I7_FW.BIN"
1593 # toolset is the tools within the tools directory that we build for
1594 # this particular target.
1595 toolset="$tccbitmaptools"
1596 # architecture, manufacturer and model for the target-tree build
1597 t_cpu="arm"
1598 t_manufacturer="tcc77x"
1599 t_model="iaudio7"
1602 33|cowond2)
1603 target_id=34
1604 modelname="cowond2"
1605 target="-DCOWON_D2"
1606 memory=32
1607 arm926ejscc
1608 tool="$rootdir/tools/scramble -add=d2"
1609 boottool="cp "
1610 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1611 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1612 output="rockbox.d2"
1613 bootoutput="bootloader-cowond2.bin"
1614 appextra="recorder:gui:radio"
1615 plugins="yes"
1616 swcodec="yes"
1617 toolset="$tccbitmaptools"
1618 # architecture, manufacturer and model for the target-tree build
1619 t_cpu="arm"
1620 t_manufacturer="tcc780x"
1621 t_model="cowond2"
1624 34|iaudiom3)
1625 target_id=37
1626 modelname="iaudiom3"
1627 target="-DIAUDIO_M3"
1628 memory=16 # always
1629 coldfirecc
1630 tool="$rootdir/tools/scramble -add=iam3"
1631 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1632 bmp2rb_native="$rootdir/tools/bmp2rb -f 7"
1633 output="rockbox.iaudio"
1634 appextra="recorder:gui:radio"
1635 plugins="yes"
1636 swcodec="yes"
1637 # toolset is the tools within the tools directory that we build for
1638 # this particular target.
1639 toolset="$iaudiobitmaptools"
1640 # architecture, manufacturer and model for the target-tree build
1641 t_cpu="coldfire"
1642 t_manufacturer="iaudio"
1643 t_model="m3"
1646 40|gigabeatfx)
1647 target_id=20
1648 modelname="gigabeatfx"
1649 target="-DGIGABEAT_F"
1650 memory=32 # always
1651 arm9tdmicc
1652 tool="$rootdir/tools/scramble -add=giga"
1653 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1654 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1655 output="rockbox.gigabeat"
1656 appextra="recorder:gui:radio"
1657 plugins="yes"
1658 swcodec="yes"
1659 toolset=$gigabeatbitmaptools
1660 boottool="$rootdir/tools/scramble -gigabeat"
1661 bootoutput="FWIMG01.DAT"
1662 # architecture, manufacturer and model for the target-tree build
1663 t_cpu="arm"
1664 t_manufacturer="s3c2440"
1665 t_model="gigabeat-fx"
1668 41|gigabeats)
1669 target_id=26
1670 modelname="gigabeats"
1671 target="-DGIGABEAT_S"
1672 memory=64
1673 arm1136jfscc
1674 tool="$rootdir/tools/scramble -add=gigs"
1675 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1676 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1677 output="rockbox.gigabeat"
1678 appextra="recorder:gui:radio"
1679 plugins="yes"
1680 swcodec="yes"
1681 toolset="$gigabeatbitmaptools"
1682 boottool="$rootdir/tools/scramble -gigabeats"
1683 bootoutput="nk.bin"
1684 # architecture, manufacturer and model for the target-tree build
1685 t_cpu="arm"
1686 t_manufacturer="imx31"
1687 t_model="gigabeat-s"
1690 70|mrobe500)
1691 target_id=36
1692 modelname="mrobe500"
1693 target="-DMROBE_500"
1694 memory=64 # always
1695 arm926ejscc
1696 tool="$rootdir/tools/scramble -add=m500"
1697 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1698 bmp2rb_native="$rootdir/tools/bmp2rb -f 8"
1699 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
1700 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0"
1701 output="rockbox.mrobe500"
1702 appextra="recorder:gui:radio"
1703 plugins="yes"
1704 swcodec="yes"
1705 toolset=$gigabeatbitmaptools
1706 boottool="cp "
1707 bootoutput="rockbox.mrboot"
1708 # architecture, manufacturer and model for the target-tree build
1709 t_cpu="arm"
1710 t_manufacturer="tms320dm320"
1711 t_model="mrobe-500"
1714 71|mrobe100)
1715 target_id=33
1716 modelname="mrobe100"
1717 target="-DMROBE_100"
1718 memory=32 # always
1719 arm7tdmicc
1720 tool="$rootdir/tools/scramble -mi4v2 -model=m100 -type=RBOS"
1721 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1722 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1723 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
1724 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0"
1725 output="rockbox.mi4"
1726 appextra="recorder:gui:radio"
1727 plugins="yes"
1728 swcodec="yes"
1729 boottool="$rootdir/tools/scramble -mi4v2 -model=m100 -type=RBBL"
1730 bootoutput="pp5020.mi4"
1731 # toolset is the tools within the tools directory that we build for
1732 # this particular target.
1733 toolset=$scramblebitmaptools
1734 # architecture, manufacturer and model for the target-tree build
1735 t_cpu="arm"
1736 t_manufacturer="olympus"
1737 t_model="mrobe-100"
1740 80|logikdax)
1741 target_id=31
1742 modelname="logikdax"
1743 target="-DLOGIK_DAX"
1744 memory=2 # always
1745 arm946cc
1746 tool="$rootdir/tools/scramble -add=ldax"
1747 boottool="$rootdir/tools/scramble -tcc=crc"
1748 bootoutput="player.rom"
1749 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1750 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1751 output="rockbox.logik"
1752 appextra="recorder:gui:radio"
1753 plugins=""
1754 swcodec="yes"
1755 # toolset is the tools within the tools directory that we build for
1756 # this particular target.
1757 toolset=$tccbitmaptools
1758 # architecture, manufacturer and model for the target-tree build
1759 t_cpu="arm"
1760 t_manufacturer="tcc77x"
1761 t_model="logikdax"
1764 90|zenvisionm30gb)
1765 target_id=35
1766 modelname="zenvisionm30gb"
1767 target="-DCREATIVE_ZVM"
1768 memory=64
1769 arm926ejscc
1770 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1771 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1772 tool="$rootdir/tools/scramble -creative=zvm"
1773 USE_ELF="yes"
1774 output="rockbox.zvm"
1775 appextra="recorder:gui:radio"
1776 plugins="yes"
1777 swcodec="yes"
1778 toolset=$ipodbitmaptools
1779 boottool="$rootdir/tools/scramble -creative=zvm -no-ciff"
1780 bootoutput="rockbox.zvmboot"
1781 # architecture, manufacturer and model for the target-tree build
1782 t_cpu="arm"
1783 t_manufacturer="tms320dm320"
1784 t_model="creative-zvm"
1787 91|zenvisionm60gb)
1788 target_id=40
1789 modelname="zenvisionm60gb"
1790 target="-DCREATIVE_ZVM60GB"
1791 memory=64
1792 arm926ejscc
1793 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1794 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1795 tool="$rootdir/tools/scramble -creative=zvm60 -no-ciff"
1796 USE_ELF="yes"
1797 output="rockbox.zvm60"
1798 appextra="recorder:gui:radio"
1799 plugins="yes"
1800 swcodec="yes"
1801 toolset=$ipodbitmaptools
1802 boottool="$rootdir/tools/scramble -creative=zvm60"
1803 bootoutput="rockbox.zvm60boot"
1804 # architecture, manufacturer and model for the target-tree build
1805 t_cpu="arm"
1806 t_manufacturer="tms320dm320"
1807 t_model="creative-zvm"
1810 92|zenvision)
1811 target_id=39
1812 modelname="zenvision"
1813 target="-DCREATIVE_ZV"
1814 memory=64
1815 arm926ejscc
1816 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1817 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1818 tool="$rootdir/tools/scramble -creative=zenvision -no-ciff"
1819 USE_ELF="yes"
1820 output="rockbox.zv"
1821 appextra="recorder:gui:radio"
1822 plugins=""
1823 swcodec="yes"
1824 toolset=$ipodbitmaptools
1825 boottool="$rootdir/tools/scramble -creative=zenvision"
1826 bootoutput="rockbox.zvboot"
1827 # architecture, manufacturer and model for the target-tree build
1828 t_cpu="arm"
1829 t_manufacturer="tms320dm320"
1830 t_model="creative-zvm"
1833 50|sansae200)
1834 target_id=23
1835 modelname="sansae200"
1836 target="-DSANSA_E200"
1837 memory=32 # supposedly
1838 arm7tdmicc
1839 tool="$rootdir/tools/scramble -mi4v3 -model=e200 -type=RBOS"
1840 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1841 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1842 output="rockbox.mi4"
1843 appextra="recorder:gui:radio"
1844 plugins="yes"
1845 swcodec="yes"
1846 boottool="$rootdir/tools/scramble -mi4v3 -model=e200 -type=RBBL"
1847 bootoutput="PP5022.mi4"
1848 # toolset is the tools within the tools directory that we build for
1849 # this particular target.
1850 toolset=$scramblebitmaptools
1851 # architecture, manufacturer and model for the target-tree build
1852 t_cpu="arm"
1853 t_manufacturer="sandisk"
1854 t_model="sansa-e200"
1857 51|sansae200r)
1858 # the e200R model is pretty much identical to the e200, it only has a
1859 # different option to the scramble tool when building a bootloader and
1860 # makes the bootloader output file name in all lower case.
1861 target_id=27
1862 modelname="sansae200r"
1863 target="-DSANSA_E200"
1864 memory=32 # supposedly
1865 arm7tdmicc
1866 tool="$rootdir/tools/scramble -mi4v3 -model=e20r -type=RBOS"
1867 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1868 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1869 output="rockbox.mi4"
1870 appextra="recorder:gui:radio"
1871 plugins="yes"
1872 swcodec="yes"
1873 boottool="$rootdir/tools/scramble -mi4r -model=e20r -type=RBBL"
1874 bootoutput="pp5022.mi4"
1875 # toolset is the tools within the tools directory that we build for
1876 # this particular target.
1877 toolset=$scramblebitmaptools
1878 # architecture, manufacturer and model for the target-tree build
1879 t_cpu="arm"
1880 t_manufacturer="sandisk"
1881 t_model="sansa-e200"
1884 52|sansac200)
1885 target_id=30
1886 modelname="sansac200"
1887 target="-DSANSA_C200"
1888 memory=32 # supposedly
1889 arm7tdmicc
1890 tool="$rootdir/tools/scramble -mi4v3 -model=c200 -type=RBOS"
1891 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1892 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1893 output="rockbox.mi4"
1894 appextra="recorder:gui:radio"
1895 plugins="yes"
1896 swcodec="yes"
1897 boottool="$rootdir/tools/scramble -mi4v3 -model=c200 -type=RBBL"
1898 bootoutput="firmware.mi4"
1899 # toolset is the tools within the tools directory that we build for
1900 # this particular target.
1901 toolset=$scramblebitmaptools
1902 # architecture, manufacturer and model for the target-tree build
1903 t_cpu="arm"
1904 t_manufacturer="sandisk"
1905 t_model="sansa-c200"
1908 53|sansam200)
1909 target_id=48
1910 modelname="sansam200"
1911 target="-DSANSA_M200"
1912 memory=1 # always
1913 arm946cc
1914 tool="$rootdir/tools/scramble -add=m200"
1915 boottool="$rootdir/tools/scramble -tcc=crc"
1916 bootoutput="player.rom"
1917 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1918 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1919 output="rockbox.m200"
1920 appextra="recorder:gui:radio"
1921 plugins=""
1922 swcodec="yes"
1923 # toolset is the tools within the tools directory that we build for
1924 # this particular target.
1925 toolset=$tccbitmaptools
1926 # architecture, manufacturer and model for the target-tree build
1927 t_cpu="arm"
1928 t_manufacturer="tcc77x"
1929 t_model="m200"
1932 54|sansac100)
1933 target_id=42
1934 modelname="sansac100"
1935 target="-DSANSA_C100"
1936 memory=2
1937 arm946cc
1938 tool="$rootdir/tools/scramble -add=c100"
1939 boottool="$rootdir/tools/scramble -tcc=crc"
1940 bootoutput="player.rom"
1941 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1942 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1943 output="rockbox.c100"
1944 appextra="recorder:gui:radio"
1945 plugins=""
1946 swcodec="yes"
1947 # toolset is the tools within the tools directory that we build for
1948 # this particular target.
1949 toolset=$tccbitmaptools
1950 # architecture, manufacturer and model for the target-tree build
1951 t_cpu="arm"
1952 t_manufacturer="tcc77x"
1953 t_model="c100"
1956 55|sansaclip)
1957 target_id=50
1958 modelname="sansaclip"
1959 target="-DSANSA_CLIP"
1960 memory=2
1961 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1962 bmp2rb_native="$bmp2rb_mono"
1963 tool="$rootdir/tools/scramble -add=clip"
1964 output="rockbox.sansa"
1965 bootoutput="bootloader-clip.sansa"
1966 appextra="recorder:gui:radio"
1967 plugins="yes"
1968 swcodec="yes"
1969 toolset=$scramblebitmaptools
1970 t_cpu="arm"
1971 t_manufacturer="as3525"
1972 t_model="sansa-clip"
1973 if [ "$ARG_ARM_THUMB" != 0 ]; then ARG_ARM_THUMB=1; fi
1974 arm9tdmicc
1975 GCCOPTS=`echo $GCCOPTS | sed 's/ -O / -Os /'`
1979 56|sansae200v2)
1980 target_id=51
1981 modelname="sansae200v2"
1982 target="-DSANSA_E200V2"
1983 memory=8
1984 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1985 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1986 tool="$rootdir/tools/scramble -add=e2v2"
1987 output="rockbox.sansa"
1988 bootoutput="bootloader-e200v2.sansa"
1989 appextra="recorder:gui:radio"
1990 plugins="yes"
1991 swcodec="yes"
1992 toolset=$scramblebitmaptools
1993 t_cpu="arm"
1994 t_manufacturer="as3525"
1995 t_model="sansa-e200v2"
1996 arm9tdmicc
2000 57|sansam200v4)
2001 target_id=52
2002 modelname="sansam200v4"
2003 target="-DSANSA_M200V4"
2004 memory=2
2005 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2006 bmp2rb_native="$bmp2rb_mono"
2007 tool="$rootdir/tools/scramble -add=m2v4"
2008 output="rockbox.sansa"
2009 bootoutput="bootloader-m200v4.sansa"
2010 appextra="recorder:gui:radio"
2011 plugins="yes"
2012 swcodec="yes"
2013 toolset=$scramblebitmaptools
2014 t_cpu="arm"
2015 t_manufacturer="as3525"
2016 t_model="sansa-m200v4"
2017 if [ "$ARG_ARM_THUMB" != 0 ]; then ARG_ARM_THUMB=1; fi
2018 arm9tdmicc
2019 GCCOPTS=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2023 58|sansafuze)
2024 target_id=53
2025 modelname="sansafuze"
2026 target="-DSANSA_FUZE"
2027 memory=8
2028 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2029 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2030 tool="$rootdir/tools/scramble -add=fuze"
2031 output="rockbox.sansa"
2032 bootoutput="bootloader-fuze.sansa"
2033 appextra="recorder:gui:radio"
2034 plugins="yes"
2035 swcodec="yes"
2036 toolset=$scramblebitmaptools
2037 t_cpu="arm"
2038 t_manufacturer="as3525"
2039 t_model="sansa-fuze"
2040 arm9tdmicc
2044 59|sansac200v2)
2045 target_id=55
2046 modelname="sansac200v2"
2047 target="-DSANSA_C200V2"
2048 memory=2 # as per OF diagnosis mode
2049 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2050 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2051 tool="$rootdir/tools/scramble -add=c2v2"
2052 output="rockbox.sansa"
2053 bootoutput="bootloader-c200v2.sansa"
2054 appextra="recorder:gui:radio"
2055 plugins="yes"
2056 swcodec="yes"
2057 # toolset is the tools within the tools directory that we build for
2058 # this particular target.
2059 toolset=$scramblebitmaptools
2060 # architecture, manufacturer and model for the target-tree build
2061 t_cpu="arm"
2062 t_manufacturer="as3525"
2063 t_model="sansa-c200v2"
2064 if [ "$ARG_ARM_THUMB" != 0 ]; then ARG_ARM_THUMB=1; fi
2065 arm9tdmicc
2066 GCCOPTS=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2069 60|sansaclipv2)
2070 target_id=60
2071 modelname="sansaclipv2"
2072 target="-DSANSA_CLIPV2"
2073 memory=8
2074 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2075 bmp2rb_native="$bmp2rb_mono"
2076 tool="$rootdir/tools/scramble -add=clv2"
2077 output="rockbox.sansa"
2078 bootoutput="bootloader-clipv2.sansa"
2079 appextra="recorder:gui:radio"
2080 plugins="yes"
2081 swcodec="yes"
2082 toolset=$scramblebitmaptools
2083 t_cpu="arm"
2084 t_manufacturer="as3525"
2085 t_model="sansa-clipv2"
2086 arm926ejscc
2089 61|sansaview)
2090 echo "Sansa View is not yet supported!"
2091 exit 1
2092 target_id=63
2093 modelname="sansaview"
2094 target="-DSANSA_VIEW"
2095 memory=32
2096 arm1176jzscc
2097 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2098 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2099 output="rockbox.mi4"
2100 appextra="gui"
2101 plugins=""
2102 swcodec="yes"
2103 boottool="$rootdir/tools/scramble -mi4v3 -model=view -type=RBBL"
2104 bootoutput="firmware.mi4"
2105 # toolset is the tools within the tools directory that we build for
2106 # this particular target.
2107 toolset=$scramblebitmaptools
2108 t_cpu="arm"
2109 t_manufacturer="sandisk"
2110 t_model="sansa-view"
2113 62|sansaclipplus)
2114 target_id=66
2115 modelname="sansaclipplus"
2116 target="-DSANSA_CLIPPLUS"
2117 memory=8
2118 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2119 bmp2rb_native="$bmp2rb_mono"
2120 tool="$rootdir/tools/scramble -add=cli+"
2121 output="rockbox.sansa"
2122 bootoutput="bootloader-clipplus.sansa"
2123 appextra="recorder:gui:radio"
2124 plugins="yes"
2125 swcodec="yes"
2126 toolset=$scramblebitmaptools
2127 t_cpu="arm"
2128 t_manufacturer="as3525"
2129 t_model="sansa-clipplus"
2130 arm926ejscc
2133 63|sansafuzev2)
2134 target_id=68
2135 modelname="sansafuzev2"
2136 target="-DSANSA_FUZEV2"
2137 memory=8 # not sure
2138 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2139 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
2140 tool="$rootdir/tools/scramble -add=fuz2"
2141 output="rockbox.sansa"
2142 bootoutput="bootloader-fuzev2.sansa"
2143 appextra="recorder:gui:radio"
2144 plugins="yes"
2145 swcodec="yes"
2146 toolset=$scramblebitmaptools
2147 t_cpu="arm"
2148 t_manufacturer="as3525"
2149 t_model="sansa-fuzev2"
2150 arm926ejscc
2153 150|tatungtpj1022)
2154 target_id=25
2155 modelname="tatungtpj1022"
2156 target="-DTATUNG_TPJ1022"
2157 memory=32 # always
2158 arm7tdmicc
2159 tool="$rootdir/tools/scramble -add tpj2"
2160 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2161 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
2162 output="rockbox.elio"
2163 appextra="recorder:gui:radio"
2164 plugins="yes"
2165 swcodec="yes"
2166 boottool="$rootdir/tools/scramble -mi4v2"
2167 bootoutput="pp5020.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
2172 t_cpu="arm"
2173 t_manufacturer="tatung"
2174 t_model="tpj1022"
2177 100|gogearsa9200)
2178 target_id=41
2179 modelname="gogearsa9200"
2180 target="-DPHILIPS_SA9200"
2181 memory=32 # supposedly
2182 arm7tdmicc
2183 tool="$rootdir/tools/scramble -mi4v3 -model=9200 -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"
2188 plugins=""
2189 swcodec="yes"
2190 boottool="$rootdir/tools/scramble -mi4v3 -model=9200 -type=RBBL"
2191 bootoutput="FWImage.ebn"
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
2196 t_cpu="arm"
2197 t_manufacturer="philips"
2198 t_model="sa9200"
2201 101|gogearhdd1630)
2202 target_id=43
2203 modelname="gogearhdd1630"
2204 target="-DPHILIPS_HDD1630"
2205 memory=32 # supposedly
2206 arm7tdmicc
2207 tool="$rootdir/tools/scramble -mi4v3 -model=1630 -type=RBOS"
2208 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2209 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2210 output="rockbox.mi4"
2211 appextra="recorder:gui:radio"
2212 plugins="yes"
2213 swcodec="yes"
2214 boottool="$rootdir/tools/scramble -mi4v3 -model=1630 -type=RBBL"
2215 bootoutput="FWImage.ebn"
2216 # toolset is the tools within the tools directory that we build for
2217 # this particular target.
2218 toolset=$scramblebitmaptools
2219 # architecture, manufacturer and model for the target-tree build
2220 t_cpu="arm"
2221 t_manufacturer="philips"
2222 t_model="hdd1630"
2225 102|gogearhdd6330)
2226 target_id=65
2227 modelname="gogearhdd6330"
2228 target="-DPHILIPS_HDD6330"
2229 memory=32 # supposedly
2230 arm7tdmicc
2231 tool="$rootdir/tools/scramble -mi4v3 -model=6330 -type=RBOS"
2232 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2233 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2234 output="rockbox.mi4"
2235 appextra="recorder:gui:radio"
2236 plugins=""
2237 swcodec="yes"
2238 boottool="$rootdir/tools/scramble -mi4v3 -model=6330 -type=RBBL"
2239 bootoutput="FWImage.ebn"
2240 # toolset is the tools within the tools directory that we build for
2241 # this particular target.
2242 toolset=$scramblebitmaptools
2243 # architecture, manufacturer and model for the target-tree build
2244 t_cpu="arm"
2245 t_manufacturer="philips"
2246 t_model="hdd6330"
2249 110|meizum6sl)
2250 target_id=49
2251 modelname="meizum6sl"
2252 target="-DMEIZU_M6SL"
2253 memory=16 # always
2254 arm940tbecc
2255 tool="cp"
2256 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2257 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2258 output="rockbox.meizu"
2259 appextra="recorder:gui:radio"
2260 plugins="no" #FIXME
2261 swcodec="yes"
2262 toolset=$genericbitmaptools
2263 boottool="cp"
2264 bootoutput="rockboot.ebn"
2265 # architecture, manufacturer and model for the target-tree build
2266 t_cpu="arm"
2267 t_manufacturer="s5l8700"
2268 t_model="meizu-m6sl"
2271 111|meizum6sp)
2272 target_id=46
2273 modelname="meizum6sp"
2274 target="-DMEIZU_M6SP"
2275 memory=16 # always
2276 arm940tbecc
2277 tool="cp"
2278 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2279 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2280 output="rockbox.meizu"
2281 appextra="recorder:gui:radio"
2282 plugins="no" #FIXME
2283 swcodec="yes"
2284 toolset=$genericbitmaptools
2285 boottool="cp"
2286 bootoutput="rockboot.ebn"
2287 # architecture, manufacturer and model for the target-tree build
2288 t_cpu="arm"
2289 t_manufacturer="s5l8700"
2290 t_model="meizu-m6sp"
2293 112|meizum3)
2294 target_id=47
2295 modelname="meizum3"
2296 target="-DMEIZU_M3"
2297 memory=16 # always
2298 arm940tbecc
2299 tool="cp"
2300 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2301 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2302 output="rockbox.meizu"
2303 appextra="recorder:gui:radio"
2304 plugins="no" #FIXME
2305 swcodec="yes"
2306 toolset=$genericbitmaptools
2307 boottool="cp"
2308 bootoutput="rockboot.ebn"
2309 # architecture, manufacturer and model for the target-tree build
2310 t_cpu="arm"
2311 t_manufacturer="s5l8700"
2312 t_model="meizu-m3"
2315 120|ondavx747)
2316 target_id=45
2317 modelname="ondavx747"
2318 target="-DONDA_VX747"
2319 memory=16
2320 mipselcc
2321 tool="$rootdir/tools/scramble -add=x747"
2322 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2323 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2324 output="rockbox.vx747"
2325 appextra="recorder:gui:radio"
2326 plugins="yes"
2327 swcodec="yes"
2328 toolset=$genericbitmaptools
2329 boottool="$rootdir/tools/scramble -ccpmp"
2330 bootoutput="ccpmp.bin"
2331 # architecture, manufacturer and model for the target-tree build
2332 t_cpu="mips"
2333 t_manufacturer="ingenic_jz47xx"
2334 t_model="onda_vx747"
2337 121|ondavx767)
2338 target_id=64
2339 modelname="ondavx767"
2340 target="-DONDA_VX767"
2341 memory=16 #FIXME
2342 mipselcc
2343 tool="cp"
2344 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2345 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2346 output="rockbox.vx767"
2347 appextra="recorder:gui:radio"
2348 plugins="" #FIXME
2349 swcodec="yes"
2350 toolset=$genericbitmaptools
2351 boottool="$rootdir/tools/scramble -ccpmp"
2352 bootoutput="ccpmp.bin"
2353 # architecture, manufacturer and model for the target-tree build
2354 t_cpu="mips"
2355 t_manufacturer="ingenic_jz47xx"
2356 t_model="onda_vx767"
2359 122|ondavx747p)
2360 target_id=54
2361 modelname="ondavx747p"
2362 target="-DONDA_VX747P"
2363 memory=16
2364 mipselcc
2365 tool="$rootdir/tools/scramble -add=747p"
2366 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2367 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2368 output="rockbox.vx747p"
2369 appextra="recorder:gui:radio"
2370 plugins="yes"
2371 swcodec="yes"
2372 toolset=$genericbitmaptools
2373 boottool="$rootdir/tools/scramble -ccpmp"
2374 bootoutput="ccpmp.bin"
2375 # architecture, manufacturer and model for the target-tree build
2376 t_cpu="mips"
2377 t_manufacturer="ingenic_jz47xx"
2378 t_model="onda_vx747"
2381 123|ondavx777)
2382 target_id=61
2383 modelname="ondavx777"
2384 target="-DONDA_VX777"
2385 memory=16
2386 mipselcc
2387 tool="$rootdir/tools/scramble -add=x777"
2388 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2389 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2390 output="rockbox.vx777"
2391 appextra="recorder:gui:radio"
2392 plugins="yes"
2393 swcodec="yes"
2394 toolset=$genericbitmaptools
2395 boottool="$rootdir/tools/scramble -ccpmp"
2396 bootoutput="ccpmp.bin"
2397 # architecture, manufacturer and model for the target-tree build
2398 t_cpu="mips"
2399 t_manufacturer="ingenic_jz47xx"
2400 t_model="onda_vx747"
2403 130|lyreproto1)
2404 target_id=56
2405 modelname="lyreproto1"
2406 target="-DLYRE_PROTO1"
2407 memory=64
2408 arm926ejscc
2409 tool="cp"
2410 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2411 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2412 output="rockbox.lyre"
2413 appextra="recorder:gui:radio"
2414 plugins=""
2415 swcodec="yes"
2416 toolset=$scramblebitmaptools
2417 boottool="cp"
2418 bootoutput="bootloader-proto1.lyre"
2419 # architecture, manufacturer and model for the target-tree build
2420 t_cpu="arm"
2421 t_manufacturer="at91sam"
2422 t_model="lyre_proto1"
2425 131|mini2440)
2426 target_id=99
2427 modelname="mini2440"
2428 target="-DMINI2440"
2429 memory=64
2430 arm9tdmicc
2431 tool="$rootdir/tools/scramble -add=m244"
2432 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2433 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2434 output="rockbox.mini2440"
2435 appextra="recorder:gui:radio"
2436 plugins=""
2437 swcodec="yes"
2438 toolset=$scramblebitmaptools
2439 boottool="cp"
2440 bootoutput="bootloader-mini2440.lyre"
2441 # architecture, manufacturer and model for the target-tree build
2442 t_cpu="arm"
2443 t_manufacturer="s3c2440"
2444 t_model="mini2440"
2447 140|samsungyh820)
2448 target_id=57
2449 modelname="samsungyh820"
2450 target="-DSAMSUNG_YH820"
2451 memory=32 # always
2452 arm7tdmicc
2453 tool="$rootdir/tools/scramble -mi4v2 -model=y820 -type=RBOS"
2454 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2455 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2456 output="rockbox.mi4"
2457 appextra="recorder:gui:radio"
2458 plugins="yes"
2459 swcodec="yes"
2460 boottool="$rootdir/tools/scramble -mi4v2 -model=y820 -type=RBBL"
2461 bootoutput="FW_YH820.mi4"
2462 # toolset is the tools within the tools directory that we build for
2463 # this particular target.
2464 toolset=$scramblebitmaptools
2465 # architecture, manufacturer and model for the target-tree build
2466 t_cpu="arm"
2467 t_manufacturer="samsung"
2468 t_model="yh820"
2471 141|samsungyh920)
2472 target_id=58
2473 modelname="samsungyh920"
2474 target="-DSAMSUNG_YH920"
2475 memory=32 # always
2476 arm7tdmicc
2477 tool="$rootdir/tools/scramble -mi4v2 -model=y920 -type=RBOS"
2478 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2479 bmp2rb_native="$rootdir/tools/bmp2rb -f 2"
2480 output="rockbox.mi4"
2481 appextra="recorder:gui:radio"
2482 plugins="yes"
2483 swcodec="yes"
2484 boottool="$rootdir/tools/scramble -mi4v2 -model=y920 -type=RBBL"
2485 bootoutput="PP5020.mi4"
2486 # toolset is the tools within the tools directory that we build for
2487 # this particular target.
2488 toolset=$scramblebitmaptools
2489 # architecture, manufacturer and model for the target-tree build
2490 t_cpu="arm"
2491 t_manufacturer="samsung"
2492 t_model="yh920"
2495 142|samsungyh925)
2496 target_id=59
2497 modelname="samsungyh925"
2498 target="-DSAMSUNG_YH925"
2499 memory=32 # always
2500 arm7tdmicc
2501 tool="$rootdir/tools/scramble -mi4v2 -model=y925 -type=RBOS"
2502 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2503 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2504 output="rockbox.mi4"
2505 appextra="recorder:gui:radio"
2506 plugins="yes"
2507 swcodec="yes"
2508 boottool="$rootdir/tools/scramble -mi4v2 -model=y925 -type=RBBL"
2509 bootoutput="FW_YH925.mi4"
2510 # toolset is the tools within the tools directory that we build for
2511 # this particular target.
2512 toolset=$scramblebitmaptools
2513 # architecture, manufacturer and model for the target-tree build
2514 t_cpu="arm"
2515 t_manufacturer="samsung"
2516 t_model="yh925"
2519 143|samsungyps3)
2520 target_id=60
2521 modelname="samsungyps3"
2522 target="-DSAMSUNG_YPS3"
2523 memory=16 # always
2524 arm940tbecc
2525 tool="cp"
2526 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2527 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2528 output="rockbox.yps3"
2529 appextra="recorder:gui:radio"
2530 plugins="no" #FIXME
2531 swcodec="yes"
2532 toolset=$genericbitmaptools
2533 boottool="cp"
2534 bootoutput="rockboot.ebn"
2535 # architecture, manufacturer and model for the target-tree build
2536 t_cpu="arm"
2537 t_manufacturer="s5l8700"
2538 t_model="yps3"
2541 160|vibe500)
2542 target_id=67
2543 modelname="vibe500"
2544 target="-DPBELL_VIBE500"
2545 memory=32 # always
2546 arm7tdmicc
2547 tool="$rootdir/tools/scramble -mi4v3 -model=v500 -type=RBOS"
2548 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2549 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
2550 output="rockbox.mi4"
2551 appextra="recorder:gui:radio"
2552 plugins="yes"
2553 swcodec="yes"
2554 boottool="$rootdir/tools/scramble -mi4v3 -model=v500 -type=RBBL"
2555 bootoutput="jukebox.mi4"
2556 # toolset is the tools within the tools directory that we build for
2557 # this particular target.
2558 toolset=$scramblebitmaptools
2559 # architecture, manufacturer and model for the target-tree build
2560 t_cpu="arm"
2561 t_manufacturer="pbell"
2562 t_model="vibe500"
2565 170|hd200)
2566 target_id=69
2567 modelname="mpiohd200"
2568 target="-DMPIO_HD200"
2569 memory=16 # always
2570 coldfirecc
2571 tool="$rootdir/tools/scramble -add=hd20"
2572 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2573 bmp2rb_native="$rootdir/tools/bmp2rb -f 7"
2574 output="rockbox.mpio"
2575 bootoutput="bootloader.mpio"
2576 appextra="recorder:gui:radio"
2577 plugins="yes"
2578 swcodec="yes"
2579 # toolset is the tools within the tools directory that we build for
2580 # this particular target.
2581 toolset="$genericbitmaptools"
2582 # architecture, manufacturer and model for the target-tree build
2583 t_cpu="coldfire"
2584 t_manufacturer="mpio"
2585 t_model="hd200"
2589 echo "Please select a supported target platform!"
2590 exit 7
2593 esac
2595 echo "Platform set to $modelname"
2598 #remove start
2599 ############################################################################
2600 # Amount of memory, for those that can differ. They have $memory unset at
2601 # this point.
2604 if [ -z "$memory" ]; then
2605 case $target_id in
2607 if [ "$ARG_RAM" ]; then
2608 size=$ARG_RAM
2609 else
2610 echo "Enter size of your RAM (in MB): (Defaults to 32)"
2611 size=`input`;
2613 case $size in
2614 60|64)
2615 memory="64"
2618 memory="32"
2620 esac
2623 if [ "$ARG_RAM" ]; then
2624 size=$ARG_RAM
2625 else
2626 echo "Enter size of your RAM (in MB): (Defaults to 2)"
2627 size=`input`;
2629 case $size in
2631 memory="8"
2634 memory="2"
2636 esac
2638 esac
2639 echo "Memory size selected: $memory MB"
2640 [ "$ARG_TYPE" ] || echo ""
2642 #remove end
2644 ##################################################################
2645 # Figure out build "type"
2648 # the ifp7x0 is the only platform that supports building a gdb stub like
2649 # this
2650 case $modelname in
2651 iriverifp7xx)
2652 gdbstub="(G)DB stub, "
2654 sansae200r|sansae200)
2655 gdbstub="(I)nstaller, "
2657 sansac200)
2658 gdbstub="(E)raser, "
2662 esac
2663 if [ "$ARG_TYPE" ]; then
2664 btype=$ARG_TYPE
2665 else
2666 echo "Build (N)ormal, (A)dvanced, (S)imulator, (B)ootloader, (C)heckWPS, (D)atabase tool, $gdbstub(M)anual: (Defaults to N)"
2667 btype=`input`;
2670 case $btype in
2671 [Ii])
2672 appsdir='\$(ROOTDIR)/bootloader'
2673 apps="bootloader"
2674 extradefines="-DBOOTLOADER -DE200R_INSTALLER -ffunction-sections -fdata-sections"
2675 bootloader="1"
2676 echo "e200R-installer build selected"
2678 [Ee])
2679 appsdir='\$(ROOTDIR)/bootloader'
2680 apps="bootloader"
2681 echo "C2(4)0 or C2(5)0"
2682 variant=`input`
2683 case $variant in
2685 extradefines="-DBOOTLOADER -DC200_ERASE -DC240_ERASE -ffunction-sections -fdata-sections"
2686 echo "c240 eraser build selected"
2689 extradefines="-DBOOTLOADER -DC200_ERASE -DC250_ERASE -ffunction-sections -fdata-sections"
2690 echo "c240 eraser build selected"
2692 esac
2693 bootloader="1"
2694 echo "c200 eraser build selected"
2696 [Bb])
2697 if test $t_manufacturer = "archos"; then
2698 # Archos SH-based players do this somewhat differently for
2699 # some reason
2700 appsdir='\$(ROOTDIR)/flash/bootbox'
2701 apps="bootbox"
2702 else
2703 appsdir='\$(ROOTDIR)/bootloader'
2704 apps="bootloader"
2705 flash=""
2706 if test -n "$boottool"; then
2707 tool="$boottool"
2709 if test -n "$bootoutput"; then
2710 output=$bootoutput
2713 extradefines="-DBOOTLOADER -ffunction-sections -fdata-sections"
2714 bootloader="1"
2715 echo "Bootloader build selected"
2717 [Ss])
2718 if [ "$modelname" = "sansae200r" ]; then
2719 echo "Do not use the e200R target for simulator builds. Use e200 instead."
2720 exit 8
2722 debug="-DDEBUG"
2723 simulator="yes"
2724 extradefines="-DSIMULATOR"
2725 archosrom=""
2726 flash=""
2727 echo "Simulator build selected"
2729 [Aa]*)
2730 echo "Advanced build selected"
2731 whichadvanced $btype
2733 [Gg])
2734 extradefines="-DSTUB" # for target makefile symbol EXTRA_DEFINES
2735 appsdir='\$(ROOTDIR)/gdb'
2736 apps="stub"
2737 case $modelname in
2738 iriverifp7xx)
2739 output="stub.wma"
2743 esac
2744 echo "GDB stub build selected"
2746 [Mm])
2747 toolset='';
2748 apps="manual"
2749 echo "Manual build selected"
2751 [Cc])
2752 uname=`uname`
2753 simcc "checkwps"
2754 toolset='';
2755 t_cpu='';
2756 GCCOPTS='';
2757 extradefines="-DDEBUG"
2758 appsdir='\$(ROOTDIR)/tools/checkwps';
2759 output='checkwps.'${modelname};
2760 archosrom='';
2761 echo "CheckWPS build selected"
2763 [Dd])
2764 uname=`uname`
2765 simcc "database"
2766 toolset='';
2767 t_cpu='';
2768 GCCOPTS='';
2769 appsdir='\$(ROOTDIR)/tools/database';
2770 archosrom='';
2772 case $uname in
2773 CYGWIN*|MINGW*)
2774 output="database_${modelname}.exe"
2777 output='database.'${modelname};
2779 esac
2781 echo "Database tool build selected"
2784 if [ "$modelname" = "sansae200r" ]; then
2785 echo "Do not use the e200R target for regular builds. Use e200 instead."
2786 exit 8
2788 debug=""
2789 btype="N" # set it explicitly since RET only gets here as well
2790 echo "Normal build selected"
2793 esac
2794 # to be able running "make manual" from non-manual configuration
2795 case $modelname in
2796 archosrecorderv2)
2797 manualdev="archosfmrecorder"
2799 iriverh1??)
2800 manualdev="iriverh100"
2802 ipodmini2g)
2803 manualdev="ipodmini1g"
2806 manualdev=$modelname
2808 esac
2810 if [ -z "$debug" ]; then
2811 GCCOPTS="$GCCOPTS $GCCOPTIMIZE"
2814 echo "Using source code root directory: $rootdir"
2816 # this was once possible to change at build-time, but no more:
2817 language="english"
2819 uname=`uname`
2821 if [ "yes" = "$simulator" ]; then
2822 # setup compiler and things for simulator
2823 simcc "sdl"
2825 if [ -d "simdisk" ]; then
2826 echo "Subdirectory 'simdisk' already present"
2827 else
2828 mkdir simdisk
2829 echo "Created a 'simdisk' subdirectory for simulating the hard disk"
2833 # Now, figure out version number of the (gcc) compiler we are about to use
2834 gccver=`$CC -dumpversion`;
2836 # figure out the binutil version too and display it, mostly for the build
2837 # system etc to be able to see it easier
2838 if [ $uname = "Darwin" ]; then
2839 ldver=`$LD -v 2>&1 | sed -e 's/[^0-9.-]//g'`
2840 else
2841 ldver=`$LD --version | head -n 1 | sed -e 's/[^0-9.]//g'`
2844 if [ -z "$gccver" ]; then
2845 echo "[WARNING] The compiler you must use ($CC) is not in your path!"
2846 echo "[WARNING] this may cause your build to fail since we cannot do the"
2847 echo "[WARNING] checks we want now."
2848 else
2850 # gccver should now be "3.3.5", "3.4.3", "2.95.3-6" and similar, but don't
2851 # DEPEND on it
2853 num1=`echo $gccver | cut -d . -f1`
2854 num2=`echo $gccver | cut -d . -f2`
2855 gccnum=`(expr $num1 "*" 100 + $num2) 2>/dev/null`
2857 # This makes:
2858 # 3.3.X => 303
2859 # 3.4.X => 304
2860 # 2.95.3 => 295
2862 echo "Using $CC $gccver ($gccnum)"
2864 if test "$gccnum" -ge "400"; then
2865 # gcc 4.0 is just *so* much pickier on arguments that differ in signedness
2866 # so we ignore that warnings for now
2867 # -Wno-pointer-sign
2868 GCCOPTS="$GCCOPTS -Wno-pointer-sign"
2871 if test "$gccnum" -ge "402"; then
2872 # disable warning about "warning: initialized field overwritten" as gcc 4.2
2873 # and later would throw it for several valid cases
2874 GCCOPTS="$GCCOPTS -Wno-override-init"
2877 case $prefix in
2878 ""|"$CROSS_COMPILE")
2879 # simulator
2881 i586-mingw32msvc-)
2882 # cross-compile for win32
2885 # Verify that the cross-compiler is of a recommended version!
2886 if test "$gccver" != "$gccchoice"; then
2887 echo "WARNING: Your cross-compiler $CC $gccver is not of the recommended"
2888 echo "WARNING: version $gccchoice!"
2889 echo "WARNING: This may cause your build to fail since it may be a version"
2890 echo "WARNING: that isn't functional or known to not be the best choice."
2891 echo "WARNING: If you suffer from build problems, you know that this is"
2892 echo "WARNING: a likely source for them..."
2895 esac
2900 echo "Using $LD $ldver"
2902 # check the compiler for SH platforms
2903 if test "$CC" = "sh-elf-gcc"; then
2904 if test "$gccnum" -lt "400"; then
2905 echo "WARNING: Consider upgrading your compiler to the 4.0.X series!"
2906 echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler"
2907 else
2908 # figure out patch status
2909 gccpatch=`$CC --version`;
2911 if { echo $gccpatch | grep "rockbox" >/dev/null 2>&1; } then
2912 echo "gcc $gccver is rockbox patched"
2913 # then convert -O to -Os to get smaller binaries!
2914 GCCOPTS=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2915 else
2916 echo "WARNING: You use an unpatched gcc compiler: $gccver"
2917 echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler"
2922 if test "$CC" = "m68k-elf-gcc"; then
2923 # convert -O to -Os to get smaller binaries!
2924 GCCOPTS=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2927 if [ "$ARG_CCACHE" = "1" ]; then
2928 echo "Enable ccache for building"
2929 ccache="ccache"
2930 elif [ "$ARG_CCACHE" != "0" ]; then
2931 ccache=`findtool ccache`
2932 if test -n "$ccache"; then
2933 echo "Found and uses ccache ($ccache)"
2937 # figure out the full path to the various commands if possible
2938 HOSTCC=`findtool gcc --lit`
2939 HOSTAR=`findtool ar --lit`
2940 CC=`findtool ${CC} --lit`
2941 LD=`findtool ${AR} --lit`
2942 AR=`findtool ${AR} --lit`
2943 AS=`findtool ${AS} --lit`
2944 OC=`findtool ${OC} --lit`
2945 WINDRES=`findtool ${WINDRES} --lit`
2946 DLLTOOL=`findtool ${DLLTOOL} --lit`
2947 DLLWRAP=`findtool ${DLLWRAP} --lit`
2948 RANLIB=`findtool ${RANLIB} --lit`
2950 if test "$ARG_ARM_THUMB" = "1"; then
2951 extradefines="$extradefines -DUSE_THUMB"
2952 CC="$toolsdir/thumb-cc.py $CC"
2955 if test -n "$ccache"; then
2956 CC="$ccache $CC"
2959 if test "X$endian" = "Xbig"; then
2960 defendian="ROCKBOX_BIG_ENDIAN"
2961 else
2962 defendian="ROCKBOX_LITTLE_ENDIAN"
2965 if [ "$ARG_RBDIR" ]; then
2966 rbdir=$ARG_RBDIR
2967 echo "Using alternate rockbox dir: ${rbdir}"
2970 sed > autoconf.h \
2971 -e "s,@ENDIAN@,${defendian},g" \
2972 -e "s,^#undef ROCKBOX_HAS_LOGF,$use_logf,g" \
2973 -e "s,^#undef DO_BOOTCHART,$use_bootchart,g" \
2974 -e "s,@config_rtc@,$config_rtc,g" \
2975 -e "s,@have_rtc_alarm@,$have_rtc_alarm,g" \
2976 -e "s,@RBDIR@,${rbdir},g" \
2977 -e "s,@have_backlight@,$have_backlight,g" \
2978 -e "s,@have_fmradio_in@,$have_fmradio_in,g" \
2979 -e "s,@have_ata_poweroff@,$have_ata_poweroff,g" \
2980 <<EOF
2981 /* This header was made by configure */
2982 #ifndef __BUILD_AUTOCONF_H
2983 #define __BUILD_AUTOCONF_H
2985 /* Define endianess for the target or simulator platform */
2986 #define @ENDIAN@ 1
2988 /* Define this if you build rockbox to support the logf logging and display */
2989 #undef ROCKBOX_HAS_LOGF
2991 /* Define this to record a chart with timings for the stages of boot */
2992 #undef DO_BOOTCHART
2994 /* optional define for a backlight modded Ondio */
2995 @have_backlight@
2997 /* optional define for FM radio mod for iAudio M5 */
2998 @have_fmradio_in@
3000 /* optional define for ATA poweroff on Player */
3001 @have_ata_poweroff@
3003 /* optional defines for RTC mod for h1x0 */
3004 @config_rtc@
3005 @have_rtc_alarm@
3007 /* root of Rockbox */
3008 #define ROCKBOX_DIR "/@RBDIR@"
3010 #endif /* __BUILD_AUTOCONF_H */
3013 if test -n "$t_cpu"; then
3014 TARGET_INC="-I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer/$t_model"
3015 if [ "$simulator" = "yes" ]; then # a few more includes for the sim target tree
3016 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl/"
3017 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/"
3019 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer"
3020 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu"
3021 GCCOPTS="$GCCOPTS"
3024 if test "$simulator" = "yes"; then
3025 # add simul make stuff on the #SIMUL# line
3026 simmagic1="s,@SIMUL1@,\$(SILENT)\$(MAKE) -C \$(SIMDIR) OBJDIR=\$(BUILDDIR)/sim,"
3027 simmagic2="s,@SIMUL2@,\$(SILENT)\$(MAKE) -C \$(ROOTDIR)/uisimulator/common OBJDIR=\$(BUILDDIR)/comsim,"
3028 else
3029 # delete the lines that match
3030 simmagic1='/@SIMUL1@/D'
3031 simmagic2='/@SIMUL2@/D'
3034 if test "$swcodec" = "yes"; then
3035 voicetoolset="rbspeexenc voicefont wavtrim"
3036 else
3037 voicetoolset="voicefont wavtrim"
3040 if test "$apps" = "apps"; then
3041 # only when we build "real" apps we build the .lng files
3042 buildlangs="langs"
3045 #### Fix the cmdline ###
3046 if [ "$ARG_CCACHE" = "1" ]; then
3047 cmdline="--ccache "
3048 elif [ "$ARG_CCACHE" = "0" ]; then
3049 cmdline="--no-ccache "
3051 if [ "$ARG_ARM_EABI" = "1" ]; then
3052 cmdline="$cmdline--eabi "
3055 cmdline="$cmdline--target=\$(MODELNAME) --ram=\$(MEMORYSIZE) --rbdir=\$(RBDIR) --type=$btype$advopts"
3056 ### end of cmdline
3058 sed > Makefile \
3059 -e "s,@ROOTDIR@,${rootdir},g" \
3060 -e "s,@DEBUG@,${debug},g" \
3061 -e "s,@MEMORY@,${memory},g" \
3062 -e "s,@TARGET_ID@,${target_id},g" \
3063 -e "s,@TARGET@,${target},g" \
3064 -e "s,@CPU@,${t_cpu},g" \
3065 -e "s,@MANUFACTURER@,${t_manufacturer},g" \
3066 -e "s,@MODELNAME@,${modelname},g" \
3067 -e "s,@LANGUAGE@,${language},g" \
3068 -e "s:@VOICELANGUAGE@:${voicelanguage}:g" \
3069 -e "s,@PWD@,${pwd},g" \
3070 -e "s,@HOSTCC@,${HOSTCC},g" \
3071 -e "s,@HOSTAR@,${HOSTAR},g" \
3072 -e "s,@CC@,${CC},g" \
3073 -e "s,@LD@,${LD},g" \
3074 -e "s,@AR@,${AR},g" \
3075 -e "s,@AS@,${AS},g" \
3076 -e "s,@OC@,${OC},g" \
3077 -e "s,@WINDRES@,${WINDRES},g" \
3078 -e "s,@DLLTOOL@,${DLLTOOL},g" \
3079 -e "s,@DLLWRAP@,${DLLWRAP},g" \
3080 -e "s,@RANLIB@,${RANLIB},g" \
3081 -e "s,@TOOL@,${tool},g" \
3082 -e "s,@BMP2RB_NATIVE@,${bmp2rb_native},g" \
3083 -e "s,@BMP2RB_MONO@,${bmp2rb_mono},g" \
3084 -e "s,@BMP2RB_REMOTENATIVE@,${bmp2rb_remotenative},g" \
3085 -e "s,@BMP2RB_REMOTEMONO@,${bmp2rb_remotemono},g" \
3086 -e "s,@OUTPUT@,${output},g" \
3087 -e "s,@APPEXTRA@,${appextra},g" \
3088 -e "s,@ARCHOSROM@,${archosrom},g" \
3089 -e "s,@FLASHFILE@,${flash},g" \
3090 -e "s,@PLUGINS@,${plugins},g" \
3091 -e "s,@CODECS@,${swcodec},g" \
3092 -e "s,@PROFILE_OPTS@,${PROFILE_OPTS},g" \
3093 -e "s,@SHARED_FLAG@,${SHARED_FLAG},g" \
3094 -e "s,@GCCOPTS@,${GCCOPTS},g" \
3095 -e "s,@TARGET_INC@,${TARGET_INC},g" \
3096 -e "s!@LDOPTS@!${LDOPTS}!g" \
3097 -e "s,@LOADADDRESS@,${loadaddress},g" \
3098 -e "s,@EXTRADEF@,${extradefines},g" \
3099 -e "s,@APPSDIR@,${appsdir},g" \
3100 -e "s,@FIRMDIR@,${firmdir},g" \
3101 -e "s,@TOOLSDIR@,${toolsdir},g" \
3102 -e "s,@APPS@,${apps},g" \
3103 -e "s,@SIMVER@,${simver},g" \
3104 -e "s,@GCCVER@,${gccver},g" \
3105 -e "s,@GCCNUM@,${gccnum},g" \
3106 -e "s,@UNAME@,${uname},g" \
3107 -e "s,@ENDIAN@,${defendian},g" \
3108 -e "s,@TOOLSET@,${toolset},g" \
3109 -e "${simmagic1}" \
3110 -e "${simmagic2}" \
3111 -e "s,@MANUALDEV@,${manualdev},g" \
3112 -e "s,@ENCODER@,${ENC_CMD},g" \
3113 -e "s,@ENC_OPTS@,${ENC_OPTS},g" \
3114 -e "s,@TTS_ENGINE@,${TTS_ENGINE},g" \
3115 -e "s,@TTS_OPTS@,${TTS_OPTS},g" \
3116 -e "s,@VOICETOOLSET@,${voicetoolset},g" \
3117 -e "s,@LANGS@,${buildlangs},g" \
3118 -e "s,@USE_ELF@,${USE_ELF},g" \
3119 -e "s,@RBDIR@,${rbdir},g" \
3120 -e "s,@PREFIX@,$PREFIX,g" \
3121 -e "s,@CMDLINE@,$cmdline,g" \
3122 -e "s,@SDLCONFIG@,$sdl,g" \
3123 <<EOF
3124 ## Automatically generated. http://www.rockbox.org/
3126 export ROOTDIR=@ROOTDIR@
3127 export FIRMDIR=@FIRMDIR@
3128 export APPSDIR=@APPSDIR@
3129 export TOOLSDIR=@TOOLSDIR@
3130 export DOCSDIR=\$(ROOTDIR)/docs
3131 export MANUALDIR=\${ROOTDIR}/manual
3132 export DEBUG=@DEBUG@
3133 export MODELNAME=@MODELNAME@
3134 export ARCHOSROM=@ARCHOSROM@
3135 export FLASHFILE=@FLASHFILE@
3136 export TARGET_ID=@TARGET_ID@
3137 export TARGET=@TARGET@
3138 export CPU=@CPU@
3139 export MANUFACTURER=@MANUFACTURER@
3140 export OBJDIR=@PWD@
3141 export BUILDDIR=@PWD@
3142 export LANGUAGE=@LANGUAGE@
3143 export VOICELANGUAGE=@VOICELANGUAGE@
3144 export MEMORYSIZE=@MEMORY@
3145 export BUILDDATE:=\$(shell date -u +'-DYEAR=%Y -DMONTH=%m -DDAY=%d')
3146 export MKFIRMWARE=@TOOL@
3147 export BMP2RB_MONO=@BMP2RB_MONO@
3148 export BMP2RB_NATIVE=@BMP2RB_NATIVE@
3149 export BMP2RB_REMOTEMONO=@BMP2RB_REMOTEMONO@
3150 export BMP2RB_REMOTENATIVE=@BMP2RB_REMOTENATIVE@
3151 export BINARY=@OUTPUT@
3152 export APPEXTRA=@APPEXTRA@
3153 export ENABLEDPLUGINS=@PLUGINS@
3154 export SOFTWARECODECS=@CODECS@
3155 export EXTRA_DEFINES=@EXTRADEF@
3156 export HOSTCC=@HOSTCC@
3157 export HOSTAR=@HOSTAR@
3158 export CC=@CC@
3159 export LD=@LD@
3160 export AR=@AR@
3161 export AS=@AS@
3162 export OC=@OC@
3163 export WINDRES=@WINDRES@
3164 export DLLTOOL=@DLLTOOL@
3165 export DLLWRAP=@DLLWRAP@
3166 export RANLIB=@RANLIB@
3167 export PREFIX=@PREFIX@
3168 export PROFILE_OPTS=@PROFILE_OPTS@
3169 export SIMVER=@SIMVER@
3170 export SIMDIR=\$(ROOTDIR)/uisimulator/sdl
3171 export GCCOPTS=@GCCOPTS@
3172 export TARGET_INC=@TARGET_INC@
3173 export LOADADDRESS=@LOADADDRESS@
3174 export SHARED_FLAG=@SHARED_FLAG@
3175 export LDOPTS=@LDOPTS@
3176 export GCCVER=@GCCVER@
3177 export GCCNUM=@GCCNUM@
3178 export UNAME=@UNAME@
3179 export MANUALDEV=@MANUALDEV@
3180 export TTS_OPTS=@TTS_OPTS@
3181 export TTS_ENGINE=@TTS_ENGINE@
3182 export ENC_OPTS=@ENC_OPTS@
3183 export ENCODER=@ENCODER@
3184 export USE_ELF=@USE_ELF@
3185 export RBDIR=@RBDIR@
3186 export SDLCONFIG=@SDLCONFIG@
3188 CONFIGURE_OPTIONS=@CMDLINE@
3190 include \$(TOOLSDIR)/root.make
3194 echo "Created Makefile"