3 # Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
11 # global CC options for all platforms
12 CCOPTS
="-W -Wall -Wundef -O -nostdlib -ffreestanding -Wstrict-prototypes -pipe"
14 use_logf
="#undef ROCKBOX_HAS_LOGF"
15 use_bootchart
="#undef DO_BOOTCHART"
17 scriptver
=`echo '$Revision$' | sed -e 's:\\$::g' -e 's/Revision: //'`
22 # Begin Function Definitions
32 WINDRES
=${prefix}windres
33 DLLTOOL
=${prefix}dlltool
34 DLLWRAP
=${prefix}dllwrap
35 RANLIB
=${prefix}ranlib
43 if [ "$ARG_ARM_EABI" = "1" ]; then
44 prefixtools arm-elf-eabi-
52 # scan the $PATH for the given command
59 # echo "checks for $file in $path" >&2
60 if test -f "$path/$file"; then
65 # check whether caller wants literal return value if not found
66 if [ "$2" = "--lit" ]; then
71 # scan the $PATH for sdl-config - check whether for a (cross-)win32
80 #echo "checks for $file in $path" >&2
81 if test -f "$path/$file"; then
82 if [ "0" != `$path/$file --libs |grep -c mwindows` ]; then
83 if [ "yes" = "${winbuild}" ]; then
88 if [ "yes" != "${winbuild}" ]; then
99 # default tool setup for native building
103 winbuild
="$crosscompile"
104 GCCOPTS
='-W -Wall -g -fno-builtin'
108 # default output binary name
111 # default share option, override below if needed
112 SHARED_FLAG
="-shared"
116 echo "Cygwin host detected"
119 output
="rockboxui.exe"
124 echo "MinGW host detected"
127 output
="rockboxui.exe"
132 echo "Linux host detected"
136 echo "FreeBSD host detected"
140 echo "Darwin host detected"
142 SHARED_FLAG
="-dynamiclib -Wl\,-single_module"
146 echo "*Solaris host detected"
148 GCCOPTS
="$GCCOPTS -fPIC"
153 echo "[ERROR] Unsupported system: $uname, fix configure and retry"
158 sdl
=`findsdl $winbuild`
160 if [ $1 = "sdl" ]; then
161 if [ -z "$sdl" ]; then
162 echo "configure didn't find sdl-config, which indicates that you"
163 echo "don't have SDL (properly) installed. Please correct and"
164 echo "re-run configure!"
167 # generic sdl-config checker
168 GCCOPTS
="$GCCOPTS `$sdl --cflags`"
169 LDOPTS
="$LDOPTS `$sdl --libs`"
173 GCCOPTS
="$GCCOPTS -I\$(SIMDIR)"
175 if test "X$crosscompile" != "Xyes"; then
178 # fPIC is needed to make shared objects link
179 # setting visibility to hidden is necessary to avoid strange crashes
180 # due to symbol clashing
181 GCCOPTS
="$GCCOPTS -fPIC -fvisibility=hidden"
182 # x86_64 supports MMX by default
186 echo "Enabling MMX support"
187 GCCOPTS
="$GCCOPTS -mmmx"
192 cat >$tmpdir/conftest-
$id.c
<<EOF
194 int main(int argc, char **argv)
197 char *varp = (char *)&var;
205 $CC -o $tmpdir/conftest-
$id $tmpdir/conftest-
$id.c
2>/dev
/null
207 if test `$tmpdir/conftest-$id 2>/dev/null` -gt "1"; then
215 if [ $1 = "sdl" ]; then
216 echo "Simulator environment deemed $endian endian"
217 elif [ $1 = "checkwps" ]; then
218 echo "CheckWPS environment deemed $endian endian"
221 # use wildcard here to make it work even if it was named *.exe like
223 rm -f $tmpdir/conftest-
$id*
225 # We are crosscompiling
226 # add cross-compiler option(s)
227 prefixtools i586-mingw32msvc-
228 LDOPTS
="$LDOPTS -mconsole"
229 output
="rockboxui.exe"
230 endian
="little" # windows is little endian
231 echo "Enabling MMX support"
232 GCCOPTS
="$GCCOPTS -mmmx"
237 # functions for setting up cross-compiler names and options
238 # also set endianess and what the exact recommended gcc version is
239 # the gcc version should most likely match what versions we build with
244 GCCOPTS
="$CCOPTS -m1"
245 GCCOPTIMIZE
="-fomit-frame-pointer -fschedule-insns"
251 prefixtools calmrisc16-unknown-elf-
252 GCCOPTS
="-Wl\,--no-check-sections $CCOPTS"
253 GCCOPTIMIZE
="-fomit-frame-pointer"
258 prefixtools m68k-elf-
259 GCCOPTS
="$CCOPTS -m5206e -Wa\,-m5249 -malign-int -mstrict-align"
260 GCCOPTIMIZE
="-fomit-frame-pointer"
267 GCCOPTS
="$CCOPTS -mcpu=arm7tdmi"
268 if test "X$1" != "Xshort" -a "$ARG_ARM_EABI" != "1"; then
269 GCCOPTS
="$GCCOPTS -mlong-calls"
271 GCCOPTIMIZE
="-fomit-frame-pointer"
277 GCCOPTS
="$CCOPTS -mcpu=arm9tdmi"
278 if test "$modelname" != "gigabeatfx" -a "$t_manufacturer" != "as3525" -a "$ARG_ARM_EABI" != "1"; then
279 GCCOPTS
="$GCCOPTS -mlong-calls"
281 GCCOPTIMIZE
="-fomit-frame-pointer"
287 GCCOPTS
="$CCOPTS -mbig-endian -mcpu=arm940t"
288 if test "$ARG_ARM_EABI" != "1"; then
289 GCCOPTS
="$GCCOPTS -mlong-calls"
291 GCCOPTIMIZE
="-fomit-frame-pointer"
297 GCCOPTS
="$CCOPTS -mcpu=arm940t"
298 if test "$ARG_ARM_EABI" != "1"; then
299 GCCOPTS
="$GCCOPTS -mlong-calls"
301 GCCOPTIMIZE
="-fomit-frame-pointer"
307 GCCOPTS
="$CCOPTS -mcpu=arm9e"
308 if test "$ARG_ARM_EABI" != "1"; then
309 GCCOPTS
="$GCCOPTS -mlong-calls"
311 GCCOPTIMIZE
="-fomit-frame-pointer"
317 GCCOPTS
="$CCOPTS -mcpu=arm926ej-s"
318 if test "$t_manufacturer" != "as3525" -a "$ARG_ARM_EABI" != "1"; then
319 GCCOPTS
="$GCCOPTS -mlong-calls"
321 GCCOPTIMIZE
="-fomit-frame-pointer"
327 GCCOPTS
="$CCOPTS -mcpu=arm1136jf-s"
328 if test "$modelname" != "gigabeats" -a "$ARG_ARM_EABI" != "1"; then
329 GCCOPTS
="$GCCOPTS -mlong-calls"
331 GCCOPTIMIZE
="-fomit-frame-pointer"
337 GCCOPTS
="$CCOPTS -mcpu=arm1176jz-s"
338 if test "$ARG_ARM_EABI" != "1"; then
339 GCCOPTS
="$GCCOPTS -mlong-calls"
341 GCCOPTIMIZE
="-fomit-frame-pointer"
346 prefixtools mipsel-elf-
347 GCCOPTS
="$CCOPTS -march=mips32 -mtune=r4600 -mno-mips16 -mno-long-calls"
348 GCCOPTS
="$GCCOPTS -ffunction-sections -msoft-float -G 0 -Wno-parentheses"
349 GCCOPTIMIZE
="-fomit-frame-pointer"
355 atype
=`echo "$1" | cut -c 2-`
356 ##################################################################
357 # Prompt for specific developer options
359 if [ "$atype" ]; then
364 echo "Enter your developer options (press enter when done)"
365 printf "(D)EBUG, (L)ogf, Boot(c)hart, (S)imulator, (P)rofiling, (V)oice, (W)in32 crosscompile, (T)est plugins"
366 if [ "$memory" = "2" ]; then
369 if [ "$modelname" = "archosplayer" ]; then
370 printf ", Use (A)TA poweroff"
372 if [ "$t_model" = "ondio" ]; then
373 printf ", (B)acklight MOD"
375 if [ "$modelname" = "iaudiom5" ]; then
376 printf ", (F)M radio MOD"
378 if [ "$modelname" = "iriverh120" ]; then
385 while [ $cont = "1" ]; do
387 if [ "$interact" ]; then
390 option
=`echo "$atype" | cut -c 1`
395 if [ "yes" = "$profile" ]; then
396 echo "Debug is incompatible with profiling"
398 echo "DEBUG build enabled"
403 echo "logf() support enabled"
407 echo "Including test plugins"
408 extradefines
="$extradefines -DHAVE_TEST_PLUGINS"
411 echo "bootchart enabled (logf also enabled)"
416 echo "Simulator build enabled"
420 if [ "yes" = "$use_debug" ]; then
421 echo "Profiling is incompatible with debug"
423 echo "Profiling support is enabled"
428 echo "Voice build selected"
432 if [ "$memory" = "2" ]; then
434 echo "Memory size selected: 8MB"
438 if [ "$modelname" = "archosplayer" ]; then
439 have_ata_poweroff
="#define HAVE_ATA_POWER_OFF"
440 echo "ATA power off enabled"
444 if [ "$t_model" = "ondio" ]; then
445 have_backlight
="#define HAVE_BACKLIGHT"
446 echo "Backlight functions enabled"
450 if [ "$modelname" = "iaudiom5" ]; then
451 have_fmradio_in
="#define HAVE_FMRADIO_IN"
452 echo "FM radio functions enabled"
456 if [ "$modelname" = "iriverh120" ]; then
457 config_rtc
="#define CONFIG_RTC RTC_DS1339_DS3231"
458 have_rtc_alarm
="#define HAVE_RTC_ALARM"
459 echo "RTC functions enabled (DS1339/DS3231)"
463 echo "Enabling Windows 32 cross-compiling"
467 if [ "$interact" ]; then
470 echo "[ERROR] Option $option unsupported"
474 if [ "$interact" ]; then
475 btype
="$btype$option"
477 atype
=`echo "$atype" | cut -c 2-`
478 [ "$atype" ] || cont
=0
483 if [ "yes" = "$voice" ]; then
484 # Ask about languages to build
486 voicelanguage
=`whichlang`
487 echo "Voice language set to $voicelanguage"
489 # Configure encoder and TTS engine for each language
490 for thislang
in `echo $voicelanguage | sed 's/,/ /g'`; do
491 voiceconfig
"$thislang"
494 if [ "yes" = "$use_debug" ]; then
496 GCCOPTS
="$GCCOPTS -g -DDEBUG"
498 if [ "yes" = "$logf" ]; then
499 use_logf
="#define ROCKBOX_HAS_LOGF 1"
501 if [ "yes" = "$bootchart" ]; then
502 use_bootchart
="#define DO_BOOTCHART 1"
504 if [ "yes" = "$simulator" ]; then
506 extradefines
="$extradefines -DSIMULATOR"
510 if [ "yes" = "$profile" ]; then
511 extradefines
="$extradefines -DRB_PROFILE"
512 PROFILE_OPTS
="-finstrument-functions"
516 # Configure voice settings
519 if [ ! "$ARG_TTS" ]; then
520 echo "Building $thislang voice for $modelname. Select options"
524 if [ -n "`findtool flite`" ]; then
528 DEFAULT_TTS_OPTS
=$FLITE_OPTS
529 DEFAULT_NOISEFLOOR
="500"
532 if [ -n "`findtool espeak`" ]; then
536 DEFAULT_TTS_OPTS
=$ESPEAK_OPTS
537 DEFAULT_NOISEFLOOR
="500"
540 if [ -n "`findtool festival`" ]; then
541 FESTIVAL
="(F)estival "
544 FESTIVAL_OPTS
="--language italian"
547 FESTIVAL_OPTS
="--language spanish"
550 FESTIVAL_OPTS
="--language finnish"
553 FESTIVAL_OPTS
="--language czech"
559 DEFAULT_TTS
="festival"
560 DEFAULT_TTS_OPTS
=$FESTIVAL_OPTS
561 DEFAULT_NOISEFLOOR
="500"
564 if [ -n "`findtool swift`" ]; then
568 DEFAULT_TTS_OPTS
=$SWIFT_OPTS
569 DEFAULT_NOISEFLOOR
="500"
572 # Allow SAPI if Windows is in use
573 if [ -n "`findtool winver`" ]; then
577 DEFAULT_TTS_OPTS
=$SAPI_OPTS
578 DEFAULT_NOISEFLOOR
="500"
582 if [ "$FESTIVAL" = "$FLITE" ] && [ "$FLITE" = "$ESPEAK" ] && [ "$ESPEAK" = "$SAPI" ] && [ "$SAPI" = "$SWIFT" ]; then
583 echo "You need Festival, eSpeak or Flite in your path, or SAPI available to build voice files"
587 if [ "$ARG_TTS" ]; then
590 echo "TTS engine to use: ${FLITE}${FESTIVAL}${ESPEAK}${SAPI}${SWIFT}(${DEFAULT_CHOICE})?"
593 advopts
="$advopts --tts=$option"
597 NOISEFLOOR
="500" # TODO: check this value
603 TTS_OPTS
=$ESPEAK_OPTS
606 TTS_ENGINE
="festival"
608 TTS_OPTS
=$FESTIVAL_OPTS
621 TTS_ENGINE
=$DEFAULT_TTS
622 TTS_OPTS
=$DEFAULT_TTS_OPTS
623 NOISEFLOOR
=$DEFAULT_NOISEFLOOR
625 echo "Using $TTS_ENGINE for TTS"
627 # Select which voice to use for Festival
628 if [ "$TTS_ENGINE" = "festival" ]; then
629 voicelist
=`echo "(voice.list)"|festival -i 2>/dev/null |tr "\n" " "|sed -e 's/.*festival> (\(.*\)) festival>/\1/'|sort`
630 for voice
in $voicelist; do
631 TTS_FESTIVAL_VOICE
="$voice" # Default choice
634 if [ "$ARG_VOICE" ]; then
638 for voice
in $voicelist; do
639 printf "%3d. %s\n" "$i" "$voice"
642 printf "Please select which Festival voice to use (default is $TTS_FESTIVAL_VOICE): "
646 for voice
in $voicelist; do
647 if [ "$i" = "$CHOICE" -o "$voice" = "$CHOICE" ]; then
648 TTS_FESTIVAL_VOICE
="$voice"
652 advopts
="$advopts --voice=$CHOICE"
653 echo "Festival voice set to $TTS_FESTIVAL_VOICE"
654 echo "(voice_$TTS_FESTIVAL_VOICE)" > festival-prolog.scm
657 # Read custom tts options from command line
658 if [ "$ARG_TTSOPTS" ]; then
659 TTS_OPTS
="$ARG_TTSOPTS"
660 advopts
="$advopts --ttsopts='$TTS_OPTS'"
661 echo "$TTS_ENGINE options set to $TTS_OPTS"
664 if [ "$swcodec" = "yes" ]; then
667 ENC_OPTS
="-q 4 -c 10"
669 if [ -n "`findtool lame`" ]; then
672 ENC_OPTS
="--resample 12 -t -m m -h -V 9.999 -S -B 64 --vbr-new"
674 echo "You need LAME in the system path to build voice files for"
675 echo "HWCODEC targets."
680 echo "Using $ENCODER for encoding voice clips"
682 # Read custom encoder options from command line
683 if [ "$ARG_ENCOPTS" ]; then
684 ENC_OPTS
="$ARG_ENCOPTS"
685 advopts
="$advopts --encopts='$ENC_OPTS'"
686 echo "$ENCODER options set to $ENC_OPTS"
690 if [ -n "`findtool cygpath`" ]; then
691 TEMPDIR
=`cygpath . -a -w`
696 # figure out which languages that are around
697 for file in $rootdir/apps
/lang
/*.lang
; do
698 clean
=`basename $file .lang`
699 langs
="$langs $clean"
702 if [ "$ARG_LANG" ]; then
705 echo "Select a number for the language to use (default is english)"
706 # FIXME The multiple-language feature is currently broken
707 # echo "You may enter a comma-separated list of languages to build"
710 for one
in $langs; do
716 advopts
="$advopts --language=$pick"
721 # Allow the user to pass a comma-separated list of langauges
722 for thispick
in `echo $pick | sed 's/,/ /g'`; do
724 for one
in $langs; do
725 # Accept both the language number and name
726 if [ "$num" = "$thispick" ] ||
[ "$thispick" = "$one" ]; then
727 if [ "$output" = "" ]; then
736 if [ -z "$output" ]; then
744 echo "Rockbox configure script."
745 echo "Invoke this in a directory to generate a Makefile to build Rockbox"
746 echo "Do *NOT* run this within the tools directory!"
749 Usage: configure [OPTION]...
751 --target=TARGET Sets the target, TARGET can be either the target ID or
752 corresponding string. Run without this option to see all
755 --ram=RAM Sets the RAM for certain targets. Even though any number
756 is accepted, not every number is correct. The default
757 value will be applied, if you entered a wrong number
758 (which depends on the target). Watch the output. Run
759 without this option if you are not sure which the right
762 --type=TYPE Sets the build type. Shortcuts are also valid.
763 Run without this option to see all available types.
764 Multiple values are allowed and managed in the input
765 order. So --type=b stands for Bootloader build, while
766 --type=ab stands for "Backlight MOD" build.
768 --language=LANG Set the language used for voice generation (used only if
771 --tts=ENGINE Set the TTS engine used for voice generation (used only
774 --voice=VOICE Set voice to use with selected TTS (used only if TYPE is
777 --ttsopts=OPTS Set TTS engine manual options (used only if TYPE is AV).
779 --encopts=OPTS Set encoder manual options (used only if ATYPE is AV).
781 --rbdir=dir Use alternative rockbox directory (default: ${rbdir}).
782 This is useful for having multiple alternate builds on
783 your device that you can load with ROLO. However as the
784 bootloader looks for .rockbox you won't be able to boot
787 --ccache Enable ccache use (done by default these days)
788 --no-ccache Disable ccache use
790 --eabi Make configure prefer toolchains that are able to compile
791 for the new ARM standard abi EABI
792 --no-eabi The opposite of --eabi (prefer old non-eabi toolchains)
793 --help Shows this message (must not be used with other options)
814 --ccache) ARG_CCACHE
=1;;
815 --no-ccache) ARG_CCACHE
=0;;
816 --encopts=*) ARG_ENCOPTS
=`echo "$arg" | cut -d = -f 2`;;
817 --language=*) ARG_LANG
=`echo "$arg" | cut -d = -f 2`;;
818 --ram=*) ARG_RAM
=`echo "$arg" | cut -d = -f 2`;;
819 --rbdir=*) ARG_RBDIR
=`echo "$arg" | cut -d = -f 2`;;
820 --target=*) ARG_TARGET
=`echo "$arg" | cut -d = -f 2`;;
821 --tts=*) ARG_TTS
=`echo "$arg" | cut -d = -f 2`;;
822 --ttsopts=*) ARG_TTSOPTS
=`echo "$arg" | cut -d = -f 2`;;
823 --type=*) ARG_TYPE
=`echo "$arg" | cut -d = -f 2`;;
824 --voice=*) ARG_VOICE
=`echo "$arg" | cut -d = -f 2`;;
825 --eabi) ARG_ARM_EABI
=1;;
826 --no-eabi) ARG_ARM_EABI
=0;;
828 *) err
=1; echo "[ERROR] Option '$arg' unsupported";;
835 if [ "$TMPDIR" != "" ]; then
840 echo Using temporary directory
$tmpdir
842 if test -r "configure"; then
843 # this is a check for a configure script in the current directory, it there
844 # is one, try to figure out if it is this one!
846 if { grep "^# Jukebox" configure
>/dev
/null
2>&1 ; } then
847 echo "WEEEEEEEEP. Don't run this configure script within the tools directory."
848 echo "It will only cause you pain and grief. Instead do this:"
851 echo " mkdir build-dir"
853 echo " ../tools/configure"
855 echo "Much happiness will arise from this. Enjoy"
860 # get our current directory
863 if { echo $pwd |
grep " "; } then
864 echo "You're running this script in a path that contains space. The build"
865 echo "system is unfortunately not clever enough to deal with this. Please"
866 echo "run the script from a different path, rename the path or fix the build"
871 if [ -z "$rootdir" ]; then
872 ##################################################################
873 # Figure out where the source code root is!
875 rootdir
=`dirname $0`/..
/
877 #####################################################################
878 # Convert the possibly relative directory name to an absolute version
884 # cd back to the build dir
889 appsdir
='\$(ROOTDIR)/apps'
890 firmdir
='\$(ROOTDIR)/firmware'
891 toolsdir
='\$(ROOTDIR)/tools'
894 ##################################################################
895 # Figure out target platform
898 if [ "$ARG_TARGET" ]; then
901 echo "Enter target platform:"
903 ==Archos== ==iriver== ==Apple iPod==
904 0) Player/Studio 10) H120/H140 20) Color/Photo
905 1) Recorder 11) H320/H340 21) Nano 1G
906 2) FM Recorder 12) iHP-100/110/115 22) Video
907 3) Recorder v2 13) iFP-790 23) 3G
908 4) Ondio SP 14) H10 20Gb 24) 4G Grayscale
909 5) Ondio FM 15) H10 5/6Gb 25) Mini 1G
911 ==Toshiba== 27) 1G, 2G
912 ==Cowon/iAudio== 40) Gigabeat F/X 28) Nano 2G
913 30) X5/X5V/X5L 41) Gigabeat S
914 31) M5/M5L ==SanDisk==
915 32) 7 ==Olympus= 50) Sansa e200
916 33) D2 70) M:Robe 500 51) Sansa e200R
917 34) M3/M3L 71) M:Robe 100 52) Sansa c200
919 ==Creative== ==Philips== 54) Sansa c100
920 90) Zen Vision:M 30GB 100) GoGear SA9200 55) Sansa Clip
921 91) Zen Vision:M 60GB 101) GoGear HDD1630/ 56) Sansa e200v2
922 92) Zen Vision HDD1830 57) Sansa m200v4
923 102) GoGear HDD6330 58) Sansa Fuze
924 ==Onda== 59) Sansa c200v2
925 120) VX747 ==Meizu== 60) Sansa Clipv2
926 121) VX767 110) M6SL 61) Sansa View
927 122) VX747+ 111) M6SP 62) Sansa Clip+
928 123) VX777 112) M3 63) Sansa Fuze v2
931 ==Samsung== ==Tatung== 80) DAX 1GB MP3/DAB
932 140) YH-820 150) Elio TPJ-1022
933 141) YH-920 ==Lyre project==
934 142) YH-925 ==Packard Bell== 130) Lyre proto 1
935 143) YP-S3 160) Vibe 500 131) Mini2440
944 # Set of tools built for all target platforms:
945 toolset
="rdf2binary convbdf codepages"
947 # Toolsets for some target families:
948 archosbitmaptools
="$toolset scramble descramble sh2d uclpack bmp2rb"
949 iriverbitmaptools
="$toolset scramble descramble mkboot bmp2rb"
950 iaudiobitmaptools
="$toolset scramble descramble mkboot bmp2rb"
951 ipodbitmaptools
="$toolset scramble bmp2rb"
952 gigabeatbitmaptools
="$toolset scramble descramble bmp2rb"
953 tccbitmaptools
="$toolset scramble bmp2rb"
954 # generic is used by IFP, Meizu and Onda
955 genericbitmaptools
="$toolset bmp2rb"
956 # scramble is used by all other targets
957 scramblebitmaptools
="$genericbitmaptools scramble"
960 # ---- For each target ----
963 # target_id: a unique number identifying this target, IS NOT the menu number.
964 # Just use the currently highest number+1 when you add a new
966 # modelname: short model name used all over to identify this target
967 # memory: number of megabytes of RAM this target has. If the amount can
968 # be selected by the size prompt, let memory be unset here
969 # target: -Ddefine passed to the build commands to make the correct
970 # config-*.h file get included etc
971 # tool: the tool that takes a plain binary and converts that into a
972 # working "firmware" file for your target
973 # output: the final output file name
974 # boottool: the tool that takes a plain binary and generates a bootloader
975 # file for your target (or blank to use $tool)
976 # bootoutput:the final output file name for the bootloader (or blank to use
978 # appextra: passed to the APPEXTRA variable in the Makefiles.
979 # TODO: add proper explanation
980 # archosrom: used only for Archos targets that build a special flashable .ucl
982 # flash: name of output for flashing, for targets where there's a special
983 # file output for this.
984 # plugins: set to 'yes' to build the plugins. Early development builds can
985 # set this to no in the early stages to have an easier life for a
987 # swcodec: set 'yes' on swcodec targets
988 # toolset: lists what particular tools in the tools/ directory that this
989 # target needs to have built prior to building Rockbox
992 # *cc: sets up gcc and compiler options for your target builds. Note
993 # that if you select a simulator build, the compiler selection is
994 # overridden later in the script.
1000 modelname
="archosplayer"
1001 target
="-DARCHOS_PLAYER"
1003 tool
="$rootdir/tools/scramble"
1005 appextra
="player:gui"
1006 archosrom
="$pwd/rombox.ucl"
1007 flash
="$pwd/rockbox.ucl"
1011 # toolset is the tools within the tools directory that we build for
1012 # this particular target.
1013 toolset
="$toolset scramble descramble sh2d player_unifont uclpack"
1015 # Note: the convbdf is present in the toolset just because: 1) the
1016 # firmware/Makefile assumes it is present always, and 2) we will need it when we
1017 # build the player simulator
1020 t_manufacturer
="archos"
1026 modelname
="archosrecorder"
1027 target
="-DARCHOS_RECORDER"
1029 tool
="$rootdir/tools/scramble"
1030 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1031 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1033 appextra
="recorder:gui"
1034 #archosrom="$pwd/rombox.ucl"
1035 flash
="$pwd/rockbox.ucl"
1038 # toolset is the tools within the tools directory that we build for
1039 # this particular target.
1040 toolset
=$archosbitmaptools
1042 t_manufacturer
="archos"
1048 modelname
="archosfmrecorder"
1049 target
="-DARCHOS_FMRECORDER"
1051 tool
="$rootdir/tools/scramble -fm"
1052 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1053 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1055 appextra
="recorder:gui"
1056 #archosrom="$pwd/rombox.ucl"
1057 flash
="$pwd/rockbox.ucl"
1060 # toolset is the tools within the tools directory that we build for
1061 # this particular target.
1062 toolset
=$archosbitmaptools
1064 t_manufacturer
="archos"
1070 modelname
="archosrecorderv2"
1071 target
="-DARCHOS_RECORDERV2"
1073 tool
="$rootdir/tools/scramble -v2"
1074 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1075 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1077 appextra
="recorder:gui"
1078 #archosrom="$pwd/rombox.ucl"
1079 flash
="$pwd/rockbox.ucl"
1082 # toolset is the tools within the tools directory that we build for
1083 # this particular target.
1084 toolset
=$archosbitmaptools
1086 t_manufacturer
="archos"
1092 modelname
="archosondiosp"
1093 target
="-DARCHOS_ONDIOSP"
1095 tool
="$rootdir/tools/scramble -osp"
1096 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1097 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1099 appextra
="recorder:gui"
1100 #archosrom="$pwd/rombox.ucl"
1101 flash
="$pwd/rockbox.ucl"
1104 # toolset is the tools within the tools directory that we build for
1105 # this particular target.
1106 toolset
=$archosbitmaptools
1108 t_manufacturer
="archos"
1114 modelname
="archosondiofm"
1115 target
="-DARCHOS_ONDIOFM"
1117 tool
="$rootdir/tools/scramble -ofm"
1118 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1119 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1121 appextra
="recorder:gui"
1122 #archosrom="$pwd/rombox.ucl"
1123 flash
="$pwd/rockbox.ucl"
1126 toolset
=$archosbitmaptools
1128 t_manufacturer
="archos"
1134 modelname
="archosav300"
1135 target
="-DARCHOS_AV300"
1138 tool
="$rootdir/tools/scramble -mm=C"
1139 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1140 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1142 appextra
="recorder:gui"
1145 # toolset is the tools within the tools directory that we build for
1146 # this particular target.
1147 toolset
="$toolset scramble descramble bmp2rb"
1148 # architecture, manufacturer and model for the target-tree build
1150 t_manufacturer
="archos"
1156 modelname
="iriverh120"
1157 target
="-DIRIVER_H120"
1160 tool
="$rootdir/tools/scramble -add=h120"
1161 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1162 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
1163 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1164 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1165 output
="rockbox.iriver"
1166 bootoutput
="bootloader.iriver"
1167 appextra
="recorder:gui"
1168 flash
="$pwd/rombox.iriver"
1171 # toolset is the tools within the tools directory that we build for
1172 # this particular target.
1173 toolset
=$iriverbitmaptools
1175 t_manufacturer
="iriver"
1181 modelname
="iriverh300"
1182 target
="-DIRIVER_H300"
1185 tool
="$rootdir/tools/scramble -add=h300"
1186 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1187 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1188 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1189 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1190 output
="rockbox.iriver"
1191 appextra
="recorder:gui"
1194 # toolset is the tools within the tools directory that we build for
1195 # this particular target.
1196 toolset
=$iriverbitmaptools
1198 t_manufacturer
="iriver"
1204 modelname
="iriverh100"
1205 target
="-DIRIVER_H100"
1208 tool
="$rootdir/tools/scramble -add=h100"
1209 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1210 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
1211 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1212 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1213 output
="rockbox.iriver"
1214 bootoutput
="bootloader.iriver"
1215 appextra
="recorder:gui"
1216 flash
="$pwd/rombox.iriver"
1219 # toolset is the tools within the tools directory that we build for
1220 # this particular target.
1221 toolset
=$iriverbitmaptools
1223 t_manufacturer
="iriver"
1229 modelname
="iriverifp7xx"
1230 target
="-DIRIVER_IFP7XX"
1234 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1235 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1236 output
="rockbox.wma"
1237 appextra
="recorder:gui"
1240 # toolset is the tools within the tools directory that we build for
1241 # this particular target.
1242 toolset
=$genericbitmaptools
1244 t_manufacturer
="pnx0101"
1245 t_model
="iriver-ifp7xx"
1250 modelname
="iriverh10"
1251 target
="-DIRIVER_H10"
1254 tool
="$rootdir/tools/scramble -mi4v3 -model=h10 -type=RBOS"
1255 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1256 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1257 output
="rockbox.mi4"
1258 appextra
="recorder:gui"
1261 boottool
="$rootdir/tools/scramble -mi4v3 -model=h10 -type=RBBL"
1262 bootoutput
="H10_20GC.mi4"
1263 # toolset is the tools within the tools directory that we build for
1264 # this particular target.
1265 toolset
=$scramblebitmaptools
1266 # architecture, manufacturer and model for the target-tree build
1268 t_manufacturer
="iriver"
1274 modelname
="iriverh10_5gb"
1275 target
="-DIRIVER_H10_5GB"
1278 tool
="$rootdir/tools/scramble -mi4v2 -model=h105 -type=RBOS"
1279 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1280 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1281 output
="rockbox.mi4"
1282 appextra
="recorder:gui"
1285 boottool
="$rootdir/tools/scramble -mi4v2 -model=h105 -type=RBBL"
1286 bootoutput
="H10.mi4"
1287 # toolset is the tools within the tools directory that we build for
1288 # this particular target.
1289 toolset
=$scramblebitmaptools
1290 # architecture, manufacturer and model for the target-tree build
1292 t_manufacturer
="iriver"
1298 modelname
="ipodcolor"
1299 target
="-DIPOD_COLOR"
1302 tool
="$rootdir/tools/scramble -add=ipco"
1303 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1304 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1305 output
="rockbox.ipod"
1306 appextra
="recorder:gui"
1309 bootoutput
="bootloader-$modelname.ipod"
1310 # toolset is the tools within the tools directory that we build for
1311 # this particular target.
1312 toolset
=$ipodbitmaptools
1313 # architecture, manufacturer and model for the target-tree build
1315 t_manufacturer
="ipod"
1321 modelname
="ipodnano1g"
1322 target
="-DIPOD_NANO"
1325 tool
="$rootdir/tools/scramble -add=nano"
1326 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1327 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1328 output
="rockbox.ipod"
1329 appextra
="recorder:gui"
1332 bootoutput
="bootloader-$modelname.ipod"
1333 # toolset is the tools within the tools directory that we build for
1334 # this particular target.
1335 toolset
=$ipodbitmaptools
1336 # architecture, manufacturer and model for the target-tree build
1338 t_manufacturer
="ipod"
1344 modelname
="ipodvideo"
1345 target
="-DIPOD_VIDEO"
1347 tool
="$rootdir/tools/scramble -add=ipvd"
1348 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1349 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1350 output
="rockbox.ipod"
1351 appextra
="recorder:gui"
1354 bootoutput
="bootloader-$modelname.ipod"
1355 # toolset is the tools within the tools directory that we build for
1356 # this particular target.
1357 toolset
=$ipodbitmaptools
1358 # architecture, manufacturer and model for the target-tree build
1360 t_manufacturer
="ipod"
1370 tool
="$rootdir/tools/scramble -add=ip3g"
1371 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1372 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1373 output
="rockbox.ipod"
1374 appextra
="recorder:gui"
1377 bootoutput
="bootloader-$modelname.ipod"
1378 # toolset is the tools within the tools directory that we build for
1379 # this particular target.
1380 toolset
=$ipodbitmaptools
1381 # architecture, manufacturer and model for the target-tree build
1383 t_manufacturer
="ipod"
1393 tool
="$rootdir/tools/scramble -add=ip4g"
1394 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1395 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1396 output
="rockbox.ipod"
1397 appextra
="recorder:gui"
1400 bootoutput
="bootloader-$modelname.ipod"
1401 # toolset is the tools within the tools directory that we build for
1402 # this particular target.
1403 toolset
=$ipodbitmaptools
1404 # architecture, manufacturer and model for the target-tree build
1406 t_manufacturer
="ipod"
1412 modelname
="ipodmini1g"
1413 target
="-DIPOD_MINI"
1416 tool
="$rootdir/tools/scramble -add=mini"
1417 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1418 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1419 output
="rockbox.ipod"
1420 appextra
="recorder:gui"
1423 bootoutput
="bootloader-$modelname.ipod"
1424 # toolset is the tools within the tools directory that we build for
1425 # this particular target.
1426 toolset
=$ipodbitmaptools
1427 # architecture, manufacturer and model for the target-tree build
1429 t_manufacturer
="ipod"
1435 modelname
="ipodmini2g"
1436 target
="-DIPOD_MINI2G"
1439 tool
="$rootdir/tools/scramble -add=mn2g"
1440 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1441 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1442 output
="rockbox.ipod"
1443 appextra
="recorder:gui"
1446 bootoutput
="bootloader-$modelname.ipod"
1447 # toolset is the tools within the tools directory that we build for
1448 # this particular target.
1449 toolset
=$ipodbitmaptools
1450 # architecture, manufacturer and model for the target-tree build
1452 t_manufacturer
="ipod"
1458 modelname
="ipod1g2g"
1459 target
="-DIPOD_1G2G"
1462 tool
="$rootdir/tools/scramble -add=1g2g"
1463 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1464 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1465 output
="rockbox.ipod"
1466 appextra
="recorder:gui"
1469 bootoutput
="bootloader-$modelname.ipod"
1470 # toolset is the tools within the tools directory that we build for
1471 # this particular target.
1472 toolset
=$ipodbitmaptools
1473 # architecture, manufacturer and model for the target-tree build
1475 t_manufacturer
="ipod"
1481 modelname
="ipodnano2g"
1482 target
="-DIPOD_NANO2G"
1485 tool
="$rootdir/tools/scramble -add=nn2g"
1486 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1487 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1488 output
="rockbox.ipod"
1489 appextra
="recorder:gui"
1492 bootoutput
="bootloader-$modelname.ipod"
1493 # toolset is the tools within the tools directory that we build for
1494 # this particular target.
1495 toolset
=$ipodbitmaptools
1496 # architecture, manufacturer and model for the target-tree build
1498 t_manufacturer
="s5l8700"
1499 t_model
="ipodnano2g"
1504 modelname
="iaudiox5"
1505 target
="-DIAUDIO_X5"
1508 tool
="$rootdir/tools/scramble -add=iax5"
1509 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1510 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1511 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1512 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 7"
1513 output
="rockbox.iaudio"
1514 appextra
="recorder:gui"
1517 # toolset is the tools within the tools directory that we build for
1518 # this particular target.
1519 toolset
="$iaudiobitmaptools"
1520 # architecture, manufacturer and model for the target-tree build
1522 t_manufacturer
="iaudio"
1528 modelname
="iaudiom5"
1529 target
="-DIAUDIO_M5"
1532 tool
="$rootdir/tools/scramble -add=iam5"
1533 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1534 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
1535 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1536 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 7"
1537 output
="rockbox.iaudio"
1538 appextra
="recorder:gui"
1541 # toolset is the tools within the tools directory that we build for
1542 # this particular target.
1543 toolset
="$iaudiobitmaptools"
1544 # architecture, manufacturer and model for the target-tree build
1546 t_manufacturer
="iaudio"
1556 tool
="$rootdir/tools/scramble -add=i7"
1557 boottool
="$rootdir/tools/scramble -tcc=crc"
1558 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1559 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1560 output
="rockbox.iaudio"
1561 appextra
="recorder:gui"
1564 bootoutput
="I7_FW.BIN"
1565 # toolset is the tools within the tools directory that we build for
1566 # this particular target.
1567 toolset
="$tccbitmaptools"
1568 # architecture, manufacturer and model for the target-tree build
1570 t_manufacturer
="tcc77x"
1580 tool
="$rootdir/tools/scramble -add=d2"
1582 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1583 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1585 bootoutput
="bootloader-cowond2.bin"
1586 appextra
="recorder:gui"
1589 toolset
="$tccbitmaptools"
1590 # architecture, manufacturer and model for the target-tree build
1592 t_manufacturer
="tcc780x"
1598 modelname
="iaudiom3"
1599 target
="-DIAUDIO_M3"
1602 tool
="$rootdir/tools/scramble -add=iam3"
1603 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1604 bmp2rb_native
="$rootdir/tools/bmp2rb -f 7"
1605 output
="rockbox.iaudio"
1606 appextra
="recorder:gui"
1609 # toolset is the tools within the tools directory that we build for
1610 # this particular target.
1611 toolset
="$iaudiobitmaptools"
1612 # architecture, manufacturer and model for the target-tree build
1614 t_manufacturer
="iaudio"
1620 modelname
="gigabeatfx"
1621 target
="-DGIGABEAT_F"
1624 tool
="$rootdir/tools/scramble -add=giga"
1625 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1626 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1627 output
="rockbox.gigabeat"
1628 appextra
="recorder:gui"
1631 toolset
=$gigabeatbitmaptools
1632 boottool
="$rootdir/tools/scramble -gigabeat"
1633 bootoutput
="FWIMG01.DAT"
1634 # architecture, manufacturer and model for the target-tree build
1636 t_manufacturer
="s3c2440"
1637 t_model
="gigabeat-fx"
1642 modelname
="gigabeats"
1643 target
="-DGIGABEAT_S"
1646 tool
="$rootdir/tools/scramble -add=gigs"
1647 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1648 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1649 output
="rockbox.gigabeat"
1650 appextra
="recorder:gui"
1653 toolset
="$gigabeatbitmaptools"
1654 boottool
="$rootdir/tools/scramble -gigabeats"
1656 # architecture, manufacturer and model for the target-tree build
1658 t_manufacturer
="imx31"
1659 t_model
="gigabeat-s"
1664 modelname
="mrobe500"
1665 target
="-DMROBE_500"
1668 tool
="$rootdir/tools/scramble -add=m500"
1669 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1670 bmp2rb_native
="$rootdir/tools/bmp2rb -f 8"
1671 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1672 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1673 output
="rockbox.mrobe500"
1674 appextra
="recorder:gui"
1677 toolset
=$gigabeatbitmaptools
1679 bootoutput
="rockbox.mrboot"
1680 # architecture, manufacturer and model for the target-tree build
1682 t_manufacturer
="tms320dm320"
1688 modelname
="mrobe100"
1689 target
="-DMROBE_100"
1692 tool
="$rootdir/tools/scramble -mi4v2 -model=m100 -type=RBOS"
1693 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1694 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1695 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1696 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1697 output
="rockbox.mi4"
1698 appextra
="recorder:gui"
1701 boottool
="$rootdir/tools/scramble -mi4v2 -model=m100 -type=RBBL"
1702 bootoutput
="pp5020.mi4"
1703 # toolset is the tools within the tools directory that we build for
1704 # this particular target.
1705 toolset
=$scramblebitmaptools
1706 # architecture, manufacturer and model for the target-tree build
1708 t_manufacturer
="olympus"
1714 modelname
="logikdax"
1715 target
="-DLOGIK_DAX"
1718 tool
="$rootdir/tools/scramble -add=ldax"
1719 boottool
="$rootdir/tools/scramble -tcc=crc"
1720 bootoutput
="player.rom"
1721 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1722 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1723 output
="rockbox.logik"
1724 appextra
="recorder:gui"
1727 # toolset is the tools within the tools directory that we build for
1728 # this particular target.
1729 toolset
=$tccbitmaptools
1730 # architecture, manufacturer and model for the target-tree build
1732 t_manufacturer
="tcc77x"
1738 modelname
="zenvisionm30gb"
1739 target
="-DCREATIVE_ZVM"
1742 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1743 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1744 tool
="$rootdir/tools/scramble -creative=zvm"
1746 output
="rockbox.zvm"
1747 appextra
="recorder:gui"
1750 toolset
=$ipodbitmaptools
1751 boottool
="$rootdir/tools/scramble -creative=zvm -no-ciff"
1752 bootoutput
="rockbox.zvmboot"
1753 # architecture, manufacturer and model for the target-tree build
1755 t_manufacturer
="tms320dm320"
1756 t_model
="creative-zvm"
1761 modelname
="zenvisionm60gb"
1762 target
="-DCREATIVE_ZVM60GB"
1765 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1766 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1767 tool
="$rootdir/tools/scramble -creative=zvm60 -no-ciff"
1769 output
="rockbox.zvm60"
1770 appextra
="recorder:gui"
1773 toolset
=$ipodbitmaptools
1774 boottool
="$rootdir/tools/scramble -creative=zvm60"
1775 bootoutput
="rockbox.zvm60boot"
1776 # architecture, manufacturer and model for the target-tree build
1778 t_manufacturer
="tms320dm320"
1779 t_model
="creative-zvm"
1784 modelname
="zenvision"
1785 target
="-DCREATIVE_ZV"
1788 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1789 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1790 tool
="$rootdir/tools/scramble -creative=zenvision -no-ciff"
1793 appextra
="recorder:gui"
1796 toolset
=$ipodbitmaptools
1797 boottool
="$rootdir/tools/scramble -creative=zenvision"
1798 bootoutput
="rockbox.zvboot"
1799 # architecture, manufacturer and model for the target-tree build
1801 t_manufacturer
="tms320dm320"
1802 t_model
="creative-zvm"
1807 modelname
="sansae200"
1808 target
="-DSANSA_E200"
1809 memory
=32 # supposedly
1811 tool
="$rootdir/tools/scramble -mi4v3 -model=e200 -type=RBOS"
1812 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1813 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1814 output
="rockbox.mi4"
1815 appextra
="recorder:gui"
1818 boottool
="$rootdir/tools/scramble -mi4v3 -model=e200 -type=RBBL"
1819 bootoutput
="PP5022.mi4"
1820 # toolset is the tools within the tools directory that we build for
1821 # this particular target.
1822 toolset
=$scramblebitmaptools
1823 # architecture, manufacturer and model for the target-tree build
1825 t_manufacturer
="sandisk"
1826 t_model
="sansa-e200"
1830 # the e200R model is pretty much identical to the e200, it only has a
1831 # different option to the scramble tool when building a bootloader and
1832 # makes the bootloader output file name in all lower case.
1834 modelname
="sansae200r"
1835 target
="-DSANSA_E200"
1836 memory
=32 # supposedly
1838 tool
="$rootdir/tools/scramble -mi4v3 -model=e20r -type=RBOS"
1839 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1840 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1841 output
="rockbox.mi4"
1842 appextra
="recorder:gui"
1845 boottool
="$rootdir/tools/scramble -mi4r -model=e20r -type=RBBL"
1846 bootoutput
="pp5022.mi4"
1847 # toolset is the tools within the tools directory that we build for
1848 # this particular target.
1849 toolset
=$scramblebitmaptools
1850 # architecture, manufacturer and model for the target-tree build
1852 t_manufacturer
="sandisk"
1853 t_model
="sansa-e200"
1858 modelname
="sansac200"
1859 target
="-DSANSA_C200"
1860 memory
=32 # supposedly
1862 tool
="$rootdir/tools/scramble -mi4v3 -model=c200 -type=RBOS"
1863 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1864 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1865 output
="rockbox.mi4"
1866 appextra
="recorder:gui"
1869 boottool
="$rootdir/tools/scramble -mi4v3 -model=c200 -type=RBBL"
1870 bootoutput
="firmware.mi4"
1871 # toolset is the tools within the tools directory that we build for
1872 # this particular target.
1873 toolset
=$scramblebitmaptools
1874 # architecture, manufacturer and model for the target-tree build
1876 t_manufacturer
="sandisk"
1877 t_model
="sansa-c200"
1882 modelname
="sansam200"
1883 target
="-DSANSA_M200"
1886 tool
="$rootdir/tools/scramble -add=m200"
1887 boottool
="$rootdir/tools/scramble -tcc=crc"
1888 bootoutput
="player.rom"
1889 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1890 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1891 output
="rockbox.m200"
1892 appextra
="recorder:gui"
1895 # toolset is the tools within the tools directory that we build for
1896 # this particular target.
1897 toolset
=$tccbitmaptools
1898 # architecture, manufacturer and model for the target-tree build
1900 t_manufacturer
="tcc77x"
1906 modelname
="sansac100"
1907 target
="-DSANSA_C100"
1910 tool
="$rootdir/tools/scramble -add=c100"
1911 boottool
="$rootdir/tools/scramble -tcc=crc"
1912 bootoutput
="player.rom"
1913 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1914 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1915 output
="rockbox.c100"
1916 appextra
="recorder:gui"
1919 # toolset is the tools within the tools directory that we build for
1920 # this particular target.
1921 toolset
=$tccbitmaptools
1922 # architecture, manufacturer and model for the target-tree build
1924 t_manufacturer
="tcc77x"
1930 modelname
="sansaclip"
1931 target
="-DSANSA_CLIP"
1933 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1934 bmp2rb_native
="$bmp2rb_mono"
1935 tool
="$rootdir/tools/scramble -add=clip"
1936 output
="rockbox.sansa"
1937 bootoutput
="bootloader-clip.sansa"
1938 appextra
="recorder:gui"
1941 toolset
=$scramblebitmaptools
1943 t_manufacturer
="as3525"
1944 t_model
="sansa-clip"
1951 modelname
="sansae200v2"
1952 target
="-DSANSA_E200V2"
1954 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1955 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1956 tool
="$rootdir/tools/scramble -add=e2v2"
1957 output
="rockbox.sansa"
1958 bootoutput
="bootloader-e200v2.sansa"
1959 appextra
="recorder:gui"
1962 toolset
=$scramblebitmaptools
1964 t_manufacturer
="as3525"
1965 t_model
="sansa-e200v2"
1972 modelname
="sansam200v4"
1973 target
="-DSANSA_M200V4"
1975 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1976 bmp2rb_native
="$bmp2rb_mono"
1977 tool
="$rootdir/tools/scramble -add=m2v4"
1978 output
="rockbox.sansa"
1979 bootoutput
="bootloader-m200v4.sansa"
1980 appextra
="recorder:gui"
1983 toolset
=$scramblebitmaptools
1985 t_manufacturer
="as3525"
1986 t_model
="sansa-m200v4"
1993 modelname
="sansafuze"
1994 target
="-DSANSA_FUZE"
1996 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1997 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1998 tool
="$rootdir/tools/scramble -add=fuze"
1999 output
="rockbox.sansa"
2000 bootoutput
="bootloader-fuze.sansa"
2001 appextra
="recorder:gui"
2004 toolset
=$scramblebitmaptools
2006 t_manufacturer
="as3525"
2007 t_model
="sansa-fuze"
2014 modelname
="sansac200v2"
2015 target
="-DSANSA_C200V2"
2016 memory
=2 # as per OF diagnosis mode
2017 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2018 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2019 tool
="$rootdir/tools/scramble -add=c2v2"
2020 output
="rockbox.sansa"
2021 bootoutput
="bootloader-c200v2.sansa"
2022 appextra
="recorder:gui"
2025 # toolset is the tools within the tools directory that we build for
2026 # this particular target.
2027 toolset
=$scramblebitmaptools
2028 # architecture, manufacturer and model for the target-tree build
2030 t_manufacturer
="as3525"
2031 t_model
="sansa-c200v2"
2037 modelname
="sansaclipv2"
2038 target
="-DSANSA_CLIPV2"
2040 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2041 bmp2rb_native
="$bmp2rb_mono"
2042 tool
="$rootdir/tools/scramble -add=clv2"
2043 output
="rockbox.sansa"
2044 bootoutput
="bootloader-clipv2.sansa"
2045 appextra
="recorder:gui"
2048 toolset
=$scramblebitmaptools
2050 t_manufacturer
="as3525"
2051 t_model
="sansa-clipv2"
2056 echo "Sansa View is not yet supported!"
2059 modelname
="sansaview"
2060 target
="-DSANSA_VIEW"
2063 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2064 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2065 output
="rockbox.mi4"
2069 boottool
="$rootdir/tools/scramble -mi4v3 -model=view -type=RBBL"
2070 bootoutput
="firmware.mi4"
2071 # toolset is the tools within the tools directory that we build for
2072 # this particular target.
2073 toolset
=$scramblebitmaptools
2075 t_manufacturer
="sandisk"
2076 t_model
="sansa-view"
2081 modelname
="sansaclipplus"
2082 target
="-DSANSA_CLIPPLUS"
2084 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2085 bmp2rb_native
="$bmp2rb_mono"
2086 tool
="$rootdir/tools/scramble -add=cli+"
2087 output
="rockbox.sansa"
2088 bootoutput
="bootloader-clipplus.sansa"
2089 appextra
="recorder:gui"
2092 toolset
=$scramblebitmaptools
2094 t_manufacturer
="as3525"
2095 t_model
="sansa-clipplus"
2101 modelname
="sansafuzev2"
2102 target
="-DSANSA_FUZEV2"
2104 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2105 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
2106 tool
="$rootdir/tools/scramble -add=fuz2"
2107 output
="rockbox.sansa"
2108 bootoutput
="bootloader-fuzev2.sansa"
2109 appextra
="recorder:gui"
2112 toolset
=$scramblebitmaptools
2114 t_manufacturer
="as3525"
2115 t_model
="sansa-fuzev2"
2121 modelname
="tatungtpj1022"
2122 target
="-DTATUNG_TPJ1022"
2125 tool
="$rootdir/tools/scramble -add tpj2"
2126 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2127 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
2128 output
="rockbox.elio"
2129 appextra
="recorder:gui"
2132 boottool
="$rootdir/tools/scramble -mi4v2"
2133 bootoutput
="pp5020.mi4"
2134 # toolset is the tools within the tools directory that we build for
2135 # this particular target.
2136 toolset
=$scramblebitmaptools
2137 # architecture, manufacturer and model for the target-tree build
2139 t_manufacturer
="tatung"
2145 modelname
="gogearsa9200"
2146 target
="-DPHILIPS_SA9200"
2147 memory
=32 # supposedly
2149 tool
="$rootdir/tools/scramble -mi4v3 -model=9200 -type=RBOS"
2150 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2151 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2152 output
="rockbox.mi4"
2153 appextra
="recorder:gui"
2156 boottool
="$rootdir/tools/scramble -mi4v3 -model=9200 -type=RBBL"
2157 bootoutput
="FWImage.ebn"
2158 # toolset is the tools within the tools directory that we build for
2159 # this particular target.
2160 toolset
=$scramblebitmaptools
2161 # architecture, manufacturer and model for the target-tree build
2163 t_manufacturer
="philips"
2169 modelname
="gogearhdd1630"
2170 target
="-DPHILIPS_HDD1630"
2171 memory
=32 # supposedly
2173 tool
="$rootdir/tools/scramble -mi4v3 -model=1630 -type=RBOS"
2174 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2175 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2176 output
="rockbox.mi4"
2177 appextra
="recorder:gui"
2180 boottool
="$rootdir/tools/scramble -mi4v3 -model=1630 -type=RBBL"
2181 bootoutput
="FWImage.ebn"
2182 # toolset is the tools within the tools directory that we build for
2183 # this particular target.
2184 toolset
=$scramblebitmaptools
2185 # architecture, manufacturer and model for the target-tree build
2187 t_manufacturer
="philips"
2193 modelname
="gogearhdd6330"
2194 target
="-DPHILIPS_HDD6330"
2195 memory
=32 # supposedly
2197 tool
="$rootdir/tools/scramble -mi4v3 -model=6330 -type=RBOS"
2198 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2199 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2200 output
="rockbox.mi4"
2201 appextra
="recorder:gui"
2204 boottool
="$rootdir/tools/scramble -mi4v3 -model=6330 -type=RBBL"
2205 bootoutput
="FWImage.ebn"
2206 # toolset is the tools within the tools directory that we build for
2207 # this particular target.
2208 toolset
=$scramblebitmaptools
2209 # architecture, manufacturer and model for the target-tree build
2211 t_manufacturer
="philips"
2217 modelname
="meizum6sl"
2218 target
="-DMEIZU_M6SL"
2222 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2223 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2224 output
="rockbox.meizu"
2225 appextra
="recorder:gui"
2228 toolset
=$genericbitmaptools
2230 bootoutput
="rockboot.ebn"
2231 # architecture, manufacturer and model for the target-tree build
2233 t_manufacturer
="s5l8700"
2234 t_model
="meizu-m6sl"
2239 modelname
="meizum6sp"
2240 target
="-DMEIZU_M6SP"
2244 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2245 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2246 output
="rockbox.meizu"
2247 appextra
="recorder:gui"
2250 toolset
=$genericbitmaptools
2252 bootoutput
="rockboot.ebn"
2253 # architecture, manufacturer and model for the target-tree build
2255 t_manufacturer
="s5l8700"
2256 t_model
="meizu-m6sp"
2266 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2267 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2268 output
="rockbox.meizu"
2269 appextra
="recorder:gui"
2272 toolset
=$genericbitmaptools
2274 bootoutput
="rockboot.ebn"
2275 # architecture, manufacturer and model for the target-tree build
2277 t_manufacturer
="s5l8700"
2283 modelname
="ondavx747"
2284 target
="-DONDA_VX747"
2287 tool
="$rootdir/tools/scramble -add=x747"
2288 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2289 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2290 output
="rockbox.vx747"
2291 appextra
="recorder:gui"
2294 toolset
=$genericbitmaptools
2295 boottool
="$rootdir/tools/scramble -ccpmp"
2296 bootoutput
="ccpmp.bin"
2297 # architecture, manufacturer and model for the target-tree build
2299 t_manufacturer
="ingenic_jz47xx"
2300 t_model
="onda_vx747"
2305 modelname
="ondavx767"
2306 target
="-DONDA_VX767"
2310 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2311 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2312 output
="rockbox.vx767"
2313 appextra
="recorder:gui"
2316 toolset
=$genericbitmaptools
2317 boottool
="$rootdir/tools/scramble -ccpmp"
2318 bootoutput
="ccpmp.bin"
2319 # architecture, manufacturer and model for the target-tree build
2321 t_manufacturer
="ingenic_jz47xx"
2322 t_model
="onda_vx767"
2327 modelname
="ondavx747p"
2328 target
="-DONDA_VX747P"
2331 tool
="$rootdir/tools/scramble -add=747p"
2332 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2333 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2334 output
="rockbox.vx747p"
2335 appextra
="recorder:gui"
2338 toolset
=$genericbitmaptools
2339 boottool
="$rootdir/tools/scramble -ccpmp"
2340 bootoutput
="ccpmp.bin"
2341 # architecture, manufacturer and model for the target-tree build
2343 t_manufacturer
="ingenic_jz47xx"
2344 t_model
="onda_vx747"
2349 modelname
="ondavx777"
2350 target
="-DONDA_VX777"
2353 tool
="$rootdir/tools/scramble -add=x777"
2354 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2355 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2356 output
="rockbox.vx777"
2357 appextra
="recorder:gui"
2360 toolset
=$genericbitmaptools
2361 boottool
="$rootdir/tools/scramble -ccpmp"
2362 bootoutput
="ccpmp.bin"
2363 # architecture, manufacturer and model for the target-tree build
2365 t_manufacturer
="ingenic_jz47xx"
2366 t_model
="onda_vx747"
2371 modelname
="lyreproto1"
2372 target
="-DLYRE_PROTO1"
2376 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2377 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2378 output
="rockbox.lyre"
2379 appextra
="recorder:gui"
2382 toolset
=$scramblebitmaptools
2384 bootoutput
="bootloader-proto1.lyre"
2385 # architecture, manufacturer and model for the target-tree build
2387 t_manufacturer
="at91sam"
2388 t_model
="lyre_proto1"
2393 modelname
="mini2440"
2397 tool
="$rootdir/tools/scramble -add=m244"
2398 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2399 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2400 output
="rockbox.mini2440"
2401 appextra
="recorder:gui"
2404 toolset
=$scramblebitmaptools
2406 bootoutput
="bootloader-mini2440.lyre"
2407 # architecture, manufacturer and model for the target-tree build
2409 t_manufacturer
="s3c2440"
2415 modelname
="samsungyh820"
2416 target
="-DSAMSUNG_YH820"
2419 tool
="$rootdir/tools/scramble -mi4v2 -model=y820 -type=RBOS"
2420 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2421 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2422 output
="rockbox.mi4"
2423 appextra
="recorder:gui"
2426 boottool
="$rootdir/tools/scramble -mi4v2 -model=y820 -type=RBBL"
2427 bootoutput
="FW_YH820.mi4"
2428 # toolset is the tools within the tools directory that we build for
2429 # this particular target.
2430 toolset
=$scramblebitmaptools
2431 # architecture, manufacturer and model for the target-tree build
2433 t_manufacturer
="samsung"
2439 modelname
="samsungyh920"
2440 target
="-DSAMSUNG_YH920"
2443 tool
="$rootdir/tools/scramble -mi4v2 -model=y920 -type=RBOS"
2444 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2445 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
2446 output
="rockbox.mi4"
2447 appextra
="recorder:gui"
2450 boottool
="$rootdir/tools/scramble -mi4v2 -model=y920 -type=RBBL"
2451 bootoutput
="PP5020.mi4"
2452 # toolset is the tools within the tools directory that we build for
2453 # this particular target.
2454 toolset
=$scramblebitmaptools
2455 # architecture, manufacturer and model for the target-tree build
2457 t_manufacturer
="samsung"
2463 modelname
="samsungyh925"
2464 target
="-DSAMSUNG_YH925"
2467 tool
="$rootdir/tools/scramble -mi4v2 -model=y925 -type=RBOS"
2468 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2469 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2470 output
="rockbox.mi4"
2471 appextra
="recorder:gui"
2474 boottool
="$rootdir/tools/scramble -mi4v2 -model=y925 -type=RBBL"
2475 bootoutput
="FW_YH925.mi4"
2476 # toolset is the tools within the tools directory that we build for
2477 # this particular target.
2478 toolset
=$scramblebitmaptools
2479 # architecture, manufacturer and model for the target-tree build
2481 t_manufacturer
="samsung"
2487 modelname
="samsungyps3"
2488 target
="-DSAMSUNG_YPS3"
2492 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2493 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2494 output
="rockbox.yps3"
2495 appextra
="recorder:gui"
2498 toolset
=$genericbitmaptools
2500 bootoutput
="rockboot.ebn"
2501 # architecture, manufacturer and model for the target-tree build
2503 t_manufacturer
="s5l8700"
2510 target
="-DPBELL_VIBE500"
2513 tool
="$rootdir/tools/scramble -mi4v3 -model=v500 -type=RBOS"
2514 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2515 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
2516 output
="rockbox.mi4"
2517 appextra
="recorder:gui"
2520 boottool
="$rootdir/tools/scramble -mi4v3 -model=v500 -type=RBBL"
2521 bootoutput
="jukebox.mi4"
2522 # toolset is the tools within the tools directory that we build for
2523 # this particular target.
2524 toolset
=$scramblebitmaptools
2525 # architecture, manufacturer and model for the target-tree build
2527 t_manufacturer
="pbell"
2533 modelname
="mpiohd200"
2534 target
="-DMPIO_HD200"
2537 tool
="$rootdir/tools/scramble -add=hd20"
2538 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2539 bmp2rb_native
="$rootdir/tools/bmp2rb -f 7"
2540 output
="rockbox.mpio"
2541 bootoutput
="bootloader.mpio"
2542 appextra
="recorder:gui"
2545 # toolset is the tools within the tools directory that we build for
2546 # this particular target.
2547 toolset
="$genericbitmaptools"
2548 # architecture, manufacturer and model for the target-tree build
2550 t_manufacturer
="mpio"
2555 echo "Please select a supported target platform!"
2561 echo "Platform set to $modelname"
2565 ############################################################################
2566 # Amount of memory, for those that can differ. They have $memory unset at
2570 if [ -z "$memory" ]; then
2573 if [ "$ARG_RAM" ]; then
2576 echo "Enter size of your RAM (in MB): (Defaults to 32)"
2589 if [ "$ARG_RAM" ]; then
2592 echo "Enter size of your RAM (in MB): (Defaults to 2)"
2605 echo "Memory size selected: $memory MB"
2606 [ "$ARG_TYPE" ] ||
echo ""
2610 ##################################################################
2611 # Figure out build "type"
2614 # the ifp7x0 is the only platform that supports building a gdb stub like
2618 gdbstub
="(G)DB stub, "
2620 sansae200r|sansae200
)
2621 gdbstub
="(I)nstaller, "
2624 gdbstub
="(E)raser, "
2629 if [ "$ARG_TYPE" ]; then
2632 echo "Build (N)ormal, (A)dvanced, (S)imulator, (B)ootloader, (C)heckWPS, (D)atabase tool, $gdbstub(M)anual: (Defaults to N)"
2638 appsdir
='\$(ROOTDIR)/bootloader'
2640 extradefines
="-DBOOTLOADER -DE200R_INSTALLER -ffunction-sections -fdata-sections"
2642 echo "e200R-installer build selected"
2645 appsdir
='\$(ROOTDIR)/bootloader'
2647 echo "C2(4)0 or C2(5)0"
2651 extradefines
="-DBOOTLOADER -DC200_ERASE -DC240_ERASE -ffunction-sections -fdata-sections"
2652 echo "c240 eraser build selected"
2655 extradefines
="-DBOOTLOADER -DC200_ERASE -DC250_ERASE -ffunction-sections -fdata-sections"
2656 echo "c240 eraser build selected"
2660 echo "c200 eraser build selected"
2663 if test $t_manufacturer = "archos"; then
2664 # Archos SH-based players do this somewhat differently for
2666 appsdir
='\$(ROOTDIR)/flash/bootbox'
2669 appsdir
='\$(ROOTDIR)/bootloader'
2672 if test -n "$boottool"; then
2675 if test -n "$bootoutput"; then
2679 extradefines
="-DBOOTLOADER -ffunction-sections -fdata-sections"
2681 echo "Bootloader build selected"
2684 if [ "$modelname" = "sansae200r" ]; then
2685 echo "Do not use the e200R target for simulator builds. Use e200 instead."
2690 extradefines
="-DSIMULATOR"
2693 echo "Simulator build selected"
2696 echo "Advanced build selected"
2697 whichadvanced
$btype
2700 extradefines
="-DSTUB" # for target makefile symbol EXTRA_DEFINES
2701 appsdir
='\$(ROOTDIR)/gdb'
2710 echo "GDB stub build selected"
2715 echo "Manual build selected"
2723 extradefines
="-DDEBUG"
2724 appsdir
='\$(ROOTDIR)/tools/checkwps';
2725 output
='checkwps.'${modelname};
2727 echo "CheckWPS build selected"
2735 appsdir
='\$(ROOTDIR)/tools/database';
2740 output
="database_${modelname}.exe"
2743 output
='database.'${modelname};
2747 echo "Database tool build selected"
2750 if [ "$modelname" = "sansae200r" ]; then
2751 echo "Do not use the e200R target for regular builds. Use e200 instead."
2755 btype
="N" # set it explicitly since RET only gets here as well
2756 echo "Normal build selected"
2760 # to be able running "make manual" from non-manual configuration
2763 manualdev
="archosfmrecorder"
2766 manualdev
="iriverh100"
2769 manualdev
="ipodmini1g"
2772 manualdev
=$modelname
2776 if [ -z "$debug" ]; then
2777 GCCOPTS
="$GCCOPTS $GCCOPTIMIZE"
2780 echo "Using source code root directory: $rootdir"
2782 # this was once possible to change at build-time, but no more:
2787 if [ "yes" = "$simulator" ]; then
2788 # setup compiler and things for simulator
2791 if [ -d "simdisk" ]; then
2792 echo "Subdirectory 'simdisk' already present"
2795 echo "Created a 'simdisk' subdirectory for simulating the hard disk"
2799 # Now, figure out version number of the (gcc) compiler we are about to use
2800 gccver
=`$CC -dumpversion`;
2802 # figure out the binutil version too and display it, mostly for the build
2803 # system etc to be able to see it easier
2804 if [ $uname = "Darwin" ]; then
2805 ldver
=`$LD -v 2>&1 | sed -e 's/[^0-9.-]//g'`
2807 ldver
=`$LD --version | head -n 1 | sed -e 's/[^0-9.]//g'`
2810 if [ -z "$gccver" ]; then
2811 echo "[WARNING] The compiler you must use ($CC) is not in your path!"
2812 echo "[WARNING] this may cause your build to fail since we cannot do the"
2813 echo "[WARNING] checks we want now."
2816 # gccver should now be "3.3.5", "3.4.3", "2.95.3-6" and similar, but don't
2819 num1
=`echo $gccver | cut -d . -f1`
2820 num2
=`echo $gccver | cut -d . -f2`
2821 gccnum
=`(expr $num1 "*" 100 + $num2) 2>/dev/null`
2828 echo "Using $CC $gccver ($gccnum)"
2830 if test "$gccnum" -ge "400"; then
2831 # gcc 4.0 is just *so* much pickier on arguments that differ in signedness
2832 # so we ignore that warnings for now
2834 GCCOPTS
="$GCCOPTS -Wno-pointer-sign"
2837 if test "$gccnum" -ge "401"; then
2838 # this is a lame hack to avoid "warning: dereferencing type-punned pointer
2839 # will break strict-aliasing rules"
2841 GCCOPTS
="$GCCOPTS -fno-strict-aliasing"
2844 if test "$gccnum" -ge "402"; then
2845 # disable warning about "warning: initialized field overwritten" as gcc 4.2
2846 # and later would throw it for several valid cases
2847 GCCOPTS
="$GCCOPTS -Wno-override-init"
2855 # cross-compile for win32
2858 # Verify that the cross-compiler is of a recommended version!
2859 if test "$gccver" != "$gccchoice"; then
2860 echo "WARNING: Your cross-compiler $CC $gccver is not of the recommended"
2861 echo "WARNING: version $gccchoice!"
2862 echo "WARNING: This may cause your build to fail since it may be a version"
2863 echo "WARNING: that isn't functional or known to not be the best choice."
2864 echo "WARNING: If you suffer from build problems, you know that this is"
2865 echo "WARNING: a likely source for them..."
2873 echo "Using $LD $ldver"
2875 # check the compiler for SH platforms
2876 if test "$CC" = "sh-elf-gcc"; then
2877 if test "$gccnum" -lt "400"; then
2878 echo "WARNING: Consider upgrading your compiler to the 4.0.X series!"
2879 echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler"
2881 # figure out patch status
2882 gccpatch
=`$CC --version`;
2884 if { echo $gccpatch |
grep "rockbox" >/dev
/null
2>&1; } then
2885 echo "gcc $gccver is rockbox patched"
2886 # then convert -O to -Os to get smaller binaries!
2887 GCCOPTS
=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2889 echo "WARNING: You use an unpatched gcc compiler: $gccver"
2890 echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler"
2895 if test "$CC" = "m68k-elf-gcc"; then
2896 # convert -O to -Os to get smaller binaries!
2897 GCCOPTS
=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2900 if [ "$ARG_CCACHE" = "1" ]; then
2901 echo "Enable ccache for building"
2903 elif [ "$ARG_CCACHE" != "0" ]; then
2904 ccache
=`findtool ccache`
2905 if test -n "$ccache"; then
2906 echo "Found and uses ccache ($ccache)"
2910 # figure out the full path to the various commands if possible
2911 HOSTCC
=`findtool gcc --lit`
2912 HOSTAR
=`findtool ar --lit`
2913 CC
=`findtool ${CC} --lit`
2914 LD
=`findtool ${AR} --lit`
2915 AR
=`findtool ${AR} --lit`
2916 AS
=`findtool ${AS} --lit`
2917 OC
=`findtool ${OC} --lit`
2918 WINDRES
=`findtool ${WINDRES} --lit`
2919 DLLTOOL
=`findtool ${DLLTOOL} --lit`
2920 DLLWRAP
=`findtool ${DLLWRAP} --lit`
2921 RANLIB
=`findtool ${RANLIB} --lit`
2923 if test -n "$ccache"; then
2927 if test "X$endian" = "Xbig"; then
2928 defendian
="ROCKBOX_BIG_ENDIAN"
2930 defendian
="ROCKBOX_LITTLE_ENDIAN"
2933 if [ "$ARG_RBDIR" ]; then
2935 echo "Using alternate rockbox dir: ${rbdir}"
2939 -e "s,@ENDIAN@,${defendian},g" \
2940 -e "s,^#undef ROCKBOX_HAS_LOGF,$use_logf,g" \
2941 -e "s,^#undef DO_BOOTCHART,$use_bootchart,g" \
2942 -e "s,@config_rtc@,$config_rtc,g" \
2943 -e "s,@have_rtc_alarm@,$have_rtc_alarm,g" \
2944 -e "s,@RBDIR@,${rbdir},g" \
2945 -e "s,@have_backlight@,$have_backlight,g" \
2946 -e "s,@have_fmradio_in@,$have_fmradio_in,g" \
2947 -e "s,@have_ata_poweroff@,$have_ata_poweroff,g" \
2949 /* This header was made by configure */
2950 #ifndef __BUILD_AUTOCONF_H
2951 #define __BUILD_AUTOCONF_H
2953 /* Define endianess for the target or simulator platform */
2956 /* Define this if you build rockbox to support the logf logging and display */
2957 #undef ROCKBOX_HAS_LOGF
2959 /* Define this to record a chart with timings for the stages of boot */
2962 /* optional define for a backlight modded Ondio */
2965 /* optional define for FM radio mod for iAudio M5 */
2968 /* optional define for ATA poweroff on Player */
2971 /* optional defines for RTC mod for h1x0 */
2975 /* root of Rockbox */
2976 #define ROCKBOX_DIR "/@RBDIR@"
2978 #endif /* __BUILD_AUTOCONF_H */
2981 if test -n "$t_cpu"; then
2982 TARGET_INC
="-I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer/$t_model"
2983 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer"
2984 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu"
2988 if test "$simulator" = "yes"; then
2989 # add simul make stuff on the #SIMUL# line
2990 simmagic1
="s,@SIMUL1@,\$(SILENT)\$(MAKE) -C \$(SIMDIR) OBJDIR=\$(BUILDDIR)/sim,"
2991 simmagic2
="s,@SIMUL2@,\$(SILENT)\$(MAKE) -C \$(ROOTDIR)/uisimulator/common OBJDIR=\$(BUILDDIR)/comsim,"
2993 # delete the lines that match
2994 simmagic1
='/@SIMUL1@/D'
2995 simmagic2
='/@SIMUL2@/D'
2998 if test "$swcodec" = "yes"; then
2999 voicetoolset
="rbspeexenc voicefont wavtrim"
3001 voicetoolset
="voicefont wavtrim"
3004 if test "$apps" = "apps"; then
3005 # only when we build "real" apps we build the .lng files
3009 #### Fix the cmdline ###
3010 if test -n "$ccache"; then
3013 if [ "$ARG_ARM_EABI" = "1" ]; then
3014 cmdline
="$cmdline--eabi "
3017 cmdline
="$cmdline--target=\$(MODELNAME) --ram=\$(MEMORYSIZE) --rbdir=\$(RBDIR) --type=$btype$advopts"
3021 -e "s,@ROOTDIR@,${rootdir},g" \
3022 -e "s,@DEBUG@,${debug},g" \
3023 -e "s,@MEMORY@,${memory},g" \
3024 -e "s,@TARGET_ID@,${target_id},g" \
3025 -e "s,@TARGET@,${target},g" \
3026 -e "s,@CPU@,${t_cpu},g" \
3027 -e "s,@MANUFACTURER@,${t_manufacturer},g" \
3028 -e "s,@MODELNAME@,${modelname},g" \
3029 -e "s,@LANGUAGE@,${language},g" \
3030 -e "s:@VOICELANGUAGE@:${voicelanguage}:g" \
3031 -e "s,@PWD@,${pwd},g" \
3032 -e "s,@HOSTCC@,${HOSTCC},g" \
3033 -e "s,@HOSTAR@,${HOSTAR},g" \
3034 -e "s,@CC@,${CC},g" \
3035 -e "s,@LD@,${LD},g" \
3036 -e "s,@AR@,${AR},g" \
3037 -e "s,@AS@,${AS},g" \
3038 -e "s,@OC@,${OC},g" \
3039 -e "s,@WINDRES@,${WINDRES},g" \
3040 -e "s,@DLLTOOL@,${DLLTOOL},g" \
3041 -e "s,@DLLWRAP@,${DLLWRAP},g" \
3042 -e "s,@RANLIB@,${RANLIB},g" \
3043 -e "s,@TOOL@,${tool},g" \
3044 -e "s,@BMP2RB_NATIVE@,${bmp2rb_native},g" \
3045 -e "s,@BMP2RB_MONO@,${bmp2rb_mono},g" \
3046 -e "s,@BMP2RB_REMOTENATIVE@,${bmp2rb_remotenative},g" \
3047 -e "s,@BMP2RB_REMOTEMONO@,${bmp2rb_remotemono},g" \
3048 -e "s,@OUTPUT@,${output},g" \
3049 -e "s,@APPEXTRA@,${appextra},g" \
3050 -e "s,@ARCHOSROM@,${archosrom},g" \
3051 -e "s,@FLASHFILE@,${flash},g" \
3052 -e "s,@PLUGINS@,${plugins},g" \
3053 -e "s,@CODECS@,${swcodec},g" \
3054 -e "s,@PROFILE_OPTS@,${PROFILE_OPTS},g" \
3055 -e "s,@SHARED_FLAG@,${SHARED_FLAG},g" \
3056 -e "s,@GCCOPTS@,${GCCOPTS},g" \
3057 -e "s,@TARGET_INC@,${TARGET_INC},g" \
3058 -e "s!@LDOPTS@!${LDOPTS}!g" \
3059 -e "s,@LOADADDRESS@,${loadaddress},g" \
3060 -e "s,@EXTRADEF@,${extradefines},g" \
3061 -e "s,@APPSDIR@,${appsdir},g" \
3062 -e "s,@FIRMDIR@,${firmdir},g" \
3063 -e "s,@TOOLSDIR@,${toolsdir},g" \
3064 -e "s,@APPS@,${apps},g" \
3065 -e "s,@SIMVER@,${simver},g" \
3066 -e "s,@GCCVER@,${gccver},g" \
3067 -e "s,@GCCNUM@,${gccnum},g" \
3068 -e "s,@UNAME@,${uname},g" \
3069 -e "s,@ENDIAN@,${defendian},g" \
3070 -e "s,@TOOLSET@,${toolset},g" \
3073 -e "s,@MANUALDEV@,${manualdev},g" \
3074 -e "s,@ENCODER@,${ENC_CMD},g" \
3075 -e "s,@ENC_OPTS@,${ENC_OPTS},g" \
3076 -e "s,@TTS_ENGINE@,${TTS_ENGINE},g" \
3077 -e "s,@TTS_OPTS@,${TTS_OPTS},g" \
3078 -e "s,@VOICETOOLSET@,${voicetoolset},g" \
3079 -e "s,@LANGS@,${buildlangs},g" \
3080 -e "s,@USE_ELF@,${USE_ELF},g" \
3081 -e "s,@RBDIR@,${rbdir},g" \
3082 -e "s,@PREFIX@,$PREFIX,g" \
3083 -e "s,@CMDLINE@,$cmdline,g" \
3084 -e "s,@SDLCONFIG@,$sdl,g" \
3086 ## Automatically generated. http://www.rockbox.org/
3088 export ROOTDIR=@ROOTDIR@
3089 export FIRMDIR=@FIRMDIR@
3090 export APPSDIR=@APPSDIR@
3091 export TOOLSDIR=@TOOLSDIR@
3092 export DOCSDIR=\$(ROOTDIR)/docs
3093 export MANUALDIR=\${ROOTDIR}/manual
3094 export DEBUG=@DEBUG@
3095 export MODELNAME=@MODELNAME@
3096 export ARCHOSROM=@ARCHOSROM@
3097 export FLASHFILE=@FLASHFILE@
3098 export TARGET_ID=@TARGET_ID@
3099 export TARGET=@TARGET@
3101 export MANUFACTURER=@MANUFACTURER@
3103 export BUILDDIR=@PWD@
3104 export LANGUAGE=@LANGUAGE@
3105 export VOICELANGUAGE=@VOICELANGUAGE@
3106 export MEMORYSIZE=@MEMORY@
3107 export VERSION:=\$(shell \$(ROOTDIR)/tools/version.sh \$(ROOTDIR))
3108 export BUILDDATE:=\$(shell date -u +'-DYEAR=%Y -DMONTH=%m -DDAY=%d')
3109 export MKFIRMWARE=@TOOL@
3110 export BMP2RB_MONO=@BMP2RB_MONO@
3111 export BMP2RB_NATIVE=@BMP2RB_NATIVE@
3112 export BMP2RB_REMOTEMONO=@BMP2RB_REMOTEMONO@
3113 export BMP2RB_REMOTENATIVE=@BMP2RB_REMOTENATIVE@
3114 export BINARY=@OUTPUT@
3115 export APPEXTRA=@APPEXTRA@
3116 export ENABLEDPLUGINS=@PLUGINS@
3117 export SOFTWARECODECS=@CODECS@
3118 export EXTRA_DEFINES=@EXTRADEF@
3119 export HOSTCC=@HOSTCC@
3120 export HOSTAR=@HOSTAR@
3126 export WINDRES=@WINDRES@
3127 export DLLTOOL=@DLLTOOL@
3128 export DLLWRAP=@DLLWRAP@
3129 export RANLIB=@RANLIB@
3130 export PREFIX=@PREFIX@
3131 export PROFILE_OPTS=@PROFILE_OPTS@
3132 export SIMVER=@SIMVER@
3133 export SIMDIR=\$(ROOTDIR)/uisimulator/sdl
3134 export GCCOPTS=@GCCOPTS@
3135 export TARGET_INC=@TARGET_INC@
3136 export LOADADDRESS=@LOADADDRESS@
3137 export SHARED_FLAG=@SHARED_FLAG@
3138 export LDOPTS=@LDOPTS@
3139 export GCCVER=@GCCVER@
3140 export GCCNUM=@GCCNUM@
3141 export UNAME=@UNAME@
3142 export MANUALDEV=@MANUALDEV@
3143 export TTS_OPTS=@TTS_OPTS@
3144 export TTS_ENGINE=@TTS_ENGINE@
3145 export ENC_OPTS=@ENC_OPTS@
3146 export ENCODER=@ENCODER@
3147 export USE_ELF=@USE_ELF@
3148 export RBDIR=@RBDIR@
3149 export SDLCONFIG=@SDLCONFIG@
3151 CONFIGURE_OPTIONS=@CMDLINE@
3153 include \$(TOOLSDIR)/root.make
3157 echo "Created Makefile"