Add support to buildzip.pl for Lua scripts
[kugel-rb.git] / tools / configure
blob5023b69331950af8298bf58b89936b5b000ca8f5
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"
16 scriptver=`echo '$Revision$' | sed -e 's:\\$::g' -e 's/Revision: //'`
18 rbdir=".rockbox"
21 # Begin Function Definitions
23 input() {
24 read response
25 echo $response
28 prefixtools () {
29 prefix="$1"
30 CC=${prefix}gcc
31 WINDRES=${prefix}windres
32 DLLTOOL=${prefix}dlltool
33 DLLWRAP=${prefix}dllwrap
34 RANLIB=${prefix}ranlib
35 LD=${prefix}ld
36 AR=${prefix}ar
37 AS=${prefix}as
38 OC=${prefix}objcopy
41 # scan the $PATH for the given command
42 findtool(){
43 file="$1"
45 IFS=":"
46 for path in $PATH
48 # echo "checks for $file in $path" >&2
49 if test -f "$path/$file"; then
50 echo "$path/$file"
51 return
53 done
54 # check whether caller wants literal return value if not found
55 if [ "$2" = "--lit" ]; then
56 echo "$file"
60 # scan the $PATH for sdl-config - if crosscompiling, require that it is
61 # a mingw32 sdl-config
62 findsdl(){
63 file="sdl-config"
65 IFS=":"
66 for path in $PATH
68 #echo "checks for $file in $path" >&2
69 if test -f "$path/$file"; then
70 if [ "yes" = "${crosscompile}" ]; then
71 if [ "0" != `$path/$file --libs |grep -c mwindows` ]; then
72 echo "$path/$file"
73 return
75 else
76 echo "$path/$file"
77 return
80 done
83 simcc () {
85 # default tool setup for native building
86 prefixtools ""
88 simver=sdl
89 GCCOPTS='-W -Wall -g -fno-builtin'
90 GCCOPTIMIZE=''
92 output="rockboxui" # use this as default output binary name
93 sdl=`findsdl`
94 sdl_cflags=""
95 sdl_libs=""
97 if [ $1 = "sdl" ]; then
98 if [ -z "$sdl" ]; then
99 echo "configure didn't find sdl-config, which indicates that you"
100 echo "don't have SDL (properly) installed. Please correct and"
101 echo "re-run configure!"
102 exit 1
103 else
104 # generic sdl-config checker
105 sdl_cflags=`$sdl --cflags`
106 sdl_libs=`$sdl --libs`
110 # default share option, override below if needed
111 SHARED_FLAG="-shared"
113 case $uname in
114 CYGWIN*)
115 echo "Cygwin host detected"
117 # sdl version
118 GCCOPTS="$GCCOPTS $sdl_cflags"
119 LDOPTS="-mconsole $sdl_libs"
121 output="rockboxui.exe" # use this as output binary name
124 MINGW*)
125 echo "MinGW host detected"
127 # sdl version
128 GCCOPTS="$GCCOPTS $sdl_cflags"
129 LDOPTS="-mconsole $sdl_libs"
131 output="rockboxui.exe" # use this as output binary name
134 Linux)
135 echo "Linux host detected"
136 GCCOPTS="$GCCOPTS $sdl_cflags"
137 LDOPTS="$sdl_libs"
140 FreeBSD)
141 echo "FreeBSD host detected"
142 # sdl version
143 GCCOPTS="$GCCOPTS $sdl_cflags"
144 LDOPTS="$sdl_libs"
147 Darwin)
148 echo "Darwin host detected"
149 # sdl version
150 GCCOPTS="$GCCOPTS $sdl_cflags"
151 LDOPTS="$sdl_libs"
152 SHARED_FLAG="-dynamiclib -Wl\,-single_module"
156 echo "[ERROR] Unsupported system: $uname, fix configure and retry"
157 exit 2
159 esac
161 GCCOPTS="$GCCOPTS -I\$(SIMDIR)"
163 if test "X$crosscompile" != "Xyes"; then
164 if [ "`uname -m`" = "x86_64" ] || [ "`uname -m`" = "amd64" ]; then
165 # fPIC is needed to make shared objects link
166 # setting visibility to hidden is necessary to avoid strange crashes
167 # due to symbol clashing
168 GCCOPTS="$GCCOPTS -fPIC -fvisibility=hidden"
171 id=$$
172 cat >$tmpdir/conftest-$id.c <<EOF
173 #include <stdio.h>
174 int main(int argc, char **argv)
176 int var=0;
177 char *varp = (char *)&var;
178 *varp=1;
180 printf("%d\n", var);
181 return 0;
185 $CC -o $tmpdir/conftest-$id $tmpdir/conftest-$id.c 2>/dev/null
187 if test `$tmpdir/conftest-$id 2>/dev/null` -gt "1"; then
188 # big endian
189 endian="big"
190 else
191 # little endian
192 endian="little"
195 if [ $1 = "sdl" ]; then
196 echo "Simulator environment deemed $endian endian"
197 elif [ $1 = "checkwps" ]; then
198 echo "CheckWPS environment deemed $endian endian"
201 # use wildcard here to make it work even if it was named *.exe like
202 # on cygwin
203 rm -f $tmpdir/conftest-$id*
204 else
205 # We are crosscompiling
206 # add cross-compiler option(s)
207 prefixtools i586-mingw32msvc-
208 LDOPTS="-mconsole $sdl_libs"
209 output="rockboxui.exe" # use this as output binary name
210 endian="little" # windows is little endian
215 # functions for setting up cross-compiler names and options
216 # also set endianess and what the exact recommended gcc version is
217 # the gcc version should most likely match what versions we build with
218 # rockboxdev.sh
220 shcc () {
221 prefixtools sh-elf-
222 GCCOPTS="$CCOPTS -m1"
223 GCCOPTIMIZE="-fomit-frame-pointer -fschedule-insns"
224 endian="big"
225 gccchoice="4.0.3"
228 calmrisccc () {
229 prefixtools calmrisc16-unknown-elf-
230 GCCOPTS="-Wl\,--no-check-sections $CCOPTS"
231 GCCOPTIMIZE="-fomit-frame-pointer"
232 endian="big"
235 coldfirecc () {
236 prefixtools m68k-elf-
237 GCCOPTS="$CCOPTS -m5206e -Wa\,-m5249 -malign-int -mstrict-align"
238 GCCOPTIMIZE="-fomit-frame-pointer"
239 endian="big"
240 gccchoice="3.4.6"
243 arm7tdmicc () {
244 prefixtools arm-elf-
245 GCCOPTS="$CCOPTS -mcpu=arm7tdmi"
246 if test "X$1" != "Xshort"; then
247 GCCOPTS="$GCCOPTS -mlong-calls"
249 GCCOPTIMIZE="-fomit-frame-pointer"
250 endian="little"
251 gccchoice="4.0.3"
254 arm9tdmicc () {
255 prefixtools arm-elf-
256 GCCOPTS="$CCOPTS -mcpu=arm9tdmi"
257 if test "$modelname" != "gigabeatf" -a "$t_manufacturer" != "as3525"; then
258 GCCOPTS="$GCCOPTS -mlong-calls"
260 GCCOPTIMIZE="-fomit-frame-pointer"
261 endian="little"
262 gccchoice="4.0.3"
265 arm940tbecc () {
266 prefixtools arm-elf-
267 GCCOPTS="$CCOPTS -mbig-endian -mcpu=arm940t -mlong-calls"
268 GCCOPTIMIZE="-fomit-frame-pointer"
269 endian="big"
270 gccchoice="4.0.3"
273 arm940tcc () {
274 prefixtools arm-elf-
275 GCCOPTS="$CCOPTS -mcpu=arm940t -mlong-calls"
276 GCCOPTIMIZE="-fomit-frame-pointer"
277 endian="little"
278 gccchoice="4.0.3"
281 arm946cc () {
282 prefixtools arm-elf-
283 GCCOPTS="$CCOPTS -mcpu=arm9e -mlong-calls"
284 GCCOPTIMIZE="-fomit-frame-pointer"
285 endian="little"
286 gccchoice="4.0.3"
289 arm926ejscc () {
290 prefixtools arm-elf-
291 GCCOPTS="$CCOPTS -mcpu=arm926ej-s -mlong-calls"
292 GCCOPTIMIZE="-fomit-frame-pointer"
293 endian="little"
294 gccchoice="4.0.3"
297 arm1136jfscc () {
298 prefixtools arm-elf-
299 GCCOPTS="$CCOPTS -mcpu=arm1136jf-s"
300 if test "$modelname" != "gigabeats"; then
301 GCCOPTS="$GCCOPTS -mlong-calls"
303 GCCOPTIMIZE="-fomit-frame-pointer"
304 endian="little"
305 gccchoice="4.0.3"
308 arm1176jzscc () {
309 prefixtools arm-elf-
310 GCCOPTS="$CCOPTS -mcpu=arm1176jz-s -mlong-calls"
311 GCCOPTIMIZE="-fomit-frame-pointer"
312 endian="little"
313 gccchoice="4.0.3"
316 mipselcc () {
317 prefixtools mipsel-elf-
318 GCCOPTS="$CCOPTS -march=mips32 -mtune=r4600 -mno-mips16 -mno-long-calls"
319 GCCOPTS="$GCCOPTS -ffunction-sections -msoft-float -G 0 -Wno-parentheses"
320 GCCOPTIMIZE="-fomit-frame-pointer"
321 endian="little"
322 gccchoice="4.1.2"
325 whichadvanced () {
326 atype=`echo "$1" | cut -c 2-`
327 ##################################################################
328 # Prompt for specific developer options
330 if [ "$atype" ]; then
331 interact=
332 else
333 interact=1
334 echo ""
335 echo "Enter your developer options (press enter when done)"
336 printf "(D)EBUG, (L)ogf, (S)imulator, (P)rofiling, (V)oice, (W)in32 crosscompile"
337 if [ "$memory" = "2" ]; then
338 printf ", (8)MB MOD"
340 if [ "$modelname" = "player" ]; then
341 printf ", Use (A)TA poweroff"
343 if [ "$t_model" = "ondio" ]; then
344 printf ", (B)acklight MOD"
346 if [ "$modelname" = "m5" ]; then
347 printf ", (F)M radio MOD"
349 if [ "$modelname" = "h120" ]; then
350 printf ", (R)TC MOD"
352 echo ""
355 cont=1
356 while [ $cont = "1" ]; do
358 if [ "$interact" ]; then
359 option=`input`
360 else
361 option=`echo "$atype" | cut -c 1`
364 case $option in
365 [Dd])
366 if [ "yes" = "$profile" ]; then
367 echo "Debug is incompatible with profiling"
368 else
369 echo "DEBUG build enabled"
370 use_debug="yes"
373 [Ll])
374 echo "logf() support enabled"
375 logf="yes"
377 [Ss])
378 echo "Simulator build enabled"
379 simulator="yes"
381 [Pp])
382 if [ "yes" = "$use_debug" ]; then
383 echo "Profiling is incompatible with debug"
384 else
385 echo "Profiling support is enabled"
386 profile="yes"
389 [Vv])
390 echo "Voice build selected"
391 voice="yes"
394 if [ "$memory" = "2" ]; then
395 memory="8"
396 echo "Memory size selected: 8MB"
399 [Aa])
400 if [ "$modelname" = "player" ]; then
401 have_ata_poweroff="#define HAVE_ATA_POWEROFF"
402 echo "ATA poweroff enabled"
405 [Bb])
406 if [ "$t_model" = "ondio" ]; then
407 have_backlight="#define HAVE_BACKLIGHT"
408 echo "Backlight functions enabled"
411 [Ff])
412 if [ "$modelname" = "m5" ]; then
413 have_fmradio_in="#define HAVE_FMRADIO_IN"
414 echo "FM radio functions enabled"
417 [Rr])
418 if [ "$modelname" = "h120" ]; then
419 config_rtc="#define CONFIG_RTC RTC_DS1339_DS3231"
420 have_rtc_alarm="#define HAVE_RTC_ALARM"
421 echo "RTC functions enabled (DS1339/DS3231)"
424 [Ww])
425 echo "Enabling Windows 32 cross-compiling"
426 crosscompile="yes"
429 if [ "$interact" ]; then
430 cont=0
431 else
432 echo "[ERROR] Option $option unsupported"
435 esac
436 if [ ! "$interact" ]; then
437 atype=`echo "$atype" | cut -c 2-`
438 [ "$atype" ] || cont=0
440 done
441 echo "done"
443 if [ "yes" = "$voice" ]; then
444 # Ask about languages to build
445 picklang
446 voicelanguage=`whichlang`
447 echo "Voice language set to $voicelanguage"
449 # Configure encoder and TTS engine for each language
450 for thislang in `echo $voicelanguage | sed 's/,/ /g'`; do
451 voiceconfig "$thislang"
452 done
454 if [ "yes" = "$use_debug" ]; then
455 debug="-DDEBUG"
456 GCCOPTS="$GCCOPTS -g -DDEBUG"
458 if [ "yes" = "$logf" ]; then
459 use_logf="#define ROCKBOX_HAS_LOGF 1"
461 if [ "yes" = "$simulator" ]; then
462 debug="-DDEBUG"
463 extradefines="$extradefines -DSIMULATOR"
464 archosrom=""
465 flash=""
467 if [ "yes" = "$profile" ]; then
468 extradefines="$extradefines -DRB_PROFILE"
469 PROFILE_OPTS="-finstrument-functions"
473 # Configure voice settings
474 voiceconfig () {
475 thislang=$1
476 if [ ! "$ARG_TTS" ]; then
477 echo "Building $thislang voice for $modelname. Select options"
478 echo ""
481 if [ -n "`findtool flite`" ]; then
482 FLITE="F(l)ite "
483 FLITE_OPTS=""
484 DEFAULT_TTS="flite"
485 DEFAULT_TTS_OPTS=$FLITE_OPTS
486 DEFAULT_NOISEFLOOR="500"
487 DEFAULT_CHOICE="L"
489 if [ -n "`findtool espeak`" ]; then
490 ESPEAK="(e)Speak "
491 ESPEAK_OPTS=""
492 DEFAULT_TTS="espeak"
493 DEFAULT_TTS_OPTS=$ESPEAK_OPTS
494 DEFAULT_NOISEFLOOR="500"
495 DEFAULT_CHOICE="e"
497 if [ -n "`findtool festival`" ]; then
498 FESTIVAL="(F)estival "
499 case "$thislang" in
500 "italiano")
501 FESTIVAL_OPTS="--language italian"
503 "espanol")
504 FESTIVAL_OPTS="--language spanish"
506 "finnish")
507 FESTIVAL_OPTS="--language finnish"
509 "czech")
510 FESTIVAL_OPTS="--language czech"
513 FESTIVAL_OPTS=""
515 esac
516 DEFAULT_TTS="festival"
517 DEFAULT_TTS_OPTS=$FESTIVAL_OPTS
518 DEFAULT_NOISEFLOOR="500"
519 DEFAULT_CHOICE="F"
521 if [ -n "`findtool swift`" ]; then
522 SWIFT="S(w)ift "
523 SWIFT_OPTS=""
524 DEFAULT_TTS="swift"
525 DEFAULT_TTS_OPTS=$SWIFT_OPTS
526 DEFAULT_NOISEFLOOR="500"
527 DEFAULT_CHOICE="w"
529 # Allow SAPI if Windows is in use
530 if [ -n "`findtool winver`" ]; then
531 SAPI="(S)API "
532 SAPI_OPTS=""
533 DEFAULT_TTS="sapi"
534 DEFAULT_TTS_OPTS=$SAPI_OPTS
535 DEFAULT_NOISEFLOOR="500"
536 DEFAULT_CHOICE="S"
539 if [ "$FESTIVAL" = "$FLITE" ] && [ "$FLITE" = "$ESPEAK" ] && [ "$ESPEAK" = "$SAPI" ] && [ "$SAPI" = "$SWIFT" ]; then
540 echo "You need Festival, eSpeak or Flite in your path, or SAPI available to build voice files"
541 exit 3
544 if [ "$ARG_TTS" ]; then
545 option=$ARG_TTS
546 else
547 echo "TTS engine to use: ${FLITE}${FESTIVAL}${ESPEAK}${SAPI}${SWIFT}(${DEFAULT_CHOICE})?"
548 option=`input`
550 advopts="$advopts --tts=$option"
551 case "$option" in
552 [Ll])
553 TTS_ENGINE="flite"
554 NOISEFLOOR="500" # TODO: check this value
555 TTS_OPTS=$FLITE_OPTS
557 [Ee])
558 TTS_ENGINE="espeak"
559 NOISEFLOOR="500"
560 TTS_OPTS=$ESPEAK_OPTS
562 [Ff])
563 TTS_ENGINE="festival"
564 NOISEFLOOR="500"
565 TTS_OPTS=$FESTIVAL_OPTS
567 [Ss])
568 TTS_ENGINE="sapi"
569 NOISEFLOOR="500"
570 TTS_OPTS=$SAPI_OPTS
572 [Ww])
573 TTS_ENGINE="swift"
574 NOISEFLOOR="500"
575 TTS_OPTS=$SWIFT_OPTS
578 TTS_ENGINE=$DEFAULT_TTS
579 TTS_OPTS=$DEFAULT_TTS_OPTS
580 NOISEFLOOR=$DEFAULT_NOISEFLOOR
581 esac
582 echo "Using $TTS_ENGINE for TTS"
584 # Select which voice to use for Festival
585 if [ "$TTS_ENGINE" = "festival" ]; then
586 voicelist=`echo "(voice.list)"|festival -i 2>/dev/null |tr "\n" " "|sed -e 's/.*festival> (\(.*\)) festival>/\1/'|sort`
587 for voice in $voicelist; do
588 TTS_FESTIVAL_VOICE="$voice" # Default choice
589 break
590 done
591 if [ "$ARG_VOICE" ]; then
592 CHOICE=$ARG_VOICE
593 else
595 for voice in $voicelist; do
596 printf "%3d. %s\n" "$i" "$voice"
597 i=`expr $i + 1`
598 done
599 printf "Please select which Festival voice to use (default is $TTS_FESTIVAL_VOICE): "
600 CHOICE=`input`
603 for voice in $voicelist; do
604 if [ "$i" = "$CHOICE" -o "$voice" = "$CHOICE" ]; then
605 TTS_FESTIVAL_VOICE="$voice"
607 i=`expr $i + 1`
608 done
609 advopts="$advopts --voice=$CHOICE"
610 echo "Festival voice set to $TTS_FESTIVAL_VOICE"
611 echo "(voice_$TTS_FESTIVAL_VOICE)" > festival-prolog.scm
614 # Allow the user to input manual commandline options
615 if [ "$ARG_TTSOPTS" ]; then
616 USER_TTS_OPTS=$ARG_TTSOPTS
617 else
618 printf "Enter $TTS_ENGINE options (enter for defaults \"$TTS_OPTS\"): "
619 USER_TTS_OPTS=`input`
620 echo ""
622 advopts="$advopts --ttsopts='$USER_TTS_OPTS'"
623 if [ -n "$USER_TTS_OPTS" ]; then
624 TTS_OPTS="$USER_TTS_OPTS"
626 echo "$TTS_ENGINE options set to $TTS_OPTS"
628 if [ "$swcodec" = "yes" ]; then
629 ENCODER="rbspeexenc"
630 ENC_CMD="rbspeexenc"
631 ENC_OPTS="-q 4 -c 10"
632 else
633 if [ -n "`findtool lame`" ]; then
634 ENCODER="lame"
635 ENC_CMD="lame"
636 ENC_OPTS="--resample 12 -t -m m -h -V 9.999 -S -B 64 --vbr-new"
637 else
638 echo "You need LAME in the system path to build voice files for"
639 echo "HWCODEC targets."
640 exit 4
644 echo "Using $ENCODER for encoding voice clips"
646 # Allow the user to input manual commandline options
647 if [ "$ARG_ENCOPTS" ]; then
648 USER_ENC_OPTS=$ARG_ENCOPTS
649 else
650 printf "Enter $ENCODER options (enter for defaults \"$ENC_OPTS\"): "
651 USER_ENC_OPTS=`input`
653 advopts="$advopts --encopts='$USER_ENC_OPTS'"
654 if [ -n "$USER_ENC_OPTS" ]; then
655 ENC_OPTS=$USER_ENC_OPTS
657 echo "$ENCODER options set to $ENC_OPTS"
659 TEMPDIR="${pwd}"
660 if [ -n "`findtool cygpath`" ]; then
661 TEMPDIR=`cygpath . -a -w`
665 picklang() {
666 # figure out which languages that are around
667 for file in $rootdir/apps/lang/*.lang; do
668 clean=`basename $file .lang`
669 langs="$langs $clean"
670 done
672 if [ "$ARG_LANG" ]; then
673 pick=$ARG_LANG
674 else
675 echo "Select a number for the language to use (default is english)"
676 # FIXME The multiple-language feature is currently broken
677 # echo "You may enter a comma-separated list of languages to build"
679 num=1
680 for one in $langs; do
681 echo "$num. $one"
682 num=`expr $num + 1`
683 done
684 pick=`input`
686 advopts="$advopts --language=$pick"
689 whichlang() {
690 output=""
691 # Allow the user to pass a comma-separated list of langauges
692 for thispick in `echo $pick | sed 's/,/ /g'`; do
693 num=1
694 for one in $langs; do
695 # Accept both the language number and name
696 if [ "$num" = "$thispick" ] || [ "$thispick" = "$one" ]; then
697 if [ "$output" = "" ]; then
698 output=$one
699 else
700 output=$output,$one
703 num=`expr $num + 1`
704 done
705 done
706 if [ -z "$output" ]; then
707 # pick a default
708 output="english"
710 echo $output
713 help() {
714 echo "Rockbox configure script."
715 echo "Invoke this in a directory to generate a Makefile to build Rockbox"
716 echo "Do *NOT* run this within the tools directory!"
717 echo ""
718 cat <<EOF
719 Usage: configure [OPTION]...
720 Options:
721 --target=TARGET Sets the target, TARGET can be either the target ID or
722 corresponding string. Run without this option to see all
723 available targets.
725 --ram=RAM Sets the RAM for certain targets. Even though any number
726 is accepted, not every number is correct. The default
727 value will be applied, if you entered a wrong number
728 (which depends on the target). Watch the output. Run
729 without this option if you are not sure which the right
730 number is.
732 --type=TYPE Sets the build type. Shortcuts are also valid.
733 Run without this option to see all available types.
734 Multiple values are allowed and managed in the input
735 order. So --type=b stands for Bootloader build, while
736 --type=ab stands for "Backlight MOD" build.
738 --language=LANG Set the language used for voice generation (used only if
739 TYPE is AV).
741 --tts=ENGINE Set the TTS engine used for voice generation (used only
742 if TYPE is AV).
744 --voice=VOICE Set voice to use with selected TTS (used only if TYPE is
745 AV).
747 --ttsopts=OPTS Set TTS engine manual options (used only if TYPE is AV).
749 --encopts=OPTS Set encoder manual options (used only if ATYPE is AV).
751 --rbdir=dir Use alternative rockbox directory (default: ${rbdir}).
752 This is useful for having multiple alternate builds on
753 your device that you can load with ROLO. However as the
754 bootloader looks for .rockbox you won't be able to boot
755 into this build.
757 --ccache Enable ccache use (done by default these days)
758 --no-ccache Disable ccache use
759 --help Shows this message (must not be used with other options)
763 exit
766 ARG_CCACHE=
767 ARG_ENCOPTS=
768 ARG_LANG=
769 ARG_RAM=
770 ARG_RBDIR=
771 ARG_TARGET=
772 ARG_TTS=
773 ARG_TTSOPTS=
774 ARG_TYPE=
775 ARG_VOICE=
776 err=
777 for arg in "$@"; do
778 case "$arg" in
779 --ccache) ARG_CCACHE=1;;
780 --encopts=*) ARG_ENCOPTS=`echo "$arg" | cut -d = -f 2`;;
781 --language=*) ARG_LANG=`echo "$arg" | cut -d = -f 2`;;
782 --no-ccache) ARG_CCACHE=0;;
783 --ram=*) ARG_RAM=`echo "$arg" | cut -d = -f 2`;;
784 --rbdir=*) ARG_RBDIR=`echo "$arg" | cut -d = -f 2`;;
785 --target=*) ARG_TARGET=`echo "$arg" | cut -d = -f 2`;;
786 --tts=*) ARG_TTS=`echo "$arg" | cut -d = -f 2`;;
787 --ttsopts=*) ARG_TTSOPTS=`echo "$arg" | cut -d = -f 2`;;
788 --type=*) ARG_TYPE=`echo "$arg" | cut -d = -f 2`;;
789 --voice=*) ARG_VOICE=`echo "$arg" | cut -d = -f 2`;;
790 --help) help;;
791 *) err=1; echo "[ERROR] Option '$arg' unsupported";;
792 esac
793 done
794 [ "$err" ] && exit 1
796 advopts=
798 if [ "$TMPDIR" != "" ]; then
799 tmpdir=$TMPDIR
800 else
801 tmpdir=/tmp
803 echo Using temporary directory $tmpdir
805 if test -r "configure"; then
806 # this is a check for a configure script in the current directory, it there
807 # is one, try to figure out if it is this one!
809 if { grep "^# Jukebox" configure >/dev/null 2>&1 ; } then
810 echo "WEEEEEEEEP. Don't run this configure script within the tools directory."
811 echo "It will only cause you pain and grief. Instead do this:"
812 echo ""
813 echo " cd .."
814 echo " mkdir build-dir"
815 echo " cd build-dir"
816 echo " ../tools/configure"
817 echo ""
818 echo "Much happiness will arise from this. Enjoy"
819 exit 5
823 # get our current directory
824 pwd=`pwd`;
826 if { echo $pwd | grep " "; } then
827 echo "You're running this script in a path that contains space. The build"
828 echo "system is unfortunately not clever enough to deal with this. Please"
829 echo "run the script from a different path, rename the path or fix the build"
830 echo "system!"
831 exit 6
834 if [ -z "$rootdir" ]; then
835 ##################################################################
836 # Figure out where the source code root is!
838 rootdir=`dirname $0`/../
840 #####################################################################
841 # Convert the possibly relative directory name to an absolute version
843 now=`pwd`
844 cd $rootdir
845 rootdir=`pwd`
847 # cd back to the build dir
848 cd $now
851 apps="apps"
852 appsdir='\$(ROOTDIR)/apps'
853 firmdir='\$(ROOTDIR)/firmware'
854 toolsdir='\$(ROOTDIR)/tools'
857 ##################################################################
858 # Figure out target platform
861 if [ "$ARG_TARGET" ]; then
862 buildfor=$ARG_TARGET
863 else
864 echo "Enter target platform:"
865 cat <<EOF
866 ==Archos== ==iriver== ==Apple iPod==
867 0) Player/Studio 10) H120/H140 20) Color/Photo
868 1) Recorder 11) H320/H340 21) Nano
869 2) FM Recorder 12) iHP-100/110/115 22) Video
870 3) Recorder v2 13) iFP-790 23) 3G
871 4) Ondio SP 14) H10 20Gb 24) 4G Grayscale
872 5) Ondio FM 15) H10 5/6Gb 25) Mini 1G
873 6) AV300 26) Mini 2G
874 ==Toshiba== 27) 1G, 2G
875 ==Cowon/iAudio== 40) Gigabeat F 28) Nano 2G
876 30) X5/X5V/X5L 41) Gigabeat S
877 31) M5/M5L ==SanDisk==
878 32) 7 ==Olympus= 50) Sansa e200
879 33) D2 70) M:Robe 500 51) Sansa e200R
880 34) M3/M3L 71) M:Robe 100 52) Sansa c200
881 53) Sansa m200
882 ==Creative== ==Philips== 54) Sansa c100
883 90) Zen Vision:M 30GB 100) GoGear SA9200 55) Sansa Clip
884 91) Zen Vision:M 60GB 101) GoGear HDD1630/ 56) Sansa e200v2
885 92) Zen Vision HDD1830 57) Sansa m200v4
886 58) Sansa Fuze
887 ==Onda== ==Meizu== 59) Sansa c200v2
888 120) VX747 110) M6SL 60) Sansa Clipv2
889 121) VX767 111) M6SP 61) Sansa View
890 122) VX747+ 112) M3
891 123) VX777 ==Logik==
892 80) DAX 1GB MP3/DAB
893 ==Samsung== ==Tatung==
894 140) YH-820 150) Elio TPJ-1022 ==Lyre project==
895 141) YH-920 130) Lyre proto 1
896 142) YH-925 131) Mini2440
897 143) YP-S3
900 buildfor=`input`;
903 # Set of tools built for all target platforms:
904 toolset="rdf2binary convbdf codepages"
906 # Toolsets for some target families:
907 archosbitmaptools="$toolset scramble descramble sh2d uclpack bmp2rb"
908 iriverbitmaptools="$toolset scramble descramble mkboot bmp2rb"
909 iaudiobitmaptools="$toolset scramble descramble mkboot bmp2rb"
910 ipodbitmaptools="$toolset scramble bmp2rb"
911 gigabeatbitmaptools="$toolset scramble descramble bmp2rb"
912 tccbitmaptools="$toolset scramble bmp2rb"
913 # generic is used by IFP, Meizu and Onda
914 genericbitmaptools="$toolset bmp2rb"
915 # scramble is used by all other targets
916 scramblebitmaptools="$genericbitmaptools scramble"
919 # ---- For each target ----
921 # *Variables*
922 # target_id: a unique number identifying this target, IS NOT the menu number.
923 # Just use the currently highest number+1 when you add a new
924 # target.
925 # modelname: short model name used all over to identify this target
926 # memory: number of megabytes of RAM this target has. If the amount can
927 # be selected by the size prompt, let memory be unset here
928 # target: -Ddefine passed to the build commands to make the correct
929 # config-*.h file get included etc
930 # tool: the tool that takes a plain binary and converts that into a
931 # working "firmware" file for your target
932 # output: the final output file name
933 # boottool: the tool that takes a plain binary and generates a bootloader
934 # file for your target (or blank to use $tool)
935 # bootoutput:the final output file name for the bootloader (or blank to use
936 # $output)
937 # appextra: passed to the APPEXTRA variable in the Makefiles.
938 # TODO: add proper explanation
939 # archosrom: used only for Archos targets that build a special flashable .ucl
940 # image.
941 # flash: name of output for flashing, for targets where there's a special
942 # file output for this.
943 # plugins: set to 'yes' to build the plugins. Early development builds can
944 # set this to no in the early stages to have an easier life for a
945 # while
946 # swcodec: set 'yes' on swcodec targets
947 # toolset: lists what particular tools in the tools/ directory that this
948 # target needs to have built prior to building Rockbox
950 # *Functions*
951 # *cc: sets up gcc and compiler options for your target builds. Note
952 # that if you select a simulator build, the compiler selection is
953 # overridden later in the script.
955 case $buildfor in
957 0|player)
958 target_id=1
959 modelname="player"
960 target="-DARCHOS_PLAYER"
961 shcc
962 tool="$rootdir/tools/scramble"
963 output="archos.mod"
964 appextra="player:gui"
965 archosrom="$pwd/rombox.ucl"
966 flash="$pwd/rockbox.ucl"
967 plugins="yes"
968 swcodec=""
970 # toolset is the tools within the tools directory that we build for
971 # this particular target.
972 toolset="$toolset scramble descramble sh2d player_unifont uclpack"
974 # Note: the convbdf is present in the toolset just because: 1) the
975 # firmware/Makefile assumes it is present always, and 2) we will need it when we
976 # build the player simulator
978 t_cpu="sh"
979 t_manufacturer="archos"
980 t_model="player"
983 1|recorder)
984 target_id=2
985 modelname="recorder"
986 target="-DARCHOS_RECORDER"
987 shcc
988 tool="$rootdir/tools/scramble"
989 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
990 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
991 output="ajbrec.ajz"
992 appextra="recorder:gui"
993 #archosrom="$pwd/rombox.ucl"
994 flash="$pwd/rockbox.ucl"
995 plugins="yes"
996 swcodec=""
997 # toolset is the tools within the tools directory that we build for
998 # this particular target.
999 toolset=$archosbitmaptools
1000 t_cpu="sh"
1001 t_manufacturer="archos"
1002 t_model="recorder"
1005 2|fmrecorder)
1006 target_id=3
1007 modelname="fmrecorder"
1008 target="-DARCHOS_FMRECORDER"
1009 shcc
1010 tool="$rootdir/tools/scramble -fm"
1011 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1012 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1013 output="ajbrec.ajz"
1014 appextra="recorder:gui"
1015 #archosrom="$pwd/rombox.ucl"
1016 flash="$pwd/rockbox.ucl"
1017 plugins="yes"
1018 swcodec=""
1019 # toolset is the tools within the tools directory that we build for
1020 # this particular target.
1021 toolset=$archosbitmaptools
1022 t_cpu="sh"
1023 t_manufacturer="archos"
1024 t_model="fm_v2"
1027 3|recorderv2)
1028 target_id=4
1029 modelname="recorderv2"
1030 target="-DARCHOS_RECORDERV2"
1031 shcc
1032 tool="$rootdir/tools/scramble -v2"
1033 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1034 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1035 output="ajbrec.ajz"
1036 appextra="recorder:gui"
1037 #archosrom="$pwd/rombox.ucl"
1038 flash="$pwd/rockbox.ucl"
1039 plugins="yes"
1040 swcodec=""
1041 # toolset is the tools within the tools directory that we build for
1042 # this particular target.
1043 toolset=$archosbitmaptools
1044 t_cpu="sh"
1045 t_manufacturer="archos"
1046 t_model="fm_v2"
1049 4|ondiosp)
1050 target_id=7
1051 modelname="ondiosp"
1052 target="-DARCHOS_ONDIOSP"
1053 shcc
1054 tool="$rootdir/tools/scramble -osp"
1055 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1056 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1057 output="ajbrec.ajz"
1058 appextra="recorder:gui"
1059 archosrom="$pwd/rombox.ucl"
1060 flash="$pwd/rockbox.ucl"
1061 plugins="yes"
1062 swcodec=""
1063 # toolset is the tools within the tools directory that we build for
1064 # this particular target.
1065 toolset=$archosbitmaptools
1066 t_cpu="sh"
1067 t_manufacturer="archos"
1068 t_model="ondio"
1071 5|ondiofm)
1072 target_id=8
1073 modelname="ondiofm"
1074 target="-DARCHOS_ONDIOFM"
1075 shcc
1076 tool="$rootdir/tools/scramble -ofm"
1077 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1078 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1079 output="ajbrec.ajz"
1080 appextra="recorder:gui"
1081 #archosrom="$pwd/rombox.ucl"
1082 flash="$pwd/rockbox.ucl"
1083 plugins="yes"
1084 swcodec=""
1085 toolset=$archosbitmaptools
1086 t_cpu="sh"
1087 t_manufacturer="archos"
1088 t_model="ondio"
1091 6|av300)
1092 target_id=38
1093 modelname="av300"
1094 target="-DARCHOS_AV300"
1095 memory=16 # always
1096 arm7tdmicc
1097 tool="$rootdir/tools/scramble -mm=C"
1098 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1099 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
1100 output="cjbm.ajz"
1101 appextra="recorder:gui"
1102 plugins="yes"
1103 swcodec=""
1104 # toolset is the tools within the tools directory that we build for
1105 # this particular target.
1106 toolset="$toolset scramble descramble bmp2rb"
1107 # architecture, manufacturer and model for the target-tree build
1108 t_cpu="arm"
1109 t_manufacturer="archos"
1110 t_model="av300"
1113 10|h120)
1114 target_id=9
1115 modelname="h120"
1116 target="-DIRIVER_H120"
1117 memory=32 # always
1118 coldfirecc
1119 tool="$rootdir/tools/scramble -add=h120"
1120 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1121 bmp2rb_native="$rootdir/tools/bmp2rb -f 2"
1122 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
1123 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0"
1124 output="rockbox.iriver"
1125 bootoutput="bootloader.iriver"
1126 appextra="recorder:gui"
1127 flash="$pwd/rombox.iriver"
1128 plugins="yes"
1129 swcodec="yes"
1130 # toolset is the tools within the tools directory that we build for
1131 # this particular target.
1132 toolset=$iriverbitmaptools
1133 t_cpu="coldfire"
1134 t_manufacturer="iriver"
1135 t_model="h100"
1138 11|h300)
1139 target_id=10
1140 modelname="h300"
1141 target="-DIRIVER_H300"
1142 memory=32 # always
1143 coldfirecc
1144 tool="$rootdir/tools/scramble -add=h300"
1145 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1146 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1147 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
1148 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0"
1149 output="rockbox.iriver"
1150 appextra="recorder:gui"
1151 plugins="yes"
1152 swcodec="yes"
1153 # toolset is the tools within the tools directory that we build for
1154 # this particular target.
1155 toolset=$iriverbitmaptools
1156 t_cpu="coldfire"
1157 t_manufacturer="iriver"
1158 t_model="h300"
1161 12|h100)
1162 target_id=11
1163 modelname="h100"
1164 target="-DIRIVER_H100"
1165 memory=16 # always
1166 coldfirecc
1167 tool="$rootdir/tools/scramble -add=h100"
1168 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1169 bmp2rb_native="$rootdir/tools/bmp2rb -f 2"
1170 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
1171 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0"
1172 output="rockbox.iriver"
1173 bootoutput="bootloader.iriver"
1174 appextra="recorder:gui"
1175 flash="$pwd/rombox.iriver"
1176 plugins="yes"
1177 swcodec="yes"
1178 # toolset is the tools within the tools directory that we build for
1179 # this particular target.
1180 toolset=$iriverbitmaptools
1181 t_cpu="coldfire"
1182 t_manufacturer="iriver"
1183 t_model="h100"
1186 13|ifp7xx)
1187 target_id=19
1188 modelname="ifp7xx"
1189 target="-DIRIVER_IFP7XX"
1190 memory=1
1191 arm7tdmicc short
1192 tool="cp"
1193 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1194 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1195 output="rockbox.wma"
1196 appextra="recorder:gui"
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=$genericbitmaptools
1202 t_cpu="arm"
1203 t_manufacturer="pnx0101"
1204 t_model="iriver-ifp7xx"
1207 14|h10)
1208 target_id=22
1209 modelname="h10"
1210 target="-DIRIVER_H10"
1211 memory=32 # always
1212 arm7tdmicc
1213 tool="$rootdir/tools/scramble -mi4v3 -model=h10 -type=RBOS"
1214 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1215 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
1216 output="rockbox.mi4"
1217 appextra="recorder:gui"
1218 plugins="yes"
1219 swcodec="yes"
1220 boottool="$rootdir/tools/scramble -mi4v3 -model=h10 -type=RBBL"
1221 bootoutput="H10_20GC.mi4"
1222 # toolset is the tools within the tools directory that we build for
1223 # this particular target.
1224 toolset=$scramblebitmaptools
1225 # architecture, manufacturer and model for the target-tree build
1226 t_cpu="arm"
1227 t_manufacturer="iriver"
1228 t_model="h10"
1231 15|h10_5gb)
1232 target_id=24
1233 modelname="h10_5gb"
1234 target="-DIRIVER_H10_5GB"
1235 memory=32 # always
1236 arm7tdmicc
1237 tool="$rootdir/tools/scramble -mi4v2 -model=h105 -type=RBOS"
1238 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1239 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
1240 output="rockbox.mi4"
1241 appextra="recorder:gui"
1242 plugins="yes"
1243 swcodec="yes"
1244 boottool="$rootdir/tools/scramble -mi4v2 -model=h105 -type=RBBL"
1245 bootoutput="H10.mi4"
1246 # toolset is the tools within the tools directory that we build for
1247 # this particular target.
1248 toolset=$scramblebitmaptools
1249 # architecture, manufacturer and model for the target-tree build
1250 t_cpu="arm"
1251 t_manufacturer="iriver"
1252 t_model="h10"
1255 20|ipodcolor)
1256 target_id=13
1257 modelname="ipodcolor"
1258 target="-DIPOD_COLOR"
1259 memory=32 # always
1260 arm7tdmicc
1261 tool="$rootdir/tools/scramble -add=ipco"
1262 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1263 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
1264 output="rockbox.ipod"
1265 appextra="recorder:gui"
1266 plugins="yes"
1267 swcodec="yes"
1268 bootoutput="bootloader-$modelname.ipod"
1269 # toolset is the tools within the tools directory that we build for
1270 # this particular target.
1271 toolset=$ipodbitmaptools
1272 # architecture, manufacturer and model for the target-tree build
1273 t_cpu="arm"
1274 t_manufacturer="ipod"
1275 t_model="color"
1278 21|ipodnano)
1279 target_id=14
1280 modelname="ipodnano"
1281 target="-DIPOD_NANO"
1282 memory=32 # always
1283 arm7tdmicc
1284 tool="$rootdir/tools/scramble -add=nano"
1285 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1286 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
1287 output="rockbox.ipod"
1288 appextra="recorder:gui"
1289 plugins="yes"
1290 swcodec="yes"
1291 bootoutput="bootloader-$modelname.ipod"
1292 # toolset is the tools within the tools directory that we build for
1293 # this particular target.
1294 toolset=$ipodbitmaptools
1295 # architecture, manufacturer and model for the target-tree build
1296 t_cpu="arm"
1297 t_manufacturer="ipod"
1298 t_model="nano"
1301 22|ipodvideo)
1302 target_id=15
1303 modelname="ipodvideo"
1304 target="-DIPOD_VIDEO"
1305 arm7tdmicc
1306 tool="$rootdir/tools/scramble -add=ipvd"
1307 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1308 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1309 output="rockbox.ipod"
1310 appextra="recorder:gui"
1311 plugins="yes"
1312 swcodec="yes"
1313 bootoutput="bootloader-$modelname.ipod"
1314 # toolset is the tools within the tools directory that we build for
1315 # this particular target.
1316 toolset=$ipodbitmaptools
1317 # architecture, manufacturer and model for the target-tree build
1318 t_cpu="arm"
1319 t_manufacturer="ipod"
1320 t_model="video"
1323 23|ipod3g)
1324 target_id=16
1325 modelname="ipod3g"
1326 target="-DIPOD_3G"
1327 memory=32 # always
1328 arm7tdmicc
1329 tool="$rootdir/tools/scramble -add=ip3g"
1330 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1331 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
1332 output="rockbox.ipod"
1333 appextra="recorder:gui"
1334 plugins="yes"
1335 swcodec="yes"
1336 bootoutput="bootloader-$modelname.ipod"
1337 # toolset is the tools within the tools directory that we build for
1338 # this particular target.
1339 toolset=$ipodbitmaptools
1340 # architecture, manufacturer and model for the target-tree build
1341 t_cpu="arm"
1342 t_manufacturer="ipod"
1343 t_model="3g"
1346 24|ipod4g)
1347 target_id=17
1348 modelname="ipod4g"
1349 target="-DIPOD_4G"
1350 memory=32 # always
1351 arm7tdmicc
1352 tool="$rootdir/tools/scramble -add=ip4g"
1353 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1354 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
1355 output="rockbox.ipod"
1356 appextra="recorder:gui"
1357 plugins="yes"
1358 swcodec="yes"
1359 bootoutput="bootloader-$modelname.ipod"
1360 # toolset is the tools within the tools directory that we build for
1361 # this particular target.
1362 toolset=$ipodbitmaptools
1363 # architecture, manufacturer and model for the target-tree build
1364 t_cpu="arm"
1365 t_manufacturer="ipod"
1366 t_model="4g"
1369 25|ipodmini)
1370 target_id=18
1371 modelname="ipodmini"
1372 target="-DIPOD_MINI"
1373 memory=32 # always
1374 arm7tdmicc
1375 tool="$rootdir/tools/scramble -add=mini"
1376 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1377 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
1378 output="rockbox.ipod"
1379 appextra="recorder:gui"
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="mini"
1392 26|ipodmini2g)
1393 target_id=21
1394 modelname="ipodmini2g"
1395 target="-DIPOD_MINI2G"
1396 memory=32 # always
1397 arm7tdmicc
1398 tool="$rootdir/tools/scramble -add=mn2g"
1399 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1400 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
1401 output="rockbox.ipod"
1402 appextra="recorder:gui"
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="mini2g"
1415 27|ipod1g2g)
1416 target_id=29
1417 modelname="ipod1g2g"
1418 target="-DIPOD_1G2G"
1419 memory=32 # always
1420 arm7tdmicc
1421 tool="$rootdir/tools/scramble -add=1g2g"
1422 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1423 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
1424 output="rockbox.ipod"
1425 appextra="recorder:gui"
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="1g2g"
1438 28|ipodnano2g)
1439 target_id=62
1440 modelname="ipodnano2g"
1441 target="-DIPOD_NANO2G"
1442 memory=32 # always
1443 arm940tcc
1444 tool="$rootdir/tools/scramble -add=nn2g"
1445 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1446 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1447 output="rockbox.ipod"
1448 appextra="recorder:gui"
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="s5l8700"
1458 t_model="ipodnano2g"
1461 30|x5)
1462 target_id=12
1463 modelname="x5"
1464 target="-DIAUDIO_X5"
1465 memory=16 # always
1466 coldfirecc
1467 tool="$rootdir/tools/scramble -add=iax5"
1468 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1469 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1470 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
1471 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 7"
1472 output="rockbox.iaudio"
1473 appextra="recorder:gui"
1474 plugins="yes"
1475 swcodec="yes"
1476 # toolset is the tools within the tools directory that we build for
1477 # this particular target.
1478 toolset="$iaudiobitmaptools"
1479 # architecture, manufacturer and model for the target-tree build
1480 t_cpu="coldfire"
1481 t_manufacturer="iaudio"
1482 t_model="x5"
1485 31|m5)
1486 target_id=28
1487 modelname="m5"
1488 target="-DIAUDIO_M5"
1489 memory=16 # always
1490 coldfirecc
1491 tool="$rootdir/tools/scramble -add=iam5"
1492 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1493 bmp2rb_native="$rootdir/tools/bmp2rb -f 2"
1494 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
1495 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 7"
1496 output="rockbox.iaudio"
1497 appextra="recorder:gui"
1498 plugins="yes"
1499 swcodec="yes"
1500 # toolset is the tools within the tools directory that we build for
1501 # this particular target.
1502 toolset="$iaudiobitmaptools"
1503 # architecture, manufacturer and model for the target-tree build
1504 t_cpu="coldfire"
1505 t_manufacturer="iaudio"
1506 t_model="m5"
1509 32|iaudio7)
1510 target_id=32
1511 modelname="iaudio7"
1512 target="-DIAUDIO_7"
1513 memory=16 # always
1514 arm946cc
1515 tool="$rootdir/tools/scramble -add=i7"
1516 boottool="$rootdir/tools/scramble -tcc=crc"
1517 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1518 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1519 output="rockbox.iaudio"
1520 appextra="recorder:gui"
1521 plugins="yes"
1522 swcodec="yes"
1523 bootoutput="I7_FW.BIN"
1524 # toolset is the tools within the tools directory that we build for
1525 # this particular target.
1526 toolset="$tccbitmaptools"
1527 # architecture, manufacturer and model for the target-tree build
1528 t_cpu="arm"
1529 t_manufacturer="tcc77x"
1530 t_model="iaudio7"
1533 33|cowond2)
1534 target_id=34
1535 modelname="cowond2"
1536 target="-DCOWON_D2"
1537 memory=32
1538 arm926ejscc
1539 tool="$rootdir/tools/scramble -add=d2"
1540 boottool="$rootdir/tools/scramble -tcc=crc"
1541 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1542 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1543 output="rockbox.d2"
1544 appextra="recorder:gui"
1545 plugins="yes"
1546 swcodec="yes"
1547 toolset="$tccbitmaptools"
1548 # architecture, manufacturer and model for the target-tree build
1549 t_cpu="arm"
1550 t_manufacturer="tcc780x"
1551 t_model="cowond2"
1554 34|m3)
1555 target_id=37
1556 modelname="m3"
1557 target="-DIAUDIO_M3"
1558 memory=16 # always
1559 coldfirecc
1560 tool="$rootdir/tools/scramble -add=iam3"
1561 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1562 bmp2rb_native="$rootdir/tools/bmp2rb -f 7"
1563 output="rockbox.iaudio"
1564 appextra="recorder:gui"
1565 plugins="yes"
1566 swcodec="yes"
1567 # toolset is the tools within the tools directory that we build for
1568 # this particular target.
1569 toolset="$iaudiobitmaptools"
1570 # architecture, manufacturer and model for the target-tree build
1571 t_cpu="coldfire"
1572 t_manufacturer="iaudio"
1573 t_model="m3"
1576 40|gigabeatf)
1577 target_id=20
1578 modelname="gigabeatf"
1579 target="-DGIGABEAT_F"
1580 memory=32 # always
1581 arm9tdmicc
1582 tool="$rootdir/tools/scramble -add=giga"
1583 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1584 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1585 output="rockbox.gigabeat"
1586 appextra="recorder:gui"
1587 plugins="yes"
1588 swcodec="yes"
1589 toolset=$gigabeatbitmaptools
1590 boottool="$rootdir/tools/scramble -gigabeat"
1591 bootoutput="FWIMG01.DAT"
1592 # architecture, manufacturer and model for the target-tree build
1593 t_cpu="arm"
1594 t_manufacturer="s3c2440"
1595 t_model="gigabeat-fx"
1598 41|gigabeats)
1599 target_id=26
1600 modelname="gigabeats"
1601 target="-DGIGABEAT_S"
1602 memory=64
1603 arm1136jfscc
1604 tool="$rootdir/tools/scramble -add=gigs"
1605 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1606 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1607 output="rockbox.gigabeat"
1608 appextra="recorder:gui"
1609 plugins="yes"
1610 swcodec="yes"
1611 toolset="$gigabeatbitmaptools"
1612 boottool="$rootdir/tools/scramble -gigabeats"
1613 bootoutput="nk.bin"
1614 # architecture, manufacturer and model for the target-tree build
1615 t_cpu="arm"
1616 t_manufacturer="imx31"
1617 t_model="gigabeat-s"
1620 70|mrobe500)
1621 target_id=36
1622 modelname="mrobe500"
1623 target="-DMROBE_500"
1624 memory=64 # always
1625 arm926ejscc
1626 tool="$rootdir/tools/scramble -add=m500"
1627 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1628 bmp2rb_native="$rootdir/tools/bmp2rb -f 8"
1629 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
1630 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0"
1631 output="rockbox.mrobe500"
1632 appextra="recorder:gui"
1633 plugins="yes"
1634 swcodec="yes"
1635 toolset=$gigabeatbitmaptools
1636 boottool="cp "
1637 bootoutput="rockbox.mrboot"
1638 # architecture, manufacturer and model for the target-tree build
1639 t_cpu="arm"
1640 t_manufacturer="tms320dm320"
1641 t_model="mrobe-500"
1644 71|mrobe100)
1645 target_id=33
1646 modelname="mrobe100"
1647 target="-DMROBE_100"
1648 memory=32 # always
1649 arm7tdmicc
1650 tool="$rootdir/tools/scramble -mi4v2 -model=m100 -type=RBOS"
1651 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1652 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1653 bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
1654 bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0"
1655 output="rockbox.mi4"
1656 appextra="recorder:gui"
1657 plugins="yes"
1658 swcodec="yes"
1659 boottool="$rootdir/tools/scramble -mi4v2 -model=m100 -type=RBBL"
1660 bootoutput="pp5020.mi4"
1661 # toolset is the tools within the tools directory that we build for
1662 # this particular target.
1663 toolset=$scramblebitmaptools
1664 # architecture, manufacturer and model for the target-tree build
1665 t_cpu="arm"
1666 t_manufacturer="olympus"
1667 t_model="mrobe-100"
1670 80|logikdax)
1671 target_id=31
1672 modelname="logikdax"
1673 target="-DLOGIK_DAX"
1674 memory=2 # always
1675 arm946cc
1676 tool="$rootdir/tools/scramble -add=ldax"
1677 boottool="$rootdir/tools/scramble -tcc=crc"
1678 bootoutput="player.rom"
1679 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1680 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1681 output="rockbox.logik"
1682 appextra="recorder:gui"
1683 plugins=""
1684 swcodec="yes"
1685 # toolset is the tools within the tools directory that we build for
1686 # this particular target.
1687 toolset=$tccbitmaptools
1688 # architecture, manufacturer and model for the target-tree build
1689 t_cpu="arm"
1690 t_manufacturer="tcc77x"
1691 t_model="logikdax"
1694 90|creativezvm30gb)
1695 target_id=35
1696 modelname="creativezvm30gb"
1697 target="-DCREATIVE_ZVM"
1698 memory=64
1699 arm926ejscc
1700 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1701 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1702 tool="$rootdir/tools/scramble -creative=zvm"
1703 USE_ELF="yes"
1704 output="rockbox.zvm"
1705 appextra="recorder:gui"
1706 plugins="yes"
1707 swcodec="yes"
1708 toolset=$ipodbitmaptools
1709 boottool="$rootdir/tools/scramble -creative=zvm -no-ciff"
1710 bootoutput="rockbox.zvmboot"
1711 # architecture, manufacturer and model for the target-tree build
1712 t_cpu="arm"
1713 t_manufacturer="tms320dm320"
1714 t_model="creative-zvm"
1717 91|creativezvm60gb)
1718 target_id=40
1719 modelname="creativezvm60gb"
1720 target="-DCREATIVE_ZVM60GB"
1721 memory=64
1722 arm926ejscc
1723 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1724 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1725 tool="$rootdir/tools/scramble -creative=zvm60 -no-ciff"
1726 USE_ELF="yes"
1727 output="rockbox.zvm60"
1728 appextra="recorder:gui"
1729 plugins="yes"
1730 swcodec="yes"
1731 toolset=$ipodbitmaptools
1732 boottool="$rootdir/tools/scramble -creative=zvm60"
1733 bootoutput="rockbox.zvm60boot"
1734 # architecture, manufacturer and model for the target-tree build
1735 t_cpu="arm"
1736 t_manufacturer="tms320dm320"
1737 t_model="creative-zvm"
1740 92|creativezenvision)
1741 target_id=39
1742 modelname="creativezenvision"
1743 target="-DCREATIVE_ZV"
1744 memory=64
1745 arm926ejscc
1746 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1747 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1748 tool="$rootdir/tools/scramble -creative=zenvision -no-ciff"
1749 USE_ELF="yes"
1750 output="rockbox.zv"
1751 appextra="recorder:gui"
1752 plugins=""
1753 swcodec="yes"
1754 toolset=$ipodbitmaptools
1755 boottool="$rootdir/tools/scramble -creative=zenvision"
1756 bootoutput="rockbox.zvboot"
1757 # architecture, manufacturer and model for the target-tree build
1758 t_cpu="arm"
1759 t_manufacturer="tms320dm320"
1760 t_model="creative-zvm"
1763 50|e200)
1764 target_id=23
1765 modelname="e200"
1766 target="-DSANSA_E200"
1767 memory=32 # supposedly
1768 arm7tdmicc
1769 tool="$rootdir/tools/scramble -mi4v3 -model=e200 -type=RBOS"
1770 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1771 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1772 output="rockbox.mi4"
1773 appextra="recorder:gui"
1774 plugins="yes"
1775 swcodec="yes"
1776 boottool="$rootdir/tools/scramble -mi4v3 -model=e200 -type=RBBL"
1777 bootoutput="PP5022.mi4"
1778 # toolset is the tools within the tools directory that we build for
1779 # this particular target.
1780 toolset=$scramblebitmaptools
1781 # architecture, manufacturer and model for the target-tree build
1782 t_cpu="arm"
1783 t_manufacturer="sandisk"
1784 t_model="sansa-e200"
1787 51|e200r)
1788 # the e200R model is pretty much identical to the e200, it only has a
1789 # different option to the scramble tool when building a bootloader and
1790 # makes the bootloader output file name in all lower case.
1791 target_id=27
1792 modelname="e200r"
1793 target="-DSANSA_E200"
1794 memory=32 # supposedly
1795 arm7tdmicc
1796 tool="$rootdir/tools/scramble -mi4v3 -model=e20r -type=RBOS"
1797 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1798 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1799 output="rockbox.mi4"
1800 appextra="recorder:gui"
1801 plugins="yes"
1802 swcodec="yes"
1803 boottool="$rootdir/tools/scramble -mi4r -model=e20r -type=RBBL"
1804 bootoutput="pp5022.mi4"
1805 # toolset is the tools within the tools directory that we build for
1806 # this particular target.
1807 toolset=$scramblebitmaptools
1808 # architecture, manufacturer and model for the target-tree build
1809 t_cpu="arm"
1810 t_manufacturer="sandisk"
1811 t_model="sansa-e200"
1814 52|c200)
1815 target_id=30
1816 modelname="c200"
1817 target="-DSANSA_C200"
1818 memory=32 # supposedly
1819 arm7tdmicc
1820 tool="$rootdir/tools/scramble -mi4v3 -model=c200 -type=RBOS"
1821 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1822 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1823 output="rockbox.mi4"
1824 appextra="recorder:gui"
1825 plugins="yes"
1826 swcodec="yes"
1827 boottool="$rootdir/tools/scramble -mi4v3 -model=c200 -type=RBBL"
1828 bootoutput="firmware.mi4"
1829 # toolset is the tools within the tools directory that we build for
1830 # this particular target.
1831 toolset=$scramblebitmaptools
1832 # architecture, manufacturer and model for the target-tree build
1833 t_cpu="arm"
1834 t_manufacturer="sandisk"
1835 t_model="sansa-c200"
1838 53|m200)
1839 target_id=48
1840 modelname="m200"
1841 target="-DSANSA_M200"
1842 memory=1 # always
1843 arm946cc
1844 tool="$rootdir/tools/scramble -add=m200"
1845 boottool="$rootdir/tools/scramble -tcc=crc"
1846 bootoutput="player.rom"
1847 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1848 bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
1849 output="rockbox.m200"
1850 appextra="recorder:gui"
1851 plugins=""
1852 swcodec="yes"
1853 # toolset is the tools within the tools directory that we build for
1854 # this particular target.
1855 toolset=$tccbitmaptools
1856 # architecture, manufacturer and model for the target-tree build
1857 t_cpu="arm"
1858 t_manufacturer="tcc77x"
1859 t_model="m200"
1862 54|c100)
1863 target_id=42
1864 modelname="c100"
1865 target="-DSANSA_C100"
1866 memory=2
1867 arm946cc
1868 tool="$rootdir/tools/scramble -add=c100"
1869 boottool="$rootdir/tools/scramble -tcc=crc"
1870 bootoutput="player.rom"
1871 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1872 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1873 output="rockbox.c100"
1874 appextra="recorder:gui"
1875 plugins=""
1876 swcodec="yes"
1877 # toolset is the tools within the tools directory that we build for
1878 # this particular target.
1879 toolset=$tccbitmaptools
1880 # architecture, manufacturer and model for the target-tree build
1881 t_cpu="arm"
1882 t_manufacturer="tcc77x"
1883 t_model="c100"
1886 55|Clip|clip)
1887 target_id=50
1888 modelname="clip"
1889 target="-DSANSA_CLIP"
1890 memory=2
1891 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1892 bmp2rb_native="$bmp2rb_mono"
1893 tool="$rootdir/tools/scramble -add=clip"
1894 output="rockbox.sansa"
1895 bootoutput="bootloader-clip.sansa"
1896 appextra="recorder:gui"
1897 plugins="yes"
1898 swcodec="yes"
1899 toolset=$scramblebitmaptools
1900 t_cpu="arm"
1901 t_manufacturer="as3525"
1902 t_model="sansa-clip"
1903 arm9tdmicc
1907 56|e200v2)
1908 target_id=51
1909 modelname="e200v2"
1910 target="-DSANSA_E200V2"
1911 memory=8
1912 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1913 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1914 tool="$rootdir/tools/scramble -add=e2v2"
1915 output="rockbox.sansa"
1916 bootoutput="bootloader-e200v2.sansa"
1917 appextra="recorder:gui"
1918 plugins="yes"
1919 swcodec="yes"
1920 toolset=$scramblebitmaptools
1921 t_cpu="arm"
1922 t_manufacturer="as3525"
1923 t_model="sansa-e200v2"
1924 arm9tdmicc
1928 57|m200v4)
1929 target_id=52
1930 modelname="m200v4"
1931 target="-DSANSA_M200V4"
1932 memory=2
1933 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1934 bmp2rb_native="$bmp2rb_mono"
1935 tool="$rootdir/tools/scramble -add=m2v4"
1936 output="rockbox.sansa"
1937 bootoutput="bootloader-m200v4.sansa"
1938 appextra="recorder:gui"
1939 plugins="yes"
1940 swcodec="yes"
1941 toolset=$scramblebitmaptools
1942 t_cpu="arm"
1943 t_manufacturer="as3525"
1944 t_model="sansa-m200v4"
1945 arm9tdmicc
1949 58|fuze)
1950 target_id=53
1951 modelname="fuze"
1952 target="-DSANSA_FUZE"
1953 memory=8
1954 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1955 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1956 tool="$rootdir/tools/scramble -add=fuze"
1957 output="rockbox.sansa"
1958 bootoutput="bootloader-fuze.sansa"
1959 appextra="recorder:gui"
1960 plugins="yes"
1961 swcodec="yes"
1962 toolset=$scramblebitmaptools
1963 t_cpu="arm"
1964 t_manufacturer="as3525"
1965 t_model="sansa-fuze"
1966 arm9tdmicc
1970 59|c200v2)
1971 target_id=55
1972 modelname="c200v2"
1973 target="-DSANSA_C200V2"
1974 memory=2 # as per OF diagnosis mode
1975 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1976 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1977 tool="$rootdir/tools/scramble -add=c2v2"
1978 output="rockbox.sansa"
1979 bootoutput="bootloader-c200v2.sansa"
1980 appextra="recorder:gui"
1981 plugins="yes"
1982 swcodec="yes"
1983 # toolset is the tools within the tools directory that we build for
1984 # this particular target.
1985 toolset=$scramblebitmaptools
1986 # architecture, manufacturer and model for the target-tree build
1987 t_cpu="arm"
1988 t_manufacturer="as3525"
1989 t_model="sansa-c200v2"
1990 arm9tdmicc
1993 60|Clipv2|clipv2)
1994 echo "Sansa Clipv2 is not yet supported !"
1995 exit 1
1996 target_id=60
1997 modelname="clipv2"
1998 target="-DSANSA_CLIPV2"
1999 memory=8
2000 arm926ejscc
2001 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2002 bmp2rb_native="$bmp2rb_mono"
2003 tool="$rootdir/tools/scramble -add=clv2"
2004 output="rockbox.sansa"
2005 bootoutput="bootloader-clipv2.sansa"
2006 appextra="recorder:gui"
2007 plugins="yes"
2008 swcodec="yes"
2009 toolset=$scramblebitmaptools
2010 t_cpu="arm"
2011 t_manufacturer="as3525"
2012 t_model="sansa-clipv2"
2015 61|view)
2016 echo "Sansa View is not yet supported!"
2017 exit 1
2018 target_id=63
2019 modelname="view"
2020 target="-DSANSA_VIEW"
2021 memory=32
2022 arm1176jzscc
2023 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2024 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2025 output="rockbox.mi4"
2026 appextra="gui"
2027 plugins=""
2028 swcodec="yes"
2029 boottool="$rootdir/tools/scramble -mi4v3 -model=view -type=RBBL"
2030 bootoutput="firmware.mi4"
2031 # toolset is the tools within the tools directory that we build for
2032 # this particular target.
2033 toolset=$scramblebitmaptools
2034 t_cpu="arm"
2035 t_manufacturer="sandisk"
2036 t_model="sansa-view"
2039 150|tpj1022)
2040 target_id=25
2041 modelname="tpj1022"
2042 target="-DELIO_TPJ1022"
2043 memory=32 # always
2044 arm7tdmicc
2045 tool="$rootdir/tools/scramble -add tpj2"
2046 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2047 bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
2048 output="rockbox.elio"
2049 appextra="recorder:gui"
2050 plugins="yes"
2051 swcodec="yes"
2052 boottool="$rootdir/tools/scramble -mi4v2"
2053 bootoutput="pp5020.mi4"
2054 # toolset is the tools within the tools directory that we build for
2055 # this particular target.
2056 toolset=$scramblebitmaptools
2057 # architecture, manufacturer and model for the target-tree build
2058 t_cpu="arm"
2059 t_manufacturer="tatung"
2060 t_model="tpj1022"
2063 100|sa9200)
2064 target_id=41
2065 modelname="sa9200"
2066 target="-DPHILIPS_SA9200"
2067 memory=32 # supposedly
2068 arm7tdmicc
2069 tool="$rootdir/tools/scramble -mi4v3 -model=9200 -type=RBOS"
2070 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2071 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2072 output="rockbox.mi4"
2073 appextra="recorder:gui"
2074 plugins=""
2075 swcodec="yes"
2076 boottool="$rootdir/tools/scramble -mi4v3 -model=9200 -type=RBBL"
2077 bootoutput="FWImage.ebn"
2078 # toolset is the tools within the tools directory that we build for
2079 # this particular target.
2080 toolset=$scramblebitmaptools
2081 # architecture, manufacturer and model for the target-tree build
2082 t_cpu="arm"
2083 t_manufacturer="philips"
2084 t_model="sa9200"
2087 101|hdd1630)
2088 target_id=43
2089 modelname="hdd1630"
2090 target="-DPHILIPS_HDD1630"
2091 memory=32 # supposedly
2092 arm7tdmicc
2093 tool="$rootdir/tools/scramble -mi4v3 -model=1630 -type=RBOS"
2094 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2095 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2096 output="rockbox.mi4"
2097 appextra="recorder:gui"
2098 plugins="yes"
2099 swcodec="yes"
2100 boottool="$rootdir/tools/scramble -mi4v3 -model=1630 -type=RBBL"
2101 bootoutput="FWImage.ebn"
2102 # toolset is the tools within the tools directory that we build for
2103 # this particular target.
2104 toolset=$scramblebitmaptools
2105 # architecture, manufacturer and model for the target-tree build
2106 t_cpu="arm"
2107 t_manufacturer="philips"
2108 t_model="hdd1630"
2111 110|meizum6sl)
2112 target_id=49
2113 modelname="meizum6sl"
2114 target="-DMEIZU_M6SL"
2115 memory=16 # always
2116 arm940tbecc
2117 tool="cp"
2118 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2119 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2120 output="rockbox.meizu"
2121 appextra="recorder:gui"
2122 plugins="no" #FIXME
2123 swcodec="yes"
2124 toolset=$genericbitmaptools
2125 boottool="cp"
2126 bootoutput="rockboot.ebn"
2127 # architecture, manufacturer and model for the target-tree build
2128 t_cpu="arm"
2129 t_manufacturer="s5l8700"
2130 t_model="meizu-m6sl"
2133 111|meizum6sp)
2134 target_id=46
2135 modelname="meizum6sp"
2136 target="-DMEIZU_M6SP"
2137 memory=16 # always
2138 arm940tbecc
2139 tool="cp"
2140 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2141 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2142 output="rockbox.meizu"
2143 appextra="recorder:gui"
2144 plugins="no" #FIXME
2145 swcodec="yes"
2146 toolset=$genericbitmaptools
2147 boottool="cp"
2148 bootoutput="rockboot.ebn"
2149 # architecture, manufacturer and model for the target-tree build
2150 t_cpu="arm"
2151 t_manufacturer="s5l8700"
2152 t_model="meizu-m6sp"
2155 112|meizum3)
2156 target_id=47
2157 modelname="meizum3"
2158 target="-DMEIZU_M3"
2159 memory=16 # always
2160 arm940tbecc
2161 tool="cp"
2162 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2163 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2164 output="rockbox.meizu"
2165 appextra="recorder:gui"
2166 plugins="no" #FIXME
2167 swcodec="yes"
2168 toolset=$genericbitmaptools
2169 boottool="cp"
2170 bootoutput="rockboot.ebn"
2171 # architecture, manufacturer and model for the target-tree build
2172 t_cpu="arm"
2173 t_manufacturer="s5l8700"
2174 t_model="meizu-m3"
2177 120|ondavx747)
2178 target_id=45
2179 modelname="ondavx747"
2180 target="-DONDA_VX747"
2181 memory=16
2182 mipselcc
2183 tool="$rootdir/tools/scramble -add=x747"
2184 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2185 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2186 output="rockbox.vx747"
2187 appextra="recorder:gui"
2188 plugins="yes"
2189 swcodec="yes"
2190 toolset=$genericbitmaptools
2191 boottool="$rootdir/tools/scramble -ccpmp"
2192 bootoutput="ccpmp.bin"
2193 # architecture, manufacturer and model for the target-tree build
2194 t_cpu="mips"
2195 t_manufacturer="ingenic_jz47xx"
2196 t_model="onda_vx747"
2199 121|ondavx767)
2200 target_id=64
2201 modelname="ondavx767"
2202 target="-DONDA_VX767"
2203 memory=16 #FIXME
2204 mipselcc
2205 tool="cp"
2206 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2207 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2208 output="rockbox.vx767"
2209 appextra="recorder:gui"
2210 plugins="" #FIXME
2211 swcodec="yes"
2212 toolset=$genericbitmaptools
2213 boottool="$rootdir/tools/scramble -ccpmp"
2214 bootoutput="ccpmp.bin"
2215 # architecture, manufacturer and model for the target-tree build
2216 t_cpu="mips"
2217 t_manufacturer="ingenic_jz47xx"
2218 t_model="onda_vx767"
2221 122|ondavx747p)
2222 target_id=54
2223 modelname="ondavx747p"
2224 target="-DONDA_VX747P"
2225 memory=16
2226 mipselcc
2227 tool="$rootdir/tools/scramble -add=747p"
2228 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2229 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2230 output="rockbox.vx747p"
2231 appextra="recorder:gui"
2232 plugins="yes"
2233 swcodec="yes"
2234 toolset=$genericbitmaptools
2235 boottool="$rootdir/tools/scramble -ccpmp"
2236 bootoutput="ccpmp.bin"
2237 # architecture, manufacturer and model for the target-tree build
2238 t_cpu="mips"
2239 t_manufacturer="ingenic_jz47xx"
2240 t_model="onda_vx747"
2243 123|ondavx777)
2244 target_id=61
2245 modelname="ondavx777"
2246 target="-DONDA_VX777"
2247 memory=16
2248 mipselcc
2249 tool="$rootdir/tools/scramble -add=x777"
2250 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2251 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2252 output="rockbox.vx777"
2253 appextra="recorder:gui"
2254 plugins="yes"
2255 swcodec="yes"
2256 toolset=$genericbitmaptools
2257 boottool="$rootdir/tools/scramble -ccpmp"
2258 bootoutput="ccpmp.bin"
2259 # architecture, manufacturer and model for the target-tree build
2260 t_cpu="mips"
2261 t_manufacturer="ingenic_jz47xx"
2262 t_model="onda_vx747"
2265 130|lyre_proto1)
2266 target_id=56
2267 modelname="lyre_proto1"
2268 target="-DLYRE_PROTO1"
2269 memory=64
2270 arm926ejscc
2271 tool="cp"
2272 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2273 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2274 output="rockbox.lyre"
2275 appextra="recorder:gui"
2276 plugins=""
2277 swcodec="yes"
2278 toolset=$scramblebitmaptools
2279 boottool="cp"
2280 bootoutput="bootloader-proto1.lyre"
2281 # architecture, manufacturer and model for the target-tree build
2282 t_cpu="arm"
2283 t_manufacturer="at91sam"
2284 t_model="lyre_proto1"
2287 131|mini2440)
2288 target_id=99
2289 modelname="mini2440"
2290 target="-DMINI2440"
2291 memory=64
2292 arm9tdmicc
2293 tool="$rootdir/tools/scramble -add=m244"
2294 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2295 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2296 output="rockbox.mini2440"
2297 appextra="recorder:gui"
2298 plugins=""
2299 swcodec="yes"
2300 toolset=$scramblebitmaptools
2301 boottool="cp"
2302 bootoutput="bootloader-mini2440.lyre"
2303 # architecture, manufacturer and model for the target-tree build
2304 t_cpu="arm"
2305 t_manufacturer="s3c2440"
2306 t_model="mini2440"
2309 140|yh820)
2310 target_id=57
2311 modelname="yh820"
2312 target="-DSAMSUNG_YH820"
2313 memory=32 # always
2314 arm7tdmicc
2315 tool="$rootdir/tools/scramble -mi4v2 -model=y820 -type=RBOS"
2316 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2317 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2318 output="rockbox.mi4"
2319 appextra="recorder:gui"
2320 plugins="yes"
2321 swcodec="yes"
2322 boottool="$rootdir/tools/scramble -mi4v2 -model=y820 -type=RBBL"
2323 bootoutput="FW_YH820.mi4"
2324 # toolset is the tools within the tools directory that we build for
2325 # this particular target.
2326 toolset=$scramblebitmaptools
2327 # architecture, manufacturer and model for the target-tree build
2328 t_cpu="arm"
2329 t_manufacturer="samsung"
2330 t_model="yh820"
2333 141|yh920)
2334 target_id=58
2335 modelname="yh920"
2336 target="-DSAMSUNG_YH920"
2337 memory=32 # always
2338 arm7tdmicc
2339 tool="$rootdir/tools/scramble -mi4v2 -model=y920 -type=RBOS"
2340 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2341 bmp2rb_native="$rootdir/tools/bmp2rb -f 2"
2342 output="rockbox.mi4"
2343 appextra="recorder:gui"
2344 plugins="yes"
2345 swcodec="yes"
2346 boottool="$rootdir/tools/scramble -mi4v2 -model=y920 -type=RBBL"
2347 bootoutput="PP5020.mi4"
2348 # toolset is the tools within the tools directory that we build for
2349 # this particular target.
2350 toolset=$scramblebitmaptools
2351 # architecture, manufacturer and model for the target-tree build
2352 t_cpu="arm"
2353 t_manufacturer="samsung"
2354 t_model="yh920"
2357 142|yh925)
2358 target_id=59
2359 modelname="yh925"
2360 target="-DSAMSUNG_YH925"
2361 memory=32 # always
2362 arm7tdmicc
2363 tool="$rootdir/tools/scramble -mi4v2 -model=y925 -type=RBOS"
2364 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2365 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2366 output="rockbox.mi4"
2367 appextra="recorder:gui"
2368 plugins="yes"
2369 swcodec="yes"
2370 boottool="$rootdir/tools/scramble -mi4v2 -model=y925 -type=RBBL"
2371 bootoutput="FW_YH925.mi4"
2372 # toolset is the tools within the tools directory that we build for
2373 # this particular target.
2374 toolset=$scramblebitmaptools
2375 # architecture, manufacturer and model for the target-tree build
2376 t_cpu="arm"
2377 t_manufacturer="samsung"
2378 t_model="yh925"
2381 143|yps3)
2382 target_id=60
2383 modelname="yps3"
2384 target="-DSAMSUNG_YPS3"
2385 memory=16 # always
2386 arm940tbecc
2387 tool="cp"
2388 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2389 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2390 output="rockbox.yps3"
2391 appextra="recorder:gui"
2392 plugins="no" #FIXME
2393 swcodec="yes"
2394 toolset=$genericbitmaptools
2395 boottool="cp"
2396 bootoutput="rockboot.ebn"
2397 # architecture, manufacturer and model for the target-tree build
2398 t_cpu="arm"
2399 t_manufacturer="s5l8700"
2400 t_model="yps3"
2405 echo "Please select a supported target platform!"
2406 exit 7
2409 esac
2411 echo "Platform set to $modelname"
2414 #remove start
2415 ############################################################################
2416 # Amount of memory, for those that can differ. They have $memory unset at
2417 # this point.
2420 if [ -z "$memory" ]; then
2421 case $target_id in
2423 if [ "$ARG_RAM" ]; then
2424 size=$ARG_RAM
2425 else
2426 echo "Enter size of your RAM (in MB): (Defaults to 32)"
2427 size=`input`;
2429 case $size in
2430 60|64)
2431 memory="64"
2434 memory="32"
2436 esac
2439 if [ "$ARG_RAM" ]; then
2440 size=$ARG_RAM
2441 else
2442 echo "Enter size of your RAM (in MB): (Defaults to 2)"
2443 size=`input`;
2445 case $size in
2447 memory="8"
2450 memory="2"
2452 esac
2454 esac
2455 echo "Memory size selected: $memory MB"
2456 [ "$ARG_TYPE" ] || echo ""
2458 #remove end
2460 ##################################################################
2461 # Figure out build "type"
2464 # the ifp7x0 is the only platform that supports building a gdb stub like
2465 # this
2466 case $modelname in
2467 ifp7xx)
2468 gdbstub="(G)DB stub, "
2470 e200r|e200)
2471 gdbstub="(I)nstaller, "
2473 c200)
2474 gdbstub="(E)raser, "
2478 esac
2479 if [ "$ARG_TYPE" ]; then
2480 btype=$ARG_TYPE
2481 else
2482 echo "Build (N)ormal, (A)dvanced, (S)imulator, (B)ootloader, (C)heckWPS, (D)atabase tool, $gdbstub(M)anual: (Defaults to N)"
2483 btype=`input`;
2486 case $btype in
2487 [Ii])
2488 appsdir='\$(ROOTDIR)/bootloader'
2489 apps="bootloader"
2490 extradefines="-DBOOTLOADER -DE200R_INSTALLER -ffunction-sections -fdata-sections"
2491 bootloader="1"
2492 echo "e200R-installer build selected"
2494 [Ee])
2495 appsdir='\$(ROOTDIR)/bootloader'
2496 apps="bootloader"
2497 echo "C2(4)0 or C2(5)0"
2498 variant=`input`
2499 case $variant in
2501 extradefines="-DBOOTLOADER -DC200_ERASE -DC240_ERASE -ffunction-sections -fdata-sections"
2502 echo "c240 eraser build selected"
2505 extradefines="-DBOOTLOADER -DC200_ERASE -DC250_ERASE -ffunction-sections -fdata-sections"
2506 echo "c240 eraser build selected"
2508 esac
2509 bootloader="1"
2510 echo "c200 eraser build selected"
2512 [Bb])
2513 if test $t_manufacturer = "archos"; then
2514 # Archos SH-based players do this somewhat differently for
2515 # some reason
2516 appsdir='\$(ROOTDIR)/flash/bootbox'
2517 apps="bootbox"
2518 else
2519 appsdir='\$(ROOTDIR)/bootloader'
2520 apps="bootloader"
2521 flash=""
2522 if test -n "$boottool"; then
2523 tool="$boottool"
2525 if test -n "$bootoutput"; then
2526 output=$bootoutput
2529 extradefines="-DBOOTLOADER -ffunction-sections -fdata-sections"
2530 bootloader="1"
2531 echo "Bootloader build selected"
2533 [Ss])
2534 debug="-DDEBUG"
2535 simulator="yes"
2536 extradefines="-DSIMULATOR"
2537 archosrom=""
2538 flash=""
2539 echo "Simulator build selected"
2541 [Aa]*)
2542 echo "Advanced build selected"
2543 whichadvanced $btype
2545 [Gg])
2546 extradefines="-DSTUB" # for target makefile symbol EXTRA_DEFINES
2547 appsdir='\$(ROOTDIR)/gdb'
2548 apps="stub"
2549 case $modelname in
2550 ifp7xx)
2551 output="stub.wma"
2555 esac
2556 echo "GDB stub build selected"
2558 [Mm])
2559 toolset='';
2560 apps="manual"
2561 echo "Manual build selected"
2563 [Cc])
2564 uname=`uname`
2565 simcc "checkwps"
2566 toolset='';
2567 t_cpu='';
2568 GCCOPTS='';
2569 appsdir='\$(ROOTDIR)/tools/checkwps';
2570 output='checkwps.'${modelname};
2571 archosrom='';
2572 echo "CheckWPS build selected"
2574 [Dd])
2575 uname=`uname`
2576 simcc "database"
2577 toolset='';
2578 t_cpu='';
2579 GCCOPTS='';
2580 appsdir='\$(ROOTDIR)/tools/database';
2581 output='database.'${modelname};
2582 archosrom='';
2583 echo "Database tool build selected"
2586 if [ "$modelname" = "e200r" ]; then
2587 echo "Do not use the e200R target for regular builds. Use e200 instead."
2588 exit 8
2590 debug=""
2591 btype="N" # set it explicitly since RET only gets here as well
2592 echo "Normal build selected"
2595 esac
2596 # to be able running "make manual" from non-manual configuration
2597 case $modelname in
2598 fmrecorder)
2599 manualdev="recorderv2fm"
2601 recorderv2)
2602 manualdev="recorderv2fm"
2604 h1??)
2605 manualdev="h100"
2607 ipodmini2g)
2608 manualdev="ipodmini"
2611 manualdev=$modelname
2613 esac
2615 if [ -z "$debug" ]; then
2616 GCCOPTS="$GCCOPTS $GCCOPTIMIZE"
2619 echo "Using source code root directory: $rootdir"
2621 # this was once possible to change at build-time, but no more:
2622 language="english"
2624 uname=`uname`
2626 if [ "yes" = "$simulator" ]; then
2627 # setup compiler and things for simulator
2628 simcc "sdl"
2630 if [ -d "simdisk" ]; then
2631 echo "Subdirectory 'simdisk' already present"
2632 else
2633 mkdir simdisk
2634 echo "Created a 'simdisk' subdirectory for simulating the hard disk"
2638 # Now, figure out version number of the (gcc) compiler we are about to use
2639 gccver=`$CC -dumpversion`;
2641 # figure out the binutil version too and display it, mostly for the build
2642 # system etc to be able to see it easier
2643 if [ $uname = "Darwin" ]; then
2644 ldver=`$LD -v 2>&1 | sed -e 's/[^0-9.-]//g'`
2645 else
2646 ldver=`$LD --version | head -n 1 | sed -e 's/[^0-9.]//g'`
2649 if [ -z "$gccver" ]; then
2650 echo "[WARNING] The compiler you must use ($CC) is not in your path!"
2651 echo "[WARNING] this may cause your build to fail since we cannot do the"
2652 echo "[WARNING] checks we want now."
2653 else
2655 # gccver should now be "3.3.5", "3.4.3", "2.95.3-6" and similar, but don't
2656 # DEPEND on it
2658 num1=`echo $gccver | cut -d . -f1`
2659 num2=`echo $gccver | cut -d . -f2`
2660 gccnum=`(expr $num1 "*" 100 + $num2) 2>/dev/null`
2662 # This makes:
2663 # 3.3.X => 303
2664 # 3.4.X => 304
2665 # 2.95.3 => 295
2667 echo "Using $CC $gccver ($gccnum)"
2669 if test "$gccnum" -ge "400"; then
2670 # gcc 4.0 is just *so* much pickier on arguments that differ in signedness
2671 # so we ignore that warnings for now
2672 # -Wno-pointer-sign
2673 GCCOPTS="$GCCOPTS -Wno-pointer-sign"
2676 if test "$gccnum" -ge "401"; then
2677 # this is a lame hack to avoid "warning: dereferencing type-punned pointer
2678 # will break strict-aliasing rules"
2680 GCCOPTS="$GCCOPTS -fno-strict-aliasing"
2683 if test "$gccnum" -ge "402"; then
2684 # disable warning about "warning: initialized field overwritten" as gcc 4.2
2685 # and later would throw it for several valid cases
2686 GCCOPTS="$GCCOPTS -Wno-override-init"
2689 case $prefix in
2691 # simulator
2693 i586-mingw32msvc-)
2694 # cross-compile for win32
2697 # Verify that the cross-compiler is of a recommended version!
2698 if test "$gccver" != "$gccchoice"; then
2699 echo "WARNING: Your cross-compiler $CC $gccver is not of the recommended"
2700 echo "WARNING: version $gccchoice!"
2701 echo "WARNING: This may cause your build to fail since it may be a version"
2702 echo "WARNING: that isn't functional or known to not be the best choice."
2703 echo "WARNING: If you suffer from build problems, you know that this is"
2704 echo "WARNING: a likely source for them..."
2707 esac
2712 echo "Using $LD $ldver"
2714 # check the compiler for SH platforms
2715 if test "$CC" = "sh-elf-gcc"; then
2716 if test "$gccnum" -lt "400"; then
2717 echo "WARNING: Consider upgrading your compiler to the 4.0.X series!"
2718 echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler"
2719 else
2720 # figure out patch status
2721 gccpatch=`$CC --version`;
2723 if { echo $gccpatch | grep "rockbox" >/dev/null 2>&1; } then
2724 echo "gcc $gccver is rockbox patched"
2725 # then convert -O to -Os to get smaller binaries!
2726 GCCOPTS=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2727 else
2728 echo "WARNING: You use an unpatched gcc compiler: $gccver"
2729 echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler"
2734 if test "$CC" = "m68k-elf-gcc"; then
2735 # convert -O to -Os to get smaller binaries!
2736 GCCOPTS=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2739 if [ "$ARG_CCACHE" = "1" ]; then
2740 echo "Enable ccache for building"
2741 ccache="ccache"
2742 elif [ "$ARG_CCACHE" != "0" ]; then
2743 ccache=`findtool ccache`
2744 if test -n "$ccache"; then
2745 echo "Found and uses ccache ($ccache)"
2749 # figure out the full path to the various commands if possible
2750 HOSTCC=`findtool gcc --lit`
2751 HOSTAR=`findtool ar --lit`
2752 CC=`findtool ${CC} --lit`
2753 LD=`findtool ${AR} --lit`
2754 AR=`findtool ${AR} --lit`
2755 AS=`findtool ${AS} --lit`
2756 OC=`findtool ${OC} --lit`
2757 WINDRES=`findtool ${WINDRES} --lit`
2758 DLLTOOL=`findtool ${DLLTOOL} --lit`
2759 DLLWRAP=`findtool ${DLLWRAP} --lit`
2760 RANLIB=`findtool ${RANLIB} --lit`
2762 if test -n "$ccache"; then
2763 CC="$ccache $CC"
2766 if test "X$endian" = "Xbig"; then
2767 defendian="ROCKBOX_BIG_ENDIAN"
2768 else
2769 defendian="ROCKBOX_LITTLE_ENDIAN"
2772 if [ "$ARG_RBDIR" ]; then
2773 rbdir=$ARG_RBDIR
2774 echo "Using alternate rockbox dir: ${rbdir}"
2777 sed > autoconf.h \
2778 -e "s,@ENDIAN@,${defendian},g" \
2779 -e "s,^#undef ROCKBOX_HAS_LOGF,$use_logf,g" \
2780 -e "s,@config_rtc@,$config_rtc,g" \
2781 -e "s,@have_rtc_alarm@,$have_rtc_alarm,g" \
2782 -e "s,@RBDIR@,${rbdir},g" \
2783 -e "s,@have_backlight@,$have_backlight,g" \
2784 -e "s,@have_fmradio_in@,$have_fmradio_in,g" \
2785 -e "s,@have_ata_poweroff@,$have_ata_poweroff,g" \
2786 <<EOF
2787 /* This header was made by configure */
2788 #ifndef __BUILD_AUTOCONF_H
2789 #define __BUILD_AUTOCONF_H
2791 /* Define endianess for the target or simulator platform */
2792 #define @ENDIAN@ 1
2794 /* Define this if you build rockbox to support the logf logging and display */
2795 #undef ROCKBOX_HAS_LOGF
2797 /* optional define for a backlight modded Ondio */
2798 @have_backlight@
2800 /* optional define for FM radio mod for iAudio M5 */
2801 @have_fmradio_in@
2803 /* optional define for ATA poweroff on Player */
2804 @have_ata_poweroff@
2806 /* optional defines for RTC mod for h1x0 */
2807 @config_rtc@
2808 @have_rtc_alarm@
2810 /* root of Rockbox */
2811 #define ROCKBOX_DIR "/@RBDIR@"
2813 #endif /* __BUILD_AUTOCONF_H */
2816 if test -n "$t_cpu"; then
2817 TARGET_INC="-I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer/$t_model"
2818 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer"
2819 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu"
2820 GCCOPTS="$GCCOPTS"
2823 if test "$simulator" = "yes"; then
2824 # add simul make stuff on the #SIMUL# line
2825 simmagic1="s,@SIMUL1@,\$(SILENT)\$(MAKE) -C \$(SIMDIR) OBJDIR=\$(BUILDDIR)/sim,"
2826 simmagic2="s,@SIMUL2@,\$(SILENT)\$(MAKE) -C \$(ROOTDIR)/uisimulator/common OBJDIR=\$(BUILDDIR)/comsim,"
2827 else
2828 # delete the lines that match
2829 simmagic1='/@SIMUL1@/D'
2830 simmagic2='/@SIMUL2@/D'
2833 if test "$swcodec" = "yes"; then
2834 voicetoolset="rbspeexenc voicefont wavtrim"
2835 else
2836 voicetoolset="voicefont wavtrim"
2839 if test "$apps" = "apps"; then
2840 # only when we build "real" apps we build the .lng files
2841 buildlangs="langs"
2844 #### Fix the cmdline ###
2845 if test -n "$ccache"; then
2846 cmdline="--ccache "
2849 cmdline="$cmdline--target=\$(MODELNAME) --ram=\$(MEMORYSIZE) --rbdir=\$(RBDIR) --type=$btype$advopts"
2850 ### end of cmdline
2852 sed > Makefile \
2853 -e "s,@ROOTDIR@,${rootdir},g" \
2854 -e "s,@DEBUG@,${debug},g" \
2855 -e "s,@MEMORY@,${memory},g" \
2856 -e "s,@TARGET_ID@,${target_id},g" \
2857 -e "s,@TARGET@,${target},g" \
2858 -e "s,@CPU@,${t_cpu},g" \
2859 -e "s,@MANUFACTURER@,${t_manufacturer},g" \
2860 -e "s,@MODELNAME@,${modelname},g" \
2861 -e "s,@LANGUAGE@,${language},g" \
2862 -e "s:@VOICELANGUAGE@:${voicelanguage}:g" \
2863 -e "s,@PWD@,${pwd},g" \
2864 -e "s,@HOSTCC@,${HOSTCC},g" \
2865 -e "s,@HOSTAR@,${HOSTAR},g" \
2866 -e "s,@CC@,${CC},g" \
2867 -e "s,@LD@,${LD},g" \
2868 -e "s,@AR@,${AR},g" \
2869 -e "s,@AS@,${AS},g" \
2870 -e "s,@OC@,${OC},g" \
2871 -e "s,@WINDRES@,${WINDRES},g" \
2872 -e "s,@DLLTOOL@,${DLLTOOL},g" \
2873 -e "s,@DLLWRAP@,${DLLWRAP},g" \
2874 -e "s,@RANLIB@,${RANLIB},g" \
2875 -e "s,@TOOL@,${tool},g" \
2876 -e "s,@BMP2RB_NATIVE@,${bmp2rb_native},g" \
2877 -e "s,@BMP2RB_MONO@,${bmp2rb_mono},g" \
2878 -e "s,@BMP2RB_REMOTENATIVE@,${bmp2rb_remotenative},g" \
2879 -e "s,@BMP2RB_REMOTEMONO@,${bmp2rb_remotemono},g" \
2880 -e "s,@OUTPUT@,${output},g" \
2881 -e "s,@APPEXTRA@,${appextra},g" \
2882 -e "s,@ARCHOSROM@,${archosrom},g" \
2883 -e "s,@FLASHFILE@,${flash},g" \
2884 -e "s,@PLUGINS@,${plugins},g" \
2885 -e "s,@CODECS@,${swcodec},g" \
2886 -e "s,@PROFILE_OPTS@,${PROFILE_OPTS},g" \
2887 -e "s,@SHARED_FLAG@,${SHARED_FLAG},g" \
2888 -e "s,@GCCOPTS@,${GCCOPTS},g" \
2889 -e "s,@TARGET_INC@,${TARGET_INC},g" \
2890 -e "s!@LDOPTS@!${LDOPTS}!g" \
2891 -e "s,@LOADADDRESS@,${loadaddress},g" \
2892 -e "s,@EXTRADEF@,${extradefines},g" \
2893 -e "s,@APPSDIR@,${appsdir},g" \
2894 -e "s,@FIRMDIR@,${firmdir},g" \
2895 -e "s,@TOOLSDIR@,${toolsdir},g" \
2896 -e "s,@APPS@,${apps},g" \
2897 -e "s,@SIMVER@,${simver},g" \
2898 -e "s,@GCCVER@,${gccver},g" \
2899 -e "s,@GCCNUM@,${gccnum},g" \
2900 -e "s,@UNAME@,${uname},g" \
2901 -e "s,@ENDIAN@,${defendian},g" \
2902 -e "s,@TOOLSET@,${toolset},g" \
2903 -e "${simmagic1}" \
2904 -e "${simmagic2}" \
2905 -e "s,@MANUALDEV@,${manualdev},g" \
2906 -e "s,@ENCODER@,${ENC_CMD},g" \
2907 -e "s,@ENC_OPTS@,${ENC_OPTS},g" \
2908 -e "s,@TTS_ENGINE@,${TTS_ENGINE},g" \
2909 -e "s,@TTS_OPTS@,${TTS_OPTS},g" \
2910 -e "s,@VOICETOOLSET@,${voicetoolset},g" \
2911 -e "s,@LANGS@,${buildlangs},g" \
2912 -e "s,@USE_ELF@,${USE_ELF},g" \
2913 -e "s,@RBDIR@,${rbdir},g" \
2914 -e "s,@PREFIX@,$PREFIX,g" \
2915 -e "s,@CMDLINE@,$cmdline,g" \
2916 <<EOF
2917 ## Automatically generated. http://www.rockbox.org/
2919 export ROOTDIR=@ROOTDIR@
2920 export FIRMDIR=@FIRMDIR@
2921 export APPSDIR=@APPSDIR@
2922 export TOOLSDIR=@TOOLSDIR@
2923 export DOCSDIR=\$(ROOTDIR)/docs
2924 export MANUALDIR=\${ROOTDIR}/manual
2925 export DEBUG=@DEBUG@
2926 export MODELNAME=@MODELNAME@
2927 export ARCHOSROM=@ARCHOSROM@
2928 export FLASHFILE=@FLASHFILE@
2929 export TARGET_ID=@TARGET_ID@
2930 export TARGET=@TARGET@
2931 export CPU=@CPU@
2932 export MANUFACTURER=@MANUFACTURER@
2933 export OBJDIR=@PWD@
2934 export BUILDDIR=@PWD@
2935 export LANGUAGE=@LANGUAGE@
2936 export VOICELANGUAGE=@VOICELANGUAGE@
2937 export MEMORYSIZE=@MEMORY@
2938 export VERSION:=\$(shell \$(ROOTDIR)/tools/version.sh \$(ROOTDIR))
2939 export BUILDDATE:=\$(shell date -u +'-DYEAR=%Y -DMONTH=%m -DDAY=%d')
2940 export MKFIRMWARE=@TOOL@
2941 export BMP2RB_MONO=@BMP2RB_MONO@
2942 export BMP2RB_NATIVE=@BMP2RB_NATIVE@
2943 export BMP2RB_REMOTEMONO=@BMP2RB_REMOTEMONO@
2944 export BMP2RB_REMOTENATIVE=@BMP2RB_REMOTENATIVE@
2945 export BINARY=@OUTPUT@
2946 export APPEXTRA=@APPEXTRA@
2947 export ENABLEDPLUGINS=@PLUGINS@
2948 export SOFTWARECODECS=@CODECS@
2949 export EXTRA_DEFINES=@EXTRADEF@
2950 export HOSTCC=@HOSTCC@
2951 export HOSTAR=@HOSTAR@
2952 export CC=@CC@
2953 export LD=@LD@
2954 export AR=@AR@
2955 export AS=@AS@
2956 export OC=@OC@
2957 export WINDRES=@WINDRES@
2958 export DLLTOOL=@DLLTOOL@
2959 export DLLWRAP=@DLLWRAP@
2960 export RANLIB=@RANLIB@
2961 export PREFIX=@PREFIX@
2962 export PROFILE_OPTS=@PROFILE_OPTS@
2963 export SIMVER=@SIMVER@
2964 export SIMDIR=\$(ROOTDIR)/uisimulator/sdl
2965 export GCCOPTS=@GCCOPTS@
2966 export TARGET_INC=@TARGET_INC@
2967 export LOADADDRESS=@LOADADDRESS@
2968 export SHARED_FLAG=@SHARED_FLAG@
2969 export LDOPTS=@LDOPTS@
2970 export GCCVER=@GCCVER@
2971 export GCCNUM=@GCCNUM@
2972 export UNAME=@UNAME@
2973 export MANUALDEV=@MANUALDEV@
2974 export TTS_OPTS=@TTS_OPTS@
2975 export TTS_ENGINE=@TTS_ENGINE@
2976 export ENC_OPTS=@ENC_OPTS@
2977 export ENCODER=@ENCODER@
2978 export USE_ELF=@USE_ELF@
2979 export RBDIR=@RBDIR@
2981 CONFIGURE_OPTIONS=@CMDLINE@
2983 include \$(TOOLSDIR)/root.make
2987 echo "Created Makefile"