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"
14 use_logf
="#undef ROCKBOX_HAS_LOGF"
16 scriptver
=`echo '$Revision$' | sed -e 's:\\$::g' -e 's/Revision: //'`
21 # Begin Function Definitions
31 WINDRES
=${prefix}windres
32 DLLTOOL
=${prefix}dlltool
33 DLLWRAP
=${prefix}dllwrap
34 RANLIB
=${prefix}ranlib
42 # naive approach to selecting a mingw cross-compiler on linux/*nix
43 echo "Enabling win32 crosscompiling"
45 prefixtools i586-mingw32msvc-
47 # add cross-compiler option(s)
48 GCCOPTS
="$GCCOPTS `sdl-config --cflags`"
49 LDOPTS
="`sdl-config --libs` -mconsole"
51 output
="rockboxui.exe" # use this as output binary name
53 endian
="little" # windows is little endian
56 # scan the $PATH for the given command
63 # echo "checks for $file in $path" >&2
64 if test -f "$path/$file"; then
69 # check whether caller wants literal return value if not found
70 if [ "$2" = "--lit" ]; then
75 # parse the argument list, returns the value after the = in case of a
76 # option=value type option, returns 0 in case of --ccache or --no-ccache,
77 # returns 1 if the searched argument type wasn't fount in the argument list
78 # Usage [var = ]`parse_args <argumenttype>`, e.g. `parse_args --target`
80 # var definitons below are needed so that parse_args can see the arguments
81 arg1
=$1 arg2
=$2 arg3
=$3 arg4
=$4 arg5
=$5 arg6
=$6 arg7
=$7 arg8
=$8 arg9
=$9
85 for i
in $arg1 $arg2 $arg3 $arg4 $arg5 $arg6 $arg7 $arg8 $arg9
87 if [ "$1" = "--ccache" ]; then
88 if [ "$i" = "--ccache" ]; then
91 elif [ "$1" = "--no-ccache" ]; then
92 if [ "$i" = "--no-ccache" ]; then
95 elif [ "$1" = `echo $i|cut -d'=' -f1` ]; then
96 ret
=`echo $i|cut -d'=' -f2`
104 # default tool setup for native building
108 GCCOPTS
='-W -Wall -g -fno-builtin'
110 output
="rockboxui" # use this as default output binary name
112 # generic sdl-config checker
113 sdl
=`findtool sdl-config`
115 if [ -z "$sdl" ]; then
116 echo "configure didn't find sdl-config, which indicates that you"
117 echo "don't have SDL (properly) installed. Please correct and"
118 echo "re-run configure!"
122 # default share option, override below if needed
123 SHARED_FLAG
="-shared"
127 echo "Cygwin host detected"
130 GCCOPTS
="$GCCOPTS `sdl-config --cflags`"
131 LDOPTS
="`sdl-config --libs` -mconsole"
133 output
="rockboxui.exe" # use this as output binary name
137 echo "MinGW host detected"
140 GCCOPTS
="$GCCOPTS `sdl-config --cflags`"
141 LDOPTS
="`sdl-config --libs` -mconsole"
143 output
="rockboxui.exe" # use this as output binary name
147 echo "Linux host detected"
148 if [ "0" != `sdl-config --libs |grep -c mwindows` ]; then
149 # Enable crosscompiling if sdl-config is from Windows SDL
152 GCCOPTS
="$GCCOPTS `sdl-config --cflags`"
153 LDOPTS
="`sdl-config --libs`"
158 echo "FreeBSD host detected"
160 GCCOPTS
="$GCCOPTS `sdl-config --cflags`"
161 LDOPTS
="`sdl-config --libs`"
165 echo "Darwin host detected"
167 GCCOPTS
="$GCCOPTS `sdl-config --cflags`"
168 LDOPTS
="`sdl-config --libs`"
169 SHARED_FLAG
="-dynamiclib -Wl\,-single_module"
173 echo "Unsupported system: $uname, fix configure and retry"
178 GCCOPTS
="$GCCOPTS -I\$(SIMDIR)"
180 if test "X$crosscompile" != "Xyes"; then
181 if [ "`uname -m`" = "x86_64" ] ||
[ "`uname -m`" = "amd64" ]; then
182 # fPIC is needed to make shared objects link
183 # setting visibility to hidden is necessary to avoid strange crashes
184 # due to symbol clashing
185 GCCOPTS
="$GCCOPTS -fPIC -fvisibility=hidden"
189 cat >/tmp
/conftest-
$id.c
<<EOF
191 int main(int argc, char **argv)
194 char *varp = (char *)&var;
202 $CC -o /tmp
/conftest-
$id /tmp
/conftest-
$id.c
2>/dev
/null
204 if test `/tmp/conftest-$id 2>/dev/null` -gt "1"; then
211 echo "Simulator environment deemed $endian endian"
213 # use wildcard here to make it work even if it was named *.exe like
215 rm -f /tmp
/conftest-
$id*
220 # functions for setting up cross-compiler names and options
221 # also set endianess and what the exact recommended gcc version is
222 # the gcc version should most likely match what versions we build with
227 GCCOPTS
="$CCOPTS -m1"
228 GCCOPTIMIZE
="-fomit-frame-pointer -fschedule-insns"
234 prefixtools calmrisc16-unknown-elf-
235 GCCOPTS
="-Wl\,--no-check-sections $CCOPTS"
236 GCCOPTIMIZE
="-fomit-frame-pointer"
241 prefixtools m68k-elf-
242 GCCOPTS
="$CCOPTS -m5206e -Wa\,-m5249 -malign-int -mstrict-align"
243 GCCOPTIMIZE
="-fomit-frame-pointer"
250 GCCOPTS
="$CCOPTS -mcpu=arm7tdmi"
251 if test "X$1" != "Xshort"; then
252 GCCOPTS
="$GCCOPTS -mlong-calls"
254 GCCOPTIMIZE
="-fomit-frame-pointer"
261 GCCOPTS
="$CCOPTS -mcpu=arm9tdmi"
262 if test "$modelname" != "gigabeatf"; then
263 GCCOPTS
="$GCCOPTS -mlong-calls"
265 GCCOPTIMIZE
="-fomit-frame-pointer"
272 GCCOPTS
="$CCOPTS -mbig-endian -mcpu=arm940t -mlong-calls"
273 GCCOPTIMIZE
="-fomit-frame-pointer"
280 GCCOPTS
="$CCOPTS -mcpu=arm9e -mlong-calls"
281 GCCOPTIMIZE
="-fomit-frame-pointer"
288 GCCOPTS
="$CCOPTS -mcpu=arm926ej-s -mlong-calls"
289 GCCOPTIMIZE
="-fomit-frame-pointer"
296 GCCOPTS
="$CCOPTS -mcpu=arm1136jf-s"
297 if test "$modelname" != "gigabeats"; then
298 GCCOPTS
="$GCCOPTS -mlong-calls"
300 GCCOPTIMIZE
="-fomit-frame-pointer"
306 prefixtools mipsel-elf-
307 GCCOPTS
="$CCOPTS -march=mips32 -mtune=r4600 -mno-mips16 -mno-abicalls -mlong-calls"
308 GCCOPTIMIZE
="-fomit-frame-pointer"
309 GCCOPTS
="$GCCOPTS -fno-pic -fno-builtin -fno-exceptions -ffunction-sections -msoft-float -G 0"
315 ##################################################################
316 # Prompt for specific developer options
319 echo "Enter your developer options (press enter when done)"
320 printf "(D)EBUG, (L)ogf, (S)imulator, (P)rofiling, (V)oice"
321 if [ "$memory" = "2" ]; then
324 if [ "$modelname" = "h120" ]; then
331 while [ $cont = "1" ]; do
337 if [ "yes" = "$profile" ]; then
338 echo "Debug is incompatible with profiling"
345 echo "logf() support enabled"
349 echo "Simulator build enabled"
353 if [ "yes" = "$use_debug" ]; then
354 echo "Profiling is incompatible with debug"
356 echo "Profiling support is enabled"
361 echo "Voice build selected"
365 if [ "$memory" = "2" ]; then
367 echo "Memory size selected: 8MB"
373 if [ "$modelname" = "h120" ]; then
374 config_rtc
="#define CONFIG_RTC RTC_DS1339_DS3231"
375 have_rtc_alarm
="#define HAVE_RTC_ALARM"
376 echo "RTC functions enabled (DS1339/DS3231)"
388 if [ "yes" = "$voice" ]; then
389 # Ask about languages to build
390 echo "Select a number for the language to use (default is english)"
391 # The multiple-language feature is currently broken
392 # echo "You may enter a comma-separated list of languages to build"
395 voicelanguage
=`whichlang`
397 if [ -z "$voicelanguage" ]; then
399 voicelanguage
="english"
401 echo "Voice language set to $voicelanguage"
403 # Configure encoder and TTS engine for each language
404 for thislang
in `echo $voicelanguage | sed 's/,/ /g'`; do
405 voiceconfig
"$thislang"
408 if [ "yes" = "$use_debug" ]; then
410 GCCOPTS
="$GCCOPTS -g -DDEBUG"
412 if [ "yes" = "$logf" ]; then
413 use_logf
="#define ROCKBOX_HAS_LOGF 1"
415 if [ "yes" = "$simulator" ]; then
417 extradefines
="$extradefines -DSIMULATOR"
419 if [ "yes" = "$profile" ]; then
420 extradefines
="$extradefines -DRB_PROFILE"
421 PROFILE_OPTS
="-finstrument-functions"
425 # Configure voice settings
428 echo "Building $thislang voice for $modelname. Select options"
431 if [ -n "`findtool flite`" ]; then
435 DEFAULT_TTS_OPTS
=$FLITE_OPTS
436 DEFAULT_NOISEFLOOR
="500"
439 if [ -n "`findtool espeak`" ]; then
443 DEFAULT_TTS_OPTS
=$ESPEAK_OPTS
444 DEFAULT_NOISEFLOOR
="500"
447 if [ -n "`findtool festival`" ]; then
448 FESTIVAL
="(F)estival "
451 FESTIVAL_OPTS
="--language italian"
454 FESTIVAL_OPTS
="--language spanish"
457 FESTIVAL_OPTS
="--language finnish"
460 FESTIVAL_OPTS
="--language czech"
466 DEFAULT_TTS
="festival"
467 DEFAULT_TTS_OPTS
=$FESTIVAL_OPTS
468 DEFAULT_NOISEFLOOR
="500"
471 if [ -n "`findtool swift`" ]; then
475 DEFAULT_TTS_OPTS
=$SWIFT_OPTS
476 DEFAULT_NOISEFLOOR
="500"
479 # Allow SAPI if Windows is in use
480 if [ -n "`findtool winver`" ]; then
484 DEFAULT_TTS_OPTS
=$SAPI_OPTS
485 DEFAULT_NOISEFLOOR
="500"
489 if [ "$FESTIVAL" = "$FLITE" ] && [ "$FLITE" = "$ESPEAK" ] && [ "$ESPEAK" = "$SAPI" ] && [ "$SAPI" = "$SWIFT" ]; then
490 echo "You need Festival, eSpeak or Flite in your path, or SAPI available to build voice files"
494 echo "TTS engine to use: ${FLITE}${FESTIVAL}${ESPEAK}${SAPI}${SWIFT}(${DEFAULT_CHOICE})?"
499 NOISEFLOOR
="500" # TODO: check this value
505 TTS_OPTS
=$ESPEAK_OPTS
508 TTS_ENGINE
="festival"
510 TTS_OPTS
=$FESTIVAL_OPTS
523 TTS_ENGINE
=$DEFAULT_TTS
524 TTS_OPTS
=$DEFAULT_TTS_OPTS
525 NOISEFLOOR
=$DEFAULT_NOISEFLOOR
527 echo "Using $TTS_ENGINE for TTS"
529 # Allow the user to input manual commandline options
530 printf "Enter $TTS_ENGINE options (enter for defaults \"$TTS_OPTS\"): "
531 USER_TTS_OPTS
=`input`
532 if [ -n "$USER_TTS_OPTS" ]; then
533 TTS_OPTS
="$USER_TTS_OPTS"
538 if [ "$swcodec" = "yes" ]; then
541 ENC_OPTS
="-q 4 -c 10"
543 if [ -n "`findtool lame`" ]; then
546 ENC_OPTS
="--resample 12 -t -m m -h -V 9 -S -B 64 --vbr-new"
548 echo "You need LAME in the system path to build voice files for"
549 echo "HWCODEC targets."
554 echo "Using $ENCODER for encoding voice clips"
556 # Allow the user to input manual commandline options
557 printf "Enter $ENCODER options (enter for defaults \"$ENC_OPTS\"): "
558 USER_ENC_OPTS
=`input`
559 if [ -n "$USER_ENC_OPTS" ]; then
560 ENC_OPTS
=$USER_ENC_OPTS
564 if [ -n "`findtool cygpath`" ]; then
565 TEMPDIR
=`cygpath . -a -w`
570 # figure out which languages that are around
571 for file in $rootdir/apps
/lang
/*.lang
; do
572 clean
=`echo $file | sed -e 's:.*/::g' | cut "-d." -f1`
573 langs
="$langs $clean"
577 for one
in $langs; do
587 # Allow the user to pass a comma-separated list of langauges
588 for thispick
in `echo $pick | sed 's/,/ /g'`; do
590 for one
in $langs; do
591 # Accept both the language number and name
592 if [ "$num" = "$thispick" ] ||
[ "$thispick" = "$one" ]; then
593 if [ "$output" = "" ]; then
607 if test "$opt" = "--help"; then
608 echo "Rockbox configure script."
609 echo "Invoke this in a directory to generate a Makefile to build Rockbox"
610 echo "Do *NOT* run this within the tools directory!"
613 Usage: configure [OPTION]...
615 --target=TARGET Sets the target, TARGET can be either the target ID or
616 corresponding string. Run without this option to see all
619 --ram=RAM Sets the RAM for certain targets. Even though any number
620 is accepted, not every number is correct. The default
621 value will be applied, if you entered a wrong number
622 (which depends on the target). Watch the output. Run
623 without this option if you are not sure which the right
626 --type=TYPE Sets the build type. The shortcut is also valid.
627 Run without this option to see available types.
629 --rbdir=dir Use alternative rockbox directory (default: ${rbdir}).
630 This is useful for having multiple alternate builds on
631 your device that you can load with ROLO. However as the
632 bootloader looks for .rockbox you won't be able to boot
635 --ccache Enable ccache use (done by default these days)
636 --no-ccache Disable ccache use
637 --help Shows this message (must not be used with other options)
644 if test -r "configure"; then
645 # this is a check for a configure script in the current directory, it there
646 # is one, try to figure out if it is this one!
648 if { grep "^# Jukebox" configure
>/dev
/null
2>&1 ; } then
649 echo "WEEEEEEEEP. Don't run this configure script within the tools directory."
650 echo "It will only cause you pain and grief. Instead do this:"
653 echo " mkdir build-dir"
655 echo " ../tools/configure"
657 echo "Much happiness will arise from this. Enjoy"
662 # get our current directory
665 if { echo $pwd |
grep " "; } then
666 echo "You're running this script in a path that contains space. The build"
667 echo "system is unfortunately not clever enough to deal with this. Please"
668 echo "run the script from a different path, rename the path or fix the build"
673 if [ -z "$rootdir" ]; then
674 ##################################################################
675 # Figure out where the source code root is!
677 rootdir
=`dirname $0`/..
/
679 #####################################################################
680 # Convert the possibly relative directory name to an absolute version
686 # cd back to the build dir
691 appsdir
='\$(ROOTDIR)/apps'
692 firmdir
='\$(ROOTDIR)/firmware'
693 toolsdir
='\$(ROOTDIR)/tools'
696 ##################################################################
697 # Figure out target platform
700 if [ "1" != `parse_args --target` ]; then
701 buildfor
=`parse_args --target`;
703 echo "Enter target platform:"
705 ==Archos== ==iriver== ==Apple iPod==
706 0) Player/Studio 10) H120/H140 20) Color/Photo
707 1) Recorder 11) H320/H340 21) Nano
708 2) FM Recorder 12) iHP-100/110/115 22) Video
709 3) Recorder v2 13) iFP-790 23) 3G
710 4) Ondio SP 14) H10 20Gb 24) 4G Grayscale
711 5) Ondio FM 15) H10 5/6Gb 25) Mini 1G
713 ==Toshiba== 27) 1G, 2G
715 ==Cowon/iAudio== 41) Gigabeat S ==SanDisk==
716 30) X5/X5V/X5L 50) Sansa e200
717 31) M5/M5L ==Tatung== 51) Sansa e200R
718 32) 7 60) Elio TPJ-1022 52) Sansa c200
719 33) D2 53) Sansa m200
720 34) M3/M3L ==Olympus== 54) Sansa c100
721 70) M:Robe 500 55) Sansa Clip
722 ==Creative== 71) M:Robe 100 56) Sansa e200v2
723 90) Zen Vision:M 30GB 57) Sansa m200v4
724 91) Zen Vision:M 60GB ==Philips== 58) Sansa Fuze
725 92) Zen Vision 100) GoGear SA9200 59) Sansa c200v2
728 ==Onda== 80) DAX 1GB MP3/DAB
731 122) VX747+ 111) M6SP
739 # Set of tools built for all target platforms:
740 toolset
="rdf2binary convbdf codepages"
742 # Toolsets for some target families:
743 archosbitmaptools
="$toolset scramble descramble sh2d uclpack bmp2rb"
744 iriverbitmaptools
="$toolset scramble descramble mkboot bmp2rb"
745 iaudiobitmaptools
="$toolset scramble descramble mkboot bmp2rb"
746 ipodbitmaptools
="$toolset scramble bmp2rb"
747 gigabeatbitmaptools
="$toolset scramble descramble bmp2rb"
748 tccbitmaptools
="$toolset scramble mktccboot bmp2rb"
749 # generic is used by IFP, Meizu and Onda
750 genericbitmaptools
="$toolset bmp2rb"
751 # scramble is used by all other targets
752 scramblebitmaptools
="$genericbitmaptools scramble"
755 # ---- For each target ----
758 # target_id: a unique number identifying this target, IS NOT the menu number.
759 # Just use the currently highest number+1 when you add a new
761 # modelname: short model name used all over to identify this target
762 # memory: number of megabytes of RAM this target has. If the amount can
763 # be selected by the size prompt, let memory be unset here
764 # target: -Ddefine passed to the build commands to make the correct
765 # config-*.h file get included etc
766 # tool: the tool that takes a plain binary and converts that into a
767 # working "firmware" file for your target
768 # output: the final output file name
769 # boottool: the tool that takes a plain binary and generates a bootloader
770 # file for your target (or blank to use $tool)
771 # bootoutput:the final output file name for the bootloader (or blank to use
773 # appextra: passed to the APPEXTRA variable in the Makefiles.
774 # TODO: add proper explanation
775 # archosrom: used only for Archos targets that build a special flashable .ucl
777 # flash: name of output for flashing, for targets where there's a special
778 # file output for this.
779 # plugins: set to 'yes' to build the plugins. Early development builds can
780 # set this to no in the early stages to have an easier life for a
782 # swcodec: set 'yes' on swcodec targets
783 # toolset: lists what particular tools in the tools/ directory that this
784 # target needs to have built prior to building Rockbox
787 # *cc: sets up gcc and compiler options for your target builds. Note
788 # that if you select a simulator build, the compiler selection is
789 # overridden later in the script.
796 target
="-DARCHOS_PLAYER"
798 tool
="$rootdir/tools/scramble"
800 appextra
="player:gui"
801 archosrom
="$pwd/rombox.ucl"
802 flash
="$pwd/rockbox.ucl"
806 # toolset is the tools within the tools directory that we build for
807 # this particular target.
808 toolset
="$toolset scramble descramble sh2d player_unifont uclpack"
810 # Note: the convbdf is present in the toolset just because: 1) the
811 # firmware/Makefile assumes it is present always, and 2) we will need it when we
812 # build the player simulator
815 t_manufacturer
="archos"
822 target
="-DARCHOS_RECORDER"
824 tool
="$rootdir/tools/scramble"
825 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
826 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
828 appextra
="recorder:gui"
829 #archosrom="$pwd/rombox.ucl"
830 flash
="$pwd/rockbox.ucl"
833 # toolset is the tools within the tools directory that we build for
834 # this particular target.
835 toolset
=$archosbitmaptools
837 t_manufacturer
="archos"
843 modelname
="fmrecorder"
844 target
="-DARCHOS_FMRECORDER"
846 tool
="$rootdir/tools/scramble -fm"
847 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
848 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
850 appextra
="recorder:gui"
851 #archosrom="$pwd/rombox.ucl"
852 flash
="$pwd/rockbox.ucl"
855 # toolset is the tools within the tools directory that we build for
856 # this particular target.
857 toolset
=$archosbitmaptools
859 t_manufacturer
="archos"
865 modelname
="recorderv2"
866 target
="-DARCHOS_RECORDERV2"
868 tool
="$rootdir/tools/scramble -v2"
869 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
870 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
872 appextra
="recorder:gui"
873 #archosrom="$pwd/rombox.ucl"
874 flash
="$pwd/rockbox.ucl"
877 # toolset is the tools within the tools directory that we build for
878 # this particular target.
879 toolset
=$archosbitmaptools
881 t_manufacturer
="archos"
888 target
="-DARCHOS_ONDIOSP"
890 tool
="$rootdir/tools/scramble -osp"
891 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
892 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
894 appextra
="recorder:gui"
895 archosrom
="$pwd/rombox.ucl"
896 flash
="$pwd/rockbox.ucl"
899 # toolset is the tools within the tools directory that we build for
900 # this particular target.
901 toolset
=$archosbitmaptools
903 t_manufacturer
="archos"
910 target
="-DARCHOS_ONDIOFM"
912 tool
="$rootdir/tools/scramble -ofm"
913 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
914 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
916 appextra
="recorder:gui"
917 #archosrom="$pwd/rombox.ucl"
918 flash
="$pwd/rockbox.ucl"
921 toolset
=$archosbitmaptools
923 t_manufacturer
="archos"
930 target
="-DARCHOS_AV300"
933 tool
="$rootdir/tools/scramble -mm=C"
934 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
935 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
937 appextra
="recorder:gui"
940 # toolset is the tools within the tools directory that we build for
941 # this particular target.
942 toolset
="$toolset scramble descramble bmp2rb"
943 # architecture, manufacturer and model for the target-tree build
945 t_manufacturer
="archos"
952 target
="-DIRIVER_H120"
955 tool
="$rootdir/tools/scramble -add=h120"
956 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
957 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
958 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
959 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
960 output
="rockbox.iriver"
961 appextra
="recorder:gui"
962 flash
="$pwd/rombox.iriver"
965 # toolset is the tools within the tools directory that we build for
966 # this particular target.
967 toolset
=$iriverbitmaptools
969 t_manufacturer
="iriver"
976 target
="-DIRIVER_H300"
979 tool
="$rootdir/tools/scramble -add=h300"
980 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
981 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
982 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
983 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
984 output
="rockbox.iriver"
985 appextra
="recorder:gui"
988 # toolset is the tools within the tools directory that we build for
989 # this particular target.
990 toolset
=$iriverbitmaptools
992 t_manufacturer
="iriver"
999 target
="-DIRIVER_H100"
1002 tool
="$rootdir/tools/scramble -add=h100"
1003 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1004 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
1005 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1006 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1007 output
="rockbox.iriver"
1008 appextra
="recorder:gui"
1009 flash
="$pwd/rombox.iriver"
1012 # toolset is the tools within the tools directory that we build for
1013 # this particular target.
1014 toolset
=$iriverbitmaptools
1016 t_manufacturer
="iriver"
1023 target
="-DIRIVER_IFP7XX"
1027 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1028 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1029 output
="rockbox.wma"
1030 appextra
="recorder:gui"
1033 # toolset is the tools within the tools directory that we build for
1034 # this particular target.
1035 toolset
=$genericbitmaptools
1037 t_manufacturer
="pnx0101"
1038 t_model
="iriver-ifp7xx"
1044 target
="-DIRIVER_H10"
1047 tool
="$rootdir/tools/scramble -mi4v3 -model=h10 -type=RBOS"
1048 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1049 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1050 output
="rockbox.mi4"
1051 appextra
="recorder:gui"
1054 boottool
="$rootdir/tools/scramble -mi4v3 -model=h10 -type=RBBL"
1055 bootoutput
="H10_20GC.mi4"
1056 # toolset is the tools within the tools directory that we build for
1057 # this particular target.
1058 toolset
=$scramblebitmaptools
1059 # architecture, manufacturer and model for the target-tree build
1061 t_manufacturer
="iriver"
1068 target
="-DIRIVER_H10_5GB"
1071 tool
="$rootdir/tools/scramble -mi4v2 -model=h105 -type=RBOS"
1072 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1073 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1074 output
="rockbox.mi4"
1075 appextra
="recorder:gui"
1078 boottool
="$rootdir/tools/scramble -mi4v2 -model=h105 -type=RBBL"
1079 bootoutput
="H10.mi4"
1080 # toolset is the tools within the tools directory that we build for
1081 # this particular target.
1082 toolset
=$scramblebitmaptools
1083 # architecture, manufacturer and model for the target-tree build
1085 t_manufacturer
="iriver"
1091 modelname
="ipodcolor"
1092 target
="-DIPOD_COLOR"
1095 tool
="$rootdir/tools/scramble -add=ipco"
1096 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1097 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1098 output
="rockbox.ipod"
1099 appextra
="recorder:gui"
1102 bootoutput
="bootloader-$modelname.ipod"
1103 # toolset is the tools within the tools directory that we build for
1104 # this particular target.
1105 toolset
=$ipodbitmaptools
1106 # architecture, manufacturer and model for the target-tree build
1108 t_manufacturer
="ipod"
1114 modelname
="ipodnano"
1115 target
="-DIPOD_NANO"
1118 tool
="$rootdir/tools/scramble -add=nano"
1119 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1120 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1121 output
="rockbox.ipod"
1122 appextra
="recorder:gui"
1125 bootoutput
="bootloader-$modelname.ipod"
1126 # toolset is the tools within the tools directory that we build for
1127 # this particular target.
1128 toolset
=$ipodbitmaptools
1129 # architecture, manufacturer and model for the target-tree build
1131 t_manufacturer
="ipod"
1137 modelname
="ipodvideo"
1138 target
="-DIPOD_VIDEO"
1140 tool
="$rootdir/tools/scramble -add=ipvd"
1141 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1142 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1143 output
="rockbox.ipod"
1144 appextra
="recorder:gui"
1147 bootoutput
="bootloader-$modelname.ipod"
1148 # toolset is the tools within the tools directory that we build for
1149 # this particular target.
1150 toolset
=$ipodbitmaptools
1151 # architecture, manufacturer and model for the target-tree build
1153 t_manufacturer
="ipod"
1163 tool
="$rootdir/tools/scramble -add=ip3g"
1164 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1165 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1166 output
="rockbox.ipod"
1167 appextra
="recorder:gui"
1170 bootoutput
="bootloader-$modelname.ipod"
1171 # toolset is the tools within the tools directory that we build for
1172 # this particular target.
1173 toolset
=$ipodbitmaptools
1174 # architecture, manufacturer and model for the target-tree build
1176 t_manufacturer
="ipod"
1186 tool
="$rootdir/tools/scramble -add=ip4g"
1187 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1188 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1189 output
="rockbox.ipod"
1190 appextra
="recorder:gui"
1193 bootoutput
="bootloader-$modelname.ipod"
1194 # toolset is the tools within the tools directory that we build for
1195 # this particular target.
1196 toolset
=$ipodbitmaptools
1197 # architecture, manufacturer and model for the target-tree build
1199 t_manufacturer
="ipod"
1205 modelname
="ipodmini"
1206 target
="-DIPOD_MINI"
1209 tool
="$rootdir/tools/scramble -add=mini"
1210 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1211 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1212 output
="rockbox.ipod"
1213 appextra
="recorder:gui"
1216 bootoutput
="bootloader-$modelname.ipod"
1217 # toolset is the tools within the tools directory that we build for
1218 # this particular target.
1219 toolset
=$ipodbitmaptools
1220 # architecture, manufacturer and model for the target-tree build
1222 t_manufacturer
="ipod"
1228 modelname
="ipodmini2g"
1229 target
="-DIPOD_MINI2G"
1232 tool
="$rootdir/tools/scramble -add=mn2g"
1233 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1234 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1235 output
="rockbox.ipod"
1236 appextra
="recorder:gui"
1239 bootoutput
="bootloader-$modelname.ipod"
1240 # toolset is the tools within the tools directory that we build for
1241 # this particular target.
1242 toolset
=$ipodbitmaptools
1243 # architecture, manufacturer and model for the target-tree build
1245 t_manufacturer
="ipod"
1251 modelname
="ipod1g2g"
1252 target
="-DIPOD_1G2G"
1255 tool
="$rootdir/tools/scramble -add=1g2g"
1256 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1257 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1258 output
="rockbox.ipod"
1259 appextra
="recorder:gui"
1262 bootoutput
="bootloader-$modelname.ipod"
1263 # toolset is the tools within the tools directory that we build for
1264 # this particular target.
1265 toolset
=$ipodbitmaptools
1266 # architecture, manufacturer and model for the target-tree build
1268 t_manufacturer
="ipod"
1275 target
="-DIAUDIO_X5"
1278 tool
="$rootdir/tools/scramble -add=iax5"
1279 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1280 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1281 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1282 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 7"
1283 output
="rockbox.iaudio"
1284 appextra
="recorder:gui"
1287 # toolset is the tools within the tools directory that we build for
1288 # this particular target.
1289 toolset
="$iaudiobitmaptools"
1290 # architecture, manufacturer and model for the target-tree build
1292 t_manufacturer
="iaudio"
1299 target
="-DIAUDIO_M5"
1302 tool
="$rootdir/tools/scramble -add=iam5"
1303 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1304 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
1305 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1306 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 7"
1307 output
="rockbox.iaudio"
1308 appextra
="recorder:gui"
1311 # toolset is the tools within the tools directory that we build for
1312 # this particular target.
1313 toolset
="$iaudiobitmaptools"
1314 # architecture, manufacturer and model for the target-tree build
1316 t_manufacturer
="iaudio"
1326 tool
="$rootdir/tools/scramble -add=i7"
1327 boottool
="$rootdir/tools/scramble -tcc=crc"
1328 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1329 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1330 output
="rockbox.iaudio"
1331 appextra
="recorder:gui"
1334 bootoutput
="I7_FW.BIN"
1335 # toolset is the tools within the tools directory that we build for
1336 # this particular target.
1337 toolset
="$tccbitmaptools"
1338 # architecture, manufacturer and model for the target-tree build
1340 t_manufacturer
="tcc77x"
1350 tool
="$rootdir/tools/scramble -add=d2"
1351 boottool
="$rootdir/tools/scramble -tcc=crc"
1352 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1353 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1355 appextra
="recorder:gui"
1358 toolset
="$tccbitmaptools"
1359 # architecture, manufacturer and model for the target-tree build
1361 t_manufacturer
="tcc780x"
1368 target
="-DIAUDIO_M3"
1371 tool
="$rootdir/tools/scramble -add=iam3"
1372 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1373 bmp2rb_native
="$rootdir/tools/bmp2rb -f 7"
1374 output
="rockbox.iaudio"
1375 appextra
="recorder:gui"
1378 # toolset is the tools within the tools directory that we build for
1379 # this particular target.
1380 toolset
="$iaudiobitmaptools"
1381 # architecture, manufacturer and model for the target-tree build
1383 t_manufacturer
="iaudio"
1389 modelname
="gigabeatf"
1390 target
="-DGIGABEAT_F"
1393 tool
="$rootdir/tools/scramble -add=giga"
1394 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1395 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1396 output
="rockbox.gigabeat"
1397 appextra
="recorder:gui"
1400 toolset
=$gigabeatbitmaptools
1401 boottool
="$rootdir/tools/scramble -gigabeat"
1402 bootoutput
="FWIMG01.DAT"
1403 # architecture, manufacturer and model for the target-tree build
1405 t_manufacturer
="s3c2440"
1406 t_model
="gigabeat-fx"
1411 modelname
="gigabeats"
1412 target
="-DGIGABEAT_S"
1415 tool
="$rootdir/tools/scramble -add=gigs"
1416 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1417 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1418 output
="rockbox.gigabeat"
1419 appextra
="recorder:gui"
1422 toolset
="$gigabeatbitmaptools mknkboot"
1423 boottool
="$rootdir/tools/scramble -gigabeats"
1425 # architecture, manufacturer and model for the target-tree build
1427 t_manufacturer
="imx31"
1428 t_model
="gigabeat-s"
1433 modelname
="mrobe500"
1434 target
="-DMROBE_500"
1437 # tool="$rootdir/tools/scramble -add=m500"
1439 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1440 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1441 output
="rockbox.mrobe500"
1442 appextra
="recorder:gui"
1445 toolset
=$gigabeatbitmaptools
1447 bootoutput
="rockbox.mrboot"
1448 # architecture, manufacturer and model for the target-tree build
1450 t_manufacturer
="tms320dm320"
1456 modelname
="mrobe100"
1457 target
="-DMROBE_100"
1460 tool
="$rootdir/tools/scramble -mi4v2 -model=m100 -type=RBOS"
1461 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1462 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1463 output
="rockbox.mi4"
1464 appextra
="recorder:gui"
1467 boottool
="$rootdir/tools/scramble -mi4v2 -model=m100 -type=RBBL"
1468 bootoutput
="pp5020.mi4"
1469 # toolset is the tools within the tools directory that we build for
1470 # this particular target.
1471 toolset
=$scramblebitmaptools
1472 # architecture, manufacturer and model for the target-tree build
1474 t_manufacturer
="olympus"
1480 modelname
="logikdax"
1481 target
="-DLOGIK_DAX"
1484 tool
="$rootdir/tools/scramble -add=ldax"
1485 boottool
="$rootdir/tools/scramble -tcc=crc"
1486 bootoutput
="player.rom"
1487 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1488 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1489 output
="rockbox.logik"
1490 appextra
="recorder:gui"
1493 # toolset is the tools within the tools directory that we build for
1494 # this particular target.
1495 toolset
=$tccbitmaptools
1496 # architecture, manufacturer and model for the target-tree build
1498 t_manufacturer
="tcc77x"
1504 modelname
="creativezvm30"
1505 target
="-DCREATIVE_ZVM"
1508 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1509 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1510 tool
="$rootdir/tools/scramble -creative=zvm"
1512 output
="rockbox.zvm"
1513 appextra
="recorder:gui"
1516 toolset
=$ipodbitmaptools
1517 boottool
="$rootdir/tools/scramble -creative=zvm -no-ciff"
1518 bootoutput
="rockbox.zvmboot"
1519 # architecture, manufacturer and model for the target-tree build
1521 t_manufacturer
="tms320dm320"
1522 t_model
="creative-zvm"
1527 modelname
="creativezvm60"
1528 target
="-DCREATIVE_ZVM60GB"
1531 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1532 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1533 tool
="$rootdir/tools/scramble -creative=zvm60 -no-ciff"
1535 output
="rockbox.zvm60"
1536 appextra
="recorder:gui"
1539 toolset
=$ipodbitmaptools
1540 boottool
="$rootdir/tools/scramble -creative=zvm60"
1541 bootoutput
="rockbox.zvm60boot"
1542 # architecture, manufacturer and model for the target-tree build
1544 t_manufacturer
="tms320dm320"
1545 t_model
="creative-zvm"
1548 92|creativezenvision
)
1550 modelname
="creativezv"
1551 target
="-DCREATIVE_ZV"
1554 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1555 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1556 tool
="$rootdir/tools/scramble -creative=zenvision -no-ciff"
1559 appextra
="recorder:gui"
1562 toolset
=$ipodbitmaptools
1563 boottool
="$rootdir/tools/scramble -creative=zenvision"
1564 bootoutput
="rockbox.zvboot"
1565 # architecture, manufacturer and model for the target-tree build
1567 t_manufacturer
="tms320dm320"
1568 t_model
="creative-zvm"
1574 target
="-DSANSA_E200"
1575 memory
=32 # supposedly
1577 tool
="$rootdir/tools/scramble -mi4v3 -model=e200 -type=RBOS"
1578 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1579 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1580 output
="rockbox.mi4"
1581 appextra
="recorder:gui"
1584 boottool
="$rootdir/tools/scramble -mi4v3 -model=e200 -type=RBBL"
1585 bootoutput
="PP5022.mi4"
1586 # toolset is the tools within the tools directory that we build for
1587 # this particular target.
1588 toolset
=$scramblebitmaptools
1589 # architecture, manufacturer and model for the target-tree build
1591 t_manufacturer
="sandisk"
1592 t_model
="sansa-e200"
1596 # the e200R model is pretty much identical to the e200, it only has a
1597 # different option to the scramble tool when building a bootloader and
1598 # makes the bootloader output file name in all lower case.
1601 target
="-DSANSA_E200"
1602 memory
=32 # supposedly
1604 tool
="$rootdir/tools/scramble -mi4v3 -model=e20r -type=RBOS"
1605 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1606 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1607 output
="rockbox.mi4"
1608 appextra
="recorder:gui"
1611 boottool
="$rootdir/tools/scramble -mi4r -model=e20r -type=RBBL"
1612 bootoutput
="pp5022.mi4"
1613 # toolset is the tools within the tools directory that we build for
1614 # this particular target.
1615 toolset
=$scramblebitmaptools
1616 # architecture, manufacturer and model for the target-tree build
1618 t_manufacturer
="sandisk"
1619 t_model
="sansa-e200"
1625 target
="-DSANSA_C200"
1626 memory
=32 # supposedly
1628 tool
="$rootdir/tools/scramble -mi4v3 -model=c200 -type=RBOS"
1629 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1630 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1631 output
="rockbox.mi4"
1632 appextra
="recorder:gui"
1635 boottool
="$rootdir/tools/scramble -mi4v3 -model=c200 -type=RBBL"
1636 bootoutput
="firmware.mi4"
1637 # toolset is the tools within the tools directory that we build for
1638 # this particular target.
1639 toolset
=$scramblebitmaptools
1640 # architecture, manufacturer and model for the target-tree build
1642 t_manufacturer
="sandisk"
1643 t_model
="sansa-c200"
1649 target
="-DSANSA_M200"
1652 tool
="$rootdir/tools/scramble -add=m200"
1653 boottool
="$rootdir/tools/scramble -tcc=crc"
1654 bootoutput
="player.rom"
1655 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1656 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1657 output
="rockbox.m200"
1658 appextra
="recorder:gui"
1661 # toolset is the tools within the tools directory that we build for
1662 # this particular target.
1663 toolset
=$tccbitmaptools
1664 # architecture, manufacturer and model for the target-tree build
1666 t_manufacturer
="tcc77x"
1673 target
="-DSANSA_C100"
1674 memory
=32 # unsure, must check
1676 tool
="$rootdir/tools/scramble -add=c100"
1677 boottool
="$rootdir/tools/scramble -tcc=crc"
1678 bootoutput
="player.rom"
1679 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1680 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1681 output
="rockbox.c100"
1682 appextra
="recorder:gui"
1684 # toolset is the tools within the tools directory that we build for
1685 # this particular target.
1686 toolset
=$tccbitmaptools
1687 # architecture, manufacturer and model for the target-tree build
1689 t_manufacturer
="tcc77x"
1696 target
="-DSANSA_CLIP"
1699 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1700 bmp2rb_native
="$bmp2rb_mono"
1701 tool
="$rootdir/tools/scramble -add=clip"
1702 output
="rockbox.sansa"
1703 bootoutput
="bootloader-clip.sansa"
1704 appextra
="recorder:gui"
1707 toolset
=$scramblebitmaptools
1709 t_manufacturer
="as3525"
1710 t_model
="sansa-clip"
1717 target
="-DSANSA_E200V2"
1720 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1721 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1722 tool
="$rootdir/tools/scramble -add=e2v2"
1723 output
="rockbox.sansa"
1724 bootoutput
="bootloader-e200v2.sansa"
1725 appextra
="recorder:gui"
1728 toolset
=$scramblebitmaptools
1730 t_manufacturer
="as3525"
1731 t_model
="sansa-e200v2"
1738 target
="-DSANSA_M200V4"
1741 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1742 bmp2rb_native
="$bmp2rb_mono"
1743 tool
="$rootdir/tools/scramble -add=m2v4"
1744 output
="rockbox.sansa"
1745 bootoutput
="bootloader-m200v4.sansa"
1746 appextra
="recorder:gui"
1749 toolset
=$scramblebitmaptools
1751 t_manufacturer
="as3525"
1752 t_model
="sansa-m200v4"
1759 target
="-DSANSA_FUZE"
1762 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1763 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1764 tool
="$rootdir/tools/scramble -add=fuze"
1765 output
="rockbox.sansa"
1766 bootoutput
="bootloader-fuze.sansa"
1767 appextra
="recorder:gui"
1770 toolset
=$scramblebitmaptools
1772 t_manufacturer
="as3525"
1773 t_model
="sansa-fuze"
1780 target
="-DSANSA_C200V2"
1781 memory
=2 # as per OF diagnosis mode
1783 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1784 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1785 tool
="$rootdir/tools/scramble -add=c2v2"
1786 output
="rockbox.sansa"
1787 bootoutput
="bootloader-c200v2.sansa"
1788 appextra
="recorder:gui"
1791 # toolset is the tools within the tools directory that we build for
1792 # this particular target.
1793 toolset
=$scramblebitmaptools
1794 # architecture, manufacturer and model for the target-tree build
1796 t_manufacturer
="as3525"
1797 t_model
="sansa-c200v2"
1803 target
="-DELIO_TPJ1022"
1806 tool
="$rootdir/tools/scramble -add tpj2"
1807 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1808 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1809 output
="rockbox.elio"
1810 appextra
="recorder:gui"
1813 boottool
="$rootdir/tools/scramble -mi4v2"
1814 bootoutput
="pp5020.mi4"
1815 # toolset is the tools within the tools directory that we build for
1816 # this particular target.
1817 toolset
=$scramblebitmaptools
1818 # architecture, manufacturer and model for the target-tree build
1820 t_manufacturer
="tatung"
1827 target
="-DPHILIPS_SA9200"
1828 memory
=32 # supposedly
1830 tool
="$rootdir/tools/scramble -mi4v3 -model=9200 -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=9200 -type=RBBL"
1838 bootoutput
="FWImage.ebn"
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
="philips"
1851 target
="-DPHILIPS_HDD1630"
1852 memory
=32 # supposedly
1854 tool
="$rootdir/tools/scramble -mi4v3 -model=1630 -type=RBOS"
1855 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1856 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1857 output
="rockbox.mi4"
1858 appextra
="recorder:gui"
1861 boottool
="$rootdir/tools/scramble -mi4v3 -model=1630 -type=RBBL"
1862 bootoutput
="FWImage.ebn"
1863 # toolset is the tools within the tools directory that we build for
1864 # this particular target.
1865 toolset
=$scramblebitmaptools
1866 # architecture, manufacturer and model for the target-tree build
1868 t_manufacturer
="philips"
1874 modelname
="meizum6sl"
1875 target
="-DMEIZU_M6SL"
1879 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1880 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1881 output
="rockbox.meizu"
1882 appextra
="recorder:gui"
1885 toolset
=$genericbitmaptools
1887 bootoutput
="rockboot.ebn"
1888 # architecture, manufacturer and model for the target-tree build
1890 t_manufacturer
="s5l8700"
1891 t_model
="meizu-m6sl"
1896 modelname
="meizum6sp"
1897 target
="-DMEIZU_M6SP"
1901 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1902 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1903 output
="rockbox.meizu"
1904 appextra
="recorder:gui"
1907 toolset
=$genericbitmaptools
1909 bootoutput
="rockboot.ebn"
1910 # architecture, manufacturer and model for the target-tree build
1912 t_manufacturer
="s5l8700"
1913 t_model
="meizu-m6sp"
1923 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1924 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1925 output
="rockbox.meizu"
1926 appextra
="recorder:gui"
1929 toolset
=$genericbitmaptools
1931 bootoutput
="rockboot.ebn"
1932 # architecture, manufacturer and model for the target-tree build
1934 t_manufacturer
="s5l8700"
1940 modelname
="ondavx747"
1941 target
="-DONDA_VX747"
1944 tool
="$rootdir/tools/scramble -add=x747"
1945 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1946 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1947 output
="rockbox.vx747"
1948 appextra
="recorder:gui"
1951 toolset
=$genericbitmaptools
1953 bootoutput
="rockboot.vx747"
1954 # architecture, manufacturer and model for the target-tree build
1956 t_manufacturer
="ingenic_jz47xx"
1957 t_model
="onda_vx747"
1962 modelname
="ondavx767"
1963 target
="-DONDA_VX767"
1967 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1968 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1969 output
="rockbox.vx767"
1970 appextra
="recorder:gui"
1973 toolset
=$genericbitmaptools
1975 bootoutput
="rockboot.vx767"
1976 # architecture, manufacturer and model for the target-tree build
1978 t_manufacturer
="ingenic_jz47xx"
1979 t_model
="onda_vx767"
1984 modelname
="ondavx747p"
1985 target
="-DONDA_VX747P"
1989 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1990 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1991 output
="rockbox.vx747p"
1992 appextra
="recorder:gui"
1995 toolset
=$genericbitmaptools
1997 bootoutput
="rockboot.vx747p"
1998 # architecture, manufacturer and model for the target-tree build
2000 t_manufacturer
="ingenic_jz47xx"
2001 t_model
="onda_vx747"
2005 echo "Please select a supported target platform!"
2011 echo "Platform set to $modelname"
2015 ############################################################################
2016 # Amount of memory, for those that can differ. They have $memory unset at
2020 if [ -z "$memory" ]; then
2023 echo "Enter size of your RAM (in MB): (Defaults to 32)"
2024 if [ "1" != `parse_args --ram` ]; then
2025 size
=`parse_args --ram`;
2039 echo "Enter size of your RAM (in MB): (Defaults to 2)"
2040 if [ "1" != `parse_args --ram` ]; then
2041 size
=`parse_args --ram`;
2055 echo "Memory size selected: $memory MB"
2060 ##################################################################
2061 # Figure out build "type"
2064 # the ifp7x0 is the only platform that supports building a gdb stub like
2068 gdbstub
="(G)DB stub, "
2071 gdbstub
="(I)installer, "
2074 gdbstub
="(E)raser, "
2079 if [ "1" != `parse_args --type` ]; then
2080 btype
=`parse_args --type`;
2082 echo "Build (N)ormal, (A)dvanced, (S)imulator, (B)ootloader, $gdbstub(M)anual: (Defaults to N)"
2088 appsdir
='\$(ROOTDIR)/bootloader'
2090 extradefines
="-DBOOTLOADER -DE200R_INSTALLER -ffunction-sections -fdata-sections"
2092 echo "e200R-installer build selected"
2095 appsdir
='\$(ROOTDIR)/bootloader'
2097 echo "C2(4)0 or C2(5)0"
2101 extradefines
="-DBOOTLOADER -DC200_ERASE -DC240_ERASE -ffunction-sections -fdata-sections"
2102 echo "c240 eraser build selected"
2105 extradefines
="-DBOOTLOADER -DC200_ERASE -DC250_ERASE -ffunction-sections -fdata-sections"
2106 echo "c240 eraser build selected"
2110 echo "c200 eraser build selected"
2113 if test $t_manufacturer = "archos"; then
2114 # Archos SH-based players do this somewhat differently for
2116 appsdir
='\$(ROOTDIR)/flash/bootbox'
2119 appsdir
='\$(ROOTDIR)/bootloader'
2122 if test -n "$boottool"; then
2125 if test -n "$bootoutput"; then
2129 extradefines
="-DBOOTLOADER -ffunction-sections -fdata-sections"
2131 echo "Bootloader build selected"
2136 extradefines
="-DSIMULATOR"
2139 echo "Simulator build selected"
2142 echo "Advanced build selected"
2146 extradefines
="-DSTUB" # for target makefile symbol EXTRA_DEFINES
2147 appsdir
='\$(ROOTDIR)/gdb'
2156 echo "GDB stub build selected"
2161 echo "Manual build selected"
2164 if [ "$modelname" = "e200r" ]; then
2165 echo "Do not use the e200R target for regular builds. Use e200 instead."
2169 btype
="N" # set it explicitly since RET only gets here as well
2170 echo "Normal build selected"
2174 # to be able running "make manual" from non-manual configuration
2177 manualdev
="recorderv2fm"
2180 manualdev
="recorderv2fm"
2186 manualdev
="ipodmini"
2189 manualdev
=$modelname
2193 if [ -z "$debug" ]; then
2194 GCCOPTS
="$GCCOPTS $GCCOPTIMIZE"
2197 echo "Using source code root directory: $rootdir"
2199 # this was once possible to change at build-time, but no more:
2204 if [ "yes" = "$simulator" ]; then
2205 # setup compiler and things for simulator
2208 if [ -d "simdisk" ]; then
2209 echo "Subdirectory 'simdisk' already present"
2212 echo "Created a 'simdisk' subdirectory for simulating the hard disk"
2216 # Now, figure out version number of the (gcc) compiler we are about to use
2217 gccver
=`$CC -dumpversion`;
2219 # figure out the binutil version too and display it, mostly for the build
2220 # system etc to be able to see it easier
2221 ldver
=`$LD --version | head -n 1 | sed -e 's/[^0-9.]//g'`
2223 if [ -z "$gccver" ]; then
2224 echo "WARNING: The compiler you must use ($CC) is not in your path!"
2225 echo "WARNING: this may cause your build to fail since we cannot do the"
2226 echo "WARNING: checks we want now."
2229 # gccver should now be "3.3.5", "3.4.3", "2.95.3-6" and similar, but don't
2232 num1
=`echo $gccver | cut -d . -f1`
2233 num2
=`echo $gccver | cut -d . -f2`
2234 gccnum
=`(expr $num1 "*" 100 + $num2) 2>/dev/null`
2241 echo "Using $CC $gccver ($gccnum)"
2243 if test "$gccnum" -ge "400"; then
2244 # gcc 4.0 is just *so* much pickier on arguments that differ in signedness
2245 # so we ignore that warnings for now
2247 GCCOPTS
="$GCCOPTS -Wno-pointer-sign"
2250 if test "$gccnum" -ge "401"; then
2251 # this is a lame hack to avoid "warning: dereferencing type-punned pointer
2252 # will break strict-aliasing rules"
2254 GCCOPTS
="$GCCOPTS -fno-strict-aliasing"
2257 if test "$gccnum" -ge "402"; then
2258 # disable warning about "warning: initialized field overwritten" as gcc 4.2
2259 # and later would throw it for several valid cases
2260 GCCOPTS
="$GCCOPTS -Wno-override-init"
2268 # cross-compile for win32
2271 # Verify that the cross-compiler is of a recommended version!
2272 if test "$gccver" != "$gccchoice"; then
2273 echo "WARNING: Your cross-compiler $CC $gccver is not of the recommended"
2274 echo "WARNING: version $gccchoice!"
2275 echo "WARNING: This may cause your build to fail since it may be a version"
2276 echo "WARNING: that isn't functional or known to not be the best choice."
2277 echo "WARNING: If you suffer from build problems, you know that this is"
2278 echo "WARNING: a likely source for them..."
2286 echo "Using $LD $ldver"
2288 # check the compiler for SH platforms
2289 if test "$CC" = "sh-elf-gcc"; then
2290 if test "$gccnum" -lt "400"; then
2291 echo "WARNING: Consider upgrading your compiler to the 4.0.X series!"
2292 echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler"
2294 # figure out patch status
2295 gccpatch
=`$CC --version`;
2297 if { echo $gccpatch |
grep "rockbox" >/dev
/null
2>&1; } then
2298 echo "gcc $gccver is rockbox patched"
2299 # then convert -O to -Os to get smaller binaries!
2300 GCCOPTS
=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2302 echo "WARNING: You use an unpatched gcc compiler: $gccver"
2303 echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler"
2308 if test "$CC" = "m68k-elf-gcc"; then
2309 # convert -O to -Os to get smaller binaries!
2310 GCCOPTS
=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2313 if [ "1" != `parse_args --ccache` ]; then
2314 echo "Enable ccache for building"
2317 if [ "1" = `parse_args --no-ccache` ]; then
2318 ccache
=`findtool ccache`
2319 if test -n "$ccache"; then
2320 echo "Found and uses ccache ($ccache)"
2325 # figure out the full path to the various commands if possible
2326 HOSTCC
=`findtool gcc --lit`
2327 HOSTAR
=`findtool ar --lit`
2328 CC
=`findtool ${CC} --lit`
2329 LD
=`findtool ${AR} --lit`
2330 AR
=`findtool ${AR} --lit`
2331 AS
=`findtool ${AS} --lit`
2332 OC
=`findtool ${OC} --lit`
2333 WINDRES
=`findtool ${WINDRES} --lit`
2334 DLLTOOL
=`findtool ${DLLTOOL} --lit`
2335 DLLWRAP
=`findtool ${DLLWRAP} --lit`
2336 RANLIB
=`findtool ${RANLIB} --lit`
2338 if test -n "$ccache"; then
2342 if test "X$endian" = "Xbig"; then
2343 defendian
="ROCKBOX_BIG_ENDIAN"
2345 defendian
="ROCKBOX_LITTLE_ENDIAN"
2348 if [ "1" != `parse_args --rbdir` ]; then
2349 rbdir
=`parse_args --rbdir`;
2350 echo "Using alternate rockbox dir: ${rbdir}"
2354 -e "s,@ENDIAN@,${defendian},g" \
2355 -e "s,^#undef ROCKBOX_HAS_LOGF,$use_logf,g" \
2356 -e "s,@config_rtc@,$config_rtc,g" \
2357 -e "s,@have_rtc_alarm@,$have_rtc_alarm,g" \
2358 -e "s,@RBDIR@,${rbdir},g" \
2360 /* This header was made by configure */
2361 #ifndef __BUILD_AUTOCONF_H
2362 #define __BUILD_AUTOCONF_H
2364 /* Define endianess for the target or simulator platform */
2367 /* Define this if you build rockbox to support the logf logging and display */
2368 #undef ROCKBOX_HAS_LOGF
2370 /* optional defines for RTC mod for h1x0 */
2374 /* root of Rockbox */
2375 #define ROCKBOX_DIR "/@RBDIR@"
2377 #endif /* __BUILD_AUTOCONF_H */
2380 if test -n "$t_cpu"; then
2381 TARGET_INC
="-I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer/$t_model"
2382 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer"
2383 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu"
2387 if test "$simulator" = "yes"; then
2388 # add simul make stuff on the #SIMUL# line
2389 simmagic1
="s,@SIMUL1@,\$(SILENT)\$(MAKE) -C \$(SIMDIR) OBJDIR=\$(BUILDDIR)/sim,"
2390 simmagic2
="s,@SIMUL2@,\$(SILENT)\$(MAKE) -C \$(ROOTDIR)/uisimulator/common OBJDIR=\$(BUILDDIR)/comsim,"
2392 # delete the lines that match
2393 simmagic1
='/@SIMUL1@/D'
2394 simmagic2
='/@SIMUL2@/D'
2397 if test "$swcodec" = "yes"; then
2398 voicetoolset
="rbspeexenc voicefont wavtrim"
2400 voicetoolset
="voicefont wavtrim"
2403 if test "$apps" = "apps"; then
2404 # only when we build "real" apps we build the .lng files
2408 #### Fix the cmdline ###
2409 if test -n "$ccache"; then
2413 cmdline
="$cmdline --target=\$(MODELNAME) --ram=\$(MEMORYSIZE) --rbdir=\$(RBDIR) --type=$btype"
2419 -e "s,@ROOTDIR@,${rootdir},g" \
2420 -e "s,@DEBUG@,${debug},g" \
2421 -e "s,@MEMORY@,${memory},g" \
2422 -e "s,@TARGET_ID@,${target_id},g" \
2423 -e "s,@TARGET@,${target},g" \
2424 -e "s,@CPU@,${t_cpu},g" \
2425 -e "s,@MANUFACTURER@,${t_manufacturer},g" \
2426 -e "s,@MODELNAME@,${modelname},g" \
2427 -e "s,@LANGUAGE@,${language},g" \
2428 -e "s:@VOICELANGUAGE@:${voicelanguage}:g" \
2429 -e "s,@PWD@,${pwd},g" \
2430 -e "s,@HOSTCC@,${HOSTCC},g" \
2431 -e "s,@HOSTAR@,${HOSTAR},g" \
2432 -e "s,@CC@,${CC},g" \
2433 -e "s,@LD@,${LD},g" \
2434 -e "s,@AR@,${AR},g" \
2435 -e "s,@AS@,${AS},g" \
2436 -e "s,@OC@,${OC},g" \
2437 -e "s,@WINDRES@,${WINDRES},g" \
2438 -e "s,@DLLTOOL@,${DLLTOOL},g" \
2439 -e "s,@DLLWRAP@,${DLLWRAP},g" \
2440 -e "s,@RANLIB@,${RANLIB},g" \
2441 -e "s,@TOOL@,${tool},g" \
2442 -e "s,@BMP2RB_NATIVE@,${bmp2rb_native},g" \
2443 -e "s,@BMP2RB_MONO@,${bmp2rb_mono},g" \
2444 -e "s,@BMP2RB_REMOTENATIVE@,${bmp2rb_remotenative},g" \
2445 -e "s,@BMP2RB_REMOTEMONO@,${bmp2rb_remotemono},g" \
2446 -e "s,@OUTPUT@,${output},g" \
2447 -e "s,@APPEXTRA@,${appextra},g" \
2448 -e "s,@ARCHOSROM@,${archosrom},g" \
2449 -e "s,@FLASHFILE@,${flash},g" \
2450 -e "s,@PLUGINS@,${plugins},g" \
2451 -e "s,@CODECS@,${swcodec},g" \
2452 -e "s,@PROFILE_OPTS@,${PROFILE_OPTS},g" \
2453 -e "s,@SHARED_FLAG@,${SHARED_FLAG},g" \
2454 -e "s,@GCCOPTS@,${GCCOPTS},g" \
2455 -e "s,@TARGET_INC@,${TARGET_INC},g" \
2456 -e "s!@LDOPTS@!${LDOPTS}!g" \
2457 -e "s,@LOADADDRESS@,${loadaddress},g" \
2458 -e "s,@EXTRADEF@,${extradefines},g" \
2459 -e "s,@APPSDIR@,${appsdir},g" \
2460 -e "s,@FIRMDIR@,${firmdir},g" \
2461 -e "s,@TOOLSDIR@,${toolsdir},g" \
2462 -e "s,@APPS@,${apps},g" \
2463 -e "s,@SIMVER@,${simver},g" \
2464 -e "s,@GCCVER@,${gccver},g" \
2465 -e "s,@GCCNUM@,${gccnum},g" \
2466 -e "s,@UNAME@,${uname},g" \
2467 -e "s,@ENDIAN@,${defendian},g" \
2468 -e "s,@TOOLSET@,${toolset},g" \
2471 -e "s,@MANUALDEV@,${manualdev},g" \
2472 -e "s,@ENCODER@,${ENC_CMD},g" \
2473 -e "s,@ENC_OPTS@,${ENC_OPTS},g" \
2474 -e "s,@TTS_ENGINE@,${TTS_ENGINE},g" \
2475 -e "s,@TTS_OPTS@,${TTS_OPTS},g" \
2476 -e "s,@VOICETOOLSET@,${voicetoolset},g" \
2477 -e "s,@LANGS@,${buildlangs},g" \
2478 -e "s,@USE_ELF@,${USE_ELF},g" \
2479 -e "s,@RBDIR@,${rbdir},g" \
2480 -e "s,@CMDLINE@,$cmdline,g" \
2482 ## Automatically generated. http://www.rockbox.org/
2484 export ROOTDIR=@ROOTDIR@
2485 export FIRMDIR=@FIRMDIR@
2486 export APPSDIR=@APPSDIR@
2487 export TOOLSDIR=@TOOLSDIR@
2488 export DOCSDIR=\$(ROOTDIR)/docs
2489 export MANUALDIR=\${ROOTDIR}/manual
2490 export DEBUG=@DEBUG@
2491 export MODELNAME=@MODELNAME@
2492 export ARCHOSROM=@ARCHOSROM@
2493 export FLASHFILE=@FLASHFILE@
2494 export TARGET_ID=@TARGET_ID@
2495 export TARGET=@TARGET@
2497 export MANUFACTURER=@MANUFACTURER@
2499 export BUILDDIR=@PWD@
2500 export LANGUAGE=@LANGUAGE@
2501 export VOICELANGUAGE=@VOICELANGUAGE@
2502 export MEMORYSIZE=@MEMORY@
2503 export VERSION:=\$(shell \$(ROOTDIR)/tools/version.sh \$(ROOTDIR))
2504 export BUILDDATE:=\$(shell date -u +'-DYEAR=%Y -DMONTH=%m -DDAY=%d')
2505 export MKFIRMWARE=@TOOL@
2506 export BMP2RB_MONO=@BMP2RB_MONO@
2507 export BMP2RB_NATIVE=@BMP2RB_NATIVE@
2508 export BMP2RB_REMOTEMONO=@BMP2RB_REMOTEMONO@
2509 export BMP2RB_REMOTENATIVE=@BMP2RB_REMOTENATIVE@
2510 export BINARY=@OUTPUT@
2511 export APPEXTRA=@APPEXTRA@
2512 export ENABLEDPLUGINS=@PLUGINS@
2513 export SOFTWARECODECS=@CODECS@
2514 export EXTRA_DEFINES=@EXTRADEF@
2515 export HOSTCC=@HOSTCC@
2516 export HOSTAR=@HOSTAR@
2522 export WINDRES=@WINDRES@
2523 export DLLTOOL=@DLLTOOL@
2524 export DLLWRAP=@DLLWRAP@
2525 export RANLIB=@RANLIB@
2526 export PROFILE_OPTS=@PROFILE_OPTS@
2527 export SIMVER=@SIMVER@
2528 export SIMDIR=\$(ROOTDIR)/uisimulator/sdl
2529 export GCCOPTS=@GCCOPTS@
2530 export TARGET_INC=@TARGET_INC@
2531 export LOADADDRESS=@LOADADDRESS@
2532 export SHARED_FLAG=@SHARED_FLAG@
2533 export LDOPTS=@LDOPTS@
2534 export GCCVER=@GCCVER@
2535 export GCCNUM=@GCCNUM@
2536 export UNAME=@UNAME@
2537 export MANUALDEV=@MANUALDEV@
2538 export TTS_OPTS=@TTS_OPTS@
2539 export TTS_ENGINE=@TTS_ENGINE@
2540 export ENC_OPTS=@ENC_OPTS@
2541 export ENCODER=@ENCODER@
2542 export USE_ELF=@USE_ELF@
2543 export RBDIR=@RBDIR@
2545 CONFIGURE_OPTIONS=@CMDLINE@
2547 include \$(TOOLSDIR)/root.make
2551 echo "Created Makefile"