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 "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"
2023 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2024 bmp2rb_native
="$bmp2rb_mono"
2025 tool
="$rootdir/tools/scramble -add=clv2"
2026 output
="rockbox.sansa"
2027 bootoutput
="bootloader-clipv2.sansa"
2028 appextra
="recorder:gui"
2031 toolset
=$scramblebitmaptools
2033 t_manufacturer
="as3525"
2034 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"
2067 bmp2rb_mono
="$rootdir/tools/bmp2rb -f 0"
2068 bmp2rb_native
="$bmp2rb_mono"
2069 tool
="$rootdir/tools/scramble -add=cli+"
2070 output
="rockbox.sansa"
2071 bootoutput
="bootloader-clipplus.sansa"
2072 appextra
="recorder:gui"
2075 toolset
=$scramblebitmaptools
2077 t_manufacturer
="as3525"
2078 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 appsdir
='\$(ROOTDIR)/tools/checkwps';
2663 output
='checkwps.'${modelname};
2665 echo "CheckWPS build selected"
2673 appsdir
='\$(ROOTDIR)/tools/database';
2674 output
='database.'${modelname};
2676 echo "Database tool build selected"
2679 if [ "$modelname" = "sansae200r" ]; then
2680 echo "Do not use the e200R target for regular builds. Use e200 instead."
2684 btype
="N" # set it explicitly since RET only gets here as well
2685 echo "Normal build selected"
2689 # to be able running "make manual" from non-manual configuration
2692 manualdev
="archosfmrecorder"
2695 manualdev
="iriverh100"
2698 manualdev
="ipodmini1g"
2701 manualdev
=$modelname
2705 if [ -z "$debug" ]; then
2706 GCCOPTS
="$GCCOPTS $GCCOPTIMIZE"
2709 echo "Using source code root directory: $rootdir"
2711 # this was once possible to change at build-time, but no more:
2716 if [ "yes" = "$simulator" ]; then
2717 # setup compiler and things for simulator
2720 if [ -d "simdisk" ]; then
2721 echo "Subdirectory 'simdisk' already present"
2724 echo "Created a 'simdisk' subdirectory for simulating the hard disk"
2728 # Now, figure out version number of the (gcc) compiler we are about to use
2729 gccver
=`$CC -dumpversion`;
2731 # figure out the binutil version too and display it, mostly for the build
2732 # system etc to be able to see it easier
2733 if [ $uname = "Darwin" ]; then
2734 ldver
=`$LD -v 2>&1 | sed -e 's/[^0-9.-]//g'`
2736 ldver
=`$LD --version | head -n 1 | sed -e 's/[^0-9.]//g'`
2739 if [ -z "$gccver" ]; then
2740 echo "[WARNING] The compiler you must use ($CC) is not in your path!"
2741 echo "[WARNING] this may cause your build to fail since we cannot do the"
2742 echo "[WARNING] checks we want now."
2745 # gccver should now be "3.3.5", "3.4.3", "2.95.3-6" and similar, but don't
2748 num1
=`echo $gccver | cut -d . -f1`
2749 num2
=`echo $gccver | cut -d . -f2`
2750 gccnum
=`(expr $num1 "*" 100 + $num2) 2>/dev/null`
2757 echo "Using $CC $gccver ($gccnum)"
2759 if test "$gccnum" -ge "400"; then
2760 # gcc 4.0 is just *so* much pickier on arguments that differ in signedness
2761 # so we ignore that warnings for now
2763 GCCOPTS
="$GCCOPTS -Wno-pointer-sign"
2766 if test "$gccnum" -ge "401"; then
2767 # this is a lame hack to avoid "warning: dereferencing type-punned pointer
2768 # will break strict-aliasing rules"
2770 GCCOPTS
="$GCCOPTS -fno-strict-aliasing"
2773 if test "$gccnum" -ge "402"; then
2774 # disable warning about "warning: initialized field overwritten" as gcc 4.2
2775 # and later would throw it for several valid cases
2776 GCCOPTS
="$GCCOPTS -Wno-override-init"
2784 # cross-compile for win32
2787 # Verify that the cross-compiler is of a recommended version!
2788 if test "$gccver" != "$gccchoice"; then
2789 echo "WARNING: Your cross-compiler $CC $gccver is not of the recommended"
2790 echo "WARNING: version $gccchoice!"
2791 echo "WARNING: This may cause your build to fail since it may be a version"
2792 echo "WARNING: that isn't functional or known to not be the best choice."
2793 echo "WARNING: If you suffer from build problems, you know that this is"
2794 echo "WARNING: a likely source for them..."
2802 echo "Using $LD $ldver"
2804 # check the compiler for SH platforms
2805 if test "$CC" = "sh-elf-gcc"; then
2806 if test "$gccnum" -lt "400"; then
2807 echo "WARNING: Consider upgrading your compiler to the 4.0.X series!"
2808 echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler"
2810 # figure out patch status
2811 gccpatch
=`$CC --version`;
2813 if { echo $gccpatch |
grep "rockbox" >/dev
/null
2>&1; } then
2814 echo "gcc $gccver is rockbox patched"
2815 # then convert -O to -Os to get smaller binaries!
2816 GCCOPTS
=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2818 echo "WARNING: You use an unpatched gcc compiler: $gccver"
2819 echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler"
2824 if test "$CC" = "m68k-elf-gcc"; then
2825 # convert -O to -Os to get smaller binaries!
2826 GCCOPTS
=`echo $GCCOPTS | sed 's/ -O / -Os /'`
2829 if [ "$ARG_CCACHE" = "1" ]; then
2830 echo "Enable ccache for building"
2832 elif [ "$ARG_CCACHE" != "0" ]; then
2833 ccache
=`findtool ccache`
2834 if test -n "$ccache"; then
2835 echo "Found and uses ccache ($ccache)"
2839 # figure out the full path to the various commands if possible
2840 HOSTCC
=`findtool gcc --lit`
2841 HOSTAR
=`findtool ar --lit`
2842 CC
=`findtool ${CC} --lit`
2843 LD
=`findtool ${AR} --lit`
2844 AR
=`findtool ${AR} --lit`
2845 AS
=`findtool ${AS} --lit`
2846 OC
=`findtool ${OC} --lit`
2847 WINDRES
=`findtool ${WINDRES} --lit`
2848 DLLTOOL
=`findtool ${DLLTOOL} --lit`
2849 DLLWRAP
=`findtool ${DLLWRAP} --lit`
2850 RANLIB
=`findtool ${RANLIB} --lit`
2852 if test -n "$ccache"; then
2856 if test "X$endian" = "Xbig"; then
2857 defendian
="ROCKBOX_BIG_ENDIAN"
2859 defendian
="ROCKBOX_LITTLE_ENDIAN"
2862 if [ "$ARG_RBDIR" ]; then
2864 echo "Using alternate rockbox dir: ${rbdir}"
2868 -e "s,@ENDIAN@,${defendian},g" \
2869 -e "s,^#undef ROCKBOX_HAS_LOGF,$use_logf,g" \
2870 -e "s,@config_rtc@,$config_rtc,g" \
2871 -e "s,@have_rtc_alarm@,$have_rtc_alarm,g" \
2872 -e "s,@RBDIR@,${rbdir},g" \
2873 -e "s,@have_backlight@,$have_backlight,g" \
2874 -e "s,@have_fmradio_in@,$have_fmradio_in,g" \
2875 -e "s,@have_ata_poweroff@,$have_ata_poweroff,g" \
2877 /* This header was made by configure */
2878 #ifndef __BUILD_AUTOCONF_H
2879 #define __BUILD_AUTOCONF_H
2881 /* Define endianess for the target or simulator platform */
2884 /* Define this if you build rockbox to support the logf logging and display */
2885 #undef ROCKBOX_HAS_LOGF
2887 /* optional define for a backlight modded Ondio */
2890 /* optional define for FM radio mod for iAudio M5 */
2893 /* optional define for ATA poweroff on Player */
2896 /* optional defines for RTC mod for h1x0 */
2900 /* root of Rockbox */
2901 #define ROCKBOX_DIR "/@RBDIR@"
2903 #endif /* __BUILD_AUTOCONF_H */
2906 if test -n "$t_cpu"; then
2907 TARGET_INC
="-I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer/$t_model"
2908 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer"
2909 TARGET_INC
="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu"
2913 if test "$simulator" = "yes"; then
2914 # add simul make stuff on the #SIMUL# line
2915 simmagic1
="s,@SIMUL1@,\$(SILENT)\$(MAKE) -C \$(SIMDIR) OBJDIR=\$(BUILDDIR)/sim,"
2916 simmagic2
="s,@SIMUL2@,\$(SILENT)\$(MAKE) -C \$(ROOTDIR)/uisimulator/common OBJDIR=\$(BUILDDIR)/comsim,"
2918 # delete the lines that match
2919 simmagic1
='/@SIMUL1@/D'
2920 simmagic2
='/@SIMUL2@/D'
2923 if test "$swcodec" = "yes"; then
2924 voicetoolset
="rbspeexenc voicefont wavtrim"
2926 voicetoolset
="voicefont wavtrim"
2929 if test "$apps" = "apps"; then
2930 # only when we build "real" apps we build the .lng files
2934 #### Fix the cmdline ###
2935 if test -n "$ccache"; then
2939 cmdline
="$cmdline--target=\$(MODELNAME) --ram=\$(MEMORYSIZE) --rbdir=\$(RBDIR) --type=$btype$advopts"
2943 -e "s,@ROOTDIR@,${rootdir},g" \
2944 -e "s,@DEBUG@,${debug},g" \
2945 -e "s,@MEMORY@,${memory},g" \
2946 -e "s,@TARGET_ID@,${target_id},g" \
2947 -e "s,@TARGET@,${target},g" \
2948 -e "s,@CPU@,${t_cpu},g" \
2949 -e "s,@MANUFACTURER@,${t_manufacturer},g" \
2950 -e "s,@MODELNAME@,${modelname},g" \
2951 -e "s,@LANGUAGE@,${language},g" \
2952 -e "s:@VOICELANGUAGE@:${voicelanguage}:g" \
2953 -e "s,@PWD@,${pwd},g" \
2954 -e "s,@HOSTCC@,${HOSTCC},g" \
2955 -e "s,@HOSTAR@,${HOSTAR},g" \
2956 -e "s,@CC@,${CC},g" \
2957 -e "s,@LD@,${LD},g" \
2958 -e "s,@AR@,${AR},g" \
2959 -e "s,@AS@,${AS},g" \
2960 -e "s,@OC@,${OC},g" \
2961 -e "s,@WINDRES@,${WINDRES},g" \
2962 -e "s,@DLLTOOL@,${DLLTOOL},g" \
2963 -e "s,@DLLWRAP@,${DLLWRAP},g" \
2964 -e "s,@RANLIB@,${RANLIB},g" \
2965 -e "s,@TOOL@,${tool},g" \
2966 -e "s,@BMP2RB_NATIVE@,${bmp2rb_native},g" \
2967 -e "s,@BMP2RB_MONO@,${bmp2rb_mono},g" \
2968 -e "s,@BMP2RB_REMOTENATIVE@,${bmp2rb_remotenative},g" \
2969 -e "s,@BMP2RB_REMOTEMONO@,${bmp2rb_remotemono},g" \
2970 -e "s,@OUTPUT@,${output},g" \
2971 -e "s,@APPEXTRA@,${appextra},g" \
2972 -e "s,@ARCHOSROM@,${archosrom},g" \
2973 -e "s,@FLASHFILE@,${flash},g" \
2974 -e "s,@PLUGINS@,${plugins},g" \
2975 -e "s,@CODECS@,${swcodec},g" \
2976 -e "s,@PROFILE_OPTS@,${PROFILE_OPTS},g" \
2977 -e "s,@SHARED_FLAG@,${SHARED_FLAG},g" \
2978 -e "s,@GCCOPTS@,${GCCOPTS},g" \
2979 -e "s,@TARGET_INC@,${TARGET_INC},g" \
2980 -e "s!@LDOPTS@!${LDOPTS}!g" \
2981 -e "s,@LOADADDRESS@,${loadaddress},g" \
2982 -e "s,@EXTRADEF@,${extradefines},g" \
2983 -e "s,@APPSDIR@,${appsdir},g" \
2984 -e "s,@FIRMDIR@,${firmdir},g" \
2985 -e "s,@TOOLSDIR@,${toolsdir},g" \
2986 -e "s,@APPS@,${apps},g" \
2987 -e "s,@SIMVER@,${simver},g" \
2988 -e "s,@GCCVER@,${gccver},g" \
2989 -e "s,@GCCNUM@,${gccnum},g" \
2990 -e "s,@UNAME@,${uname},g" \
2991 -e "s,@ENDIAN@,${defendian},g" \
2992 -e "s,@TOOLSET@,${toolset},g" \
2995 -e "s,@MANUALDEV@,${manualdev},g" \
2996 -e "s,@ENCODER@,${ENC_CMD},g" \
2997 -e "s,@ENC_OPTS@,${ENC_OPTS},g" \
2998 -e "s,@TTS_ENGINE@,${TTS_ENGINE},g" \
2999 -e "s,@TTS_OPTS@,${TTS_OPTS},g" \
3000 -e "s,@VOICETOOLSET@,${voicetoolset},g" \
3001 -e "s,@LANGS@,${buildlangs},g" \
3002 -e "s,@USE_ELF@,${USE_ELF},g" \
3003 -e "s,@RBDIR@,${rbdir},g" \
3004 -e "s,@PREFIX@,$PREFIX,g" \
3005 -e "s,@CMDLINE@,$cmdline,g" \
3007 ## Automatically generated. http://www.rockbox.org/
3009 export ROOTDIR=@ROOTDIR@
3010 export FIRMDIR=@FIRMDIR@
3011 export APPSDIR=@APPSDIR@
3012 export TOOLSDIR=@TOOLSDIR@
3013 export DOCSDIR=\$(ROOTDIR)/docs
3014 export MANUALDIR=\${ROOTDIR}/manual
3015 export DEBUG=@DEBUG@
3016 export MODELNAME=@MODELNAME@
3017 export ARCHOSROM=@ARCHOSROM@
3018 export FLASHFILE=@FLASHFILE@
3019 export TARGET_ID=@TARGET_ID@
3020 export TARGET=@TARGET@
3022 export MANUFACTURER=@MANUFACTURER@
3024 export BUILDDIR=@PWD@
3025 export LANGUAGE=@LANGUAGE@
3026 export VOICELANGUAGE=@VOICELANGUAGE@
3027 export MEMORYSIZE=@MEMORY@
3028 export VERSION:=\$(shell \$(ROOTDIR)/tools/version.sh \$(ROOTDIR))
3029 export BUILDDATE:=\$(shell date -u +'-DYEAR=%Y -DMONTH=%m -DDAY=%d')
3030 export MKFIRMWARE=@TOOL@
3031 export BMP2RB_MONO=@BMP2RB_MONO@
3032 export BMP2RB_NATIVE=@BMP2RB_NATIVE@
3033 export BMP2RB_REMOTEMONO=@BMP2RB_REMOTEMONO@
3034 export BMP2RB_REMOTENATIVE=@BMP2RB_REMOTENATIVE@
3035 export BINARY=@OUTPUT@
3036 export APPEXTRA=@APPEXTRA@
3037 export ENABLEDPLUGINS=@PLUGINS@
3038 export SOFTWARECODECS=@CODECS@
3039 export EXTRA_DEFINES=@EXTRADEF@
3040 export HOSTCC=@HOSTCC@
3041 export HOSTAR=@HOSTAR@
3047 export WINDRES=@WINDRES@
3048 export DLLTOOL=@DLLTOOL@
3049 export DLLWRAP=@DLLWRAP@
3050 export RANLIB=@RANLIB@
3051 export PREFIX=@PREFIX@
3052 export PROFILE_OPTS=@PROFILE_OPTS@
3053 export SIMVER=@SIMVER@
3054 export SIMDIR=\$(ROOTDIR)/uisimulator/sdl
3055 export GCCOPTS=@GCCOPTS@
3056 export TARGET_INC=@TARGET_INC@
3057 export LOADADDRESS=@LOADADDRESS@
3058 export SHARED_FLAG=@SHARED_FLAG@
3059 export LDOPTS=@LDOPTS@
3060 export GCCVER=@GCCVER@
3061 export GCCNUM=@GCCNUM@
3062 export UNAME=@UNAME@
3063 export MANUALDEV=@MANUALDEV@
3064 export TTS_OPTS=@TTS_OPTS@
3065 export TTS_ENGINE=@TTS_ENGINE@
3066 export ENC_OPTS=@ENC_OPTS@
3067 export ENCODER=@ENCODER@
3068 export USE_ELF=@USE_ELF@
3069 export RBDIR=@RBDIR@
3071 CONFIGURE_OPTIONS=@CMDLINE@
3073 include \$(TOOLSDIR)/root.make
3077 echo "Created Makefile"