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"
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 if [ "$ARG_ARM_EABI" = "1" ]; then
43 prefixtools arm-elf-eabi-
51 # scan the $PATH for the given command
58 # echo "checks for $file in $path" >&2
59 if test -f "$path/$file"; then
64 # check whether caller wants literal return value if not found
65 if [ "$2" = "--lit" ]; then
70 # scan the $PATH for sdl-config - if crosscompiling, require that it is
71 # a mingw32 sdl-config
78 #echo "checks for $file in $path" >&2
79 if test -f "$path/$file"; then
80 if [ "yes" = "${crosscompile}" ]; then
81 if [ "0" != `$path/$file --libs |grep -c mwindows` ]; then
95 # default tool setup for native building
99 GCCOPTS
='-W -Wall -g -fno-builtin'
102 output
="rockboxui" # use this as default output binary name
107 if [ $1 = "sdl" ]; then
108 if [ -z "$sdl" ]; then
109 echo "configure didn't find sdl-config, which indicates that you"
110 echo "don't have SDL (properly) installed. Please correct and"
111 echo "re-run configure!"
114 # generic sdl-config checker
115 sdl_cflags
=`$sdl --cflags`
116 sdl_libs
=`$sdl --libs`
120 # default share option, override below if needed
121 SHARED_FLAG
="-shared"
125 echo "Cygwin host detected"
128 GCCOPTS
="$GCCOPTS $sdl_cflags"
129 LDOPTS
="-mconsole $sdl_libs"
131 output
="rockboxui.exe" # use this as output binary name
135 echo "MinGW host detected"
138 GCCOPTS
="$GCCOPTS $sdl_cflags"
139 LDOPTS
="-mconsole $sdl_libs"
141 output
="rockboxui.exe" # use this as output binary name
145 echo "Linux host detected"
146 GCCOPTS
="$GCCOPTS $sdl_cflags"
151 echo "FreeBSD host detected"
153 GCCOPTS
="$GCCOPTS $sdl_cflags"
158 echo "Darwin host detected"
160 GCCOPTS
="$GCCOPTS $sdl_cflags"
162 SHARED_FLAG
="-dynamiclib -Wl\,-single_module"
166 echo "[ERROR] Unsupported system: $uname, fix configure and retry"
171 GCCOPTS
="$GCCOPTS -I\$(SIMDIR)"
173 if test "X$crosscompile" != "Xyes"; then
176 # fPIC is needed to make shared objects link
177 # setting visibility to hidden is necessary to avoid strange crashes
178 # due to symbol clashing
179 GCCOPTS
="$GCCOPTS -fPIC -fvisibility=hidden"
180 # x86_64 supports MMX by default
184 echo "Enabling MMX support"
185 GCCOPTS
="$GCCOPTS -mmmx"
190 cat >$tmpdir/conftest-
$id.c
<<EOF
192 int main(int argc, char **argv)
195 char *varp = (char *)&var;
203 $CC -o $tmpdir/conftest-
$id $tmpdir/conftest-
$id.c
2>/dev
/null
205 if test `$tmpdir/conftest-$id 2>/dev/null` -gt "1"; then
213 if [ $1 = "sdl" ]; then
214 echo "Simulator environment deemed $endian endian"
215 elif [ $1 = "checkwps" ]; then
216 echo "CheckWPS environment deemed $endian endian"
219 # use wildcard here to make it work even if it was named *.exe like
221 rm -f $tmpdir/conftest-
$id*
223 # We are crosscompiling
224 # add cross-compiler option(s)
225 prefixtools i586-mingw32msvc-
226 LDOPTS
="-mconsole $sdl_libs"
227 output
="rockboxui.exe" # use this as output binary name
228 endian
="little" # windows is little endian
229 echo "Enabling MMX support"
230 GCCOPTS
="$GCCOPTS -mmmx"
235 # functions for setting up cross-compiler names and options
236 # also set endianess and what the exact recommended gcc version is
237 # the gcc version should most likely match what versions we build with
242 GCCOPTS
="$CCOPTS -m1"
243 GCCOPTIMIZE
="-fomit-frame-pointer -fschedule-insns"
249 prefixtools calmrisc16-unknown-elf-
250 GCCOPTS
="-Wl\,--no-check-sections $CCOPTS"
251 GCCOPTIMIZE
="-fomit-frame-pointer"
256 prefixtools m68k-elf-
257 GCCOPTS
="$CCOPTS -m5206e -Wa\,-m5249 -malign-int -mstrict-align"
258 GCCOPTIMIZE
="-fomit-frame-pointer"
265 GCCOPTS
="$CCOPTS -mcpu=arm7tdmi"
266 if test "X$1" != "Xshort" -a "$ARG_ARM_EABI" != "1"; then
267 GCCOPTS
="$GCCOPTS -mlong-calls"
269 GCCOPTIMIZE
="-fomit-frame-pointer"
275 GCCOPTS
="$CCOPTS -mcpu=arm9tdmi"
276 if test "$modelname" != "gigabeatfx" -a "$t_manufacturer" != "as3525" -a "$ARG_ARM_EABI" != "1"; then
277 GCCOPTS
="$GCCOPTS -mlong-calls"
279 GCCOPTIMIZE
="-fomit-frame-pointer"
285 GCCOPTS
="$CCOPTS -mbig-endian -mcpu=arm940t"
286 if test "$ARG_ARM_EABI" != "1"; then
287 GCCOPTS
="$GCCOPTS -mlong-calls"
289 GCCOPTIMIZE
="-fomit-frame-pointer"
295 GCCOPTS
="$CCOPTS -mcpu=arm940t"
296 if test "$ARG_ARM_EABI" != "1"; then
297 GCCOPTS
="$GCCOPTS -mlong-calls"
299 GCCOPTIMIZE
="-fomit-frame-pointer"
305 GCCOPTS
="$CCOPTS -mcpu=arm9e"
306 if test "$ARG_ARM_EABI" != "1"; then
307 GCCOPTS
="$GCCOPTS -mlong-calls"
309 GCCOPTIMIZE
="-fomit-frame-pointer"
315 GCCOPTS
="$CCOPTS -mcpu=arm926ej-s"
316 if test "$t_manufacturer" != "as3525" -a "$ARG_ARM_EABI" != "1"; then
317 GCCOPTS
="$GCCOPTS -mlong-calls"
319 GCCOPTIMIZE
="-fomit-frame-pointer"
325 GCCOPTS
="$CCOPTS -mcpu=arm1136jf-s"
326 if test "$modelname" != "gigabeats" -a "$ARG_ARM_EABI" != "1"; then
327 GCCOPTS
="$GCCOPTS -mlong-calls"
329 GCCOPTIMIZE
="-fomit-frame-pointer"
335 GCCOPTS
="$CCOPTS -mcpu=arm1176jz-s"
336 if test "$ARG_ARM_EABI" != "1"; then
337 GCCOPTS
="$GCCOPTS -mlong-calls"
339 GCCOPTIMIZE
="-fomit-frame-pointer"
344 prefixtools mipsel-elf-
345 GCCOPTS
="$CCOPTS -march=mips32 -mtune=r4600 -mno-mips16 -mno-long-calls"
346 GCCOPTS
="$GCCOPTS -ffunction-sections -msoft-float -G 0 -Wno-parentheses"
347 GCCOPTIMIZE
="-fomit-frame-pointer"
353 atype
=`echo "$1" | cut -c 2-`
354 ##################################################################
355 # Prompt for specific developer options
357 if [ "$atype" ]; then
362 echo "Enter your developer options (press enter when done)"
363 printf "(D)EBUG, (L)ogf, (S)imulator, (P)rofiling, (V)oice, (W)in32 crosscompile"
364 if [ "$memory" = "2" ]; then
367 if [ "$modelname" = "archosplayer" ]; then
368 printf ", Use (A)TA poweroff"
370 if [ "$t_model" = "ondio" ]; then
371 printf ", (B)acklight MOD"
373 if [ "$modelname" = "iaudiom5" ]; then
374 printf ", (F)M radio MOD"
376 if [ "$modelname" = "iriverh120" ]; then
383 while [ $cont = "1" ]; do
385 if [ "$interact" ]; then
388 option
=`echo "$atype" | cut -c 1`
393 if [ "yes" = "$profile" ]; then
394 echo "Debug is incompatible with profiling"
396 echo "DEBUG build enabled"
401 echo "logf() support enabled"
405 echo "Simulator build enabled"
409 if [ "yes" = "$use_debug" ]; then
410 echo "Profiling is incompatible with debug"
412 echo "Profiling support is enabled"
417 echo "Voice build selected"
421 if [ "$memory" = "2" ]; then
423 echo "Memory size selected: 8MB"
427 if [ "$modelname" = "archosplayer" ]; then
428 have_ata_poweroff
="#define HAVE_ATA_POWEROFF"
429 echo "ATA poweroff enabled"
433 if [ "$t_model" = "ondio" ]; then
434 have_backlight
="#define HAVE_BACKLIGHT"
435 echo "Backlight functions enabled"
439 if [ "$modelname" = "iaudiom5" ]; then
440 have_fmradio_in
="#define HAVE_FMRADIO_IN"
441 echo "FM radio functions enabled"
445 if [ "$modelname" = "iriverh120" ]; then
446 config_rtc
="#define CONFIG_RTC RTC_DS1339_DS3231"
447 have_rtc_alarm
="#define HAVE_RTC_ALARM"
448 echo "RTC functions enabled (DS1339/DS3231)"
452 echo "Enabling Windows 32 cross-compiling"
456 if [ "$interact" ]; then
459 echo "[ERROR] Option $option unsupported"
463 if [ "$interact" ]; then
464 btype
="$btype$option"
466 atype
=`echo "$atype" | cut -c 2-`
467 [ "$atype" ] || cont
=0
472 if [ "yes" = "$voice" ]; then
473 # Ask about languages to build
475 voicelanguage
=`whichlang`
476 echo "Voice language set to $voicelanguage"
478 # Configure encoder and TTS engine for each language
479 for thislang
in `echo $voicelanguage | sed 's/,/ /g'`; do
480 voiceconfig
"$thislang"
483 if [ "yes" = "$use_debug" ]; then
485 GCCOPTS
="$GCCOPTS -g -DDEBUG"
487 if [ "yes" = "$logf" ]; then
488 use_logf
="#define ROCKBOX_HAS_LOGF 1"
490 if [ "yes" = "$simulator" ]; then
492 extradefines
="$extradefines -DSIMULATOR"
496 if [ "yes" = "$profile" ]; then
497 extradefines
="$extradefines -DRB_PROFILE"
498 PROFILE_OPTS
="-finstrument-functions"
502 # Configure voice settings
505 if [ ! "$ARG_TTS" ]; then
506 echo "Building $thislang voice for $modelname. Select options"
510 if [ -n "`findtool flite`" ]; then
514 DEFAULT_TTS_OPTS
=$FLITE_OPTS
515 DEFAULT_NOISEFLOOR
="500"
518 if [ -n "`findtool espeak`" ]; then
522 DEFAULT_TTS_OPTS
=$ESPEAK_OPTS
523 DEFAULT_NOISEFLOOR
="500"
526 if [ -n "`findtool festival`" ]; then
527 FESTIVAL
="(F)estival "
530 FESTIVAL_OPTS
="--language italian"
533 FESTIVAL_OPTS
="--language spanish"
536 FESTIVAL_OPTS
="--language finnish"
539 FESTIVAL_OPTS
="--language czech"
545 DEFAULT_TTS
="festival"
546 DEFAULT_TTS_OPTS
=$FESTIVAL_OPTS
547 DEFAULT_NOISEFLOOR
="500"
550 if [ -n "`findtool swift`" ]; then
554 DEFAULT_TTS_OPTS
=$SWIFT_OPTS
555 DEFAULT_NOISEFLOOR
="500"
558 # Allow SAPI if Windows is in use
559 if [ -n "`findtool winver`" ]; then
563 DEFAULT_TTS_OPTS
=$SAPI_OPTS
564 DEFAULT_NOISEFLOOR
="500"
568 if [ "$FESTIVAL" = "$FLITE" ] && [ "$FLITE" = "$ESPEAK" ] && [ "$ESPEAK" = "$SAPI" ] && [ "$SAPI" = "$SWIFT" ]; then
569 echo "You need Festival, eSpeak or Flite in your path, or SAPI available to build voice files"
573 if [ "$ARG_TTS" ]; then
576 echo "TTS engine to use: ${FLITE}${FESTIVAL}${ESPEAK}${SAPI}${SWIFT}(${DEFAULT_CHOICE})?"
579 advopts
="$advopts --tts=$option"
583 NOISEFLOOR
="500" # TODO: check this value
589 TTS_OPTS
=$ESPEAK_OPTS
592 TTS_ENGINE
="festival"
594 TTS_OPTS
=$FESTIVAL_OPTS
607 TTS_ENGINE
=$DEFAULT_TTS
608 TTS_OPTS
=$DEFAULT_TTS_OPTS
609 NOISEFLOOR
=$DEFAULT_NOISEFLOOR
611 echo "Using $TTS_ENGINE for TTS"
613 # Select which voice to use for Festival
614 if [ "$TTS_ENGINE" = "festival" ]; then
615 voicelist
=`echo "(voice.list)"|festival -i 2>/dev/null |tr "\n" " "|sed -e 's/.*festival> (\(.*\)) festival>/\1/'|sort`
616 for voice
in $voicelist; do
617 TTS_FESTIVAL_VOICE
="$voice" # Default choice
620 if [ "$ARG_VOICE" ]; then
624 for voice
in $voicelist; do
625 printf "%3d. %s\n" "$i" "$voice"
628 printf "Please select which Festival voice to use (default is $TTS_FESTIVAL_VOICE): "
632 for voice
in $voicelist; do
633 if [ "$i" = "$CHOICE" -o "$voice" = "$CHOICE" ]; then
634 TTS_FESTIVAL_VOICE
="$voice"
638 advopts
="$advopts --voice=$CHOICE"
639 echo "Festival voice set to $TTS_FESTIVAL_VOICE"
640 echo "(voice_$TTS_FESTIVAL_VOICE)" > festival-prolog.scm
643 # Read custom tts options from command line
644 if [ "$ARG_TTSOPTS" ]; then
645 TTS_OPTS
="$ARG_TTSOPTS"
646 advopts
="$advopts --ttsopts='$TTS_OPTS'"
647 echo "$TTS_ENGINE options set to $TTS_OPTS"
650 if [ "$swcodec" = "yes" ]; then
653 ENC_OPTS
="-q 4 -c 10"
655 if [ -n "`findtool lame`" ]; then
658 ENC_OPTS
="--resample 12 -t -m m -h -V 9.999 -S -B 64 --vbr-new"
660 echo "You need LAME in the system path to build voice files for"
661 echo "HWCODEC targets."
666 echo "Using $ENCODER for encoding voice clips"
668 # Read custom encoder options from command line
669 if [ "$ARG_ENCOPTS" ]; then
670 ENC_OPTS
="$ARG_ENCOPTS"
671 advopts
="$advopts --encopts='$ENC_OPTS'"
672 echo "$ENCODER options set to $ENC_OPTS"
676 if [ -n "`findtool cygpath`" ]; then
677 TEMPDIR
=`cygpath . -a -w`
682 # figure out which languages that are around
683 for file in $rootdir/apps
/lang
/*.lang
; do
684 clean
=`basename $file .lang`
685 langs
="$langs $clean"
688 if [ "$ARG_LANG" ]; then
691 echo "Select a number for the language to use (default is english)"
692 # FIXME The multiple-language feature is currently broken
693 # echo "You may enter a comma-separated list of languages to build"
696 for one
in $langs; do
702 advopts
="$advopts --language=$pick"
707 # Allow the user to pass a comma-separated list of langauges
708 for thispick
in `echo $pick | sed 's/,/ /g'`; do
710 for one
in $langs; do
711 # Accept both the language number and name
712 if [ "$num" = "$thispick" ] ||
[ "$thispick" = "$one" ]; then
713 if [ "$output" = "" ]; then
722 if [ -z "$output" ]; then
730 echo "Rockbox configure script."
731 echo "Invoke this in a directory to generate a Makefile to build Rockbox"
732 echo "Do *NOT* run this within the tools directory!"
735 Usage: configure [OPTION]...
737 --target=TARGET Sets the target, TARGET can be either the target ID or
738 corresponding string. Run without this option to see all
741 --ram=RAM Sets the RAM for certain targets. Even though any number
742 is accepted, not every number is correct. The default
743 value will be applied, if you entered a wrong number
744 (which depends on the target). Watch the output. Run
745 without this option if you are not sure which the right
748 --type=TYPE Sets the build type. Shortcuts are also valid.
749 Run without this option to see all available types.
750 Multiple values are allowed and managed in the input
751 order. So --type=b stands for Bootloader build, while
752 --type=ab stands for "Backlight MOD" build.
754 --language=LANG Set the language used for voice generation (used only if
757 --tts=ENGINE Set the TTS engine used for voice generation (used only
760 --voice=VOICE Set voice to use with selected TTS (used only if TYPE is
763 --ttsopts=OPTS Set TTS engine manual options (used only if TYPE is AV).
765 --encopts=OPTS Set encoder manual options (used only if ATYPE is AV).
767 --rbdir=dir Use alternative rockbox directory (default: ${rbdir}).
768 This is useful for having multiple alternate builds on
769 your device that you can load with ROLO. However as the
770 bootloader looks for .rockbox you won't be able to boot
773 --ccache Enable ccache use (done by default these days)
774 --no-ccache Disable ccache use
776 --eabi Make configure prefer toolchains that are able to compile
777 for the new ARM standard abi EABI
778 --no-eabi The opposite of --eabi (prefer old non-eabi toolchains)
779 --help Shows this message (must not be used with other options)
800 --ccache) ARG_CCACHE
=1;;
801 --no-ccache) ARG_CCACHE
=0;;
802 --encopts=*) ARG_ENCOPTS
=`echo "$arg" | cut -d = -f 2`;;
803 --language=*) ARG_LANG
=`echo "$arg" | cut -d = -f 2`;;
804 --ram=*) ARG_RAM
=`echo "$arg" | cut -d = -f 2`;;
805 --rbdir=*) ARG_RBDIR
=`echo "$arg" | cut -d = -f 2`;;
806 --target=*) ARG_TARGET
=`echo "$arg" | cut -d = -f 2`;;
807 --tts=*) ARG_TTS
=`echo "$arg" | cut -d = -f 2`;;
808 --ttsopts=*) ARG_TTSOPTS
=`echo "$arg" | cut -d = -f 2`;;
809 --type=*) ARG_TYPE
=`echo "$arg" | cut -d = -f 2`;;
810 --voice=*) ARG_VOICE
=`echo "$arg" | cut -d = -f 2`;;
811 --eabi) ARG_ARM_EABI
=1;;
812 --no-eabi) ARG_ARM_EABI
=0;;
814 *) err
=1; echo "[ERROR] Option '$arg' unsupported";;
821 if [ "$TMPDIR" != "" ]; then
826 echo Using temporary directory
$tmpdir
828 if test -r "configure"; then
829 # this is a check for a configure script in the current directory, it there
830 # is one, try to figure out if it is this one!
832 if { grep "^# Jukebox" configure
>/dev
/null
2>&1 ; } then
833 echo "WEEEEEEEEP. Don't run this configure script within the tools directory."
834 echo "It will only cause you pain and grief. Instead do this:"
837 echo " mkdir build-dir"
839 echo " ../tools/configure"
841 echo "Much happiness will arise from this. Enjoy"
846 # get our current directory
849 if { echo $pwd |
grep " "; } then
850 echo "You're running this script in a path that contains space. The build"
851 echo "system is unfortunately not clever enough to deal with this. Please"
852 echo "run the script from a different path, rename the path or fix the build"
857 if [ -z "$rootdir" ]; then
858 ##################################################################
859 # Figure out where the source code root is!
861 rootdir
=`dirname $0`/..
/
863 #####################################################################
864 # Convert the possibly relative directory name to an absolute version
870 # cd back to the build dir
875 appsdir
='\$(ROOTDIR)/apps'
876 firmdir
='\$(ROOTDIR)/firmware'
877 toolsdir
='\$(ROOTDIR)/tools'
880 ##################################################################
881 # Figure out target platform
884 if [ "$ARG_TARGET" ]; then
887 echo "Enter target platform:"
889 ==Archos== ==iriver== ==Apple iPod==
890 0) Player/Studio 10) H120/H140 20) Color/Photo
891 1) Recorder 11) H320/H340 21) Nano 1G
892 2) FM Recorder 12) iHP-100/110/115 22) Video
893 3) Recorder v2 13) iFP-790 23) 3G
894 4) Ondio SP 14) H10 20Gb 24) 4G Grayscale
895 5) Ondio FM 15) H10 5/6Gb 25) Mini 1G
897 ==Toshiba== 27) 1G, 2G
898 ==Cowon/iAudio== 40) Gigabeat F/X 28) Nano 2G
899 30) X5/X5V/X5L 41) Gigabeat S
900 31) M5/M5L ==SanDisk==
901 32) 7 ==Olympus= 50) Sansa e200
902 33) D2 70) M:Robe 500 51) Sansa e200R
903 34) M3/M3L 71) M:Robe 100 52) Sansa c200
905 ==Creative== ==Philips== 54) Sansa c100
906 90) Zen Vision:M 30GB 100) GoGear SA9200 55) Sansa Clip
907 91) Zen Vision:M 60GB 101) GoGear HDD1630/ 56) Sansa e200v2
908 92) Zen Vision HDD1830 57) Sansa m200v4
909 102) GoGear HDD6330 58) Sansa Fuze
910 ==Onda== 59) Sansa c200v2
911 120) VX747 ==Meizu== 60) Sansa Clipv2
912 121) VX767 110) M6SL 61) Sansa View
913 122) VX747+ 111) M6SP 62) Sansa Clip+
916 ==Samsung== ==Tatung== 80) DAX 1GB MP3/DAB
917 140) YH-820 150) Elio TPJ-1022
918 141) YH-920 ==Lyre project==1
919 142) YH-925 ==Packard Bell== 130) Lyre proto 1
920 143) YP-S3 160) Vibe 500 131) Mini2440
926 # Set of tools built for all target platforms:
927 toolset
="rdf2binary convbdf codepages"
929 # Toolsets for some target families:
930 archosbitmaptools
="$toolset scramble descramble sh2d uclpack bmp2rb"
931 iriverbitmaptools
="$toolset scramble descramble mkboot bmp2rb"
932 iaudiobitmaptools
="$toolset scramble descramble mkboot bmp2rb"
933 ipodbitmaptools
="$toolset scramble bmp2rb"
934 gigabeatbitmaptools
="$toolset scramble descramble bmp2rb"
935 tccbitmaptools
="$toolset scramble bmp2rb"
936 # generic is used by IFP, Meizu and Onda
937 genericbitmaptools
="$toolset bmp2rb"
938 # scramble is used by all other targets
939 scramblebitmaptools
="$genericbitmaptools scramble"
942 # ---- For each target ----
945 # target_id: a unique number identifying this target, IS NOT the menu number.
946 # Just use the currently highest number+1 when you add a new
948 # modelname: short model name used all over to identify this target
949 # memory: number of megabytes of RAM this target has. If the amount can
950 # be selected by the size prompt, let memory be unset here
951 # target: -Ddefine passed to the build commands to make the correct
952 # config-*.h file get included etc
953 # tool: the tool that takes a plain binary and converts that into a
954 # working "firmware" file for your target
955 # output: the final output file name
956 # boottool: the tool that takes a plain binary and generates a bootloader
957 # file for your target (or blank to use $tool)
958 # bootoutput:the final output file name for the bootloader (or blank to use
960 # appextra: passed to the APPEXTRA variable in the Makefiles.
961 # TODO: add proper explanation
962 # archosrom: used only for Archos targets that build a special flashable .ucl
964 # flash: name of output for flashing, for targets where there's a special
965 # file output for this.
966 # plugins: set to 'yes' to build the plugins. Early development builds can
967 # set this to no in the early stages to have an easier life for a
969 # swcodec: set 'yes' on swcodec targets
970 # toolset: lists what particular tools in the tools/ directory that this
971 # target needs to have built prior to building Rockbox
974 # *cc: sets up gcc and compiler options for your target builds. Note
975 # that if you select a simulator build, the compiler selection is
976 # overridden later in the script.
982 modelname
="archosplayer"
983 target
="-DARCHOS_PLAYER"
985 tool
="$rootdir/tools/scramble"
987 appextra
="player:gui"
988 archosrom
="$pwd/rombox.ucl"
989 flash
="$pwd/rockbox.ucl"
993 # toolset is the tools within the tools directory that we build for
994 # this particular target.
995 toolset
="$toolset scramble descramble sh2d player_unifont uclpack"
997 # Note: the convbdf is present in the toolset just because: 1) the
998 # firmware/Makefile assumes it is present always, and 2) we will need it when we
999 # build the player simulator
1002 t_manufacturer
="archos"
1008 modelname
="archosrecorder"
1009 target
="-DARCHOS_RECORDER"
1011 tool
="$rootdir/tools/scramble"
1012 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1013 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1015 appextra
="recorder:gui"
1016 #archosrom="$pwd/rombox.ucl"
1017 flash
="$pwd/rockbox.ucl"
1020 # toolset is the tools within the tools directory that we build for
1021 # this particular target.
1022 toolset
=$archosbitmaptools
1024 t_manufacturer
="archos"
1030 modelname
="archosfmrecorder"
1031 target
="-DARCHOS_FMRECORDER"
1033 tool
="$rootdir/tools/scramble -fm"
1034 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1035 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1037 appextra
="recorder:gui"
1038 #archosrom="$pwd/rombox.ucl"
1039 flash
="$pwd/rockbox.ucl"
1042 # toolset is the tools within the tools directory that we build for
1043 # this particular target.
1044 toolset
=$archosbitmaptools
1046 t_manufacturer
="archos"
1052 modelname
="archosrecorderv2"
1053 target
="-DARCHOS_RECORDERV2"
1055 tool
="$rootdir/tools/scramble -v2"
1056 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1057 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1059 appextra
="recorder:gui"
1060 #archosrom="$pwd/rombox.ucl"
1061 flash
="$pwd/rockbox.ucl"
1064 # toolset is the tools within the tools directory that we build for
1065 # this particular target.
1066 toolset
=$archosbitmaptools
1068 t_manufacturer
="archos"
1074 modelname
="archosondiosp"
1075 target
="-DARCHOS_ONDIOSP"
1077 tool
="$rootdir/tools/scramble -osp"
1078 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1079 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1081 appextra
="recorder:gui"
1082 #archosrom="$pwd/rombox.ucl"
1083 flash
="$pwd/rockbox.ucl"
1086 # toolset is the tools within the tools directory that we build for
1087 # this particular target.
1088 toolset
=$archosbitmaptools
1090 t_manufacturer
="archos"
1096 modelname
="archosondiofm"
1097 target
="-DARCHOS_ONDIOFM"
1099 tool
="$rootdir/tools/scramble -ofm"
1100 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1101 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1103 appextra
="recorder:gui"
1104 #archosrom="$pwd/rombox.ucl"
1105 flash
="$pwd/rockbox.ucl"
1108 toolset
=$archosbitmaptools
1110 t_manufacturer
="archos"
1116 modelname
="archosav300"
1117 target
="-DARCHOS_AV300"
1120 tool
="$rootdir/tools/scramble -mm=C"
1121 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1122 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1124 appextra
="recorder:gui"
1127 # toolset is the tools within the tools directory that we build for
1128 # this particular target.
1129 toolset
="$toolset scramble descramble bmp2rb"
1130 # architecture, manufacturer and model for the target-tree build
1132 t_manufacturer
="archos"
1138 modelname
="iriverh120"
1139 target
="-DIRIVER_H120"
1142 tool
="$rootdir/tools/scramble -add=h120"
1143 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1144 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
1145 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1146 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1147 output
="rockbox.iriver"
1148 bootoutput
="bootloader.iriver"
1149 appextra
="recorder:gui"
1150 flash
="$pwd/rombox.iriver"
1153 # toolset is the tools within the tools directory that we build for
1154 # this particular target.
1155 toolset
=$iriverbitmaptools
1157 t_manufacturer
="iriver"
1163 modelname
="iriverh300"
1164 target
="-DIRIVER_H300"
1167 tool
="$rootdir/tools/scramble -add=h300"
1168 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1169 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1170 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1171 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1172 output
="rockbox.iriver"
1173 appextra
="recorder:gui"
1176 # toolset is the tools within the tools directory that we build for
1177 # this particular target.
1178 toolset
=$iriverbitmaptools
1180 t_manufacturer
="iriver"
1186 modelname
="iriverh100"
1187 target
="-DIRIVER_H100"
1190 tool
="$rootdir/tools/scramble -add=h100"
1191 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1192 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
1193 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1194 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1195 output
="rockbox.iriver"
1196 bootoutput
="bootloader.iriver"
1197 appextra
="recorder:gui"
1198 flash
="$pwd/rombox.iriver"
1201 # toolset is the tools within the tools directory that we build for
1202 # this particular target.
1203 toolset
=$iriverbitmaptools
1205 t_manufacturer
="iriver"
1211 modelname
="iriverifp7xx"
1212 target
="-DIRIVER_IFP7XX"
1216 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1217 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1218 output
="rockbox.wma"
1219 appextra
="recorder:gui"
1222 # toolset is the tools within the tools directory that we build for
1223 # this particular target.
1224 toolset
=$genericbitmaptools
1226 t_manufacturer
="pnx0101"
1227 t_model
="iriver-ifp7xx"
1232 modelname
="iriverh10"
1233 target
="-DIRIVER_H10"
1236 tool
="$rootdir/tools/scramble -mi4v3 -model=h10 -type=RBOS"
1237 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1238 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1239 output
="rockbox.mi4"
1240 appextra
="recorder:gui"
1243 boottool
="$rootdir/tools/scramble -mi4v3 -model=h10 -type=RBBL"
1244 bootoutput
="H10_20GC.mi4"
1245 # toolset is the tools within the tools directory that we build for
1246 # this particular target.
1247 toolset
=$scramblebitmaptools
1248 # architecture, manufacturer and model for the target-tree build
1250 t_manufacturer
="iriver"
1256 modelname
="iriverh10_5gb"
1257 target
="-DIRIVER_H10_5GB"
1260 tool
="$rootdir/tools/scramble -mi4v2 -model=h105 -type=RBOS"
1261 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1262 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1263 output
="rockbox.mi4"
1264 appextra
="recorder:gui"
1267 boottool
="$rootdir/tools/scramble -mi4v2 -model=h105 -type=RBBL"
1268 bootoutput
="H10.mi4"
1269 # toolset is the tools within the tools directory that we build for
1270 # this particular target.
1271 toolset
=$scramblebitmaptools
1272 # architecture, manufacturer and model for the target-tree build
1274 t_manufacturer
="iriver"
1280 modelname
="ipodcolor"
1281 target
="-DIPOD_COLOR"
1284 tool
="$rootdir/tools/scramble -add=ipco"
1285 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1286 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1287 output
="rockbox.ipod"
1288 appextra
="recorder:gui"
1291 bootoutput
="bootloader-$modelname.ipod"
1292 # toolset is the tools within the tools directory that we build for
1293 # this particular target.
1294 toolset
=$ipodbitmaptools
1295 # architecture, manufacturer and model for the target-tree build
1297 t_manufacturer
="ipod"
1303 modelname
="ipodnano1g"
1304 target
="-DIPOD_NANO"
1307 tool
="$rootdir/tools/scramble -add=nano"
1308 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1309 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
1310 output
="rockbox.ipod"
1311 appextra
="recorder:gui"
1314 bootoutput
="bootloader-$modelname.ipod"
1315 # toolset is the tools within the tools directory that we build for
1316 # this particular target.
1317 toolset
=$ipodbitmaptools
1318 # architecture, manufacturer and model for the target-tree build
1320 t_manufacturer
="ipod"
1326 modelname
="ipodvideo"
1327 target
="-DIPOD_VIDEO"
1329 tool
="$rootdir/tools/scramble -add=ipvd"
1330 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1331 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1332 output
="rockbox.ipod"
1333 appextra
="recorder:gui"
1336 bootoutput
="bootloader-$modelname.ipod"
1337 # toolset is the tools within the tools directory that we build for
1338 # this particular target.
1339 toolset
=$ipodbitmaptools
1340 # architecture, manufacturer and model for the target-tree build
1342 t_manufacturer
="ipod"
1352 tool
="$rootdir/tools/scramble -add=ip3g"
1353 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1354 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1355 output
="rockbox.ipod"
1356 appextra
="recorder:gui"
1359 bootoutput
="bootloader-$modelname.ipod"
1360 # toolset is the tools within the tools directory that we build for
1361 # this particular target.
1362 toolset
=$ipodbitmaptools
1363 # architecture, manufacturer and model for the target-tree build
1365 t_manufacturer
="ipod"
1375 tool
="$rootdir/tools/scramble -add=ip4g"
1376 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1377 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1378 output
="rockbox.ipod"
1379 appextra
="recorder:gui"
1382 bootoutput
="bootloader-$modelname.ipod"
1383 # toolset is the tools within the tools directory that we build for
1384 # this particular target.
1385 toolset
=$ipodbitmaptools
1386 # architecture, manufacturer and model for the target-tree build
1388 t_manufacturer
="ipod"
1394 modelname
="ipodmini1g"
1395 target
="-DIPOD_MINI"
1398 tool
="$rootdir/tools/scramble -add=mini"
1399 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1400 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1401 output
="rockbox.ipod"
1402 appextra
="recorder:gui"
1405 bootoutput
="bootloader-$modelname.ipod"
1406 # toolset is the tools within the tools directory that we build for
1407 # this particular target.
1408 toolset
=$ipodbitmaptools
1409 # architecture, manufacturer and model for the target-tree build
1411 t_manufacturer
="ipod"
1417 modelname
="ipodmini2g"
1418 target
="-DIPOD_MINI2G"
1421 tool
="$rootdir/tools/scramble -add=mn2g"
1422 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1423 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1424 output
="rockbox.ipod"
1425 appextra
="recorder:gui"
1428 bootoutput
="bootloader-$modelname.ipod"
1429 # toolset is the tools within the tools directory that we build for
1430 # this particular target.
1431 toolset
=$ipodbitmaptools
1432 # architecture, manufacturer and model for the target-tree build
1434 t_manufacturer
="ipod"
1440 modelname
="ipod1g2g"
1441 target
="-DIPOD_1G2G"
1444 tool
="$rootdir/tools/scramble -add=1g2g"
1445 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1446 bmp2rb_native
="$rootdir/tools/bmp2rb -f 6"
1447 output
="rockbox.ipod"
1448 appextra
="recorder:gui"
1451 bootoutput
="bootloader-$modelname.ipod"
1452 # toolset is the tools within the tools directory that we build for
1453 # this particular target.
1454 toolset
=$ipodbitmaptools
1455 # architecture, manufacturer and model for the target-tree build
1457 t_manufacturer
="ipod"
1463 modelname
="ipodnano2g"
1464 target
="-DIPOD_NANO2G"
1467 tool
="$rootdir/tools/scramble -add=nn2g"
1468 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1469 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1470 output
="rockbox.ipod"
1471 appextra
="recorder:gui"
1474 bootoutput
="bootloader-$modelname.ipod"
1475 # toolset is the tools within the tools directory that we build for
1476 # this particular target.
1477 toolset
=$ipodbitmaptools
1478 # architecture, manufacturer and model for the target-tree build
1480 t_manufacturer
="s5l8700"
1481 t_model
="ipodnano2g"
1486 modelname
="iaudiox5"
1487 target
="-DIAUDIO_X5"
1490 tool
="$rootdir/tools/scramble -add=iax5"
1491 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1492 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1493 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1494 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 7"
1495 output
="rockbox.iaudio"
1496 appextra
="recorder:gui"
1499 # toolset is the tools within the tools directory that we build for
1500 # this particular target.
1501 toolset
="$iaudiobitmaptools"
1502 # architecture, manufacturer and model for the target-tree build
1504 t_manufacturer
="iaudio"
1510 modelname
="iaudiom5"
1511 target
="-DIAUDIO_M5"
1514 tool
="$rootdir/tools/scramble -add=iam5"
1515 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1516 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
1517 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1518 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 7"
1519 output
="rockbox.iaudio"
1520 appextra
="recorder:gui"
1523 # toolset is the tools within the tools directory that we build for
1524 # this particular target.
1525 toolset
="$iaudiobitmaptools"
1526 # architecture, manufacturer and model for the target-tree build
1528 t_manufacturer
="iaudio"
1538 tool
="$rootdir/tools/scramble -add=i7"
1539 boottool
="$rootdir/tools/scramble -tcc=crc"
1540 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1541 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1542 output
="rockbox.iaudio"
1543 appextra
="recorder:gui"
1546 bootoutput
="I7_FW.BIN"
1547 # toolset is the tools within the tools directory that we build for
1548 # this particular target.
1549 toolset
="$tccbitmaptools"
1550 # architecture, manufacturer and model for the target-tree build
1552 t_manufacturer
="tcc77x"
1562 tool
="$rootdir/tools/scramble -add=d2"
1564 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1565 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1567 bootoutput
="bootloader-cowond2.bin"
1568 appextra
="recorder:gui"
1571 toolset
="$tccbitmaptools"
1572 # architecture, manufacturer and model for the target-tree build
1574 t_manufacturer
="tcc780x"
1580 modelname
="iaudiom3"
1581 target
="-DIAUDIO_M3"
1584 tool
="$rootdir/tools/scramble -add=iam3"
1585 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1586 bmp2rb_native
="$rootdir/tools/bmp2rb -f 7"
1587 output
="rockbox.iaudio"
1588 appextra
="recorder:gui"
1591 # toolset is the tools within the tools directory that we build for
1592 # this particular target.
1593 toolset
="$iaudiobitmaptools"
1594 # architecture, manufacturer and model for the target-tree build
1596 t_manufacturer
="iaudio"
1602 modelname
="gigabeatfx"
1603 target
="-DGIGABEAT_F"
1606 tool
="$rootdir/tools/scramble -add=giga"
1607 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1608 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1609 output
="rockbox.gigabeat"
1610 appextra
="recorder:gui"
1613 toolset
=$gigabeatbitmaptools
1614 boottool
="$rootdir/tools/scramble -gigabeat"
1615 bootoutput
="FWIMG01.DAT"
1616 # architecture, manufacturer and model for the target-tree build
1618 t_manufacturer
="s3c2440"
1619 t_model
="gigabeat-fx"
1624 modelname
="gigabeats"
1625 target
="-DGIGABEAT_S"
1628 tool
="$rootdir/tools/scramble -add=gigs"
1629 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1630 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1631 output
="rockbox.gigabeat"
1632 appextra
="recorder:gui"
1635 toolset
="$gigabeatbitmaptools"
1636 boottool
="$rootdir/tools/scramble -gigabeats"
1638 # architecture, manufacturer and model for the target-tree build
1640 t_manufacturer
="imx31"
1641 t_model
="gigabeat-s"
1646 modelname
="mrobe500"
1647 target
="-DMROBE_500"
1650 tool
="$rootdir/tools/scramble -add=m500"
1651 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1652 bmp2rb_native
="$rootdir/tools/bmp2rb -f 8"
1653 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1654 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1655 output
="rockbox.mrobe500"
1656 appextra
="recorder:gui"
1659 toolset
=$gigabeatbitmaptools
1661 bootoutput
="rockbox.mrboot"
1662 # architecture, manufacturer and model for the target-tree build
1664 t_manufacturer
="tms320dm320"
1670 modelname
="mrobe100"
1671 target
="-DMROBE_100"
1674 tool
="$rootdir/tools/scramble -mi4v2 -model=m100 -type=RBOS"
1675 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1676 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1677 bmp2rb_remotemono
="$rootdir/tools/bmp2rb -f 0"
1678 bmp2rb_remotenative
="$rootdir/tools/bmp2rb -f 0"
1679 output
="rockbox.mi4"
1680 appextra
="recorder:gui"
1683 boottool
="$rootdir/tools/scramble -mi4v2 -model=m100 -type=RBBL"
1684 bootoutput
="pp5020.mi4"
1685 # toolset is the tools within the tools directory that we build for
1686 # this particular target.
1687 toolset
=$scramblebitmaptools
1688 # architecture, manufacturer and model for the target-tree build
1690 t_manufacturer
="olympus"
1696 modelname
="logikdax"
1697 target
="-DLOGIK_DAX"
1700 tool
="$rootdir/tools/scramble -add=ldax"
1701 boottool
="$rootdir/tools/scramble -tcc=crc"
1702 bootoutput
="player.rom"
1703 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1704 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1705 output
="rockbox.logik"
1706 appextra
="recorder:gui"
1709 # toolset is the tools within the tools directory that we build for
1710 # this particular target.
1711 toolset
=$tccbitmaptools
1712 # architecture, manufacturer and model for the target-tree build
1714 t_manufacturer
="tcc77x"
1720 modelname
="zenvisionm30gb"
1721 target
="-DCREATIVE_ZVM"
1724 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1725 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1726 tool
="$rootdir/tools/scramble -creative=zvm"
1728 output
="rockbox.zvm"
1729 appextra
="recorder:gui"
1732 toolset
=$ipodbitmaptools
1733 boottool
="$rootdir/tools/scramble -creative=zvm -no-ciff"
1734 bootoutput
="rockbox.zvmboot"
1735 # architecture, manufacturer and model for the target-tree build
1737 t_manufacturer
="tms320dm320"
1738 t_model
="creative-zvm"
1743 modelname
="zenvisionm60gb"
1744 target
="-DCREATIVE_ZVM60GB"
1747 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1748 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1749 tool
="$rootdir/tools/scramble -creative=zvm60 -no-ciff"
1751 output
="rockbox.zvm60"
1752 appextra
="recorder:gui"
1755 toolset
=$ipodbitmaptools
1756 boottool
="$rootdir/tools/scramble -creative=zvm60"
1757 bootoutput
="rockbox.zvm60boot"
1758 # architecture, manufacturer and model for the target-tree build
1760 t_manufacturer
="tms320dm320"
1761 t_model
="creative-zvm"
1766 modelname
="zenvision"
1767 target
="-DCREATIVE_ZV"
1770 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1771 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1772 tool
="$rootdir/tools/scramble -creative=zenvision -no-ciff"
1775 appextra
="recorder:gui"
1778 toolset
=$ipodbitmaptools
1779 boottool
="$rootdir/tools/scramble -creative=zenvision"
1780 bootoutput
="rockbox.zvboot"
1781 # architecture, manufacturer and model for the target-tree build
1783 t_manufacturer
="tms320dm320"
1784 t_model
="creative-zvm"
1789 modelname
="sansae200"
1790 target
="-DSANSA_E200"
1791 memory
=32 # supposedly
1793 tool
="$rootdir/tools/scramble -mi4v3 -model=e200 -type=RBOS"
1794 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1795 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1796 output
="rockbox.mi4"
1797 appextra
="recorder:gui"
1800 boottool
="$rootdir/tools/scramble -mi4v3 -model=e200 -type=RBBL"
1801 bootoutput
="PP5022.mi4"
1802 # toolset is the tools within the tools directory that we build for
1803 # this particular target.
1804 toolset
=$scramblebitmaptools
1805 # architecture, manufacturer and model for the target-tree build
1807 t_manufacturer
="sandisk"
1808 t_model
="sansa-e200"
1812 # the e200R model is pretty much identical to the e200, it only has a
1813 # different option to the scramble tool when building a bootloader and
1814 # makes the bootloader output file name in all lower case.
1816 modelname
="sansae200r"
1817 target
="-DSANSA_E200"
1818 memory
=32 # supposedly
1820 tool
="$rootdir/tools/scramble -mi4v3 -model=e20r -type=RBOS"
1821 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1822 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1823 output
="rockbox.mi4"
1824 appextra
="recorder:gui"
1827 boottool
="$rootdir/tools/scramble -mi4r -model=e20r -type=RBBL"
1828 bootoutput
="pp5022.mi4"
1829 # toolset is the tools within the tools directory that we build for
1830 # this particular target.
1831 toolset
=$scramblebitmaptools
1832 # architecture, manufacturer and model for the target-tree build
1834 t_manufacturer
="sandisk"
1835 t_model
="sansa-e200"
1840 modelname
="sansac200"
1841 target
="-DSANSA_C200"
1842 memory
=32 # supposedly
1844 tool
="$rootdir/tools/scramble -mi4v3 -model=c200 -type=RBOS"
1845 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1846 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1847 output
="rockbox.mi4"
1848 appextra
="recorder:gui"
1851 boottool
="$rootdir/tools/scramble -mi4v3 -model=c200 -type=RBBL"
1852 bootoutput
="firmware.mi4"
1853 # toolset is the tools within the tools directory that we build for
1854 # this particular target.
1855 toolset
=$scramblebitmaptools
1856 # architecture, manufacturer and model for the target-tree build
1858 t_manufacturer
="sandisk"
1859 t_model
="sansa-c200"
1864 modelname
="sansam200"
1865 target
="-DSANSA_M200"
1868 tool
="$rootdir/tools/scramble -add=m200"
1869 boottool
="$rootdir/tools/scramble -tcc=crc"
1870 bootoutput
="player.rom"
1871 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1872 bmp2rb_native
="$rootdir/tools/bmp2rb -f 0"
1873 output
="rockbox.m200"
1874 appextra
="recorder:gui"
1877 # toolset is the tools within the tools directory that we build for
1878 # this particular target.
1879 toolset
=$tccbitmaptools
1880 # architecture, manufacturer and model for the target-tree build
1882 t_manufacturer
="tcc77x"
1888 modelname
="sansac100"
1889 target
="-DSANSA_C100"
1892 tool
="$rootdir/tools/scramble -add=c100"
1893 boottool
="$rootdir/tools/scramble -tcc=crc"
1894 bootoutput
="player.rom"
1895 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1896 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1897 output
="rockbox.c100"
1898 appextra
="recorder:gui"
1901 # toolset is the tools within the tools directory that we build for
1902 # this particular target.
1903 toolset
=$tccbitmaptools
1904 # architecture, manufacturer and model for the target-tree build
1906 t_manufacturer
="tcc77x"
1912 modelname
="sansaclip"
1913 target
="-DSANSA_CLIP"
1915 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1916 bmp2rb_native
="$bmp2rb_mono"
1917 tool
="$rootdir/tools/scramble -add=clip"
1918 output
="rockbox.sansa"
1919 bootoutput
="bootloader-clip.sansa"
1920 appextra
="recorder:gui"
1923 toolset
=$scramblebitmaptools
1925 t_manufacturer
="as3525"
1926 t_model
="sansa-clip"
1933 modelname
="sansae200v2"
1934 target
="-DSANSA_E200V2"
1936 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1937 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1938 tool
="$rootdir/tools/scramble -add=e2v2"
1939 output
="rockbox.sansa"
1940 bootoutput
="bootloader-e200v2.sansa"
1941 appextra
="recorder:gui"
1944 toolset
=$scramblebitmaptools
1946 t_manufacturer
="as3525"
1947 t_model
="sansa-e200v2"
1954 modelname
="sansam200v4"
1955 target
="-DSANSA_M200V4"
1957 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1958 bmp2rb_native
="$bmp2rb_mono"
1959 tool
="$rootdir/tools/scramble -add=m2v4"
1960 output
="rockbox.sansa"
1961 bootoutput
="bootloader-m200v4.sansa"
1962 appextra
="recorder:gui"
1965 toolset
=$scramblebitmaptools
1967 t_manufacturer
="as3525"
1968 t_model
="sansa-m200v4"
1975 modelname
="sansafuze"
1976 target
="-DSANSA_FUZE"
1978 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
1979 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
1980 tool
="$rootdir/tools/scramble -add=fuze"
1981 output
="rockbox.sansa"
1982 bootoutput
="bootloader-fuze.sansa"
1983 appextra
="recorder:gui"
1986 toolset
=$scramblebitmaptools
1988 t_manufacturer
="as3525"
1989 t_model
="sansa-fuze"
1996 modelname
="sansac200v2"
1997 target
="-DSANSA_C200V2"
1998 memory
=2 # as per OF diagnosis mode
1999 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2000 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2001 tool
="$rootdir/tools/scramble -add=c2v2"
2002 output
="rockbox.sansa"
2003 bootoutput
="bootloader-c200v2.sansa"
2004 appextra
="recorder:gui"
2007 # toolset is the tools within the tools directory that we build for
2008 # this particular target.
2009 toolset
=$scramblebitmaptools
2010 # architecture, manufacturer and model for the target-tree build
2012 t_manufacturer
="as3525"
2013 t_model
="sansa-c200v2"
2019 modelname
="sansaclipv2"
2020 target
="-DSANSA_CLIPV2"
2022 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2023 bmp2rb_native
="$bmp2rb_mono"
2024 tool
="$rootdir/tools/scramble -add=clv2"
2025 output
="rockbox.sansa"
2026 bootoutput
="bootloader-clipv2.sansa"
2027 appextra
="recorder:gui"
2030 toolset
=$scramblebitmaptools
2032 t_manufacturer
="as3525"
2033 t_model
="sansa-clipv2"
2038 echo "Sansa View is not yet supported!"
2041 modelname
="sansaview"
2042 target
="-DSANSA_VIEW"
2045 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2046 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2047 output
="rockbox.mi4"
2051 boottool
="$rootdir/tools/scramble -mi4v3 -model=view -type=RBBL"
2052 bootoutput
="firmware.mi4"
2053 # toolset is the tools within the tools directory that we build for
2054 # this particular target.
2055 toolset
=$scramblebitmaptools
2057 t_manufacturer
="sandisk"
2058 t_model
="sansa-view"
2063 modelname
="sansaclipplus"
2064 target
="-DSANSA_CLIPPLUS"
2066 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2067 bmp2rb_native
="$bmp2rb_mono"
2068 tool
="$rootdir/tools/scramble -add=cli+"
2069 output
="rockbox.sansa"
2070 bootoutput
="bootloader-clipplus.sansa"
2071 appextra
="recorder:gui"
2074 toolset
=$scramblebitmaptools
2076 t_manufacturer
="as3525"
2077 t_model
="sansa-clipplus"
2083 modelname
="tatungtpj1022"
2084 target
="-DTATUNG_TPJ1022"
2087 tool
="$rootdir/tools/scramble -add tpj2"
2088 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2089 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
2090 output
="rockbox.elio"
2091 appextra
="recorder:gui"
2094 boottool
="$rootdir/tools/scramble -mi4v2"
2095 bootoutput
="pp5020.mi4"
2096 # toolset is the tools within the tools directory that we build for
2097 # this particular target.
2098 toolset
=$scramblebitmaptools
2099 # architecture, manufacturer and model for the target-tree build
2101 t_manufacturer
="tatung"
2107 modelname
="gogearsa9200"
2108 target
="-DPHILIPS_SA9200"
2109 memory
=32 # supposedly
2111 tool
="$rootdir/tools/scramble -mi4v3 -model=9200 -type=RBOS"
2112 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2113 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2114 output
="rockbox.mi4"
2115 appextra
="recorder:gui"
2118 boottool
="$rootdir/tools/scramble -mi4v3 -model=9200 -type=RBBL"
2119 bootoutput
="FWImage.ebn"
2120 # toolset is the tools within the tools directory that we build for
2121 # this particular target.
2122 toolset
=$scramblebitmaptools
2123 # architecture, manufacturer and model for the target-tree build
2125 t_manufacturer
="philips"
2131 modelname
="gogearhdd1630"
2132 target
="-DPHILIPS_HDD1630"
2133 memory
=32 # supposedly
2135 tool
="$rootdir/tools/scramble -mi4v3 -model=1630 -type=RBOS"
2136 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2137 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2138 output
="rockbox.mi4"
2139 appextra
="recorder:gui"
2142 boottool
="$rootdir/tools/scramble -mi4v3 -model=1630 -type=RBBL"
2143 bootoutput
="FWImage.ebn"
2144 # toolset is the tools within the tools directory that we build for
2145 # this particular target.
2146 toolset
=$scramblebitmaptools
2147 # architecture, manufacturer and model for the target-tree build
2149 t_manufacturer
="philips"
2155 modelname
="gogearhdd6330"
2156 target
="-DPHILIPS_HDD6330"
2157 memory
=32 # supposedly
2159 tool
="$rootdir/tools/scramble -mi4v3 -model=6330 -type=RBOS"
2160 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2161 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2162 output
="rockbox.mi4"
2163 appextra
="recorder:gui"
2166 boottool
="$rootdir/tools/scramble -mi4v3 -model=6330 -type=RBBL"
2167 bootoutput
="FWImage.ebn"
2168 # toolset is the tools within the tools directory that we build for
2169 # this particular target.
2170 toolset
=$scramblebitmaptools
2171 # architecture, manufacturer and model for the target-tree build
2173 t_manufacturer
="philips"
2179 modelname
="meizum6sl"
2180 target
="-DMEIZU_M6SL"
2184 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2185 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2186 output
="rockbox.meizu"
2187 appextra
="recorder:gui"
2190 toolset
=$genericbitmaptools
2192 bootoutput
="rockboot.ebn"
2193 # architecture, manufacturer and model for the target-tree build
2195 t_manufacturer
="s5l8700"
2196 t_model
="meizu-m6sl"
2201 modelname
="meizum6sp"
2202 target
="-DMEIZU_M6SP"
2206 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2207 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2208 output
="rockbox.meizu"
2209 appextra
="recorder:gui"
2212 toolset
=$genericbitmaptools
2214 bootoutput
="rockboot.ebn"
2215 # architecture, manufacturer and model for the target-tree build
2217 t_manufacturer
="s5l8700"
2218 t_model
="meizu-m6sp"
2228 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2229 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2230 output
="rockbox.meizu"
2231 appextra
="recorder:gui"
2234 toolset
=$genericbitmaptools
2236 bootoutput
="rockboot.ebn"
2237 # architecture, manufacturer and model for the target-tree build
2239 t_manufacturer
="s5l8700"
2245 modelname
="ondavx747"
2246 target
="-DONDA_VX747"
2249 tool
="$rootdir/tools/scramble -add=x747"
2250 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2251 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2252 output
="rockbox.vx747"
2253 appextra
="recorder:gui"
2256 toolset
=$genericbitmaptools
2257 boottool
="$rootdir/tools/scramble -ccpmp"
2258 bootoutput
="ccpmp.bin"
2259 # architecture, manufacturer and model for the target-tree build
2261 t_manufacturer
="ingenic_jz47xx"
2262 t_model
="onda_vx747"
2267 modelname
="ondavx767"
2268 target
="-DONDA_VX767"
2272 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2273 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2274 output
="rockbox.vx767"
2275 appextra
="recorder:gui"
2278 toolset
=$genericbitmaptools
2279 boottool
="$rootdir/tools/scramble -ccpmp"
2280 bootoutput
="ccpmp.bin"
2281 # architecture, manufacturer and model for the target-tree build
2283 t_manufacturer
="ingenic_jz47xx"
2284 t_model
="onda_vx767"
2289 modelname
="ondavx747p"
2290 target
="-DONDA_VX747P"
2293 tool
="$rootdir/tools/scramble -add=747p"
2294 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2295 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2296 output
="rockbox.vx747p"
2297 appextra
="recorder:gui"
2300 toolset
=$genericbitmaptools
2301 boottool
="$rootdir/tools/scramble -ccpmp"
2302 bootoutput
="ccpmp.bin"
2303 # architecture, manufacturer and model for the target-tree build
2305 t_manufacturer
="ingenic_jz47xx"
2306 t_model
="onda_vx747"
2311 modelname
="ondavx777"
2312 target
="-DONDA_VX777"
2315 tool
="$rootdir/tools/scramble -add=x777"
2316 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2317 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2318 output
="rockbox.vx777"
2319 appextra
="recorder:gui"
2322 toolset
=$genericbitmaptools
2323 boottool
="$rootdir/tools/scramble -ccpmp"
2324 bootoutput
="ccpmp.bin"
2325 # architecture, manufacturer and model for the target-tree build
2327 t_manufacturer
="ingenic_jz47xx"
2328 t_model
="onda_vx747"
2333 modelname
="lyreproto1"
2334 target
="-DLYRE_PROTO1"
2338 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2339 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2340 output
="rockbox.lyre"
2341 appextra
="recorder:gui"
2344 toolset
=$scramblebitmaptools
2346 bootoutput
="bootloader-proto1.lyre"
2347 # architecture, manufacturer and model for the target-tree build
2349 t_manufacturer
="at91sam"
2350 t_model
="lyre_proto1"
2355 modelname
="mini2440"
2359 tool
="$rootdir/tools/scramble -add=m244"
2360 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2361 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2362 output
="rockbox.mini2440"
2363 appextra
="recorder:gui"
2366 toolset
=$scramblebitmaptools
2368 bootoutput
="bootloader-mini2440.lyre"
2369 # architecture, manufacturer and model for the target-tree build
2371 t_manufacturer
="s3c2440"
2377 modelname
="samsungyh820"
2378 target
="-DSAMSUNG_YH820"
2381 tool
="$rootdir/tools/scramble -mi4v2 -model=y820 -type=RBOS"
2382 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2383 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2384 output
="rockbox.mi4"
2385 appextra
="recorder:gui"
2388 boottool
="$rootdir/tools/scramble -mi4v2 -model=y820 -type=RBBL"
2389 bootoutput
="FW_YH820.mi4"
2390 # toolset is the tools within the tools directory that we build for
2391 # this particular target.
2392 toolset
=$scramblebitmaptools
2393 # architecture, manufacturer and model for the target-tree build
2395 t_manufacturer
="samsung"
2401 modelname
="samsungyh920"
2402 target
="-DSAMSUNG_YH920"
2405 tool
="$rootdir/tools/scramble -mi4v2 -model=y920 -type=RBOS"
2406 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2407 bmp2rb_native
="$rootdir/tools/bmp2rb -f 2"
2408 output
="rockbox.mi4"
2409 appextra
="recorder:gui"
2412 boottool
="$rootdir/tools/scramble -mi4v2 -model=y920 -type=RBBL"
2413 bootoutput
="PP5020.mi4"
2414 # toolset is the tools within the tools directory that we build for
2415 # this particular target.
2416 toolset
=$scramblebitmaptools
2417 # architecture, manufacturer and model for the target-tree build
2419 t_manufacturer
="samsung"
2425 modelname
="samsungyh925"
2426 target
="-DSAMSUNG_YH925"
2429 tool
="$rootdir/tools/scramble -mi4v2 -model=y925 -type=RBOS"
2430 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2431 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2432 output
="rockbox.mi4"
2433 appextra
="recorder:gui"
2436 boottool
="$rootdir/tools/scramble -mi4v2 -model=y925 -type=RBBL"
2437 bootoutput
="FW_YH925.mi4"
2438 # toolset is the tools within the tools directory that we build for
2439 # this particular target.
2440 toolset
=$scramblebitmaptools
2441 # architecture, manufacturer and model for the target-tree build
2443 t_manufacturer
="samsung"
2449 modelname
="samsungyps3"
2450 target
="-DSAMSUNG_YPS3"
2454 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2455 bmp2rb_native
="$rootdir/tools/bmp2rb -f 4"
2456 output
="rockbox.yps3"
2457 appextra
="recorder:gui"
2460 toolset
=$genericbitmaptools
2462 bootoutput
="rockboot.ebn"
2463 # architecture, manufacturer and model for the target-tree build
2465 t_manufacturer
="s5l8700"
2472 target
="-DPBELL_VIBE500"
2475 tool
="$rootdir/tools/scramble -mi4v3 -model=v500 -type=RBOS"
2476 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2477 bmp2rb_native
="$rootdir/tools/bmp2rb -f 5"
2478 output
="jukebox.mi4"
2479 appextra
="recorder:gui"
2482 boottool
="$rootdir/tools/scramble -mi4v3 -model=v500 -type=RBBL"
2483 bootoutput
="rockbox.mi4"
2484 # toolset is the tools within the tools directory that we build for
2485 # this particular target.
2486 toolset
=$scramblebitmaptools
2487 # architecture, manufacturer and model for the target-tree build
2489 t_manufacturer
="pbell"
2494 echo "Please select a supported target platform!"
2500 echo "Platform set to $modelname"
2504 ############################################################################
2505 # Amount of memory, for those that can differ. They have $memory unset at
2509 if [ -z "$memory" ]; then
2512 if [ "$ARG_RAM" ]; then
2515 echo "Enter size of your RAM (in MB): (Defaults to 32)"
2528 if [ "$ARG_RAM" ]; then
2531 echo "Enter size of your RAM (in MB): (Defaults to 2)"
2544 echo "Memory size selected: $memory MB"
2545 [ "$ARG_TYPE" ] ||
echo ""
2549 ##################################################################
2550 # Figure out build "type"
2553 # the ifp7x0 is the only platform that supports building a gdb stub like
2557 gdbstub
="(G)DB stub, "
2559 sansae200r|sansae200
)
2560 gdbstub
="(I)nstaller, "
2563 gdbstub
="(E)raser, "
2568 if [ "$ARG_TYPE" ]; then
2571 echo "Build (N)ormal, (A)dvanced, (S)imulator, (B)ootloader, (C)heckWPS, (D)atabase tool, $gdbstub(M)anual: (Defaults to N)"
2577 appsdir
='\$(ROOTDIR)/bootloader'
2579 extradefines
="-DBOOTLOADER -DE200R_INSTALLER -ffunction-sections -fdata-sections"
2581 echo "e200R-installer build selected"
2584 appsdir
='\$(ROOTDIR)/bootloader'
2586 echo "C2(4)0 or C2(5)0"
2590 extradefines
="-DBOOTLOADER -DC200_ERASE -DC240_ERASE -ffunction-sections -fdata-sections"
2591 echo "c240 eraser build selected"
2594 extradefines
="-DBOOTLOADER -DC200_ERASE -DC250_ERASE -ffunction-sections -fdata-sections"
2595 echo "c240 eraser build selected"
2599 echo "c200 eraser build selected"
2602 if test $t_manufacturer = "archos"; then
2603 # Archos SH-based players do this somewhat differently for
2605 appsdir
='\$(ROOTDIR)/flash/bootbox'
2608 appsdir
='\$(ROOTDIR)/bootloader'
2611 if test -n "$boottool"; then
2614 if test -n "$bootoutput"; then
2618 extradefines
="-DBOOTLOADER -ffunction-sections -fdata-sections"
2620 echo "Bootloader build selected"
2623 if [ "$modelname" = "sansae200r" ]; then
2624 echo "Do not use the e200R target for simulator builds. Use e200 instead."
2629 extradefines
="-DSIMULATOR"
2632 echo "Simulator build selected"
2635 echo "Advanced build selected"
2636 whichadvanced
$btype
2639 extradefines
="-DSTUB" # for target makefile symbol EXTRA_DEFINES
2640 appsdir
='\$(ROOTDIR)/gdb'
2649 echo "GDB stub build selected"
2654 echo "Manual build selected"
2662 extradefines
="-DDEBUG"
2663 appsdir
='\$(ROOTDIR)/tools/checkwps';
2664 output
='checkwps.'${modelname};
2666 echo "CheckWPS build selected"
2674 appsdir
='\$(ROOTDIR)/tools/database';
2679 output
="database_${modelname}.exe"
2682 output
='database.'${modelname};
2686 echo "Database tool build selected"
2689 if [ "$modelname" = "sansae200r" ]; then
2690 echo "Do not use the e200R target for regular builds. Use e200 instead."
2694 btype
="N" # set it explicitly since RET only gets here as well
2695 echo "Normal build selected"
2699 # to be able running "make manual" from non-manual configuration
2702 manualdev
="archosfmrecorder"
2705 manualdev
="iriverh100"
2708 manualdev
="ipodmini1g"
2711 manualdev
=$modelname
2715 if [ -z "$debug" ]; then
2716 GCCOPTS
="$GCCOPTS $GCCOPTIMIZE"
2719 echo "Using source code root directory: $rootdir"
2721 # this was once possible to change at build-time, but no more:
2726 if [ "yes" = "$simulator" ]; then
2727 # setup compiler and things for simulator
2730 if [ -d "simdisk" ]; then
2731 echo "Subdirectory 'simdisk' already present"
2734 echo "Created a 'simdisk' subdirectory for simulating the hard disk"
2738 # Now, figure out version number of the (gcc) compiler we are about to use
2739 gccver
=`$CC -dumpversion`;
2741 # figure out the binutil version too and display it, mostly for the build
2742 # system etc to be able to see it easier
2743 if [ $uname = "Darwin" ]; then
2744 ldver
=`$LD -v 2>&1 | sed -e 's/[^0-9.-]//g'`
2746 ldver
=`$LD --version | head -n 1 | sed -e 's/[^0-9.]//g'`
2749 if [ -z "$gccver" ]; then
2750 echo "[WARNING] The compiler you must use ($CC) is not in your path!"
2751 echo "[WARNING] this may cause your build to fail since we cannot do the"
2752 echo "[WARNING] checks we want now."
2755 # gccver should now be "3.3.5", "3.4.3", "2.95.3-6" and similar, but don't
2758 num1
=`echo $gccver | cut -d . -f1`
2759 num2
=`echo $gccver | cut -d . -f2`
2760 gccnum
=`(expr $num1 "*" 100 + $num2) 2>/dev/null`
2767 echo "Using $CC $gccver ($gccnum)"
2769 if test "$gccnum" -ge "400"; then
2770 # gcc 4.0 is just *so* much pickier on arguments that differ in signedness
2771 # so we ignore that warnings for now
2773 GCCOPTS
="$GCCOPTS -Wno-pointer-sign"
2776 if test "$gccnum" -ge "401"; then
2777 # this is a lame hack to avoid "warning: dereferencing type-punned pointer
2778 # will break strict-aliasing rules"
2780 GCCOPTS
="$GCCOPTS -fno-strict-aliasing"
2783 if test "$gccnum" -ge "402"; then
2784 # disable warning about "warning: initialized field overwritten" as gcc 4.2
2785 # and later would throw it for several valid cases
2786 GCCOPTS
="$GCCOPTS -Wno-override-init"
2794 # cross-compile for win32
2797 # Verify that the cross-compiler is of a recommended version!
2798 if test "$gccver" != "$gccchoice"; then
2799 echo "WARNING: Your cross-compiler $CC $gccver is not of the recommended"
2800 echo "WARNING: version $gccchoice!"
2801 echo "WARNING: This may cause your build to fail since it may be a version"
2802 echo "WARNING: that isn't functional or known to not be the best choice."
2803 echo "WARNING: If you suffer from build problems, you know that this is"
2804 echo "WARNING: a likely source for them..."
2812 echo "Using $LD $ldver"
2814 # check the compiler for SH platforms
2815 if test "$CC" = "sh-elf-gcc"; then
2816 if test "$gccnum" -lt "400"; then
2817 echo "WARNING: Consider upgrading your compiler to the 4.0.X series!"
2818 echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler"
2820 # figure out patch status
2821 gccpatch
=`$CC --version`;
2823 if { echo $gccpatch |
grep "rockbox" >/dev
/null
2>&1; } then
2824 echo "gcc $gccver is rockbox patched"
2825 # then convert -O to -Os to get smaller binaries!
2826 GCCOPTS
=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2828 echo "WARNING: You use an unpatched gcc compiler: $gccver"
2829 echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler"
2834 if test "$CC" = "m68k-elf-gcc"; then
2835 # convert -O to -Os to get smaller binaries!
2836 GCCOPTS
=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2839 if [ "$ARG_CCACHE" = "1" ]; then
2840 echo "Enable ccache for building"
2842 elif [ "$ARG_CCACHE" != "0" ]; then
2843 ccache
=`findtool ccache`
2844 if test -n "$ccache"; then
2845 echo "Found and uses ccache ($ccache)"
2849 # figure out the full path to the various commands if possible
2850 HOSTCC
=`findtool gcc --lit`
2851 HOSTAR
=`findtool ar --lit`
2852 CC
=`findtool ${CC} --lit`
2853 LD
=`findtool ${AR} --lit`
2854 AR
=`findtool ${AR} --lit`
2855 AS
=`findtool ${AS} --lit`
2856 OC
=`findtool ${OC} --lit`
2857 WINDRES
=`findtool ${WINDRES} --lit`
2858 DLLTOOL
=`findtool ${DLLTOOL} --lit`
2859 DLLWRAP
=`findtool ${DLLWRAP} --lit`
2860 RANLIB
=`findtool ${RANLIB} --lit`
2862 if test -n "$ccache"; then
2866 if test "X$endian" = "Xbig"; then
2867 defendian
="ROCKBOX_BIG_ENDIAN"
2869 defendian
="ROCKBOX_LITTLE_ENDIAN"
2872 if [ "$ARG_RBDIR" ]; then
2874 echo "Using alternate rockbox dir: ${rbdir}"
2878 -e "s,@ENDIAN@,${defendian},g" \
2879 -e "s,^#undef ROCKBOX_HAS_LOGF,$use_logf,g" \
2880 -e "s,@config_rtc@,$config_rtc,g" \
2881 -e "s,@have_rtc_alarm@,$have_rtc_alarm,g" \
2882 -e "s,@RBDIR@,${rbdir},g" \
2883 -e "s,@have_backlight@,$have_backlight,g" \
2884 -e "s,@have_fmradio_in@,$have_fmradio_in,g" \
2885 -e "s,@have_ata_poweroff@,$have_ata_poweroff,g" \
2887 /* This header was made by configure */
2888 #ifndef __BUILD_AUTOCONF_H
2889 #define __BUILD_AUTOCONF_H
2891 /* Define endianess for the target or simulator platform */
2894 /* Define this if you build rockbox to support the logf logging and display */
2895 #undef ROCKBOX_HAS_LOGF
2897 /* optional define for a backlight modded Ondio */
2900 /* optional define for FM radio mod for iAudio M5 */
2903 /* optional define for ATA poweroff on Player */
2906 /* optional defines for RTC mod for h1x0 */
2910 /* root of Rockbox */
2911 #define ROCKBOX_DIR "/@RBDIR@"
2913 #endif /* __BUILD_AUTOCONF_H */
2916 if test -n "$t_cpu"; then
2917 TARGET_INC
="-I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer/$t_model"
2918 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer"
2919 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu"
2923 if test "$simulator" = "yes"; then
2924 # add simul make stuff on the #SIMUL# line
2925 simmagic1
="s,@SIMUL1@,\$(SILENT)\$(MAKE) -C \$(SIMDIR) OBJDIR=\$(BUILDDIR)/sim,"
2926 simmagic2
="s,@SIMUL2@,\$(SILENT)\$(MAKE) -C \$(ROOTDIR)/uisimulator/common OBJDIR=\$(BUILDDIR)/comsim,"
2928 # delete the lines that match
2929 simmagic1
='/@SIMUL1@/D'
2930 simmagic2
='/@SIMUL2@/D'
2933 if test "$swcodec" = "yes"; then
2934 voicetoolset
="rbspeexenc voicefont wavtrim"
2936 voicetoolset
="voicefont wavtrim"
2939 if test "$apps" = "apps"; then
2940 # only when we build "real" apps we build the .lng files
2944 #### Fix the cmdline ###
2945 if test -n "$ccache"; then
2948 if [ "$ARG_ARM_EABI" = "1" ]; then
2949 cmdline
="$cmdline--eabi "
2952 cmdline
="$cmdline--target=\$(MODELNAME) --ram=\$(MEMORYSIZE) --rbdir=\$(RBDIR) --type=$btype$advopts"
2956 -e "s,@ROOTDIR@,${rootdir},g" \
2957 -e "s,@DEBUG@,${debug},g" \
2958 -e "s,@MEMORY@,${memory},g" \
2959 -e "s,@TARGET_ID@,${target_id},g" \
2960 -e "s,@TARGET@,${target},g" \
2961 -e "s,@CPU@,${t_cpu},g" \
2962 -e "s,@MANUFACTURER@,${t_manufacturer},g" \
2963 -e "s,@MODELNAME@,${modelname},g" \
2964 -e "s,@LANGUAGE@,${language},g" \
2965 -e "s:@VOICELANGUAGE@:${voicelanguage}:g" \
2966 -e "s,@PWD@,${pwd},g" \
2967 -e "s,@HOSTCC@,${HOSTCC},g" \
2968 -e "s,@HOSTAR@,${HOSTAR},g" \
2969 -e "s,@CC@,${CC},g" \
2970 -e "s,@LD@,${LD},g" \
2971 -e "s,@AR@,${AR},g" \
2972 -e "s,@AS@,${AS},g" \
2973 -e "s,@OC@,${OC},g" \
2974 -e "s,@WINDRES@,${WINDRES},g" \
2975 -e "s,@DLLTOOL@,${DLLTOOL},g" \
2976 -e "s,@DLLWRAP@,${DLLWRAP},g" \
2977 -e "s,@RANLIB@,${RANLIB},g" \
2978 -e "s,@TOOL@,${tool},g" \
2979 -e "s,@BMP2RB_NATIVE@,${bmp2rb_native},g" \
2980 -e "s,@BMP2RB_MONO@,${bmp2rb_mono},g" \
2981 -e "s,@BMP2RB_REMOTENATIVE@,${bmp2rb_remotenative},g" \
2982 -e "s,@BMP2RB_REMOTEMONO@,${bmp2rb_remotemono},g" \
2983 -e "s,@OUTPUT@,${output},g" \
2984 -e "s,@APPEXTRA@,${appextra},g" \
2985 -e "s,@ARCHOSROM@,${archosrom},g" \
2986 -e "s,@FLASHFILE@,${flash},g" \
2987 -e "s,@PLUGINS@,${plugins},g" \
2988 -e "s,@CODECS@,${swcodec},g" \
2989 -e "s,@PROFILE_OPTS@,${PROFILE_OPTS},g" \
2990 -e "s,@SHARED_FLAG@,${SHARED_FLAG},g" \
2991 -e "s,@GCCOPTS@,${GCCOPTS},g" \
2992 -e "s,@TARGET_INC@,${TARGET_INC},g" \
2993 -e "s!@LDOPTS@!${LDOPTS}!g" \
2994 -e "s,@LOADADDRESS@,${loadaddress},g" \
2995 -e "s,@EXTRADEF@,${extradefines},g" \
2996 -e "s,@APPSDIR@,${appsdir},g" \
2997 -e "s,@FIRMDIR@,${firmdir},g" \
2998 -e "s,@TOOLSDIR@,${toolsdir},g" \
2999 -e "s,@APPS@,${apps},g" \
3000 -e "s,@SIMVER@,${simver},g" \
3001 -e "s,@GCCVER@,${gccver},g" \
3002 -e "s,@GCCNUM@,${gccnum},g" \
3003 -e "s,@UNAME@,${uname},g" \
3004 -e "s,@ENDIAN@,${defendian},g" \
3005 -e "s,@TOOLSET@,${toolset},g" \
3008 -e "s,@MANUALDEV@,${manualdev},g" \
3009 -e "s,@ENCODER@,${ENC_CMD},g" \
3010 -e "s,@ENC_OPTS@,${ENC_OPTS},g" \
3011 -e "s,@TTS_ENGINE@,${TTS_ENGINE},g" \
3012 -e "s,@TTS_OPTS@,${TTS_OPTS},g" \
3013 -e "s,@VOICETOOLSET@,${voicetoolset},g" \
3014 -e "s,@LANGS@,${buildlangs},g" \
3015 -e "s,@USE_ELF@,${USE_ELF},g" \
3016 -e "s,@RBDIR@,${rbdir},g" \
3017 -e "s,@PREFIX@,$PREFIX,g" \
3018 -e "s,@CMDLINE@,$cmdline,g" \
3019 -e "s,@SDLCONFIG@,$sdl,g" \
3021 ## Automatically generated. http://www.rockbox.org/
3023 export ROOTDIR=@ROOTDIR@
3024 export FIRMDIR=@FIRMDIR@
3025 export APPSDIR=@APPSDIR@
3026 export TOOLSDIR=@TOOLSDIR@
3027 export DOCSDIR=\$(ROOTDIR)/docs
3028 export MANUALDIR=\${ROOTDIR}/manual
3029 export DEBUG=@DEBUG@
3030 export MODELNAME=@MODELNAME@
3031 export ARCHOSROM=@ARCHOSROM@
3032 export FLASHFILE=@FLASHFILE@
3033 export TARGET_ID=@TARGET_ID@
3034 export TARGET=@TARGET@
3036 export MANUFACTURER=@MANUFACTURER@
3038 export BUILDDIR=@PWD@
3039 export LANGUAGE=@LANGUAGE@
3040 export VOICELANGUAGE=@VOICELANGUAGE@
3041 export MEMORYSIZE=@MEMORY@
3042 export VERSION:=\$(shell \$(ROOTDIR)/tools/version.sh \$(ROOTDIR))
3043 export BUILDDATE:=\$(shell date -u +'-DYEAR=%Y -DMONTH=%m -DDAY=%d')
3044 export MKFIRMWARE=@TOOL@
3045 export BMP2RB_MONO=@BMP2RB_MONO@
3046 export BMP2RB_NATIVE=@BMP2RB_NATIVE@
3047 export BMP2RB_REMOTEMONO=@BMP2RB_REMOTEMONO@
3048 export BMP2RB_REMOTENATIVE=@BMP2RB_REMOTENATIVE@
3049 export BINARY=@OUTPUT@
3050 export APPEXTRA=@APPEXTRA@
3051 export ENABLEDPLUGINS=@PLUGINS@
3052 export SOFTWARECODECS=@CODECS@
3053 export EXTRA_DEFINES=@EXTRADEF@
3054 export HOSTCC=@HOSTCC@
3055 export HOSTAR=@HOSTAR@
3061 export WINDRES=@WINDRES@
3062 export DLLTOOL=@DLLTOOL@
3063 export DLLWRAP=@DLLWRAP@
3064 export RANLIB=@RANLIB@
3065 export PREFIX=@PREFIX@
3066 export PROFILE_OPTS=@PROFILE_OPTS@
3067 export SIMVER=@SIMVER@
3068 export SIMDIR=\$(ROOTDIR)/uisimulator/sdl
3069 export GCCOPTS=@GCCOPTS@
3070 export TARGET_INC=@TARGET_INC@
3071 export LOADADDRESS=@LOADADDRESS@
3072 export SHARED_FLAG=@SHARED_FLAG@
3073 export LDOPTS=@LDOPTS@
3074 export GCCVER=@GCCVER@
3075 export GCCNUM=@GCCNUM@
3076 export UNAME=@UNAME@
3077 export MANUALDEV=@MANUALDEV@
3078 export TTS_OPTS=@TTS_OPTS@
3079 export TTS_ENGINE=@TTS_ENGINE@
3080 export ENC_OPTS=@ENC_OPTS@
3081 export ENCODER=@ENCODER@
3082 export USE_ELF=@USE_ELF@
3083 export RBDIR=@RBDIR@
3084 export SDLCONFIG=@SDLCONFIG@
3086 CONFIGURE_OPTIONS=@CMDLINE@
3088 include \$(TOOLSDIR)/root.make
3092 echo "Created Makefile"