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 if [ "$ARG_GNU_PTH" = "1" ]; then
174 if [ "$crosscompile" = "yes" ]; then
175 echo "[ERROR] GNU Pth cannot be used on windows"
177 if [ -n "`findtool pth-config`" ]; then
178 GCCOPTS
="$GCCOPTS `pth-config --cflags`"
179 extradefines
="$extradefines -DHAVE_GNU_PTH_THREADS"
180 LDOPTS
="$LDOPTS `pth-config --libs`"
181 echo "Found and use GNU Pth Portable Threads library"
183 echo "Configure did not find pth-config.\nFalling back to SDL library for threads"
187 GCCOPTS
="$GCCOPTS -I\$(SIMDIR)"
189 if test "X$crosscompile" != "Xyes"; then
192 # fPIC is needed to make shared objects link
193 # setting visibility to hidden is necessary to avoid strange crashes
194 # due to symbol clashing
195 GCCOPTS
="$GCCOPTS -fPIC -fvisibility=hidden"
196 # x86_64 supports MMX by default
200 echo "Enabling MMX support"
201 GCCOPTS
="$GCCOPTS -mmmx"
206 cat >$tmpdir/conftest-
$id.c
<<EOF
208 int main(int argc, char **argv)
211 char *varp = (char *)&var;
219 $CC -o $tmpdir/conftest-
$id $tmpdir/conftest-
$id.c
2>/dev
/null
221 if test `$tmpdir/conftest-$id 2>/dev/null` -gt "1"; then
229 if [ $1 = "sdl" ]; then
230 echo "Simulator environment deemed $endian endian"
231 elif [ $1 = "checkwps" ]; then
232 echo "CheckWPS environment deemed $endian endian"
235 # use wildcard here to make it work even if it was named *.exe like
237 rm -f $tmpdir/conftest-
$id*
239 # We are crosscompiling
240 # add cross-compiler option(s)
241 prefixtools i586-mingw32msvc-
242 LDOPTS
="$LDOPTS -mconsole"
243 output
="rockboxui.exe"
244 endian
="little" # windows is little endian
245 echo "Enabling MMX support"
246 GCCOPTS
="$GCCOPTS -mmmx"
251 # functions for setting up cross-compiler names and options
252 # also set endianess and what the exact recommended gcc version is
253 # the gcc version should most likely match what versions we build with
258 GCCOPTS
="$CCOPTS -m1"
259 GCCOPTIMIZE
="-fomit-frame-pointer -fschedule-insns"
265 prefixtools calmrisc16-unknown-elf-
266 GCCOPTS
="-Wl\,--no-check-sections $CCOPTS"
267 GCCOPTIMIZE
="-fomit-frame-pointer"
272 prefixtools m68k-elf-
273 GCCOPTS
="$CCOPTS -m5206e -Wa\,-m5249 -malign-int -mstrict-align"
274 GCCOPTIMIZE
="-fomit-frame-pointer"
281 GCCOPTS
="$CCOPTS -mcpu=arm7tdmi"
282 if test "X$1" != "Xshort" -a "$ARG_ARM_EABI" != "1"; then
283 GCCOPTS
="$GCCOPTS -mlong-calls"
285 GCCOPTIMIZE
="-fomit-frame-pointer"
291 GCCOPTS
="$CCOPTS -mcpu=arm9tdmi"
292 if test "$modelname" != "gigabeatfx" -a "$t_manufacturer" != "as3525" -a "$ARG_ARM_EABI" != "1"; then
293 GCCOPTS
="$GCCOPTS -mlong-calls"
295 GCCOPTIMIZE
="-fomit-frame-pointer"
301 GCCOPTS
="$CCOPTS -mbig-endian -mcpu=arm940t"
302 if test "$ARG_ARM_EABI" != "1"; then
303 GCCOPTS
="$GCCOPTS -mlong-calls"
305 GCCOPTIMIZE
="-fomit-frame-pointer"
311 GCCOPTS
="$CCOPTS -mcpu=arm940t"
312 if test "$ARG_ARM_EABI" != "1"; then
313 GCCOPTS
="$GCCOPTS -mlong-calls"
315 GCCOPTIMIZE
="-fomit-frame-pointer"
321 GCCOPTS
="$CCOPTS -mcpu=arm9e"
322 if test "$ARG_ARM_EABI" != "1"; then
323 GCCOPTS
="$GCCOPTS -mlong-calls"
325 GCCOPTIMIZE
="-fomit-frame-pointer"
331 GCCOPTS
="$CCOPTS -mcpu=arm926ej-s"
332 if test "$t_manufacturer" != "as3525" -a "$ARG_ARM_EABI" != "1"; then
333 GCCOPTS
="$GCCOPTS -mlong-calls"
335 GCCOPTIMIZE
="-fomit-frame-pointer"
341 GCCOPTS
="$CCOPTS -mcpu=arm1136jf-s"
342 if test "$modelname" != "gigabeats" -a "$ARG_ARM_EABI" != "1"; then
343 GCCOPTS
="$GCCOPTS -mlong-calls"
345 GCCOPTIMIZE
="-fomit-frame-pointer"
351 GCCOPTS
="$CCOPTS -mcpu=arm1176jz-s"
352 if test "$ARG_ARM_EABI" != "1"; then
353 GCCOPTS
="$GCCOPTS -mlong-calls"
355 GCCOPTIMIZE
="-fomit-frame-pointer"
360 prefixtools mipsel-elf-
361 GCCOPTS
="$CCOPTS -march=mips32 -mtune=r4600 -mno-mips16 -mno-long-calls"
362 GCCOPTS
="$GCCOPTS -ffunction-sections -msoft-float -G 0 -Wno-parentheses"
363 GCCOPTIMIZE
="-fomit-frame-pointer"
369 atype
=`echo "$1" | cut -c 2-`
370 ##################################################################
371 # Prompt for specific developer options
373 if [ "$atype" ]; then
378 echo "Enter your developer options (press enter when done)"
379 printf "(D)EBUG, (L)ogf, Boot(c)hart, (S)imulator, (P)rofiling, (V)oice, (W)in32 crosscompile, (T)est plugins"
380 if [ "$memory" = "2" ]; then
383 if [ "$modelname" = "archosplayer" ]; then
384 printf ", Use (A)TA poweroff"
386 if [ "$t_model" = "ondio" ]; then
387 printf ", (B)acklight MOD"
389 if [ "$modelname" = "iaudiom5" ]; then
390 printf ", (F)M radio MOD"
392 if [ "$modelname" = "iriverh120" ]; then
399 while [ $cont = "1" ]; do
401 if [ "$interact" ]; then
404 option
=`echo "$atype" | cut -c 1`
409 if [ "yes" = "$profile" ]; then
410 echo "Debug is incompatible with profiling"
412 echo "DEBUG build enabled"
417 echo "logf() support enabled"
421 echo "Including test plugins"
422 extradefines
="$extradefines -DHAVE_TEST_PLUGINS"
425 echo "bootchart enabled (logf also enabled)"
430 echo "Simulator build enabled"
434 if [ "yes" = "$use_debug" ]; then
435 echo "Profiling is incompatible with debug"
437 echo "Profiling support is enabled"
442 echo "Voice build selected"
446 if [ "$memory" = "2" ]; then
448 echo "Memory size selected: 8MB"
452 if [ "$modelname" = "archosplayer" ]; then
453 have_ata_poweroff
="#define HAVE_ATA_POWER_OFF"
454 echo "ATA power off enabled"
458 if [ "$t_model" = "ondio" ]; then
459 have_backlight
="#define HAVE_BACKLIGHT"
460 echo "Backlight functions enabled"
464 if [ "$modelname" = "iaudiom5" ]; then
465 have_fmradio_in
="#define HAVE_FMRADIO_IN"
466 echo "FM radio functions enabled"
470 if [ "$modelname" = "iriverh120" ]; then
471 config_rtc
="#define CONFIG_RTC RTC_DS1339_DS3231"
472 have_rtc_alarm
="#define HAVE_RTC_ALARM"
473 echo "RTC functions enabled (DS1339/DS3231)"
477 echo "Enabling Windows 32 cross-compiling"
481 if [ "$interact" ]; then
484 echo "[ERROR] Option $option unsupported"
488 if [ "$interact" ]; then
489 btype
="$btype$option"
491 atype
=`echo "$atype" | cut -c 2-`
492 [ "$atype" ] || cont
=0
497 if [ "yes" = "$voice" ]; then
498 # Ask about languages to build
500 voicelanguage
=`whichlang`
501 echo "Voice language set to $voicelanguage"
503 # Configure encoder and TTS engine for each language
504 for thislang
in `echo $voicelanguage | sed 's/,/ /g'`; do
505 voiceconfig
"$thislang"
508 if [ "yes" = "$use_debug" ]; then
510 GCCOPTS
="$GCCOPTS -g -DDEBUG"
512 if [ "yes" = "$logf" ]; then
513 use_logf
="#define ROCKBOX_HAS_LOGF 1"
515 if [ "yes" = "$bootchart" ]; then
516 use_bootchart
="#define DO_BOOTCHART 1"
518 if [ "yes" = "$simulator" ]; then
520 extradefines
="$extradefines -DSIMULATOR"
524 if [ "yes" = "$profile" ]; then
525 extradefines
="$extradefines -DRB_PROFILE"
526 PROFILE_OPTS
="-finstrument-functions"
530 # Configure voice settings
533 if [ ! "$ARG_TTS" ]; then
534 echo "Building $thislang voice for $modelname. Select options"
538 if [ -n "`findtool flite`" ]; then
542 DEFAULT_TTS_OPTS
=$FLITE_OPTS
543 DEFAULT_NOISEFLOOR
="500"
546 if [ -n "`findtool espeak`" ]; then
550 DEFAULT_TTS_OPTS
=$ESPEAK_OPTS
551 DEFAULT_NOISEFLOOR
="500"
554 if [ -n "`findtool festival`" ]; then
555 FESTIVAL
="(F)estival "
558 FESTIVAL_OPTS
="--language italian"
561 FESTIVAL_OPTS
="--language spanish"
564 FESTIVAL_OPTS
="--language finnish"
567 FESTIVAL_OPTS
="--language czech"
573 DEFAULT_TTS
="festival"
574 DEFAULT_TTS_OPTS
=$FESTIVAL_OPTS
575 DEFAULT_NOISEFLOOR
="500"
578 if [ -n "`findtool swift`" ]; then
582 DEFAULT_TTS_OPTS
=$SWIFT_OPTS
583 DEFAULT_NOISEFLOOR
="500"
586 # Allow SAPI if Windows is in use
587 if [ -n "`findtool winver`" ]; then
591 DEFAULT_TTS_OPTS
=$SAPI_OPTS
592 DEFAULT_NOISEFLOOR
="500"
596 if [ "$FESTIVAL" = "$FLITE" ] && [ "$FLITE" = "$ESPEAK" ] && [ "$ESPEAK" = "$SAPI" ] && [ "$SAPI" = "$SWIFT" ]; then
597 echo "You need Festival, eSpeak or Flite in your path, or SAPI available to build voice files"
601 if [ "$ARG_TTS" ]; then
604 echo "TTS engine to use: ${FLITE}${FESTIVAL}${ESPEAK}${SAPI}${SWIFT}(${DEFAULT_CHOICE})?"
607 advopts
="$advopts --tts=$option"
611 NOISEFLOOR
="500" # TODO: check this value
617 TTS_OPTS
=$ESPEAK_OPTS
620 TTS_ENGINE
="festival"
622 TTS_OPTS
=$FESTIVAL_OPTS
635 TTS_ENGINE
=$DEFAULT_TTS
636 TTS_OPTS
=$DEFAULT_TTS_OPTS
637 NOISEFLOOR
=$DEFAULT_NOISEFLOOR
639 echo "Using $TTS_ENGINE for TTS"
641 # Select which voice to use for Festival
642 if [ "$TTS_ENGINE" = "festival" ]; then
643 voicelist
=`echo "(voice.list)"|festival -i 2>/dev/null |tr "\n" " "|sed -e 's/.*festival> (\(.*\)) festival>/\1/'|sort`
644 for voice
in $voicelist; do
645 TTS_FESTIVAL_VOICE
="$voice" # Default choice
648 if [ "$ARG_VOICE" ]; then
652 for voice
in $voicelist; do
653 printf "%3d. %s\n" "$i" "$voice"
656 printf "Please select which Festival voice to use (default is $TTS_FESTIVAL_VOICE): "
660 for voice
in $voicelist; do
661 if [ "$i" = "$CHOICE" -o "$voice" = "$CHOICE" ]; then
662 TTS_FESTIVAL_VOICE
="$voice"
666 advopts
="$advopts --voice=$CHOICE"
667 echo "Festival voice set to $TTS_FESTIVAL_VOICE"
668 echo "(voice_$TTS_FESTIVAL_VOICE)" > festival-prolog.scm
671 # Read custom tts options from command line
672 if [ "$ARG_TTSOPTS" ]; then
673 TTS_OPTS
="$ARG_TTSOPTS"
674 advopts
="$advopts --ttsopts='$TTS_OPTS'"
675 echo "$TTS_ENGINE options set to $TTS_OPTS"
678 if [ "$swcodec" = "yes" ]; then
681 ENC_OPTS
="-q 4 -c 10"
683 if [ -n "`findtool lame`" ]; then
686 ENC_OPTS
="--resample 12 -t -m m -h -V 9.999 -S -B 64 --vbr-new"
688 echo "You need LAME in the system path to build voice files for"
689 echo "HWCODEC targets."
694 echo "Using $ENCODER for encoding voice clips"
696 # Read custom encoder options from command line
697 if [ "$ARG_ENCOPTS" ]; then
698 ENC_OPTS
="$ARG_ENCOPTS"
699 advopts
="$advopts --encopts='$ENC_OPTS'"
700 echo "$ENCODER options set to $ENC_OPTS"
704 if [ -n "`findtool cygpath`" ]; then
705 TEMPDIR
=`cygpath . -a -w`
710 # figure out which languages that are around
711 for file in $rootdir/apps
/lang
/*.lang
; do
712 clean
=`basename $file .lang`
713 langs
="$langs $clean"
716 if [ "$ARG_LANG" ]; then
719 echo "Select a number for the language to use (default is english)"
720 # FIXME The multiple-language feature is currently broken
721 # echo "You may enter a comma-separated list of languages to build"
724 for one
in $langs; do
730 advopts
="$advopts --language=$pick"
735 # Allow the user to pass a comma-separated list of langauges
736 for thispick
in `echo $pick | sed 's/,/ /g'`; do
738 for one
in $langs; do
739 # Accept both the language number and name
740 if [ "$num" = "$thispick" ] ||
[ "$thispick" = "$one" ]; then
741 if [ "$output" = "" ]; then
750 if [ -z "$output" ]; then
758 echo "Rockbox configure script."
759 echo "Invoke this in a directory to generate a Makefile to build Rockbox"
760 echo "Do *NOT* run this within the tools directory!"
763 Usage: configure [OPTION]...
765 --target=TARGET Sets the target, TARGET can be either the target ID or
766 corresponding string. Run without this option to see all
769 --ram=RAM Sets the RAM for certain targets. Even though any number
770 is accepted, not every number is correct. The default
771 value will be applied, if you entered a wrong number
772 (which depends on the target). Watch the output. Run
773 without this option if you are not sure which the right
776 --type=TYPE Sets the build type. Shortcuts are also valid.
777 Run without this option to see all available types.
778 Multiple values are allowed and managed in the input
779 order. So --type=b stands for Bootloader build, while
780 --type=ab stands for "Backlight MOD" build.
782 --language=LANG Set the language used for voice generation (used only if
785 --tts=ENGINE Set the TTS engine used for voice generation (used only
788 --voice=VOICE Set voice to use with selected TTS (used only if TYPE is
791 --ttsopts=OPTS Set TTS engine manual options (used only if TYPE is AV).
793 --encopts=OPTS Set encoder manual options (used only if ATYPE is AV).
795 --rbdir=dir Use alternative rockbox directory (default: ${rbdir}).
796 This is useful for having multiple alternate builds on
797 your device that you can load with ROLO. However as the
798 bootloader looks for .rockbox you won't be able to boot
801 --ccache Enable ccache use (done by default these days)
802 --no-ccache Disable ccache use
804 --eabi Make configure prefer toolchains that are able to compile
805 for the new ARM standard abi EABI
806 --no-eabi The opposite of --eabi (prefer old non-eabi toolchains)
807 --with-pth Enable/Disable use of GNU Pth threads for the simulator
809 --help Shows this message (must not be used with other options)
831 --ccache) ARG_CCACHE
=1;;
832 --no-ccache) ARG_CCACHE
=0;;
833 --encopts=*) ARG_ENCOPTS
=`echo "$arg" | cut -d = -f 2`;;
834 --language=*) ARG_LANG
=`echo "$arg" | cut -d = -f 2`;;
835 --ram=*) ARG_RAM
=`echo "$arg" | cut -d = -f 2`;;
836 --rbdir=*) ARG_RBDIR
=`echo "$arg" | cut -d = -f 2`;;
837 --target=*) ARG_TARGET
=`echo "$arg" | cut -d = -f 2`;;
838 --tts=*) ARG_TTS
=`echo "$arg" | cut -d = -f 2`;;
839 --ttsopts=*) ARG_TTSOPTS
=`echo "$arg" | cut -d = -f 2`;;
840 --type=*) ARG_TYPE
=`echo "$arg" | cut -d = -f 2`;;
841 --voice=*) ARG_VOICE
=`echo "$arg" | cut -d = -f 2`;;
842 --eabi) ARG_ARM_EABI
=1;;
843 --no-eabi) ARG_ARM_EABI
=0;;
845 --with-pth) ARG_GNU_PTH
=1;;
846 --without-pth) ARG_GNU_PTH
=0;;
847 *) err
=1; echo "[ERROR] Option '$arg' unsupported";;
854 if [ "$TMPDIR" != "" ]; then
859 echo Using temporary directory
$tmpdir
861 if test -r "configure"; then
862 # this is a check for a configure script in the current directory, it there
863 # is one, try to figure out if it is this one!
865 if { grep "^# Jukebox" configure
>/dev
/null
2>&1 ; } then
866 echo "WEEEEEEEEP. Don't run this configure script within the tools directory."
867 echo "It will only cause you pain and grief. Instead do this:"
870 echo " mkdir build-dir"
872 echo " ../tools/configure"
874 echo "Much happiness will arise from this. Enjoy"
879 # get our current directory
882 if { echo $pwd |
grep " "; } then
883 echo "You're running this script in a path that contains space. The build"
884 echo "system is unfortunately not clever enough to deal with this. Please"
885 echo "run the script from a different path, rename the path or fix the build"
890 if [ -z "$rootdir" ]; then
891 ##################################################################
892 # Figure out where the source code root is!
894 rootdir
=`dirname $0`/..
/
896 #####################################################################
897 # Convert the possibly relative directory name to an absolute version
903 # cd back to the build dir
908 appsdir
='\$(ROOTDIR)/apps'
909 firmdir
='\$(ROOTDIR)/firmware'
910 toolsdir
='\$(ROOTDIR)/tools'
913 ##################################################################
914 # Figure out target platform
917 if [ "$ARG_TARGET" ]; then
920 echo "Enter target platform:"
922 ==Archos== ==iriver== ==Apple iPod==
923 0) Player/Studio 10) H120/H140 20) Color/Photo
924 1) Recorder 11) H320/H340 21) Nano 1G
925 2) FM Recorder 12) iHP-100/110/115 22) Video
926 3) Recorder v2 13) iFP-790 23) 3G
927 4) Ondio SP 14) H10 20Gb 24) 4G Grayscale
928 5) Ondio FM 15) H10 5/6Gb 25) Mini 1G
930 ==Toshiba== 27) 1G, 2G
931 ==Cowon/iAudio== 40) Gigabeat F/X 28) Nano 2G
932 30) X5/X5V/X5L 41) Gigabeat S
933 31) M5/M5L ==SanDisk==
934 32) 7 ==Olympus= 50) Sansa e200
935 33) D2 70) M:Robe 500 51) Sansa e200R
936 34) M3/M3L 71) M:Robe 100 52) Sansa c200
938 ==Creative== ==Philips== 54) Sansa c100
939 90) Zen Vision:M 30GB 100) GoGear SA9200 55) Sansa Clip
940 91) Zen Vision:M 60GB 101) GoGear HDD1630/ 56) Sansa e200v2
941 92) Zen Vision HDD1830 57) Sansa m200v4
942 102) GoGear HDD6330 58) Sansa Fuze
943 ==Onda== 59) Sansa c200v2
944 120) VX747 ==Meizu== 60) Sansa Clipv2
945 121) VX767 110) M6SL 61) Sansa View
946 122) VX747+ 111) M6SP 62) Sansa Clip+
947 123) VX777 112) M3 63) Sansa Fuze v2
950 ==Samsung== ==Tatung== 80) DAX 1GB MP3/DAB
951 140) YH-820 150) Elio TPJ-1022
952 141) YH-920 ==Lyre project==
953 142) YH-925 ==Packard Bell== 130) Lyre proto 1
954 143) YP-S3 160) Vibe 500 131) Mini2440
963 # Set of tools built for all target platforms:
964 toolset
="rdf2binary convbdf codepages"
966 # Toolsets for some target families:
967 archosbitmaptools
="$toolset scramble descramble sh2d uclpack bmp2rb"
968 iriverbitmaptools
="$toolset scramble descramble mkboot bmp2rb"
969 iaudiobitmaptools
="$toolset scramble descramble mkboot bmp2rb"
970 ipodbitmaptools
="$toolset scramble bmp2rb"
971 gigabeatbitmaptools
="$toolset scramble descramble bmp2rb"
972 tccbitmaptools
="$toolset scramble bmp2rb"
973 # generic is used by IFP, Meizu and Onda
974 genericbitmaptools
="$toolset bmp2rb"
975 # scramble is used by all other targets
976 scramblebitmaptools
="$genericbitmaptools scramble"
979 # ---- For each target ----
982 # target_id: a unique number identifying this target, IS NOT the menu number.
983 # Just use the currently highest number+1 when you add a new
985 # modelname: short model name used all over to identify this target
986 # memory: number of megabytes of RAM this target has. If the amount can
987 # be selected by the size prompt, let memory be unset here
988 # target: -Ddefine passed to the build commands to make the correct
989 # config-*.h file get included etc
990 # tool: the tool that takes a plain binary and converts that into a
991 # working "firmware" file for your target
992 # output: the final output file name
993 # boottool: the tool that takes a plain binary and generates a bootloader
994 # file for your target (or blank to use $tool)
995 # bootoutput:the final output file name for the bootloader (or blank to use
997 # appextra: passed to the APPEXTRA variable in the Makefiles.
998 # TODO: add proper explanation
999 # archosrom: used only for Archos targets that build a special flashable .ucl
1001 # flash: name of output for flashing, for targets where there's a special
1002 # file output for this.
1003 # plugins: set to 'yes' to build the plugins. Early development builds can
1004 # set this to no in the early stages to have an easier life for a
1006 # swcodec: set 'yes' on swcodec targets
1007 # toolset: lists what particular tools in the tools/ directory that this
1008 # target needs to have built prior to building Rockbox
1011 # *cc: sets up gcc and compiler options for your target builds. Note
1012 # that if you select a simulator build, the compiler selection is
1013 # overridden later in the script.
1019 modelname
="archosplayer"
1020 target
="-DARCHOS_PLAYER"
1022 tool
="$rootdir/tools/scramble"
1024 appextra
="player:gui"
1025 archosrom
="$pwd/rombox.ucl"
1026 flash
="$pwd/rockbox.ucl"
1030 # toolset is the tools within the tools directory that we build for
1031 # this particular target.
1032 toolset
="$toolset scramble descramble sh2d player_unifont uclpack"
1034 # Note: the convbdf is present in the toolset just because: 1) the
1035 # firmware/Makefile assumes it is present always, and 2) we will need it when we
1036 # build the player simulator
1039 t_manufacturer
="archos"
1045 modelname
="archosrecorder"
1046 target
="-DARCHOS_RECORDER"
1048 tool
="$rootdir/tools/scramble"
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
="archosfmrecorder"
1068 target
="-DARCHOS_FMRECORDER"
1070 tool
="$rootdir/tools/scramble -fm"
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
="archosrecorderv2"
1090 target
="-DARCHOS_RECORDERV2"
1092 tool
="$rootdir/tools/scramble -v2"
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
="archosondiosp"
1112 target
="-DARCHOS_ONDIOSP"
1114 tool
="$rootdir/tools/scramble -osp"
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 is the tools within the tools directory that we build for
1124 # this particular target.
1125 toolset
=$archosbitmaptools
1127 t_manufacturer
="archos"
1133 modelname
="archosondiofm"
1134 target
="-DARCHOS_ONDIOFM"
1136 tool
="$rootdir/tools/scramble -ofm"
1137 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1138 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1140 appextra
="recorder:gui"
1141 #archosrom="$pwd/rombox.ucl"
1142 flash
="$pwd/rockbox.ucl"
1145 toolset
=$archosbitmaptools
1147 t_manufacturer
="archos"
1153 modelname
="archosav300"
1154 target
="-DARCHOS_AV300"
1157 tool
="$rootdir/tools/scramble -mm=C"
1158 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1159 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1161 appextra
="recorder:gui"
1164 # toolset is the tools within the tools directory that we build for
1165 # this particular target.
1166 toolset
="$toolset scramble descramble bmp2rb"
1167 # architecture, manufacturer and model for the target-tree build
1169 t_manufacturer
="archos"
1175 modelname
="iriverh120"
1176 target
="-DIRIVER_H120"
1179 tool
="$rootdir/tools/scramble -add=h120"
1180 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1181 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
1182 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1183 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1184 output
="rockbox.iriver"
1185 bootoutput
="bootloader.iriver"
1186 appextra
="recorder:gui"
1187 flash
="$pwd/rombox.iriver"
1190 # toolset is the tools within the tools directory that we build for
1191 # this particular target.
1192 toolset
=$iriverbitmaptools
1194 t_manufacturer
="iriver"
1200 modelname
="iriverh300"
1201 target
="-DIRIVER_H300"
1204 tool
="$rootdir/tools/scramble -add=h300"
1205 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1206 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1207 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1208 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1209 output
="rockbox.iriver"
1210 appextra
="recorder:gui"
1213 # toolset is the tools within the tools directory that we build for
1214 # this particular target.
1215 toolset
=$iriverbitmaptools
1217 t_manufacturer
="iriver"
1223 modelname
="iriverh100"
1224 target
="-DIRIVER_H100"
1227 tool
="$rootdir/tools/scramble -add=h100"
1228 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1229 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
1230 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1231 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1232 output
="rockbox.iriver"
1233 bootoutput
="bootloader.iriver"
1234 appextra
="recorder:gui"
1235 flash
="$pwd/rombox.iriver"
1238 # toolset is the tools within the tools directory that we build for
1239 # this particular target.
1240 toolset
=$iriverbitmaptools
1242 t_manufacturer
="iriver"
1248 modelname
="iriverifp7xx"
1249 target
="-DIRIVER_IFP7XX"
1253 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1254 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1255 output
="rockbox.wma"
1256 appextra
="recorder:gui"
1259 # toolset is the tools within the tools directory that we build for
1260 # this particular target.
1261 toolset
=$genericbitmaptools
1263 t_manufacturer
="pnx0101"
1264 t_model
="iriver-ifp7xx"
1269 modelname
="iriverh10"
1270 target
="-DIRIVER_H10"
1273 tool
="$rootdir/tools/scramble -mi4v3 -model=h10 -type=RBOS"
1274 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1275 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1276 output
="rockbox.mi4"
1277 appextra
="recorder:gui"
1280 boottool
="$rootdir/tools/scramble -mi4v3 -model=h10 -type=RBBL"
1281 bootoutput
="H10_20GC.mi4"
1282 # toolset is the tools within the tools directory that we build for
1283 # this particular target.
1284 toolset
=$scramblebitmaptools
1285 # architecture, manufacturer and model for the target-tree build
1287 t_manufacturer
="iriver"
1293 modelname
="iriverh10_5gb"
1294 target
="-DIRIVER_H10_5GB"
1297 tool
="$rootdir/tools/scramble -mi4v2 -model=h105 -type=RBOS"
1298 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1299 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1300 output
="rockbox.mi4"
1301 appextra
="recorder:gui"
1304 boottool
="$rootdir/tools/scramble -mi4v2 -model=h105 -type=RBBL"
1305 bootoutput
="H10.mi4"
1306 # toolset is the tools within the tools directory that we build for
1307 # this particular target.
1308 toolset
=$scramblebitmaptools
1309 # architecture, manufacturer and model for the target-tree build
1311 t_manufacturer
="iriver"
1317 modelname
="ipodcolor"
1318 target
="-DIPOD_COLOR"
1321 tool
="$rootdir/tools/scramble -add=ipco"
1322 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1323 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1324 output
="rockbox.ipod"
1325 appextra
="recorder:gui"
1328 bootoutput
="bootloader-$modelname.ipod"
1329 # toolset is the tools within the tools directory that we build for
1330 # this particular target.
1331 toolset
=$ipodbitmaptools
1332 # architecture, manufacturer and model for the target-tree build
1334 t_manufacturer
="ipod"
1340 modelname
="ipodnano1g"
1341 target
="-DIPOD_NANO"
1344 tool
="$rootdir/tools/scramble -add=nano"
1345 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1346 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
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"
1363 modelname
="ipodvideo"
1364 target
="-DIPOD_VIDEO"
1366 tool
="$rootdir/tools/scramble -add=ipvd"
1367 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1368 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1369 output
="rockbox.ipod"
1370 appextra
="recorder:gui"
1373 bootoutput
="bootloader-$modelname.ipod"
1374 # toolset is the tools within the tools directory that we build for
1375 # this particular target.
1376 toolset
=$ipodbitmaptools
1377 # architecture, manufacturer and model for the target-tree build
1379 t_manufacturer
="ipod"
1389 tool
="$rootdir/tools/scramble -add=ip3g"
1390 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1391 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1392 output
="rockbox.ipod"
1393 appextra
="recorder:gui"
1396 bootoutput
="bootloader-$modelname.ipod"
1397 # toolset is the tools within the tools directory that we build for
1398 # this particular target.
1399 toolset
=$ipodbitmaptools
1400 # architecture, manufacturer and model for the target-tree build
1402 t_manufacturer
="ipod"
1412 tool
="$rootdir/tools/scramble -add=ip4g"
1413 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1414 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1415 output
="rockbox.ipod"
1416 appextra
="recorder:gui"
1419 bootoutput
="bootloader-$modelname.ipod"
1420 # toolset is the tools within the tools directory that we build for
1421 # this particular target.
1422 toolset
=$ipodbitmaptools
1423 # architecture, manufacturer and model for the target-tree build
1425 t_manufacturer
="ipod"
1431 modelname
="ipodmini1g"
1432 target
="-DIPOD_MINI"
1435 tool
="$rootdir/tools/scramble -add=mini"
1436 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1437 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1438 output
="rockbox.ipod"
1439 appextra
="recorder:gui"
1442 bootoutput
="bootloader-$modelname.ipod"
1443 # toolset is the tools within the tools directory that we build for
1444 # this particular target.
1445 toolset
=$ipodbitmaptools
1446 # architecture, manufacturer and model for the target-tree build
1448 t_manufacturer
="ipod"
1454 modelname
="ipodmini2g"
1455 target
="-DIPOD_MINI2G"
1458 tool
="$rootdir/tools/scramble -add=mn2g"
1459 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1460 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1461 output
="rockbox.ipod"
1462 appextra
="recorder:gui"
1465 bootoutput
="bootloader-$modelname.ipod"
1466 # toolset is the tools within the tools directory that we build for
1467 # this particular target.
1468 toolset
=$ipodbitmaptools
1469 # architecture, manufacturer and model for the target-tree build
1471 t_manufacturer
="ipod"
1477 modelname
="ipod1g2g"
1478 target
="-DIPOD_1G2G"
1481 tool
="$rootdir/tools/scramble -add=1g2g"
1482 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1483 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1484 output
="rockbox.ipod"
1485 appextra
="recorder:gui"
1488 bootoutput
="bootloader-$modelname.ipod"
1489 # toolset is the tools within the tools directory that we build for
1490 # this particular target.
1491 toolset
=$ipodbitmaptools
1492 # architecture, manufacturer and model for the target-tree build
1494 t_manufacturer
="ipod"
1500 modelname
="ipodnano2g"
1501 target
="-DIPOD_NANO2G"
1504 tool
="$rootdir/tools/scramble -add=nn2g"
1505 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1506 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1507 output
="rockbox.ipod"
1508 appextra
="recorder:gui"
1511 bootoutput
="bootloader-$modelname.ipod"
1512 # toolset is the tools within the tools directory that we build for
1513 # this particular target.
1514 toolset
=$ipodbitmaptools
1515 # architecture, manufacturer and model for the target-tree build
1517 t_manufacturer
="s5l8700"
1518 t_model
="ipodnano2g"
1523 modelname
="iaudiox5"
1524 target
="-DIAUDIO_X5"
1527 tool
="$rootdir/tools/scramble -add=iax5"
1528 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1529 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1530 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1531 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 7"
1532 output
="rockbox.iaudio"
1533 appextra
="recorder:gui"
1536 # toolset is the tools within the tools directory that we build for
1537 # this particular target.
1538 toolset
="$iaudiobitmaptools"
1539 # architecture, manufacturer and model for the target-tree build
1541 t_manufacturer
="iaudio"
1547 modelname
="iaudiom5"
1548 target
="-DIAUDIO_M5"
1551 tool
="$rootdir/tools/scramble -add=iam5"
1552 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1553 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
1554 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1555 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 7"
1556 output
="rockbox.iaudio"
1557 appextra
="recorder:gui"
1560 # toolset is the tools within the tools directory that we build for
1561 # this particular target.
1562 toolset
="$iaudiobitmaptools"
1563 # architecture, manufacturer and model for the target-tree build
1565 t_manufacturer
="iaudio"
1575 tool
="$rootdir/tools/scramble -add=i7"
1576 boottool
="$rootdir/tools/scramble -tcc=crc"
1577 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1578 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1579 output
="rockbox.iaudio"
1580 appextra
="recorder:gui"
1583 bootoutput
="I7_FW.BIN"
1584 # toolset is the tools within the tools directory that we build for
1585 # this particular target.
1586 toolset
="$tccbitmaptools"
1587 # architecture, manufacturer and model for the target-tree build
1589 t_manufacturer
="tcc77x"
1599 tool
="$rootdir/tools/scramble -add=d2"
1601 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1602 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1604 bootoutput
="bootloader-cowond2.bin"
1605 appextra
="recorder:gui"
1608 toolset
="$tccbitmaptools"
1609 # architecture, manufacturer and model for the target-tree build
1611 t_manufacturer
="tcc780x"
1617 modelname
="iaudiom3"
1618 target
="-DIAUDIO_M3"
1621 tool
="$rootdir/tools/scramble -add=iam3"
1622 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1623 bmp2rb_native
="$rootdir/tools/bmp2rb -f 7"
1624 output
="rockbox.iaudio"
1625 appextra
="recorder:gui"
1628 # toolset is the tools within the tools directory that we build for
1629 # this particular target.
1630 toolset
="$iaudiobitmaptools"
1631 # architecture, manufacturer and model for the target-tree build
1633 t_manufacturer
="iaudio"
1639 modelname
="gigabeatfx"
1640 target
="-DGIGABEAT_F"
1643 tool
="$rootdir/tools/scramble -add=giga"
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 -gigabeat"
1652 bootoutput
="FWIMG01.DAT"
1653 # architecture, manufacturer and model for the target-tree build
1655 t_manufacturer
="s3c2440"
1656 t_model
="gigabeat-fx"
1661 modelname
="gigabeats"
1662 target
="-DGIGABEAT_S"
1665 tool
="$rootdir/tools/scramble -add=gigs"
1666 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1667 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1668 output
="rockbox.gigabeat"
1669 appextra
="recorder:gui"
1672 toolset
="$gigabeatbitmaptools"
1673 boottool
="$rootdir/tools/scramble -gigabeats"
1675 # architecture, manufacturer and model for the target-tree build
1677 t_manufacturer
="imx31"
1678 t_model
="gigabeat-s"
1683 modelname
="mrobe500"
1684 target
="-DMROBE_500"
1687 tool
="$rootdir/tools/scramble -add=m500"
1688 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1689 bmp2rb_native
="$rootdir/tools/bmp2rb -f 8"
1690 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1691 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1692 output
="rockbox.mrobe500"
1693 appextra
="recorder:gui"
1696 toolset
=$gigabeatbitmaptools
1698 bootoutput
="rockbox.mrboot"
1699 # architecture, manufacturer and model for the target-tree build
1701 t_manufacturer
="tms320dm320"
1707 modelname
="mrobe100"
1708 target
="-DMROBE_100"
1711 tool
="$rootdir/tools/scramble -mi4v2 -model=m100 -type=RBOS"
1712 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1713 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1714 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1715 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1716 output
="rockbox.mi4"
1717 appextra
="recorder:gui"
1720 boottool
="$rootdir/tools/scramble -mi4v2 -model=m100 -type=RBBL"
1721 bootoutput
="pp5020.mi4"
1722 # toolset is the tools within the tools directory that we build for
1723 # this particular target.
1724 toolset
=$scramblebitmaptools
1725 # architecture, manufacturer and model for the target-tree build
1727 t_manufacturer
="olympus"
1733 modelname
="logikdax"
1734 target
="-DLOGIK_DAX"
1737 tool
="$rootdir/tools/scramble -add=ldax"
1738 boottool
="$rootdir/tools/scramble -tcc=crc"
1739 bootoutput
="player.rom"
1740 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1741 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1742 output
="rockbox.logik"
1743 appextra
="recorder:gui"
1746 # toolset is the tools within the tools directory that we build for
1747 # this particular target.
1748 toolset
=$tccbitmaptools
1749 # architecture, manufacturer and model for the target-tree build
1751 t_manufacturer
="tcc77x"
1757 modelname
="zenvisionm30gb"
1758 target
="-DCREATIVE_ZVM"
1761 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1762 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1763 tool
="$rootdir/tools/scramble -creative=zvm"
1765 output
="rockbox.zvm"
1766 appextra
="recorder:gui"
1769 toolset
=$ipodbitmaptools
1770 boottool
="$rootdir/tools/scramble -creative=zvm -no-ciff"
1771 bootoutput
="rockbox.zvmboot"
1772 # architecture, manufacturer and model for the target-tree build
1774 t_manufacturer
="tms320dm320"
1775 t_model
="creative-zvm"
1780 modelname
="zenvisionm60gb"
1781 target
="-DCREATIVE_ZVM60GB"
1784 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1785 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1786 tool
="$rootdir/tools/scramble -creative=zvm60 -no-ciff"
1788 output
="rockbox.zvm60"
1789 appextra
="recorder:gui"
1792 toolset
=$ipodbitmaptools
1793 boottool
="$rootdir/tools/scramble -creative=zvm60"
1794 bootoutput
="rockbox.zvm60boot"
1795 # architecture, manufacturer and model for the target-tree build
1797 t_manufacturer
="tms320dm320"
1798 t_model
="creative-zvm"
1803 modelname
="zenvision"
1804 target
="-DCREATIVE_ZV"
1807 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1808 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1809 tool
="$rootdir/tools/scramble -creative=zenvision -no-ciff"
1812 appextra
="recorder:gui"
1815 toolset
=$ipodbitmaptools
1816 boottool
="$rootdir/tools/scramble -creative=zenvision"
1817 bootoutput
="rockbox.zvboot"
1818 # architecture, manufacturer and model for the target-tree build
1820 t_manufacturer
="tms320dm320"
1821 t_model
="creative-zvm"
1826 modelname
="sansae200"
1827 target
="-DSANSA_E200"
1828 memory
=32 # supposedly
1830 tool
="$rootdir/tools/scramble -mi4v3 -model=e200 -type=RBOS"
1831 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1832 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1833 output
="rockbox.mi4"
1834 appextra
="recorder:gui"
1837 boottool
="$rootdir/tools/scramble -mi4v3 -model=e200 -type=RBBL"
1838 bootoutput
="PP5022.mi4"
1839 # toolset is the tools within the tools directory that we build for
1840 # this particular target.
1841 toolset
=$scramblebitmaptools
1842 # architecture, manufacturer and model for the target-tree build
1844 t_manufacturer
="sandisk"
1845 t_model
="sansa-e200"
1849 # the e200R model is pretty much identical to the e200, it only has a
1850 # different option to the scramble tool when building a bootloader and
1851 # makes the bootloader output file name in all lower case.
1853 modelname
="sansae200r"
1854 target
="-DSANSA_E200"
1855 memory
=32 # supposedly
1857 tool
="$rootdir/tools/scramble -mi4v3 -model=e20r -type=RBOS"
1858 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1859 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1860 output
="rockbox.mi4"
1861 appextra
="recorder:gui"
1864 boottool
="$rootdir/tools/scramble -mi4r -model=e20r -type=RBBL"
1865 bootoutput
="pp5022.mi4"
1866 # toolset is the tools within the tools directory that we build for
1867 # this particular target.
1868 toolset
=$scramblebitmaptools
1869 # architecture, manufacturer and model for the target-tree build
1871 t_manufacturer
="sandisk"
1872 t_model
="sansa-e200"
1877 modelname
="sansac200"
1878 target
="-DSANSA_C200"
1879 memory
=32 # supposedly
1881 tool
="$rootdir/tools/scramble -mi4v3 -model=c200 -type=RBOS"
1882 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1883 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1884 output
="rockbox.mi4"
1885 appextra
="recorder:gui"
1888 boottool
="$rootdir/tools/scramble -mi4v3 -model=c200 -type=RBBL"
1889 bootoutput
="firmware.mi4"
1890 # toolset is the tools within the tools directory that we build for
1891 # this particular target.
1892 toolset
=$scramblebitmaptools
1893 # architecture, manufacturer and model for the target-tree build
1895 t_manufacturer
="sandisk"
1896 t_model
="sansa-c200"
1901 modelname
="sansam200"
1902 target
="-DSANSA_M200"
1905 tool
="$rootdir/tools/scramble -add=m200"
1906 boottool
="$rootdir/tools/scramble -tcc=crc"
1907 bootoutput
="player.rom"
1908 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1909 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1910 output
="rockbox.m200"
1911 appextra
="recorder:gui"
1914 # toolset is the tools within the tools directory that we build for
1915 # this particular target.
1916 toolset
=$tccbitmaptools
1917 # architecture, manufacturer and model for the target-tree build
1919 t_manufacturer
="tcc77x"
1925 modelname
="sansac100"
1926 target
="-DSANSA_C100"
1929 tool
="$rootdir/tools/scramble -add=c100"
1930 boottool
="$rootdir/tools/scramble -tcc=crc"
1931 bootoutput
="player.rom"
1932 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1933 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1934 output
="rockbox.c100"
1935 appextra
="recorder:gui"
1938 # toolset is the tools within the tools directory that we build for
1939 # this particular target.
1940 toolset
=$tccbitmaptools
1941 # architecture, manufacturer and model for the target-tree build
1943 t_manufacturer
="tcc77x"
1949 modelname
="sansaclip"
1950 target
="-DSANSA_CLIP"
1952 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1953 bmp2rb_native
="$bmp2rb_mono"
1954 tool
="$rootdir/tools/scramble -add=clip"
1955 output
="rockbox.sansa"
1956 bootoutput
="bootloader-clip.sansa"
1957 appextra
="recorder:gui"
1960 toolset
=$scramblebitmaptools
1962 t_manufacturer
="as3525"
1963 t_model
="sansa-clip"
1970 modelname
="sansae200v2"
1971 target
="-DSANSA_E200V2"
1973 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1974 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1975 tool
="$rootdir/tools/scramble -add=e2v2"
1976 output
="rockbox.sansa"
1977 bootoutput
="bootloader-e200v2.sansa"
1978 appextra
="recorder:gui"
1981 toolset
=$scramblebitmaptools
1983 t_manufacturer
="as3525"
1984 t_model
="sansa-e200v2"
1991 modelname
="sansam200v4"
1992 target
="-DSANSA_M200V4"
1994 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1995 bmp2rb_native
="$bmp2rb_mono"
1996 tool
="$rootdir/tools/scramble -add=m2v4"
1997 output
="rockbox.sansa"
1998 bootoutput
="bootloader-m200v4.sansa"
1999 appextra
="recorder:gui"
2002 toolset
=$scramblebitmaptools
2004 t_manufacturer
="as3525"
2005 t_model
="sansa-m200v4"
2012 modelname
="sansafuze"
2013 target
="-DSANSA_FUZE"
2015 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2016 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2017 tool
="$rootdir/tools/scramble -add=fuze"
2018 output
="rockbox.sansa"
2019 bootoutput
="bootloader-fuze.sansa"
2020 appextra
="recorder:gui"
2023 toolset
=$scramblebitmaptools
2025 t_manufacturer
="as3525"
2026 t_model
="sansa-fuze"
2033 modelname
="sansac200v2"
2034 target
="-DSANSA_C200V2"
2035 memory
=2 # as per OF diagnosis mode
2036 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2037 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2038 tool
="$rootdir/tools/scramble -add=c2v2"
2039 output
="rockbox.sansa"
2040 bootoutput
="bootloader-c200v2.sansa"
2041 appextra
="recorder:gui"
2044 # toolset is the tools within the tools directory that we build for
2045 # this particular target.
2046 toolset
=$scramblebitmaptools
2047 # architecture, manufacturer and model for the target-tree build
2049 t_manufacturer
="as3525"
2050 t_model
="sansa-c200v2"
2056 modelname
="sansaclipv2"
2057 target
="-DSANSA_CLIPV2"
2059 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2060 bmp2rb_native
="$bmp2rb_mono"
2061 tool
="$rootdir/tools/scramble -add=clv2"
2062 output
="rockbox.sansa"
2063 bootoutput
="bootloader-clipv2.sansa"
2064 appextra
="recorder:gui"
2067 toolset
=$scramblebitmaptools
2069 t_manufacturer
="as3525"
2070 t_model
="sansa-clipv2"
2075 echo "Sansa View is not yet supported!"
2078 modelname
="sansaview"
2079 target
="-DSANSA_VIEW"
2082 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2083 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2084 output
="rockbox.mi4"
2088 boottool
="$rootdir/tools/scramble -mi4v3 -model=view -type=RBBL"
2089 bootoutput
="firmware.mi4"
2090 # toolset is the tools within the tools directory that we build for
2091 # this particular target.
2092 toolset
=$scramblebitmaptools
2094 t_manufacturer
="sandisk"
2095 t_model
="sansa-view"
2100 modelname
="sansaclipplus"
2101 target
="-DSANSA_CLIPPLUS"
2103 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2104 bmp2rb_native
="$bmp2rb_mono"
2105 tool
="$rootdir/tools/scramble -add=cli+"
2106 output
="rockbox.sansa"
2107 bootoutput
="bootloader-clipplus.sansa"
2108 appextra
="recorder:gui"
2111 toolset
=$scramblebitmaptools
2113 t_manufacturer
="as3525"
2114 t_model
="sansa-clipplus"
2120 modelname
="sansafuzev2"
2121 target
="-DSANSA_FUZEV2"
2123 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2124 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
2125 tool
="$rootdir/tools/scramble -add=fuz2"
2126 output
="rockbox.sansa"
2127 bootoutput
="bootloader-fuzev2.sansa"
2128 appextra
="recorder:gui"
2131 toolset
=$scramblebitmaptools
2133 t_manufacturer
="as3525"
2134 t_model
="sansa-fuzev2"
2140 modelname
="tatungtpj1022"
2141 target
="-DTATUNG_TPJ1022"
2144 tool
="$rootdir/tools/scramble -add tpj2"
2145 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2146 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
2147 output
="rockbox.elio"
2148 appextra
="recorder:gui"
2151 boottool
="$rootdir/tools/scramble -mi4v2"
2152 bootoutput
="pp5020.mi4"
2153 # toolset is the tools within the tools directory that we build for
2154 # this particular target.
2155 toolset
=$scramblebitmaptools
2156 # architecture, manufacturer and model for the target-tree build
2158 t_manufacturer
="tatung"
2164 modelname
="gogearsa9200"
2165 target
="-DPHILIPS_SA9200"
2166 memory
=32 # supposedly
2168 tool
="$rootdir/tools/scramble -mi4v3 -model=9200 -type=RBOS"
2169 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2170 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2171 output
="rockbox.mi4"
2172 appextra
="recorder:gui"
2175 boottool
="$rootdir/tools/scramble -mi4v3 -model=9200 -type=RBBL"
2176 bootoutput
="FWImage.ebn"
2177 # toolset is the tools within the tools directory that we build for
2178 # this particular target.
2179 toolset
=$scramblebitmaptools
2180 # architecture, manufacturer and model for the target-tree build
2182 t_manufacturer
="philips"
2188 modelname
="gogearhdd1630"
2189 target
="-DPHILIPS_HDD1630"
2190 memory
=32 # supposedly
2192 tool
="$rootdir/tools/scramble -mi4v3 -model=1630 -type=RBOS"
2193 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2194 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2195 output
="rockbox.mi4"
2196 appextra
="recorder:gui"
2199 boottool
="$rootdir/tools/scramble -mi4v3 -model=1630 -type=RBBL"
2200 bootoutput
="FWImage.ebn"
2201 # toolset is the tools within the tools directory that we build for
2202 # this particular target.
2203 toolset
=$scramblebitmaptools
2204 # architecture, manufacturer and model for the target-tree build
2206 t_manufacturer
="philips"
2212 modelname
="gogearhdd6330"
2213 target
="-DPHILIPS_HDD6330"
2214 memory
=32 # supposedly
2216 tool
="$rootdir/tools/scramble -mi4v3 -model=6330 -type=RBOS"
2217 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2218 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2219 output
="rockbox.mi4"
2220 appextra
="recorder:gui"
2223 boottool
="$rootdir/tools/scramble -mi4v3 -model=6330 -type=RBBL"
2224 bootoutput
="FWImage.ebn"
2225 # toolset is the tools within the tools directory that we build for
2226 # this particular target.
2227 toolset
=$scramblebitmaptools
2228 # architecture, manufacturer and model for the target-tree build
2230 t_manufacturer
="philips"
2236 modelname
="meizum6sl"
2237 target
="-DMEIZU_M6SL"
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-m6sl"
2258 modelname
="meizum6sp"
2259 target
="-DMEIZU_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"
2275 t_model
="meizu-m6sp"
2285 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2286 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2287 output
="rockbox.meizu"
2288 appextra
="recorder:gui"
2291 toolset
=$genericbitmaptools
2293 bootoutput
="rockboot.ebn"
2294 # architecture, manufacturer and model for the target-tree build
2296 t_manufacturer
="s5l8700"
2302 modelname
="ondavx747"
2303 target
="-DONDA_VX747"
2306 tool
="$rootdir/tools/scramble -add=x747"
2307 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2308 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2309 output
="rockbox.vx747"
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_vx747"
2324 modelname
="ondavx767"
2325 target
="-DONDA_VX767"
2329 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2330 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2331 output
="rockbox.vx767"
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_vx767"
2346 modelname
="ondavx747p"
2347 target
="-DONDA_VX747P"
2350 tool
="$rootdir/tools/scramble -add=747p"
2351 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2352 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2353 output
="rockbox.vx747p"
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
="ondavx777"
2369 target
="-DONDA_VX777"
2372 tool
="$rootdir/tools/scramble -add=x777"
2373 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2374 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2375 output
="rockbox.vx777"
2376 appextra
="recorder:gui"
2379 toolset
=$genericbitmaptools
2380 boottool
="$rootdir/tools/scramble -ccpmp"
2381 bootoutput
="ccpmp.bin"
2382 # architecture, manufacturer and model for the target-tree build
2384 t_manufacturer
="ingenic_jz47xx"
2385 t_model
="onda_vx747"
2390 modelname
="lyreproto1"
2391 target
="-DLYRE_PROTO1"
2395 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2396 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2397 output
="rockbox.lyre"
2398 appextra
="recorder:gui"
2401 toolset
=$scramblebitmaptools
2403 bootoutput
="bootloader-proto1.lyre"
2404 # architecture, manufacturer and model for the target-tree build
2406 t_manufacturer
="at91sam"
2407 t_model
="lyre_proto1"
2412 modelname
="mini2440"
2416 tool
="$rootdir/tools/scramble -add=m244"
2417 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2418 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2419 output
="rockbox.mini2440"
2420 appextra
="recorder:gui"
2423 toolset
=$scramblebitmaptools
2425 bootoutput
="bootloader-mini2440.lyre"
2426 # architecture, manufacturer and model for the target-tree build
2428 t_manufacturer
="s3c2440"
2434 modelname
="samsungyh820"
2435 target
="-DSAMSUNG_YH820"
2438 tool
="$rootdir/tools/scramble -mi4v2 -model=y820 -type=RBOS"
2439 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2440 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2441 output
="rockbox.mi4"
2442 appextra
="recorder:gui"
2445 boottool
="$rootdir/tools/scramble -mi4v2 -model=y820 -type=RBBL"
2446 bootoutput
="FW_YH820.mi4"
2447 # toolset is the tools within the tools directory that we build for
2448 # this particular target.
2449 toolset
=$scramblebitmaptools
2450 # architecture, manufacturer and model for the target-tree build
2452 t_manufacturer
="samsung"
2458 modelname
="samsungyh920"
2459 target
="-DSAMSUNG_YH920"
2462 tool
="$rootdir/tools/scramble -mi4v2 -model=y920 -type=RBOS"
2463 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2464 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
2465 output
="rockbox.mi4"
2466 appextra
="recorder:gui"
2469 boottool
="$rootdir/tools/scramble -mi4v2 -model=y920 -type=RBBL"
2470 bootoutput
="PP5020.mi4"
2471 # toolset is the tools within the tools directory that we build for
2472 # this particular target.
2473 toolset
=$scramblebitmaptools
2474 # architecture, manufacturer and model for the target-tree build
2476 t_manufacturer
="samsung"
2482 modelname
="samsungyh925"
2483 target
="-DSAMSUNG_YH925"
2486 tool
="$rootdir/tools/scramble -mi4v2 -model=y925 -type=RBOS"
2487 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2488 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2489 output
="rockbox.mi4"
2490 appextra
="recorder:gui"
2493 boottool
="$rootdir/tools/scramble -mi4v2 -model=y925 -type=RBBL"
2494 bootoutput
="FW_YH925.mi4"
2495 # toolset is the tools within the tools directory that we build for
2496 # this particular target.
2497 toolset
=$scramblebitmaptools
2498 # architecture, manufacturer and model for the target-tree build
2500 t_manufacturer
="samsung"
2506 modelname
="samsungyps3"
2507 target
="-DSAMSUNG_YPS3"
2511 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2512 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2513 output
="rockbox.yps3"
2514 appextra
="recorder:gui"
2517 toolset
=$genericbitmaptools
2519 bootoutput
="rockboot.ebn"
2520 # architecture, manufacturer and model for the target-tree build
2522 t_manufacturer
="s5l8700"
2529 target
="-DPBELL_VIBE500"
2532 tool
="$rootdir/tools/scramble -mi4v3 -model=v500 -type=RBOS"
2533 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2534 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
2535 output
="rockbox.mi4"
2536 appextra
="recorder:gui"
2539 boottool
="$rootdir/tools/scramble -mi4v3 -model=v500 -type=RBBL"
2540 bootoutput
="jukebox.mi4"
2541 # toolset is the tools within the tools directory that we build for
2542 # this particular target.
2543 toolset
=$scramblebitmaptools
2544 # architecture, manufacturer and model for the target-tree build
2546 t_manufacturer
="pbell"
2552 modelname
="mpiohd200"
2553 target
="-DMPIO_HD200"
2556 tool
="$rootdir/tools/scramble -add=hd20"
2557 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2558 bmp2rb_native
="$rootdir/tools/bmp2rb -f 7"
2559 output
="rockbox.mpio"
2560 bootoutput
="bootloader.mpio"
2561 appextra
="recorder:gui"
2564 # toolset is the tools within the tools directory that we build for
2565 # this particular target.
2566 toolset
="$genericbitmaptools"
2567 # architecture, manufacturer and model for the target-tree build
2569 t_manufacturer
="mpio"
2574 echo "Please select a supported target platform!"
2580 echo "Platform set to $modelname"
2584 ############################################################################
2585 # Amount of memory, for those that can differ. They have $memory unset at
2589 if [ -z "$memory" ]; then
2592 if [ "$ARG_RAM" ]; then
2595 echo "Enter size of your RAM (in MB): (Defaults to 32)"
2608 if [ "$ARG_RAM" ]; then
2611 echo "Enter size of your RAM (in MB): (Defaults to 2)"
2624 echo "Memory size selected: $memory MB"
2625 [ "$ARG_TYPE" ] ||
echo ""
2629 ##################################################################
2630 # Figure out build "type"
2633 # the ifp7x0 is the only platform that supports building a gdb stub like
2637 gdbstub
="(G)DB stub, "
2639 sansae200r|sansae200
)
2640 gdbstub
="(I)nstaller, "
2643 gdbstub
="(E)raser, "
2648 if [ "$ARG_TYPE" ]; then
2651 echo "Build (N)ormal, (A)dvanced, (S)imulator, (B)ootloader, (C)heckWPS, (D)atabase tool, $gdbstub(M)anual: (Defaults to N)"
2657 appsdir
='\$(ROOTDIR)/bootloader'
2659 extradefines
="-DBOOTLOADER -DE200R_INSTALLER -ffunction-sections -fdata-sections"
2661 echo "e200R-installer build selected"
2664 appsdir
='\$(ROOTDIR)/bootloader'
2666 echo "C2(4)0 or C2(5)0"
2670 extradefines
="-DBOOTLOADER -DC200_ERASE -DC240_ERASE -ffunction-sections -fdata-sections"
2671 echo "c240 eraser build selected"
2674 extradefines
="-DBOOTLOADER -DC200_ERASE -DC250_ERASE -ffunction-sections -fdata-sections"
2675 echo "c240 eraser build selected"
2679 echo "c200 eraser build selected"
2682 if test $t_manufacturer = "archos"; then
2683 # Archos SH-based players do this somewhat differently for
2685 appsdir
='\$(ROOTDIR)/flash/bootbox'
2688 appsdir
='\$(ROOTDIR)/bootloader'
2691 if test -n "$boottool"; then
2694 if test -n "$bootoutput"; then
2698 extradefines
="-DBOOTLOADER -ffunction-sections -fdata-sections"
2700 echo "Bootloader build selected"
2703 if [ "$modelname" = "sansae200r" ]; then
2704 echo "Do not use the e200R target for simulator builds. Use e200 instead."
2709 extradefines
="-DSIMULATOR"
2712 echo "Simulator build selected"
2715 echo "Advanced build selected"
2716 whichadvanced
$btype
2719 extradefines
="-DSTUB" # for target makefile symbol EXTRA_DEFINES
2720 appsdir
='\$(ROOTDIR)/gdb'
2729 echo "GDB stub build selected"
2734 echo "Manual build selected"
2742 extradefines
="-DDEBUG"
2743 appsdir
='\$(ROOTDIR)/tools/checkwps';
2744 output
='checkwps.'${modelname};
2746 echo "CheckWPS build selected"
2754 appsdir
='\$(ROOTDIR)/tools/database';
2759 output
="database_${modelname}.exe"
2762 output
='database.'${modelname};
2766 echo "Database tool build selected"
2769 if [ "$modelname" = "sansae200r" ]; then
2770 echo "Do not use the e200R target for regular builds. Use e200 instead."
2774 btype
="N" # set it explicitly since RET only gets here as well
2775 echo "Normal build selected"
2779 # to be able running "make manual" from non-manual configuration
2782 manualdev
="archosfmrecorder"
2785 manualdev
="iriverh100"
2788 manualdev
="ipodmini1g"
2791 manualdev
=$modelname
2795 if [ -z "$debug" ]; then
2796 GCCOPTS
="$GCCOPTS $GCCOPTIMIZE"
2799 echo "Using source code root directory: $rootdir"
2801 # this was once possible to change at build-time, but no more:
2806 if [ "yes" = "$simulator" ]; then
2807 # setup compiler and things for simulator
2810 if [ -d "simdisk" ]; then
2811 echo "Subdirectory 'simdisk' already present"
2814 echo "Created a 'simdisk' subdirectory for simulating the hard disk"
2818 # Now, figure out version number of the (gcc) compiler we are about to use
2819 gccver
=`$CC -dumpversion`;
2821 # figure out the binutil version too and display it, mostly for the build
2822 # system etc to be able to see it easier
2823 if [ $uname = "Darwin" ]; then
2824 ldver
=`$LD -v 2>&1 | sed -e 's/[^0-9.-]//g'`
2826 ldver
=`$LD --version | head -n 1 | sed -e 's/[^0-9.]//g'`
2829 if [ -z "$gccver" ]; then
2830 echo "[WARNING] The compiler you must use ($CC) is not in your path!"
2831 echo "[WARNING] this may cause your build to fail since we cannot do the"
2832 echo "[WARNING] checks we want now."
2835 # gccver should now be "3.3.5", "3.4.3", "2.95.3-6" and similar, but don't
2838 num1
=`echo $gccver | cut -d . -f1`
2839 num2
=`echo $gccver | cut -d . -f2`
2840 gccnum
=`(expr $num1 "*" 100 + $num2) 2>/dev/null`
2847 echo "Using $CC $gccver ($gccnum)"
2849 if test "$gccnum" -ge "400"; then
2850 # gcc 4.0 is just *so* much pickier on arguments that differ in signedness
2851 # so we ignore that warnings for now
2853 GCCOPTS
="$GCCOPTS -Wno-pointer-sign"
2856 if test "$gccnum" -ge "402"; then
2857 # disable warning about "warning: initialized field overwritten" as gcc 4.2
2858 # and later would throw it for several valid cases
2859 GCCOPTS
="$GCCOPTS -Wno-override-init"
2867 # cross-compile for win32
2870 # Verify that the cross-compiler is of a recommended version!
2871 if test "$gccver" != "$gccchoice"; then
2872 echo "WARNING: Your cross-compiler $CC $gccver is not of the recommended"
2873 echo "WARNING: version $gccchoice!"
2874 echo "WARNING: This may cause your build to fail since it may be a version"
2875 echo "WARNING: that isn't functional or known to not be the best choice."
2876 echo "WARNING: If you suffer from build problems, you know that this is"
2877 echo "WARNING: a likely source for them..."
2885 echo "Using $LD $ldver"
2887 # check the compiler for SH platforms
2888 if test "$CC" = "sh-elf-gcc"; then
2889 if test "$gccnum" -lt "400"; then
2890 echo "WARNING: Consider upgrading your compiler to the 4.0.X series!"
2891 echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler"
2893 # figure out patch status
2894 gccpatch
=`$CC --version`;
2896 if { echo $gccpatch |
grep "rockbox" >/dev
/null
2>&1; } then
2897 echo "gcc $gccver is rockbox patched"
2898 # then convert -O to -Os to get smaller binaries!
2899 GCCOPTS
=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2901 echo "WARNING: You use an unpatched gcc compiler: $gccver"
2902 echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler"
2907 if test "$CC" = "m68k-elf-gcc"; then
2908 # convert -O to -Os to get smaller binaries!
2909 GCCOPTS
=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2912 if [ "$ARG_CCACHE" = "1" ]; then
2913 echo "Enable ccache for building"
2915 elif [ "$ARG_CCACHE" != "0" ]; then
2916 ccache
=`findtool ccache`
2917 if test -n "$ccache"; then
2918 echo "Found and uses ccache ($ccache)"
2922 # figure out the full path to the various commands if possible
2923 HOSTCC
=`findtool gcc --lit`
2924 HOSTAR
=`findtool ar --lit`
2925 CC
=`findtool ${CC} --lit`
2926 LD
=`findtool ${AR} --lit`
2927 AR
=`findtool ${AR} --lit`
2928 AS
=`findtool ${AS} --lit`
2929 OC
=`findtool ${OC} --lit`
2930 WINDRES
=`findtool ${WINDRES} --lit`
2931 DLLTOOL
=`findtool ${DLLTOOL} --lit`
2932 DLLWRAP
=`findtool ${DLLWRAP} --lit`
2933 RANLIB
=`findtool ${RANLIB} --lit`
2935 if test -n "$ccache"; then
2939 if test "X$endian" = "Xbig"; then
2940 defendian
="ROCKBOX_BIG_ENDIAN"
2942 defendian
="ROCKBOX_LITTLE_ENDIAN"
2945 if [ "$ARG_RBDIR" ]; then
2947 echo "Using alternate rockbox dir: ${rbdir}"
2951 -e "s,@ENDIAN@,${defendian},g" \
2952 -e "s,^#undef ROCKBOX_HAS_LOGF,$use_logf,g" \
2953 -e "s,^#undef DO_BOOTCHART,$use_bootchart,g" \
2954 -e "s,@config_rtc@,$config_rtc,g" \
2955 -e "s,@have_rtc_alarm@,$have_rtc_alarm,g" \
2956 -e "s,@RBDIR@,${rbdir},g" \
2957 -e "s,@have_backlight@,$have_backlight,g" \
2958 -e "s,@have_fmradio_in@,$have_fmradio_in,g" \
2959 -e "s,@have_ata_poweroff@,$have_ata_poweroff,g" \
2961 /* This header was made by configure */
2962 #ifndef __BUILD_AUTOCONF_H
2963 #define __BUILD_AUTOCONF_H
2965 /* Define endianess for the target or simulator platform */
2968 /* Define this if you build rockbox to support the logf logging and display */
2969 #undef ROCKBOX_HAS_LOGF
2971 /* Define this to record a chart with timings for the stages of boot */
2974 /* optional define for a backlight modded Ondio */
2977 /* optional define for FM radio mod for iAudio M5 */
2980 /* optional define for ATA poweroff on Player */
2983 /* optional defines for RTC mod for h1x0 */
2987 /* root of Rockbox */
2988 #define ROCKBOX_DIR "/@RBDIR@"
2990 #endif /* __BUILD_AUTOCONF_H */
2993 if test -n "$t_cpu"; then
2994 TARGET_INC
="-I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer/$t_model"
2995 if [ "$simulator" = "yes" ]; then # a few more includes for the sim target tree
2996 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/hosted/sdl/"
2997 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/hosted/"
2999 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer"
3000 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu"
3004 if test "$simulator" = "yes"; then
3005 # add simul make stuff on the #SIMUL# line
3006 simmagic1
="s,@SIMUL1@,\$(SILENT)\$(MAKE) -C \$(SIMDIR) OBJDIR=\$(BUILDDIR)/sim,"
3007 simmagic2
="s,@SIMUL2@,\$(SILENT)\$(MAKE) -C \$(ROOTDIR)/uisimulator/common OBJDIR=\$(BUILDDIR)/comsim,"
3009 # delete the lines that match
3010 simmagic1
='/@SIMUL1@/D'
3011 simmagic2
='/@SIMUL2@/D'
3014 if test "$swcodec" = "yes"; then
3015 voicetoolset
="rbspeexenc voicefont wavtrim"
3017 voicetoolset
="voicefont wavtrim"
3020 if test "$apps" = "apps"; then
3021 # only when we build "real" apps we build the .lng files
3025 #### Fix the cmdline ###
3026 if test -n "$ccache"; then
3029 if [ "$ARG_ARM_EABI" = "1" ]; then
3030 cmdline
="$cmdline--eabi "
3033 cmdline
="$cmdline--target=\$(MODELNAME) --ram=\$(MEMORYSIZE) --rbdir=\$(RBDIR) --type=$btype$advopts"
3037 -e "s,@ROOTDIR@,${rootdir},g" \
3038 -e "s,@DEBUG@,${debug},g" \
3039 -e "s,@MEMORY@,${memory},g" \
3040 -e "s,@TARGET_ID@,${target_id},g" \
3041 -e "s,@TARGET@,${target},g" \
3042 -e "s,@CPU@,${t_cpu},g" \
3043 -e "s,@MANUFACTURER@,${t_manufacturer},g" \
3044 -e "s,@MODELNAME@,${modelname},g" \
3045 -e "s,@LANGUAGE@,${language},g" \
3046 -e "s:@VOICELANGUAGE@:${voicelanguage}:g" \
3047 -e "s,@PWD@,${pwd},g" \
3048 -e "s,@HOSTCC@,${HOSTCC},g" \
3049 -e "s,@HOSTAR@,${HOSTAR},g" \
3050 -e "s,@CC@,${CC},g" \
3051 -e "s,@LD@,${LD},g" \
3052 -e "s,@AR@,${AR},g" \
3053 -e "s,@AS@,${AS},g" \
3054 -e "s,@OC@,${OC},g" \
3055 -e "s,@WINDRES@,${WINDRES},g" \
3056 -e "s,@DLLTOOL@,${DLLTOOL},g" \
3057 -e "s,@DLLWRAP@,${DLLWRAP},g" \
3058 -e "s,@RANLIB@,${RANLIB},g" \
3059 -e "s,@TOOL@,${tool},g" \
3060 -e "s,@BMP2RB_NATIVE@,${bmp2rb_native},g" \
3061 -e "s,@BMP2RB_MONO@,${bmp2rb_mono},g" \
3062 -e "s,@BMP2RB_REMOTENATIVE@,${bmp2rb_remotenative},g" \
3063 -e "s,@BMP2RB_REMOTEMONO@,${bmp2rb_remotemono},g" \
3064 -e "s,@OUTPUT@,${output},g" \
3065 -e "s,@APPEXTRA@,${appextra},g" \
3066 -e "s,@ARCHOSROM@,${archosrom},g" \
3067 -e "s,@FLASHFILE@,${flash},g" \
3068 -e "s,@PLUGINS@,${plugins},g" \
3069 -e "s,@CODECS@,${swcodec},g" \
3070 -e "s,@PROFILE_OPTS@,${PROFILE_OPTS},g" \
3071 -e "s,@SHARED_FLAG@,${SHARED_FLAG},g" \
3072 -e "s,@GCCOPTS@,${GCCOPTS},g" \
3073 -e "s,@TARGET_INC@,${TARGET_INC},g" \
3074 -e "s!@LDOPTS@!${LDOPTS}!g" \
3075 -e "s,@LOADADDRESS@,${loadaddress},g" \
3076 -e "s,@EXTRADEF@,${extradefines},g" \
3077 -e "s,@APPSDIR@,${appsdir},g" \
3078 -e "s,@FIRMDIR@,${firmdir},g" \
3079 -e "s,@TOOLSDIR@,${toolsdir},g" \
3080 -e "s,@APPS@,${apps},g" \
3081 -e "s,@SIMVER@,${simver},g" \
3082 -e "s,@GCCVER@,${gccver},g" \
3083 -e "s,@GCCNUM@,${gccnum},g" \
3084 -e "s,@UNAME@,${uname},g" \
3085 -e "s,@ENDIAN@,${defendian},g" \
3086 -e "s,@TOOLSET@,${toolset},g" \
3089 -e "s,@MANUALDEV@,${manualdev},g" \
3090 -e "s,@ENCODER@,${ENC_CMD},g" \
3091 -e "s,@ENC_OPTS@,${ENC_OPTS},g" \
3092 -e "s,@TTS_ENGINE@,${TTS_ENGINE},g" \
3093 -e "s,@TTS_OPTS@,${TTS_OPTS},g" \
3094 -e "s,@VOICETOOLSET@,${voicetoolset},g" \
3095 -e "s,@LANGS@,${buildlangs},g" \
3096 -e "s,@USE_ELF@,${USE_ELF},g" \
3097 -e "s,@RBDIR@,${rbdir},g" \
3098 -e "s,@PREFIX@,$PREFIX,g" \
3099 -e "s,@CMDLINE@,$cmdline,g" \
3100 -e "s,@SDLCONFIG@,$sdl,g" \
3102 ## Automatically generated. http://www.rockbox.org/
3104 export ROOTDIR=@ROOTDIR@
3105 export FIRMDIR=@FIRMDIR@
3106 export APPSDIR=@APPSDIR@
3107 export TOOLSDIR=@TOOLSDIR@
3108 export DOCSDIR=\$(ROOTDIR)/docs
3109 export MANUALDIR=\${ROOTDIR}/manual
3110 export DEBUG=@DEBUG@
3111 export MODELNAME=@MODELNAME@
3112 export ARCHOSROM=@ARCHOSROM@
3113 export FLASHFILE=@FLASHFILE@
3114 export TARGET_ID=@TARGET_ID@
3115 export TARGET=@TARGET@
3117 export MANUFACTURER=@MANUFACTURER@
3119 export BUILDDIR=@PWD@
3120 export LANGUAGE=@LANGUAGE@
3121 export VOICELANGUAGE=@VOICELANGUAGE@
3122 export MEMORYSIZE=@MEMORY@
3123 export VERSION:=\$(shell \$(ROOTDIR)/tools/version.sh \$(ROOTDIR))
3124 export BUILDDATE:=\$(shell date -u +'-DYEAR=%Y -DMONTH=%m -DDAY=%d')
3125 export MKFIRMWARE=@TOOL@
3126 export BMP2RB_MONO=@BMP2RB_MONO@
3127 export BMP2RB_NATIVE=@BMP2RB_NATIVE@
3128 export BMP2RB_REMOTEMONO=@BMP2RB_REMOTEMONO@
3129 export BMP2RB_REMOTENATIVE=@BMP2RB_REMOTENATIVE@
3130 export BINARY=@OUTPUT@
3131 export APPEXTRA=@APPEXTRA@
3132 export ENABLEDPLUGINS=@PLUGINS@
3133 export SOFTWARECODECS=@CODECS@
3134 export EXTRA_DEFINES=@EXTRADEF@
3135 export HOSTCC=@HOSTCC@
3136 export HOSTAR=@HOSTAR@
3142 export WINDRES=@WINDRES@
3143 export DLLTOOL=@DLLTOOL@
3144 export DLLWRAP=@DLLWRAP@
3145 export RANLIB=@RANLIB@
3146 export PREFIX=@PREFIX@
3147 export PROFILE_OPTS=@PROFILE_OPTS@
3148 export SIMVER=@SIMVER@
3149 export SIMDIR=\$(ROOTDIR)/uisimulator/sdl
3150 export GCCOPTS=@GCCOPTS@
3151 export TARGET_INC=@TARGET_INC@
3152 export LOADADDRESS=@LOADADDRESS@
3153 export SHARED_FLAG=@SHARED_FLAG@
3154 export LDOPTS=@LDOPTS@
3155 export GCCVER=@GCCVER@
3156 export GCCNUM=@GCCNUM@
3157 export UNAME=@UNAME@
3158 export MANUALDEV=@MANUALDEV@
3159 export TTS_OPTS=@TTS_OPTS@
3160 export TTS_ENGINE=@TTS_ENGINE@
3161 export ENC_OPTS=@ENC_OPTS@
3162 export ENCODER=@ENCODER@
3163 export USE_ELF=@USE_ELF@
3164 export RBDIR=@RBDIR@
3165 export SDLCONFIG=@SDLCONFIG@
3167 CONFIGURE_OPTIONS=@CMDLINE@
3169 include \$(TOOLSDIR)/root.make
3173 echo "Created Makefile"