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_POWEROFF"
440 echo "ATA poweroff 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==1
934 142) YH-925 ==Packard Bell== 130) Lyre proto 1
935 143) YP-S3 160) Vibe 500 131) Mini2440
941 # Set of tools built for all target platforms:
942 toolset
="rdf2binary convbdf codepages"
944 # Toolsets for some target families:
945 archosbitmaptools
="$toolset scramble descramble sh2d uclpack bmp2rb"
946 iriverbitmaptools
="$toolset scramble descramble mkboot bmp2rb"
947 iaudiobitmaptools
="$toolset scramble descramble mkboot bmp2rb"
948 ipodbitmaptools
="$toolset scramble bmp2rb"
949 gigabeatbitmaptools
="$toolset scramble descramble bmp2rb"
950 tccbitmaptools
="$toolset scramble bmp2rb"
951 # generic is used by IFP, Meizu and Onda
952 genericbitmaptools
="$toolset bmp2rb"
953 # scramble is used by all other targets
954 scramblebitmaptools
="$genericbitmaptools scramble"
957 # ---- For each target ----
960 # target_id: a unique number identifying this target, IS NOT the menu number.
961 # Just use the currently highest number+1 when you add a new
963 # modelname: short model name used all over to identify this target
964 # memory: number of megabytes of RAM this target has. If the amount can
965 # be selected by the size prompt, let memory be unset here
966 # target: -Ddefine passed to the build commands to make the correct
967 # config-*.h file get included etc
968 # tool: the tool that takes a plain binary and converts that into a
969 # working "firmware" file for your target
970 # output: the final output file name
971 # boottool: the tool that takes a plain binary and generates a bootloader
972 # file for your target (or blank to use $tool)
973 # bootoutput:the final output file name for the bootloader (or blank to use
975 # appextra: passed to the APPEXTRA variable in the Makefiles.
976 # TODO: add proper explanation
977 # archosrom: used only for Archos targets that build a special flashable .ucl
979 # flash: name of output for flashing, for targets where there's a special
980 # file output for this.
981 # plugins: set to 'yes' to build the plugins. Early development builds can
982 # set this to no in the early stages to have an easier life for a
984 # swcodec: set 'yes' on swcodec targets
985 # toolset: lists what particular tools in the tools/ directory that this
986 # target needs to have built prior to building Rockbox
989 # *cc: sets up gcc and compiler options for your target builds. Note
990 # that if you select a simulator build, the compiler selection is
991 # overridden later in the script.
997 modelname
="archosplayer"
998 target
="-DARCHOS_PLAYER"
1000 tool
="$rootdir/tools/scramble"
1002 appextra
="player:gui"
1003 archosrom
="$pwd/rombox.ucl"
1004 flash
="$pwd/rockbox.ucl"
1008 # toolset is the tools within the tools directory that we build for
1009 # this particular target.
1010 toolset
="$toolset scramble descramble sh2d player_unifont uclpack"
1012 # Note: the convbdf is present in the toolset just because: 1) the
1013 # firmware/Makefile assumes it is present always, and 2) we will need it when we
1014 # build the player simulator
1017 t_manufacturer
="archos"
1023 modelname
="archosrecorder"
1024 target
="-DARCHOS_RECORDER"
1026 tool
="$rootdir/tools/scramble"
1027 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1028 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1030 appextra
="recorder:gui"
1031 #archosrom="$pwd/rombox.ucl"
1032 flash
="$pwd/rockbox.ucl"
1035 # toolset is the tools within the tools directory that we build for
1036 # this particular target.
1037 toolset
=$archosbitmaptools
1039 t_manufacturer
="archos"
1045 modelname
="archosfmrecorder"
1046 target
="-DARCHOS_FMRECORDER"
1048 tool
="$rootdir/tools/scramble -fm"
1049 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1050 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1052 appextra
="recorder:gui"
1053 #archosrom="$pwd/rombox.ucl"
1054 flash
="$pwd/rockbox.ucl"
1057 # toolset is the tools within the tools directory that we build for
1058 # this particular target.
1059 toolset
=$archosbitmaptools
1061 t_manufacturer
="archos"
1067 modelname
="archosrecorderv2"
1068 target
="-DARCHOS_RECORDERV2"
1070 tool
="$rootdir/tools/scramble -v2"
1071 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1072 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1074 appextra
="recorder:gui"
1075 #archosrom="$pwd/rombox.ucl"
1076 flash
="$pwd/rockbox.ucl"
1079 # toolset is the tools within the tools directory that we build for
1080 # this particular target.
1081 toolset
=$archosbitmaptools
1083 t_manufacturer
="archos"
1089 modelname
="archosondiosp"
1090 target
="-DARCHOS_ONDIOSP"
1092 tool
="$rootdir/tools/scramble -osp"
1093 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1094 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1096 appextra
="recorder:gui"
1097 #archosrom="$pwd/rombox.ucl"
1098 flash
="$pwd/rockbox.ucl"
1101 # toolset is the tools within the tools directory that we build for
1102 # this particular target.
1103 toolset
=$archosbitmaptools
1105 t_manufacturer
="archos"
1111 modelname
="archosondiofm"
1112 target
="-DARCHOS_ONDIOFM"
1114 tool
="$rootdir/tools/scramble -ofm"
1115 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1116 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1118 appextra
="recorder:gui"
1119 #archosrom="$pwd/rombox.ucl"
1120 flash
="$pwd/rockbox.ucl"
1123 toolset
=$archosbitmaptools
1125 t_manufacturer
="archos"
1131 modelname
="archosav300"
1132 target
="-DARCHOS_AV300"
1135 tool
="$rootdir/tools/scramble -mm=C"
1136 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1137 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1139 appextra
="recorder:gui"
1142 # toolset is the tools within the tools directory that we build for
1143 # this particular target.
1144 toolset
="$toolset scramble descramble bmp2rb"
1145 # architecture, manufacturer and model for the target-tree build
1147 t_manufacturer
="archos"
1153 modelname
="iriverh120"
1154 target
="-DIRIVER_H120"
1157 tool
="$rootdir/tools/scramble -add=h120"
1158 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1159 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
1160 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1161 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1162 output
="rockbox.iriver"
1163 bootoutput
="bootloader.iriver"
1164 appextra
="recorder:gui"
1165 flash
="$pwd/rombox.iriver"
1168 # toolset is the tools within the tools directory that we build for
1169 # this particular target.
1170 toolset
=$iriverbitmaptools
1172 t_manufacturer
="iriver"
1178 modelname
="iriverh300"
1179 target
="-DIRIVER_H300"
1182 tool
="$rootdir/tools/scramble -add=h300"
1183 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1184 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1185 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1186 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1187 output
="rockbox.iriver"
1188 appextra
="recorder:gui"
1191 # toolset is the tools within the tools directory that we build for
1192 # this particular target.
1193 toolset
=$iriverbitmaptools
1195 t_manufacturer
="iriver"
1201 modelname
="iriverh100"
1202 target
="-DIRIVER_H100"
1205 tool
="$rootdir/tools/scramble -add=h100"
1206 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1207 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
1208 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1209 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1210 output
="rockbox.iriver"
1211 bootoutput
="bootloader.iriver"
1212 appextra
="recorder:gui"
1213 flash
="$pwd/rombox.iriver"
1216 # toolset is the tools within the tools directory that we build for
1217 # this particular target.
1218 toolset
=$iriverbitmaptools
1220 t_manufacturer
="iriver"
1226 modelname
="iriverifp7xx"
1227 target
="-DIRIVER_IFP7XX"
1231 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1232 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1233 output
="rockbox.wma"
1234 appextra
="recorder:gui"
1237 # toolset is the tools within the tools directory that we build for
1238 # this particular target.
1239 toolset
=$genericbitmaptools
1241 t_manufacturer
="pnx0101"
1242 t_model
="iriver-ifp7xx"
1247 modelname
="iriverh10"
1248 target
="-DIRIVER_H10"
1251 tool
="$rootdir/tools/scramble -mi4v3 -model=h10 -type=RBOS"
1252 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1253 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1254 output
="rockbox.mi4"
1255 appextra
="recorder:gui"
1258 boottool
="$rootdir/tools/scramble -mi4v3 -model=h10 -type=RBBL"
1259 bootoutput
="H10_20GC.mi4"
1260 # toolset is the tools within the tools directory that we build for
1261 # this particular target.
1262 toolset
=$scramblebitmaptools
1263 # architecture, manufacturer and model for the target-tree build
1265 t_manufacturer
="iriver"
1271 modelname
="iriverh10_5gb"
1272 target
="-DIRIVER_H10_5GB"
1275 tool
="$rootdir/tools/scramble -mi4v2 -model=h105 -type=RBOS"
1276 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1277 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1278 output
="rockbox.mi4"
1279 appextra
="recorder:gui"
1282 boottool
="$rootdir/tools/scramble -mi4v2 -model=h105 -type=RBBL"
1283 bootoutput
="H10.mi4"
1284 # toolset is the tools within the tools directory that we build for
1285 # this particular target.
1286 toolset
=$scramblebitmaptools
1287 # architecture, manufacturer and model for the target-tree build
1289 t_manufacturer
="iriver"
1295 modelname
="ipodcolor"
1296 target
="-DIPOD_COLOR"
1299 tool
="$rootdir/tools/scramble -add=ipco"
1300 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1301 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1302 output
="rockbox.ipod"
1303 appextra
="recorder:gui"
1306 bootoutput
="bootloader-$modelname.ipod"
1307 # toolset is the tools within the tools directory that we build for
1308 # this particular target.
1309 toolset
=$ipodbitmaptools
1310 # architecture, manufacturer and model for the target-tree build
1312 t_manufacturer
="ipod"
1318 modelname
="ipodnano1g"
1319 target
="-DIPOD_NANO"
1322 tool
="$rootdir/tools/scramble -add=nano"
1323 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1324 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1325 output
="rockbox.ipod"
1326 appextra
="recorder:gui"
1329 bootoutput
="bootloader-$modelname.ipod"
1330 # toolset is the tools within the tools directory that we build for
1331 # this particular target.
1332 toolset
=$ipodbitmaptools
1333 # architecture, manufacturer and model for the target-tree build
1335 t_manufacturer
="ipod"
1341 modelname
="ipodvideo"
1342 target
="-DIPOD_VIDEO"
1344 tool
="$rootdir/tools/scramble -add=ipvd"
1345 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1346 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1347 output
="rockbox.ipod"
1348 appextra
="recorder:gui"
1351 bootoutput
="bootloader-$modelname.ipod"
1352 # toolset is the tools within the tools directory that we build for
1353 # this particular target.
1354 toolset
=$ipodbitmaptools
1355 # architecture, manufacturer and model for the target-tree build
1357 t_manufacturer
="ipod"
1367 tool
="$rootdir/tools/scramble -add=ip3g"
1368 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1369 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1370 output
="rockbox.ipod"
1371 appextra
="recorder:gui"
1374 bootoutput
="bootloader-$modelname.ipod"
1375 # toolset is the tools within the tools directory that we build for
1376 # this particular target.
1377 toolset
=$ipodbitmaptools
1378 # architecture, manufacturer and model for the target-tree build
1380 t_manufacturer
="ipod"
1390 tool
="$rootdir/tools/scramble -add=ip4g"
1391 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1392 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1393 output
="rockbox.ipod"
1394 appextra
="recorder:gui"
1397 bootoutput
="bootloader-$modelname.ipod"
1398 # toolset is the tools within the tools directory that we build for
1399 # this particular target.
1400 toolset
=$ipodbitmaptools
1401 # architecture, manufacturer and model for the target-tree build
1403 t_manufacturer
="ipod"
1409 modelname
="ipodmini1g"
1410 target
="-DIPOD_MINI"
1413 tool
="$rootdir/tools/scramble -add=mini"
1414 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1415 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1416 output
="rockbox.ipod"
1417 appextra
="recorder:gui"
1420 bootoutput
="bootloader-$modelname.ipod"
1421 # toolset is the tools within the tools directory that we build for
1422 # this particular target.
1423 toolset
=$ipodbitmaptools
1424 # architecture, manufacturer and model for the target-tree build
1426 t_manufacturer
="ipod"
1432 modelname
="ipodmini2g"
1433 target
="-DIPOD_MINI2G"
1436 tool
="$rootdir/tools/scramble -add=mn2g"
1437 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1438 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1439 output
="rockbox.ipod"
1440 appextra
="recorder:gui"
1443 bootoutput
="bootloader-$modelname.ipod"
1444 # toolset is the tools within the tools directory that we build for
1445 # this particular target.
1446 toolset
=$ipodbitmaptools
1447 # architecture, manufacturer and model for the target-tree build
1449 t_manufacturer
="ipod"
1455 modelname
="ipod1g2g"
1456 target
="-DIPOD_1G2G"
1459 tool
="$rootdir/tools/scramble -add=1g2g"
1460 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1461 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1462 output
="rockbox.ipod"
1463 appextra
="recorder:gui"
1466 bootoutput
="bootloader-$modelname.ipod"
1467 # toolset is the tools within the tools directory that we build for
1468 # this particular target.
1469 toolset
=$ipodbitmaptools
1470 # architecture, manufacturer and model for the target-tree build
1472 t_manufacturer
="ipod"
1478 modelname
="ipodnano2g"
1479 target
="-DIPOD_NANO2G"
1482 tool
="$rootdir/tools/scramble -add=nn2g"
1483 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1484 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1485 output
="rockbox.ipod"
1486 appextra
="recorder:gui"
1489 bootoutput
="bootloader-$modelname.ipod"
1490 # toolset is the tools within the tools directory that we build for
1491 # this particular target.
1492 toolset
=$ipodbitmaptools
1493 # architecture, manufacturer and model for the target-tree build
1495 t_manufacturer
="s5l8700"
1496 t_model
="ipodnano2g"
1501 modelname
="iaudiox5"
1502 target
="-DIAUDIO_X5"
1505 tool
="$rootdir/tools/scramble -add=iax5"
1506 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1507 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1508 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1509 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 7"
1510 output
="rockbox.iaudio"
1511 appextra
="recorder:gui"
1514 # toolset is the tools within the tools directory that we build for
1515 # this particular target.
1516 toolset
="$iaudiobitmaptools"
1517 # architecture, manufacturer and model for the target-tree build
1519 t_manufacturer
="iaudio"
1525 modelname
="iaudiom5"
1526 target
="-DIAUDIO_M5"
1529 tool
="$rootdir/tools/scramble -add=iam5"
1530 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1531 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
1532 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1533 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 7"
1534 output
="rockbox.iaudio"
1535 appextra
="recorder:gui"
1538 # toolset is the tools within the tools directory that we build for
1539 # this particular target.
1540 toolset
="$iaudiobitmaptools"
1541 # architecture, manufacturer and model for the target-tree build
1543 t_manufacturer
="iaudio"
1553 tool
="$rootdir/tools/scramble -add=i7"
1554 boottool
="$rootdir/tools/scramble -tcc=crc"
1555 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1556 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1557 output
="rockbox.iaudio"
1558 appextra
="recorder:gui"
1561 bootoutput
="I7_FW.BIN"
1562 # toolset is the tools within the tools directory that we build for
1563 # this particular target.
1564 toolset
="$tccbitmaptools"
1565 # architecture, manufacturer and model for the target-tree build
1567 t_manufacturer
="tcc77x"
1577 tool
="$rootdir/tools/scramble -add=d2"
1579 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1580 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1582 bootoutput
="bootloader-cowond2.bin"
1583 appextra
="recorder:gui"
1586 toolset
="$tccbitmaptools"
1587 # architecture, manufacturer and model for the target-tree build
1589 t_manufacturer
="tcc780x"
1595 modelname
="iaudiom3"
1596 target
="-DIAUDIO_M3"
1599 tool
="$rootdir/tools/scramble -add=iam3"
1600 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1601 bmp2rb_native
="$rootdir/tools/bmp2rb -f 7"
1602 output
="rockbox.iaudio"
1603 appextra
="recorder:gui"
1606 # toolset is the tools within the tools directory that we build for
1607 # this particular target.
1608 toolset
="$iaudiobitmaptools"
1609 # architecture, manufacturer and model for the target-tree build
1611 t_manufacturer
="iaudio"
1617 modelname
="gigabeatfx"
1618 target
="-DGIGABEAT_F"
1621 tool
="$rootdir/tools/scramble -add=giga"
1622 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1623 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1624 output
="rockbox.gigabeat"
1625 appextra
="recorder:gui"
1628 toolset
=$gigabeatbitmaptools
1629 boottool
="$rootdir/tools/scramble -gigabeat"
1630 bootoutput
="FWIMG01.DAT"
1631 # architecture, manufacturer and model for the target-tree build
1633 t_manufacturer
="s3c2440"
1634 t_model
="gigabeat-fx"
1639 modelname
="gigabeats"
1640 target
="-DGIGABEAT_S"
1643 tool
="$rootdir/tools/scramble -add=gigs"
1644 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1645 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1646 output
="rockbox.gigabeat"
1647 appextra
="recorder:gui"
1650 toolset
="$gigabeatbitmaptools"
1651 boottool
="$rootdir/tools/scramble -gigabeats"
1653 # architecture, manufacturer and model for the target-tree build
1655 t_manufacturer
="imx31"
1656 t_model
="gigabeat-s"
1661 modelname
="mrobe500"
1662 target
="-DMROBE_500"
1665 tool
="$rootdir/tools/scramble -add=m500"
1666 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1667 bmp2rb_native
="$rootdir/tools/bmp2rb -f 8"
1668 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1669 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1670 output
="rockbox.mrobe500"
1671 appextra
="recorder:gui"
1674 toolset
=$gigabeatbitmaptools
1676 bootoutput
="rockbox.mrboot"
1677 # architecture, manufacturer and model for the target-tree build
1679 t_manufacturer
="tms320dm320"
1685 modelname
="mrobe100"
1686 target
="-DMROBE_100"
1689 tool
="$rootdir/tools/scramble -mi4v2 -model=m100 -type=RBOS"
1690 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1691 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1692 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1693 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1694 output
="rockbox.mi4"
1695 appextra
="recorder:gui"
1698 boottool
="$rootdir/tools/scramble -mi4v2 -model=m100 -type=RBBL"
1699 bootoutput
="pp5020.mi4"
1700 # toolset is the tools within the tools directory that we build for
1701 # this particular target.
1702 toolset
=$scramblebitmaptools
1703 # architecture, manufacturer and model for the target-tree build
1705 t_manufacturer
="olympus"
1711 modelname
="logikdax"
1712 target
="-DLOGIK_DAX"
1715 tool
="$rootdir/tools/scramble -add=ldax"
1716 boottool
="$rootdir/tools/scramble -tcc=crc"
1717 bootoutput
="player.rom"
1718 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1719 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1720 output
="rockbox.logik"
1721 appextra
="recorder:gui"
1724 # toolset is the tools within the tools directory that we build for
1725 # this particular target.
1726 toolset
=$tccbitmaptools
1727 # architecture, manufacturer and model for the target-tree build
1729 t_manufacturer
="tcc77x"
1735 modelname
="zenvisionm30gb"
1736 target
="-DCREATIVE_ZVM"
1739 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1740 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1741 tool
="$rootdir/tools/scramble -creative=zvm"
1743 output
="rockbox.zvm"
1744 appextra
="recorder:gui"
1747 toolset
=$ipodbitmaptools
1748 boottool
="$rootdir/tools/scramble -creative=zvm -no-ciff"
1749 bootoutput
="rockbox.zvmboot"
1750 # architecture, manufacturer and model for the target-tree build
1752 t_manufacturer
="tms320dm320"
1753 t_model
="creative-zvm"
1758 modelname
="zenvisionm60gb"
1759 target
="-DCREATIVE_ZVM60GB"
1762 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1763 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1764 tool
="$rootdir/tools/scramble -creative=zvm60 -no-ciff"
1766 output
="rockbox.zvm60"
1767 appextra
="recorder:gui"
1770 toolset
=$ipodbitmaptools
1771 boottool
="$rootdir/tools/scramble -creative=zvm60"
1772 bootoutput
="rockbox.zvm60boot"
1773 # architecture, manufacturer and model for the target-tree build
1775 t_manufacturer
="tms320dm320"
1776 t_model
="creative-zvm"
1781 modelname
="zenvision"
1782 target
="-DCREATIVE_ZV"
1785 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1786 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1787 tool
="$rootdir/tools/scramble -creative=zenvision -no-ciff"
1790 appextra
="recorder:gui"
1793 toolset
=$ipodbitmaptools
1794 boottool
="$rootdir/tools/scramble -creative=zenvision"
1795 bootoutput
="rockbox.zvboot"
1796 # architecture, manufacturer and model for the target-tree build
1798 t_manufacturer
="tms320dm320"
1799 t_model
="creative-zvm"
1804 modelname
="sansae200"
1805 target
="-DSANSA_E200"
1806 memory
=32 # supposedly
1808 tool
="$rootdir/tools/scramble -mi4v3 -model=e200 -type=RBOS"
1809 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1810 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1811 output
="rockbox.mi4"
1812 appextra
="recorder:gui"
1815 boottool
="$rootdir/tools/scramble -mi4v3 -model=e200 -type=RBBL"
1816 bootoutput
="PP5022.mi4"
1817 # toolset is the tools within the tools directory that we build for
1818 # this particular target.
1819 toolset
=$scramblebitmaptools
1820 # architecture, manufacturer and model for the target-tree build
1822 t_manufacturer
="sandisk"
1823 t_model
="sansa-e200"
1827 # the e200R model is pretty much identical to the e200, it only has a
1828 # different option to the scramble tool when building a bootloader and
1829 # makes the bootloader output file name in all lower case.
1831 modelname
="sansae200r"
1832 target
="-DSANSA_E200"
1833 memory
=32 # supposedly
1835 tool
="$rootdir/tools/scramble -mi4v3 -model=e20r -type=RBOS"
1836 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1837 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1838 output
="rockbox.mi4"
1839 appextra
="recorder:gui"
1842 boottool
="$rootdir/tools/scramble -mi4r -model=e20r -type=RBBL"
1843 bootoutput
="pp5022.mi4"
1844 # toolset is the tools within the tools directory that we build for
1845 # this particular target.
1846 toolset
=$scramblebitmaptools
1847 # architecture, manufacturer and model for the target-tree build
1849 t_manufacturer
="sandisk"
1850 t_model
="sansa-e200"
1855 modelname
="sansac200"
1856 target
="-DSANSA_C200"
1857 memory
=32 # supposedly
1859 tool
="$rootdir/tools/scramble -mi4v3 -model=c200 -type=RBOS"
1860 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1861 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1862 output
="rockbox.mi4"
1863 appextra
="recorder:gui"
1866 boottool
="$rootdir/tools/scramble -mi4v3 -model=c200 -type=RBBL"
1867 bootoutput
="firmware.mi4"
1868 # toolset is the tools within the tools directory that we build for
1869 # this particular target.
1870 toolset
=$scramblebitmaptools
1871 # architecture, manufacturer and model for the target-tree build
1873 t_manufacturer
="sandisk"
1874 t_model
="sansa-c200"
1879 modelname
="sansam200"
1880 target
="-DSANSA_M200"
1883 tool
="$rootdir/tools/scramble -add=m200"
1884 boottool
="$rootdir/tools/scramble -tcc=crc"
1885 bootoutput
="player.rom"
1886 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1887 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1888 output
="rockbox.m200"
1889 appextra
="recorder:gui"
1892 # toolset is the tools within the tools directory that we build for
1893 # this particular target.
1894 toolset
=$tccbitmaptools
1895 # architecture, manufacturer and model for the target-tree build
1897 t_manufacturer
="tcc77x"
1903 modelname
="sansac100"
1904 target
="-DSANSA_C100"
1907 tool
="$rootdir/tools/scramble -add=c100"
1908 boottool
="$rootdir/tools/scramble -tcc=crc"
1909 bootoutput
="player.rom"
1910 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1911 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1912 output
="rockbox.c100"
1913 appextra
="recorder:gui"
1916 # toolset is the tools within the tools directory that we build for
1917 # this particular target.
1918 toolset
=$tccbitmaptools
1919 # architecture, manufacturer and model for the target-tree build
1921 t_manufacturer
="tcc77x"
1927 modelname
="sansaclip"
1928 target
="-DSANSA_CLIP"
1930 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1931 bmp2rb_native
="$bmp2rb_mono"
1932 tool
="$rootdir/tools/scramble -add=clip"
1933 output
="rockbox.sansa"
1934 bootoutput
="bootloader-clip.sansa"
1935 appextra
="recorder:gui"
1938 toolset
=$scramblebitmaptools
1940 t_manufacturer
="as3525"
1941 t_model
="sansa-clip"
1948 modelname
="sansae200v2"
1949 target
="-DSANSA_E200V2"
1951 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1952 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1953 tool
="$rootdir/tools/scramble -add=e2v2"
1954 output
="rockbox.sansa"
1955 bootoutput
="bootloader-e200v2.sansa"
1956 appextra
="recorder:gui"
1959 toolset
=$scramblebitmaptools
1961 t_manufacturer
="as3525"
1962 t_model
="sansa-e200v2"
1969 modelname
="sansam200v4"
1970 target
="-DSANSA_M200V4"
1972 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1973 bmp2rb_native
="$bmp2rb_mono"
1974 tool
="$rootdir/tools/scramble -add=m2v4"
1975 output
="rockbox.sansa"
1976 bootoutput
="bootloader-m200v4.sansa"
1977 appextra
="recorder:gui"
1980 toolset
=$scramblebitmaptools
1982 t_manufacturer
="as3525"
1983 t_model
="sansa-m200v4"
1990 modelname
="sansafuze"
1991 target
="-DSANSA_FUZE"
1993 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1994 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1995 tool
="$rootdir/tools/scramble -add=fuze"
1996 output
="rockbox.sansa"
1997 bootoutput
="bootloader-fuze.sansa"
1998 appextra
="recorder:gui"
2001 toolset
=$scramblebitmaptools
2003 t_manufacturer
="as3525"
2004 t_model
="sansa-fuze"
2011 modelname
="sansac200v2"
2012 target
="-DSANSA_C200V2"
2013 memory
=2 # as per OF diagnosis mode
2014 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2015 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2016 tool
="$rootdir/tools/scramble -add=c2v2"
2017 output
="rockbox.sansa"
2018 bootoutput
="bootloader-c200v2.sansa"
2019 appextra
="recorder:gui"
2022 # toolset is the tools within the tools directory that we build for
2023 # this particular target.
2024 toolset
=$scramblebitmaptools
2025 # architecture, manufacturer and model for the target-tree build
2027 t_manufacturer
="as3525"
2028 t_model
="sansa-c200v2"
2034 modelname
="sansaclipv2"
2035 target
="-DSANSA_CLIPV2"
2037 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2038 bmp2rb_native
="$bmp2rb_mono"
2039 tool
="$rootdir/tools/scramble -add=clv2"
2040 output
="rockbox.sansa"
2041 bootoutput
="bootloader-clipv2.sansa"
2042 appextra
="recorder:gui"
2045 toolset
=$scramblebitmaptools
2047 t_manufacturer
="as3525"
2048 t_model
="sansa-clipv2"
2053 echo "Sansa View is not yet supported!"
2056 modelname
="sansaview"
2057 target
="-DSANSA_VIEW"
2060 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2061 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2062 output
="rockbox.mi4"
2066 boottool
="$rootdir/tools/scramble -mi4v3 -model=view -type=RBBL"
2067 bootoutput
="firmware.mi4"
2068 # toolset is the tools within the tools directory that we build for
2069 # this particular target.
2070 toolset
=$scramblebitmaptools
2072 t_manufacturer
="sandisk"
2073 t_model
="sansa-view"
2078 modelname
="sansaclipplus"
2079 target
="-DSANSA_CLIPPLUS"
2081 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2082 bmp2rb_native
="$bmp2rb_mono"
2083 tool
="$rootdir/tools/scramble -add=cli+"
2084 output
="rockbox.sansa"
2085 bootoutput
="bootloader-clipplus.sansa"
2086 appextra
="recorder:gui"
2089 toolset
=$scramblebitmaptools
2091 t_manufacturer
="as3525"
2092 t_model
="sansa-clipplus"
2098 modelname
="sansafuzev2"
2099 target
="-DSANSA_FUZEV2"
2101 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2102 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
2103 tool
="$rootdir/tools/scramble -add=fuz2"
2104 output
="rockbox.sansa"
2105 bootoutput
="bootloader-fuzev2.sansa"
2106 appextra
="recorder:gui"
2109 toolset
=$scramblebitmaptools
2111 t_manufacturer
="as3525"
2112 t_model
="sansa-fuzev2"
2118 modelname
="tatungtpj1022"
2119 target
="-DTATUNG_TPJ1022"
2122 tool
="$rootdir/tools/scramble -add tpj2"
2123 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2124 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
2125 output
="rockbox.elio"
2126 appextra
="recorder:gui"
2129 boottool
="$rootdir/tools/scramble -mi4v2"
2130 bootoutput
="pp5020.mi4"
2131 # toolset is the tools within the tools directory that we build for
2132 # this particular target.
2133 toolset
=$scramblebitmaptools
2134 # architecture, manufacturer and model for the target-tree build
2136 t_manufacturer
="tatung"
2142 modelname
="gogearsa9200"
2143 target
="-DPHILIPS_SA9200"
2144 memory
=32 # supposedly
2146 tool
="$rootdir/tools/scramble -mi4v3 -model=9200 -type=RBOS"
2147 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2148 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2149 output
="rockbox.mi4"
2150 appextra
="recorder:gui"
2153 boottool
="$rootdir/tools/scramble -mi4v3 -model=9200 -type=RBBL"
2154 bootoutput
="FWImage.ebn"
2155 # toolset is the tools within the tools directory that we build for
2156 # this particular target.
2157 toolset
=$scramblebitmaptools
2158 # architecture, manufacturer and model for the target-tree build
2160 t_manufacturer
="philips"
2166 modelname
="gogearhdd1630"
2167 target
="-DPHILIPS_HDD1630"
2168 memory
=32 # supposedly
2170 tool
="$rootdir/tools/scramble -mi4v3 -model=1630 -type=RBOS"
2171 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2172 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2173 output
="rockbox.mi4"
2174 appextra
="recorder:gui"
2177 boottool
="$rootdir/tools/scramble -mi4v3 -model=1630 -type=RBBL"
2178 bootoutput
="FWImage.ebn"
2179 # toolset is the tools within the tools directory that we build for
2180 # this particular target.
2181 toolset
=$scramblebitmaptools
2182 # architecture, manufacturer and model for the target-tree build
2184 t_manufacturer
="philips"
2190 modelname
="gogearhdd6330"
2191 target
="-DPHILIPS_HDD6330"
2192 memory
=32 # supposedly
2194 tool
="$rootdir/tools/scramble -mi4v3 -model=6330 -type=RBOS"
2195 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2196 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2197 output
="rockbox.mi4"
2198 appextra
="recorder:gui"
2201 boottool
="$rootdir/tools/scramble -mi4v3 -model=6330 -type=RBBL"
2202 bootoutput
="FWImage.ebn"
2203 # toolset is the tools within the tools directory that we build for
2204 # this particular target.
2205 toolset
=$scramblebitmaptools
2206 # architecture, manufacturer and model for the target-tree build
2208 t_manufacturer
="philips"
2214 modelname
="meizum6sl"
2215 target
="-DMEIZU_M6SL"
2219 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2220 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2221 output
="rockbox.meizu"
2222 appextra
="recorder:gui"
2225 toolset
=$genericbitmaptools
2227 bootoutput
="rockboot.ebn"
2228 # architecture, manufacturer and model for the target-tree build
2230 t_manufacturer
="s5l8700"
2231 t_model
="meizu-m6sl"
2236 modelname
="meizum6sp"
2237 target
="-DMEIZU_M6SP"
2241 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2242 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2243 output
="rockbox.meizu"
2244 appextra
="recorder:gui"
2247 toolset
=$genericbitmaptools
2249 bootoutput
="rockboot.ebn"
2250 # architecture, manufacturer and model for the target-tree build
2252 t_manufacturer
="s5l8700"
2253 t_model
="meizu-m6sp"
2263 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2264 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2265 output
="rockbox.meizu"
2266 appextra
="recorder:gui"
2269 toolset
=$genericbitmaptools
2271 bootoutput
="rockboot.ebn"
2272 # architecture, manufacturer and model for the target-tree build
2274 t_manufacturer
="s5l8700"
2280 modelname
="ondavx747"
2281 target
="-DONDA_VX747"
2284 tool
="$rootdir/tools/scramble -add=x747"
2285 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2286 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2287 output
="rockbox.vx747"
2288 appextra
="recorder:gui"
2291 toolset
=$genericbitmaptools
2292 boottool
="$rootdir/tools/scramble -ccpmp"
2293 bootoutput
="ccpmp.bin"
2294 # architecture, manufacturer and model for the target-tree build
2296 t_manufacturer
="ingenic_jz47xx"
2297 t_model
="onda_vx747"
2302 modelname
="ondavx767"
2303 target
="-DONDA_VX767"
2307 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2308 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2309 output
="rockbox.vx767"
2310 appextra
="recorder:gui"
2313 toolset
=$genericbitmaptools
2314 boottool
="$rootdir/tools/scramble -ccpmp"
2315 bootoutput
="ccpmp.bin"
2316 # architecture, manufacturer and model for the target-tree build
2318 t_manufacturer
="ingenic_jz47xx"
2319 t_model
="onda_vx767"
2324 modelname
="ondavx747p"
2325 target
="-DONDA_VX747P"
2328 tool
="$rootdir/tools/scramble -add=747p"
2329 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2330 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2331 output
="rockbox.vx747p"
2332 appextra
="recorder:gui"
2335 toolset
=$genericbitmaptools
2336 boottool
="$rootdir/tools/scramble -ccpmp"
2337 bootoutput
="ccpmp.bin"
2338 # architecture, manufacturer and model for the target-tree build
2340 t_manufacturer
="ingenic_jz47xx"
2341 t_model
="onda_vx747"
2346 modelname
="ondavx777"
2347 target
="-DONDA_VX777"
2350 tool
="$rootdir/tools/scramble -add=x777"
2351 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2352 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2353 output
="rockbox.vx777"
2354 appextra
="recorder:gui"
2357 toolset
=$genericbitmaptools
2358 boottool
="$rootdir/tools/scramble -ccpmp"
2359 bootoutput
="ccpmp.bin"
2360 # architecture, manufacturer and model for the target-tree build
2362 t_manufacturer
="ingenic_jz47xx"
2363 t_model
="onda_vx747"
2368 modelname
="lyreproto1"
2369 target
="-DLYRE_PROTO1"
2373 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2374 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2375 output
="rockbox.lyre"
2376 appextra
="recorder:gui"
2379 toolset
=$scramblebitmaptools
2381 bootoutput
="bootloader-proto1.lyre"
2382 # architecture, manufacturer and model for the target-tree build
2384 t_manufacturer
="at91sam"
2385 t_model
="lyre_proto1"
2390 modelname
="mini2440"
2394 tool
="$rootdir/tools/scramble -add=m244"
2395 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2396 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2397 output
="rockbox.mini2440"
2398 appextra
="recorder:gui"
2401 toolset
=$scramblebitmaptools
2403 bootoutput
="bootloader-mini2440.lyre"
2404 # architecture, manufacturer and model for the target-tree build
2406 t_manufacturer
="s3c2440"
2412 modelname
="samsungyh820"
2413 target
="-DSAMSUNG_YH820"
2416 tool
="$rootdir/tools/scramble -mi4v2 -model=y820 -type=RBOS"
2417 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2418 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2419 output
="rockbox.mi4"
2420 appextra
="recorder:gui"
2423 boottool
="$rootdir/tools/scramble -mi4v2 -model=y820 -type=RBBL"
2424 bootoutput
="FW_YH820.mi4"
2425 # toolset is the tools within the tools directory that we build for
2426 # this particular target.
2427 toolset
=$scramblebitmaptools
2428 # architecture, manufacturer and model for the target-tree build
2430 t_manufacturer
="samsung"
2436 modelname
="samsungyh920"
2437 target
="-DSAMSUNG_YH920"
2440 tool
="$rootdir/tools/scramble -mi4v2 -model=y920 -type=RBOS"
2441 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2442 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
2443 output
="rockbox.mi4"
2444 appextra
="recorder:gui"
2447 boottool
="$rootdir/tools/scramble -mi4v2 -model=y920 -type=RBBL"
2448 bootoutput
="PP5020.mi4"
2449 # toolset is the tools within the tools directory that we build for
2450 # this particular target.
2451 toolset
=$scramblebitmaptools
2452 # architecture, manufacturer and model for the target-tree build
2454 t_manufacturer
="samsung"
2460 modelname
="samsungyh925"
2461 target
="-DSAMSUNG_YH925"
2464 tool
="$rootdir/tools/scramble -mi4v2 -model=y925 -type=RBOS"
2465 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2466 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2467 output
="rockbox.mi4"
2468 appextra
="recorder:gui"
2471 boottool
="$rootdir/tools/scramble -mi4v2 -model=y925 -type=RBBL"
2472 bootoutput
="FW_YH925.mi4"
2473 # toolset is the tools within the tools directory that we build for
2474 # this particular target.
2475 toolset
=$scramblebitmaptools
2476 # architecture, manufacturer and model for the target-tree build
2478 t_manufacturer
="samsung"
2484 modelname
="samsungyps3"
2485 target
="-DSAMSUNG_YPS3"
2489 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2490 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2491 output
="rockbox.yps3"
2492 appextra
="recorder:gui"
2495 toolset
=$genericbitmaptools
2497 bootoutput
="rockboot.ebn"
2498 # architecture, manufacturer and model for the target-tree build
2500 t_manufacturer
="s5l8700"
2507 target
="-DPBELL_VIBE500"
2510 tool
="$rootdir/tools/scramble -mi4v3 -model=v500 -type=RBOS"
2511 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2512 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
2513 output
="rockbox.mi4"
2514 appextra
="recorder:gui"
2517 boottool
="$rootdir/tools/scramble -mi4v3 -model=v500 -type=RBBL"
2518 bootoutput
="jukebox.mi4"
2519 # toolset is the tools within the tools directory that we build for
2520 # this particular target.
2521 toolset
=$scramblebitmaptools
2522 # architecture, manufacturer and model for the target-tree build
2524 t_manufacturer
="pbell"
2529 echo "Please select a supported target platform!"
2535 echo "Platform set to $modelname"
2539 ############################################################################
2540 # Amount of memory, for those that can differ. They have $memory unset at
2544 if [ -z "$memory" ]; then
2547 if [ "$ARG_RAM" ]; then
2550 echo "Enter size of your RAM (in MB): (Defaults to 32)"
2563 if [ "$ARG_RAM" ]; then
2566 echo "Enter size of your RAM (in MB): (Defaults to 2)"
2579 echo "Memory size selected: $memory MB"
2580 [ "$ARG_TYPE" ] ||
echo ""
2584 ##################################################################
2585 # Figure out build "type"
2588 # the ifp7x0 is the only platform that supports building a gdb stub like
2592 gdbstub
="(G)DB stub, "
2594 sansae200r|sansae200
)
2595 gdbstub
="(I)nstaller, "
2598 gdbstub
="(E)raser, "
2603 if [ "$ARG_TYPE" ]; then
2606 echo "Build (N)ormal, (A)dvanced, (S)imulator, (B)ootloader, (C)heckWPS, (D)atabase tool, $gdbstub(M)anual: (Defaults to N)"
2612 appsdir
='\$(ROOTDIR)/bootloader'
2614 extradefines
="-DBOOTLOADER -DE200R_INSTALLER -ffunction-sections -fdata-sections"
2616 echo "e200R-installer build selected"
2619 appsdir
='\$(ROOTDIR)/bootloader'
2621 echo "C2(4)0 or C2(5)0"
2625 extradefines
="-DBOOTLOADER -DC200_ERASE -DC240_ERASE -ffunction-sections -fdata-sections"
2626 echo "c240 eraser build selected"
2629 extradefines
="-DBOOTLOADER -DC200_ERASE -DC250_ERASE -ffunction-sections -fdata-sections"
2630 echo "c240 eraser build selected"
2634 echo "c200 eraser build selected"
2637 if test $t_manufacturer = "archos"; then
2638 # Archos SH-based players do this somewhat differently for
2640 appsdir
='\$(ROOTDIR)/flash/bootbox'
2643 appsdir
='\$(ROOTDIR)/bootloader'
2646 if test -n "$boottool"; then
2649 if test -n "$bootoutput"; then
2653 extradefines
="-DBOOTLOADER -ffunction-sections -fdata-sections"
2655 echo "Bootloader build selected"
2658 if [ "$modelname" = "sansae200r" ]; then
2659 echo "Do not use the e200R target for simulator builds. Use e200 instead."
2664 extradefines
="-DSIMULATOR"
2667 echo "Simulator build selected"
2670 echo "Advanced build selected"
2671 whichadvanced
$btype
2674 extradefines
="-DSTUB" # for target makefile symbol EXTRA_DEFINES
2675 appsdir
='\$(ROOTDIR)/gdb'
2684 echo "GDB stub build selected"
2689 echo "Manual build selected"
2697 extradefines
="-DDEBUG"
2698 appsdir
='\$(ROOTDIR)/tools/checkwps';
2699 output
='checkwps.'${modelname};
2701 echo "CheckWPS build selected"
2709 appsdir
='\$(ROOTDIR)/tools/database';
2714 output
="database_${modelname}.exe"
2717 output
='database.'${modelname};
2721 echo "Database tool build selected"
2724 if [ "$modelname" = "sansae200r" ]; then
2725 echo "Do not use the e200R target for regular builds. Use e200 instead."
2729 btype
="N" # set it explicitly since RET only gets here as well
2730 echo "Normal build selected"
2734 # to be able running "make manual" from non-manual configuration
2737 manualdev
="archosfmrecorder"
2740 manualdev
="iriverh100"
2743 manualdev
="ipodmini1g"
2746 manualdev
=$modelname
2750 if [ -z "$debug" ]; then
2751 GCCOPTS
="$GCCOPTS $GCCOPTIMIZE"
2754 echo "Using source code root directory: $rootdir"
2756 # this was once possible to change at build-time, but no more:
2761 if [ "yes" = "$simulator" ]; then
2762 # setup compiler and things for simulator
2765 if [ -d "simdisk" ]; then
2766 echo "Subdirectory 'simdisk' already present"
2769 echo "Created a 'simdisk' subdirectory for simulating the hard disk"
2773 # Now, figure out version number of the (gcc) compiler we are about to use
2774 gccver
=`$CC -dumpversion`;
2776 # figure out the binutil version too and display it, mostly for the build
2777 # system etc to be able to see it easier
2778 if [ $uname = "Darwin" ]; then
2779 ldver
=`$LD -v 2>&1 | sed -e 's/[^0-9.-]//g'`
2781 ldver
=`$LD --version | head -n 1 | sed -e 's/[^0-9.]//g'`
2784 if [ -z "$gccver" ]; then
2785 echo "[WARNING] The compiler you must use ($CC) is not in your path!"
2786 echo "[WARNING] this may cause your build to fail since we cannot do the"
2787 echo "[WARNING] checks we want now."
2790 # gccver should now be "3.3.5", "3.4.3", "2.95.3-6" and similar, but don't
2793 num1
=`echo $gccver | cut -d . -f1`
2794 num2
=`echo $gccver | cut -d . -f2`
2795 gccnum
=`(expr $num1 "*" 100 + $num2) 2>/dev/null`
2802 echo "Using $CC $gccver ($gccnum)"
2804 if test "$gccnum" -ge "400"; then
2805 # gcc 4.0 is just *so* much pickier on arguments that differ in signedness
2806 # so we ignore that warnings for now
2808 GCCOPTS
="$GCCOPTS -Wno-pointer-sign"
2811 if test "$gccnum" -ge "401"; then
2812 # this is a lame hack to avoid "warning: dereferencing type-punned pointer
2813 # will break strict-aliasing rules"
2815 GCCOPTS
="$GCCOPTS -fno-strict-aliasing"
2818 if test "$gccnum" -ge "402"; then
2819 # disable warning about "warning: initialized field overwritten" as gcc 4.2
2820 # and later would throw it for several valid cases
2821 GCCOPTS
="$GCCOPTS -Wno-override-init"
2829 # cross-compile for win32
2832 # Verify that the cross-compiler is of a recommended version!
2833 if test "$gccver" != "$gccchoice"; then
2834 echo "WARNING: Your cross-compiler $CC $gccver is not of the recommended"
2835 echo "WARNING: version $gccchoice!"
2836 echo "WARNING: This may cause your build to fail since it may be a version"
2837 echo "WARNING: that isn't functional or known to not be the best choice."
2838 echo "WARNING: If you suffer from build problems, you know that this is"
2839 echo "WARNING: a likely source for them..."
2847 echo "Using $LD $ldver"
2849 # check the compiler for SH platforms
2850 if test "$CC" = "sh-elf-gcc"; then
2851 if test "$gccnum" -lt "400"; then
2852 echo "WARNING: Consider upgrading your compiler to the 4.0.X series!"
2853 echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler"
2855 # figure out patch status
2856 gccpatch
=`$CC --version`;
2858 if { echo $gccpatch |
grep "rockbox" >/dev
/null
2>&1; } then
2859 echo "gcc $gccver is rockbox patched"
2860 # then convert -O to -Os to get smaller binaries!
2861 GCCOPTS
=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2863 echo "WARNING: You use an unpatched gcc compiler: $gccver"
2864 echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler"
2869 if test "$CC" = "m68k-elf-gcc"; then
2870 # convert -O to -Os to get smaller binaries!
2871 GCCOPTS
=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2874 if [ "$ARG_CCACHE" = "1" ]; then
2875 echo "Enable ccache for building"
2877 elif [ "$ARG_CCACHE" != "0" ]; then
2878 ccache
=`findtool ccache`
2879 if test -n "$ccache"; then
2880 echo "Found and uses ccache ($ccache)"
2884 # figure out the full path to the various commands if possible
2885 HOSTCC
=`findtool gcc --lit`
2886 HOSTAR
=`findtool ar --lit`
2887 CC
=`findtool ${CC} --lit`
2888 LD
=`findtool ${AR} --lit`
2889 AR
=`findtool ${AR} --lit`
2890 AS
=`findtool ${AS} --lit`
2891 OC
=`findtool ${OC} --lit`
2892 WINDRES
=`findtool ${WINDRES} --lit`
2893 DLLTOOL
=`findtool ${DLLTOOL} --lit`
2894 DLLWRAP
=`findtool ${DLLWRAP} --lit`
2895 RANLIB
=`findtool ${RANLIB} --lit`
2897 if test -n "$ccache"; then
2901 if test "X$endian" = "Xbig"; then
2902 defendian
="ROCKBOX_BIG_ENDIAN"
2904 defendian
="ROCKBOX_LITTLE_ENDIAN"
2907 if [ "$ARG_RBDIR" ]; then
2909 echo "Using alternate rockbox dir: ${rbdir}"
2913 -e "s,@ENDIAN@,${defendian},g" \
2914 -e "s,^#undef ROCKBOX_HAS_LOGF,$use_logf,g" \
2915 -e "s,^#undef DO_BOOTCHART,$use_bootchart,g" \
2916 -e "s,@config_rtc@,$config_rtc,g" \
2917 -e "s,@have_rtc_alarm@,$have_rtc_alarm,g" \
2918 -e "s,@RBDIR@,${rbdir},g" \
2919 -e "s,@have_backlight@,$have_backlight,g" \
2920 -e "s,@have_fmradio_in@,$have_fmradio_in,g" \
2921 -e "s,@have_ata_poweroff@,$have_ata_poweroff,g" \
2923 /* This header was made by configure */
2924 #ifndef __BUILD_AUTOCONF_H
2925 #define __BUILD_AUTOCONF_H
2927 /* Define endianess for the target or simulator platform */
2930 /* Define this if you build rockbox to support the logf logging and display */
2931 #undef ROCKBOX_HAS_LOGF
2933 /* Define this to record a chart with timings for the stages of boot */
2936 /* optional define for a backlight modded Ondio */
2939 /* optional define for FM radio mod for iAudio M5 */
2942 /* optional define for ATA poweroff on Player */
2945 /* optional defines for RTC mod for h1x0 */
2949 /* root of Rockbox */
2950 #define ROCKBOX_DIR "/@RBDIR@"
2952 #endif /* __BUILD_AUTOCONF_H */
2955 if test -n "$t_cpu"; then
2956 TARGET_INC
="-I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer/$t_model"
2957 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer"
2958 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu"
2962 if test "$simulator" = "yes"; then
2963 # add simul make stuff on the #SIMUL# line
2964 simmagic1
="s,@SIMUL1@,\$(SILENT)\$(MAKE) -C \$(SIMDIR) OBJDIR=\$(BUILDDIR)/sim,"
2965 simmagic2
="s,@SIMUL2@,\$(SILENT)\$(MAKE) -C \$(ROOTDIR)/uisimulator/common OBJDIR=\$(BUILDDIR)/comsim,"
2967 # delete the lines that match
2968 simmagic1
='/@SIMUL1@/D'
2969 simmagic2
='/@SIMUL2@/D'
2972 if test "$swcodec" = "yes"; then
2973 voicetoolset
="rbspeexenc voicefont wavtrim"
2975 voicetoolset
="voicefont wavtrim"
2978 if test "$apps" = "apps"; then
2979 # only when we build "real" apps we build the .lng files
2983 #### Fix the cmdline ###
2984 if test -n "$ccache"; then
2987 if [ "$ARG_ARM_EABI" = "1" ]; then
2988 cmdline
="$cmdline--eabi "
2991 cmdline
="$cmdline--target=\$(MODELNAME) --ram=\$(MEMORYSIZE) --rbdir=\$(RBDIR) --type=$btype$advopts"
2995 -e "s,@ROOTDIR@,${rootdir},g" \
2996 -e "s,@DEBUG@,${debug},g" \
2997 -e "s,@MEMORY@,${memory},g" \
2998 -e "s,@TARGET_ID@,${target_id},g" \
2999 -e "s,@TARGET@,${target},g" \
3000 -e "s,@CPU@,${t_cpu},g" \
3001 -e "s,@MANUFACTURER@,${t_manufacturer},g" \
3002 -e "s,@MODELNAME@,${modelname},g" \
3003 -e "s,@LANGUAGE@,${language},g" \
3004 -e "s:@VOICELANGUAGE@:${voicelanguage}:g" \
3005 -e "s,@PWD@,${pwd},g" \
3006 -e "s,@HOSTCC@,${HOSTCC},g" \
3007 -e "s,@HOSTAR@,${HOSTAR},g" \
3008 -e "s,@CC@,${CC},g" \
3009 -e "s,@LD@,${LD},g" \
3010 -e "s,@AR@,${AR},g" \
3011 -e "s,@AS@,${AS},g" \
3012 -e "s,@OC@,${OC},g" \
3013 -e "s,@WINDRES@,${WINDRES},g" \
3014 -e "s,@DLLTOOL@,${DLLTOOL},g" \
3015 -e "s,@DLLWRAP@,${DLLWRAP},g" \
3016 -e "s,@RANLIB@,${RANLIB},g" \
3017 -e "s,@TOOL@,${tool},g" \
3018 -e "s,@BMP2RB_NATIVE@,${bmp2rb_native},g" \
3019 -e "s,@BMP2RB_MONO@,${bmp2rb_mono},g" \
3020 -e "s,@BMP2RB_REMOTENATIVE@,${bmp2rb_remotenative},g" \
3021 -e "s,@BMP2RB_REMOTEMONO@,${bmp2rb_remotemono},g" \
3022 -e "s,@OUTPUT@,${output},g" \
3023 -e "s,@APPEXTRA@,${appextra},g" \
3024 -e "s,@ARCHOSROM@,${archosrom},g" \
3025 -e "s,@FLASHFILE@,${flash},g" \
3026 -e "s,@PLUGINS@,${plugins},g" \
3027 -e "s,@CODECS@,${swcodec},g" \
3028 -e "s,@PROFILE_OPTS@,${PROFILE_OPTS},g" \
3029 -e "s,@SHARED_FLAG@,${SHARED_FLAG},g" \
3030 -e "s,@GCCOPTS@,${GCCOPTS},g" \
3031 -e "s,@TARGET_INC@,${TARGET_INC},g" \
3032 -e "s!@LDOPTS@!${LDOPTS}!g" \
3033 -e "s,@LOADADDRESS@,${loadaddress},g" \
3034 -e "s,@EXTRADEF@,${extradefines},g" \
3035 -e "s,@APPSDIR@,${appsdir},g" \
3036 -e "s,@FIRMDIR@,${firmdir},g" \
3037 -e "s,@TOOLSDIR@,${toolsdir},g" \
3038 -e "s,@APPS@,${apps},g" \
3039 -e "s,@SIMVER@,${simver},g" \
3040 -e "s,@GCCVER@,${gccver},g" \
3041 -e "s,@GCCNUM@,${gccnum},g" \
3042 -e "s,@UNAME@,${uname},g" \
3043 -e "s,@ENDIAN@,${defendian},g" \
3044 -e "s,@TOOLSET@,${toolset},g" \
3047 -e "s,@MANUALDEV@,${manualdev},g" \
3048 -e "s,@ENCODER@,${ENC_CMD},g" \
3049 -e "s,@ENC_OPTS@,${ENC_OPTS},g" \
3050 -e "s,@TTS_ENGINE@,${TTS_ENGINE},g" \
3051 -e "s,@TTS_OPTS@,${TTS_OPTS},g" \
3052 -e "s,@VOICETOOLSET@,${voicetoolset},g" \
3053 -e "s,@LANGS@,${buildlangs},g" \
3054 -e "s,@USE_ELF@,${USE_ELF},g" \
3055 -e "s,@RBDIR@,${rbdir},g" \
3056 -e "s,@PREFIX@,$PREFIX,g" \
3057 -e "s,@CMDLINE@,$cmdline,g" \
3058 -e "s,@SDLCONFIG@,$sdl,g" \
3060 ## Automatically generated. http://www.rockbox.org/
3062 export ROOTDIR=@ROOTDIR@
3063 export FIRMDIR=@FIRMDIR@
3064 export APPSDIR=@APPSDIR@
3065 export TOOLSDIR=@TOOLSDIR@
3066 export DOCSDIR=\$(ROOTDIR)/docs
3067 export MANUALDIR=\${ROOTDIR}/manual
3068 export DEBUG=@DEBUG@
3069 export MODELNAME=@MODELNAME@
3070 export ARCHOSROM=@ARCHOSROM@
3071 export FLASHFILE=@FLASHFILE@
3072 export TARGET_ID=@TARGET_ID@
3073 export TARGET=@TARGET@
3075 export MANUFACTURER=@MANUFACTURER@
3077 export BUILDDIR=@PWD@
3078 export LANGUAGE=@LANGUAGE@
3079 export VOICELANGUAGE=@VOICELANGUAGE@
3080 export MEMORYSIZE=@MEMORY@
3081 export VERSION:=\$(shell \$(ROOTDIR)/tools/version.sh \$(ROOTDIR))
3082 export BUILDDATE:=\$(shell date -u +'-DYEAR=%Y -DMONTH=%m -DDAY=%d')
3083 export MKFIRMWARE=@TOOL@
3084 export BMP2RB_MONO=@BMP2RB_MONO@
3085 export BMP2RB_NATIVE=@BMP2RB_NATIVE@
3086 export BMP2RB_REMOTEMONO=@BMP2RB_REMOTEMONO@
3087 export BMP2RB_REMOTENATIVE=@BMP2RB_REMOTENATIVE@
3088 export BINARY=@OUTPUT@
3089 export APPEXTRA=@APPEXTRA@
3090 export ENABLEDPLUGINS=@PLUGINS@
3091 export SOFTWARECODECS=@CODECS@
3092 export EXTRA_DEFINES=@EXTRADEF@
3093 export HOSTCC=@HOSTCC@
3094 export HOSTAR=@HOSTAR@
3100 export WINDRES=@WINDRES@
3101 export DLLTOOL=@DLLTOOL@
3102 export DLLWRAP=@DLLWRAP@
3103 export RANLIB=@RANLIB@
3104 export PREFIX=@PREFIX@
3105 export PROFILE_OPTS=@PROFILE_OPTS@
3106 export SIMVER=@SIMVER@
3107 export SIMDIR=\$(ROOTDIR)/uisimulator/sdl
3108 export GCCOPTS=@GCCOPTS@
3109 export TARGET_INC=@TARGET_INC@
3110 export LOADADDRESS=@LOADADDRESS@
3111 export SHARED_FLAG=@SHARED_FLAG@
3112 export LDOPTS=@LDOPTS@
3113 export GCCVER=@GCCVER@
3114 export GCCNUM=@GCCNUM@
3115 export UNAME=@UNAME@
3116 export MANUALDEV=@MANUALDEV@
3117 export TTS_OPTS=@TTS_OPTS@
3118 export TTS_ENGINE=@TTS_ENGINE@
3119 export ENC_OPTS=@ENC_OPTS@
3120 export ENCODER=@ENCODER@
3121 export USE_ELF=@USE_ELF@
3122 export RBDIR=@RBDIR@
3123 export SDLCONFIG=@SDLCONFIG@
3125 CONFIGURE_OPTIONS=@CMDLINE@
3127 include \$(TOOLSDIR)/root.make
3131 echo "Created Makefile"