| #!/bin/sh |
| # __________ __ ___. |
| # Open \______ \ ____ ____ | | _\_ |__ _______ ___ |
| # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / |
| # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < |
| # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ |
| # \/ \/ \/ \/ \/ |
| # $Id$ |
| # |
| |
| # global CC options for all platforms |
| CCOPTS="-W -Wall -O -nostdlib -ffreestanding -Wstrict-prototypes" |
| |
| use_logf="#undef ROCKBOX_HAS_LOGF" |
| use_simsound="#undef ROCKBOX_HAS_SIMSOUND" |
| |
| scriptver=`echo '$Revision$' | sed -e 's:\\$::g' -e 's/Revision: //'` |
| |
| # |
| # Begin Function Definitions |
| # |
| input() { |
| read response |
| echo $response |
| } |
| |
| prefixtools () { |
| prefix="$1" |
| CC=${prefix}gcc |
| WINDRES=${prefix}windres |
| DLLTOOL=${prefix}dlltool |
| DLLWRAP=${prefix}dllwrap |
| RANLIB=${prefix}ranlib |
| LD=${prefix}ld |
| AR=${prefix}ar |
| AS=${prefix}as |
| OC=${prefix}objcopy |
| } |
| |
| crosswincc () { |
| # naive approach to selecting a mingw cross-compiler on linux/*nix |
| echo "Enabling win32 crosscompiling" |
| |
| prefixtools i586-mingw32msvc- |
| |
| LDOPTS="-lgdi32 -luser32 -mwindows" |
| # add cross-compiler option(s) |
| GCCOPTS="$GCCOPTS -mno-cygwin" |
| |
| output="rockboxui.exe" # use this as output binary name |
| crosscompile="yes" |
| endian="little" # windows is little endian |
| } |
| |
| checksoundcard () { |
| if test -n "$codecs"; then |
| if test -f "/usr/include/sys/soundcard.h"; then |
| # We have a header file so we can build the sound code |
| use_simsound="#define ROCKBOX_HAS_SIMSOUND 1" |
| echo "Enabled PCM sound playback in simulator" |
| fi # header file present |
| fi # has codecs |
| } |
| |
| # scan the $PATH for the given command |
| findtool(){ |
| file="$1" |
| |
| IFS=":" |
| for path in $PATH |
| do |
| # echo "checks for $file in $path" >&2 |
| if test -f "$path/$file"; then |
| echo "$path/$file" |
| return |
| fi |
| done |
| } |
| |
| |
| simcc () { |
| |
| # default tool setup for native building |
| prefixtools "" |
| |
| GCCOPTS='-W -Wall -g -fno-builtin' |
| |
| output="rockboxui" # use this as default output binary name |
| |
| if [ "$simver" = "sdl" ]; then |
| # generic sdl-config checker |
| sdl=`findtool sdl-config` |
| |
| if [ -z "$sdl" ]; then |
| echo "configure didn't find sdl-config, which indicates that you" |
| echo "don't have SDL (properly) installed. Please correct and" |
| echo "re-run configure!" |
| exit |
| fi |
| fi |
| |
| case $uname in |
| CYGWIN*) |
| echo "Cygwin host detected" |
| |
| if [ "$simver" = "win32" ]; then |
| # win32 version |
| GCCOPTS="$GCCOPTS -mno-cygwin -DNOCYGWIN" |
| LDOPTS="-lgdi32 -luser32 -mno-cygwin" |
| elif [ "$simver" = "sdl" ]; then |
| # sdl version |
| GCCOPTS="$GCCOPTS `sdl-config --cflags`" |
| LDOPTS="`sdl-config --libs`" |
| checksoundcard |
| else |
| # x11 version |
| GCCOPTS="$GCCOPTS" |
| LDOPTS='-L/usr/X11R6/lib -lSM -lICE -lXt -lX11 -lXmu -lSM -lICE -lX11 -lpthread' |
| checksoundcard |
| fi |
| output="rockboxui.exe" # use this as output binary name |
| ;; |
| |
| Linux) |
| echo "Linux host detected" |
| GCCOPTS="$GCCOPTS" |
| if [ "$simver" = "win32" ]; then |
| LDOPTS='-L/usr/X11R6/lib -lX11 -lm -lXt -lXmu -lnsl -ldl -lpthread' |
| crosswincc # setup cross-compiler |
| elif [ "$simver" = "sdl" ]; then |
| GCCOPTS="$GCCOPTS `sdl-config --cflags`" |
| LDOPTS="`sdl-config --libs`" |
| checksoundcard |
| else |
| LDOPTS='-L/usr/X11R6/lib -lX11 -lm -lXt -lXmu -lnsl -ldl -lpthread' |
| checksoundcard |
| fi # not a cross-compiler |
| ;; |
| |
| FreeBSD) |
| echo "FreeBSD host detected" |
| LDOPTS='-L/usr/X11R6/lib -lX11 -lm -lXt -lXmu -dl -lpthread' |
| if [ "$simver" = "win32" ]; then |
| crosswincc # setup cross-compiler |
| fi |
| ;; |
| |
| *) |
| echo "Unsupported system: $uname, fix configure and retry" |
| exit |
| ;; |
| esac |
| |
| if [ `uname -m` = "x86_64" ]; then |
| GCCOPTS="$GCCOPTS -fPIC" # needed to make shared objects link |
| fi |
| |
| if test "X$crosscompile" != "Xyes"; then |
| id=$$ |
| cat >/tmp/conftest-$id.c <<EOF |
| #include <stdio.h> |
| int main(int argc, char **argv) |
| { |
| int var=0; |
| char *varp = (char *)&var; |
| *varp=1; |
| |
| printf("%d\n", var); |
| return 0; |
| } |
| EOF |
| |
| $CC -o /tmp/conftest-$id /tmp/conftest-$id.c 2>/dev/null |
| |
| if test `/tmp/conftest-$id 2>/dev/null` -gt "1"; then |
| # big endian |
| endian="big" |
| else |
| # little endian |
| endian="little" |
| fi |
| echo "Simulator environment deemed $endian endian" |
| |
| # use wildcard here to make it work even if it was named *.exe like |
| # on cygwin |
| rm -f /tmp/conftest-$id* |
| fi |
| } |
| |
| shcc () { |
| prefixtools sh-elf- |
| GCCOPTS="$CCOPTS -m1" |
| GCCOPTIMIZE="-fomit-frame-pointer -fschedule-insns" |
| endian="big" |
| } |
| |
| calmrisccc () { |
| prefixtools calmrisc16-unknown-elf- |
| GCCOPTS="-Wl\,--no-check-sections $CCOPTS" |
| GCCOPTIMIZE="-fomit-frame-pointer" |
| endian="big" |
| } |
| |
| coldfirecc () { |
| prefixtools m68k-elf- |
| GCCOPTS="$CCOPTS -g -m5200 -Wa\,-m5249 -malign-int -mstrict-align" |
| GCCOPTIMIZE="-fomit-frame-pointer" |
| endian="big" |
| } |
| |
| arm7tdmicc () { |
| prefixtools arm-elf- |
| GCCOPTS="$CCOPTS -mcpu=arm7tdmi" |
| if test "X$1" != "Xshort"; then |
| GCCOPTS="$GCCOPTS -ffunction-sections -mlong-calls" |
| fi |
| GCCOPTIMIZE="-fomit-frame-pointer" |
| endian="little" |
| } |
| |
| arm9tdmicc () { |
| prefixtools arm-elf- |
| GCCOPTS="$CCOPTS -mcpu=arm9tdmi -ffunction-sections -mlong-calls" |
| GCCOPTIMIZE="-fomit-frame-pointer" |
| endian="little" |
| } |
| |
| whichaddr () { |
| case $archos in |
| gmini120|gminisp) |
| echo "" |
| echo "Where do you want the firmware to be flashed?" |
| echo "WARNING: Do not answer this question lightly," |
| echo "unless you don't plan to flash your gmini." |
| echo "In this case, reply '0x10000' (no quotes) and " |
| echo "re-configure when you know better." |
| loadaddress=`input` |
| |
| if [ "0$loadaddress" = "0" ]; then |
| #default |
| loadaddress="0x10000"; |
| fi |
| echo "You selected $loadaddress" |
| ;; |
| *) |
| ;; |
| esac |
| } |
| |
| whichdevel () { |
| ################################################################## |
| # Prompt for specific developer options |
| # |
| echo "" |
| echo "Enter your developer options (press enter when done)" |
| echo "(D)EBUG, (L)ogf, (S)imulator, (P)rofiling" |
| cont=1 |
| |
| while [ $cont = "1" ]; do |
| |
| option=`input`; |
| |
| case $option in |
| [Dd]) |
| if [ "yes" = "$profile" ]; then |
| echo "Debug is incompatible with profiling" |
| else |
| echo "define DEBUG" |
| use_debug="yes" |
| fi |
| ;; |
| [Ll]) |
| echo "logf() support enabled" |
| logf="yes" |
| ;; |
| [Ss]) |
| echo "Simulator build enabled" |
| simulator="yes" |
| ;; |
| [Pp]) |
| if [ "yes" = "$use_debug" ]; then |
| echo "Profiling is incompatible with debug" |
| else |
| echo "Profiling support is enabled" |
| profile="yes" |
| fi |
| ;; |
| *) |
| echo "done" |
| cont=0 |
| ;; |
| esac |
| done |
| |
| if [ "yes" = "$use_debug" ]; then |
| debug="-DDEBUG" |
| GCCOPTS="$GCCOPTS -g -DDEBUG" |
| fi |
| if [ "yes" = "$logf" ]; then |
| use_logf="#define ROCKBOX_HAS_LOGF 1" |
| fi |
| if [ "yes" = "$simulator" ]; then |
| debug="-DDEBUG" |
| extradefines="$extradefines -DSIMULATOR" |
| whichsim |
| fi |
| if [ "yes" = "$profile" ]; then |
| extradefines="$extradefines -DRB_PROFILE" |
| PROFILE_OPTS="-finstrument-functions" |
| GCCOPTS="$GCCOPTS $GCCOPTIMIZE" |
| fi |
| } |
| |
| whichsim () { |
| |
| if [ -z "$simver" ]; then |
| |
| ################################################################## |
| # Figure out what simulator version |
| # |
| # x11 is deprecated so hide it from the question |
| # win32 is also deprecated |
| # |
| echo "" |
| echo "Build (S)DL version? (S)" |
| |
| option=`input`; |
| |
| case $option in |
| [Ww]) |
| simver="win32" |
| |
| WINDRES=windres |
| DLLTOOL=dlltool |
| DLLWRAP=dllwrap |
| |
| # make sure the code knows this is for win32 |
| extradefines="$extradefines -DWIN32" |
| ;; |
| [Xx]) |
| simver="x11" |
| extradefines="$extradefines -DX11" |
| ;; |
| [Ss]|*) |
| simver="sdl" |
| extradefines="$extradefines -DSDL" |
| ;; |
| esac |
| echo "Selected $simver simulator" |
| fi |
| } |
| |
| if test "$1" = "--help"; then |
| echo "Rockbox configure script." |
| echo "Invoke this in a directory to generate a Makefile to build Rockbox" |
| echo "Do *NOT* run this within the tools directory!" |
| echo "" |
| echo "Usage: configure [--ccache][--no-ccache]" |
| exit |
| fi |
| |
| if test -r "configure"; then |
| # this is a check for a configure script in the current directory, it there |
| # is one, try to figure out if it is this one! |
| |
| if { grep "^# Jukebox" configure >/dev/null 2>&1 ; } then |
| echo "WEEEEEEEEP. Don't run this configure script within the tools directory." |
| echo "It will only cause you pain and grief. Instead do this:" |
| echo "" |
| echo " cd .." |
| echo " mkdir build-dir" |
| echo " cd build-dir" |
| echo " ../tools/configure" |
| echo "" |
| echo "Much happiness will arise from this. Enjoy" |
| exit |
| fi |
| fi |
| |
| if [ "$target" = "--help" -o \ |
| "$target" = "-h" ]; then |
| echo "Just invoke the script and answer the questions." |
| echo "This script will write a Makefile for you" |
| exit |
| fi |
| |
| # get our current directory |
| pwd=`pwd`; |
| |
| echo "This script will setup your Rockbox build environment." |
| echo "Further docs here: http://www.rockbox.org/" |
| echo "" |
| |
| if [ -z "$rootdir" ]; then |
| ################################################################## |
| # Figure out where the source code root is! |
| # |
| |
| firmfile="crt0.S" # a file to check for in the firmware root dir |
| |
| for dir in . .. ../.. ../rockbox*; do |
| if [ -f $dir/firmware/$firmfile ]; then |
| rootdir=$dir |
| break |
| fi |
| done |
| |
| if [ -z "$rootdir" ]; then |
| echo "This script couldn't find your source code root directory. Please enter the" |
| echo "full path to the source code directory here:" |
| |
| firmdir=`input` |
| fi |
| |
| ##################################################################### |
| # Convert the possibly relative directory name to an absolute version |
| # |
| now=`pwd` |
| cd $rootdir |
| rootdir=`pwd` |
| |
| echo "Using this source code root directory:" |
| echo $rootdir |
| echo "" |
| |
| # cd back to the build dir |
| cd $now |
| fi |
| |
| apps="apps" |
| appsdir='\$(ROOTDIR)/apps' |
| firmdir='\$(ROOTDIR)/firmware' |
| toolsdir='\$(ROOTDIR)/tools' |
| |
| |
| ################################################################## |
| # Figure out target platform |
| # |
| |
| echo "Enter target platform:" |
| |
| echo "1 - Archos Player/Studio" |
| echo "2 - Archos Recorder" |
| echo "3 - Archos FM Recorder" |
| echo "4 - Archos Recorder v2" |
| echo "5 - Archos Gmini 120" |
| echo "6 - Archos Gmini SP" |
| echo "7 - Archos Ondio SP" |
| echo "8 - Archos Ondio FM" |
| echo "9 - iriver H120/H140" |
| echo "10 - iriver H320/H340" |
| echo "11 - iriver iHP-100/iHP-110/iHP-115" |
| echo "12 - iAudio X5" |
| echo "13 - iPod Color/Photo" |
| echo "14 - iPod Nano" |
| echo "15 - iPod Video" |
| echo "16 - iPod 3G" |
| echo "17 - iPod 4G (Grayscale)" |
| echo "18 - iPod Mini (1G)" |
| echo "19 - iriver iFP-790" |
| echo "20 - Toshiba Gigabeat F" |
| echo "21 - iPod Mini 2G" |
| echo "22 - iriver H10 20Gb" |
| echo "23 - SanDisk Sansa e200" |
| echo "24 - iriver H10 5/6Gb" |
| |
| target_id=`input`; |
| |
| # Set of tools built for all target platforms: |
| toolset="rdf2binary convbdf" |
| |
| # Toolsets for some target families: |
| archosbitmaptools="$toolset scramble descramble sh2d uclpack bmp2rb codepages" |
| iriverbitmaptools="$toolset scramble descramble mkboot bmp2rb codepages" |
| iaudiobitmaptools="$toolset scramble descramble mkboot bmp2rb codepages" |
| ipodbitmaptools="$toolset scramble ipod_fw bmp2rb codepages" |
| # generic is used by Gigabeat, IFP, H10, Sansa-e200 |
| genericbitmaptools="$toolset bmp2rb codepages" |
| |
| case $target_id in |
| |
| 1) |
| archos="player" |
| target="-DARCHOS_PLAYER" |
| shcc |
| tool="$rootdir/tools/scramble" |
| output="archos.mod" |
| appextra="player:gui" |
| archosrom="$pwd/rombox.ucl" |
| flash="$pwd/rockbox.ucl" |
| plugins="yes" |
| codecs="" |
| |
| # toolset is the tools within the tools directory that we build for |
| # this particular target. |
| toolset="$toolset scramble descramble sh2d generate_rocklatin uclpack" |
| |
| # Note: the convbdf is present in the toolset just because: 1) the |
| # firmware/Makefile assumes it is present always, and 2) we will need it when we |
| # build the player simulator |
| |
| ;; |
| |
| 2) |
| archos="recorder" |
| target="-DARCHOS_RECORDER" |
| shcc |
| tool="$rootdir/tools/scramble" |
| bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" |
| bmp2rb_native="$rootdir/tools/bmp2rb -f 0" |
| output="ajbrec.ajz" |
| appextra="recorder:gui" |
| archosrom="$pwd/rombox.ucl" |
| flash="$pwd/rockbox.ucl" |
| plugins="yes" |
| codecs="" |
| # toolset is the tools within the tools directory that we build for |
| # this particular target. |
| toolset=$archosbitmaptools |
| ;; |
| |
| 3) |
| archos="fmrecorder" |
| target="-DARCHOS_FMRECORDER" |
| shcc |
| tool="$rootdir/tools/scramble -fm" |
| bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" |
| bmp2rb_native="$rootdir/tools/bmp2rb -f 0" |
| output="ajbrec.ajz" |
| appextra="recorder:gui" |
| archosrom="$pwd/rombox.ucl" |
| flash="$pwd/rockbox.ucl" |
| plugins="yes" |
| codecs="" |
| # toolset is the tools within the tools directory that we build for |
| # this particular target. |
| toolset=$archosbitmaptools |
| ;; |
| |
| 4) |
| archos="recorderv2" |
| target="-DARCHOS_RECORDERV2" |
| shcc |
| tool="$rootdir/tools/scramble -v2" |
| bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" |
| bmp2rb_native="$rootdir/tools/bmp2rb -f 0" |
| output="ajbrec.ajz" |
| appextra="recorder:gui" |
| archosrom="$pwd/rombox.ucl" |
| flash="$pwd/rockbox.ucl" |
| plugins="yes" |
| codecs="" |
| # toolset is the tools within the tools directory that we build for |
| # this particular target. |
| toolset=$archosbitmaptools |
| ;; |
| |
| 5) |
| archos="gmini120" |
| target="-DARCHOS_GMINI120" |
| memory=16 # fixed size (16 is a guess, remove comment when checked) |
| calmrisccc |
| tool="cp" # might work for now! |
| bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" |
| bmp2rb_native="$rootdir/tools/bmp2rb -f 0" |
| output="rockbox.gmini" |
| appextra="recorder:gui" |
| archosrom="" |
| flash="" |
| plugins="" # disabled for now, enable later on |
| codecs="libmad" |
| # toolset is the tools within the tools directory that we build for |
| # this particular target. |
| toolset="$toolset bmp2rb codepages" |
| ;; |
| |
| 6) |
| archos="gminisp" |
| target="-DARCHOS_GMINISP" |
| memory=16 # fixed size (16 is a guess, remove comment when checked) |
| calmrisccc |
| tool="cp" # might work for now! |
| bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" |
| bmp2rb_native="$rootdir/tools/bmp2rb -f 0" |
| output="rockbox.gmini" |
| appextra="recorder:gui" |
| archosrom="" |
| flash="" |
| plugins="" # disabled for now, enable later on |
| codecs="libmad" |
| # toolset is the tools within the tools directory that we build for |
| # this particular target. |
| toolset="$toolset bmp2rb codepages" |
| ;; |
| |
| 7) |
| archos="ondiosp" |
| target="-DARCHOS_ONDIOSP" |
| shcc |
| tool="$rootdir/tools/scramble -osp" |
| bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" |
| bmp2rb_native="$rootdir/tools/bmp2rb -f 0" |
| output="ajbrec.ajz" |
| appextra="recorder:gui" |
| archosrom="$pwd/rombox.ucl" |
| flash="$pwd/rockbox.ucl" |
| plugins="yes" |
| codecs="" |
| # toolset is the tools within the tools directory that we build for |
| # this particular target. |
| toolset=$archosbitmaptools |
| ;; |
| |
| 8) |
| archos="ondiofm" |
| target="-DARCHOS_ONDIOFM" |
| shcc |
| tool="$rootdir/tools/scramble -ofm" |
| bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" |
| bmp2rb_native="$rootdir/tools/bmp2rb -f 0" |
| output="ajbrec.ajz" |
| appextra="recorder:gui" |
| archosrom="$pwd/rombox.ucl" |
| flash="$pwd/rockbox.ucl" |
| plugins="yes" |
| codecs="" |
| toolset=$archosbitmaptools |
| ;; |
| |
| 9) |
| archos="h120" |
| target="-DIRIVER_H120" |
| memory=32 # always |
| coldfirecc |
| tool="$rootdir/tools/scramble -add=h120" |
| bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" |
| bmp2rb_native="$rootdir/tools/bmp2rb -f 2" |
| bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0" |
| bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0" |
| output="rockbox.iriver" |
| appextra="recorder:gui" |
| archosrom="" |
| flash="" |
| plugins="yes" |
| codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a" |
| # toolset is the tools within the tools directory that we build for |
| # this particular target. |
| toolset=$iriverbitmaptools |
| ;; |
| |
| 10) |
| archos="h300" |
| target="-DIRIVER_H300" |
| memory=32 # always |
| coldfirecc |
| tool="$rootdir/tools/scramble -add=h300" |
| bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" |
| bmp2rb_native="$rootdir/tools/bmp2rb -f 4" |
| bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0" |
| bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0" |
| output="rockbox.iriver" |
| appextra="recorder:gui" |
| archosrom="" |
| flash="" |
| plugins="yes" |
| codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a" |
| # toolset is the tools within the tools directory that we build for |
| # this particular target. |
| toolset=$iriverbitmaptools |
| ;; |
| |
| 11) |
| archos="h100" |
| target="-DIRIVER_H100" |
| memory=16 # always |
| coldfirecc |
| tool="$rootdir/tools/scramble -add=h100" |
| bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" |
| bmp2rb_native="$rootdir/tools/bmp2rb -f 2" |
| bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0" |
| bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0" |
| output="rockbox.iriver" |
| appextra="recorder:gui" |
| archosrom="" |
| flash="" |
| plugins="yes" |
| codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a" |
| # toolset is the tools within the tools directory that we build for |
| # this particular target. |
| toolset=$iriverbitmaptools |
| ;; |
| |
| 12) |
| archos="x5" |
| target="-DIAUDIO_X5" |
| memory=16 # always |
| coldfirecc |
| tool="$rootdir/tools/scramble -add=iax5" |
| bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" |
| bmp2rb_native="$rootdir/tools/bmp2rb -f 4" |
| bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0" |
| bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 7" |
| output="rockbox.iaudio" |
| appextra="recorder:gui" |
| archosrom="" |
| flash="" |
| plugins="yes" |
| codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a" |
| # toolset is the tools within the tools directory that we build for |
| # this particular target. |
| toolset="$iaudiobitmaptools" |
| # architecture, manufacturer and model for the target-tree build |
| t_cpu="coldfire" |
| t_manufacturer="iaudio" |
| t_model="x5" |
| ;; |
| |
| 13) |
| archos="ipodcolor" |
| target="-DIPOD_COLOR" |
| memory=32 # always |
| arm7tdmicc |
| tool="$rootdir/tools/scramble -add=ipco" |
| bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" |
| bmp2rb_native="$rootdir/tools/bmp2rb -f 5" |
| output="rockbox.ipod" |
| appextra="recorder:gui" |
| archosrom="" |
| flash="" |
| plugins="yes" |
| codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a" |
| # toolset is the tools within the tools directory that we build for |
| # this particular target. |
| toolset=$ipodbitmaptools |
| ;; |
| |
| 14) |
| archos="ipodnano" |
| target="-DIPOD_NANO" |
| memory=32 # always |
| arm7tdmicc |
| tool="$rootdir/tools/scramble -add=nano" |
| bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" |
| bmp2rb_native="$rootdir/tools/bmp2rb -f 5" |
| output="rockbox.ipod" |
| appextra="recorder:gui" |
| archosrom="" |
| flash="" |
| plugins="yes" |
| codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a" |
| # toolset is the tools within the tools directory that we build for |
| # this particular target. |
| toolset=$ipodbitmaptools |
| ;; |
| |
| 15) |
| archos="ipodvideo" |
| target="-DIPOD_VIDEO" |
| memory=32 # 30GB models have 32MB, 60GB have 64MB |
| arm7tdmicc |
| tool="$rootdir/tools/scramble -add=ipvd" |
| bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" |
| bmp2rb_native="$rootdir/tools/bmp2rb -f 4" |
| output="rockbox.ipod" |
| appextra="recorder:gui" |
| archosrom="" |
| flash="" |
| plugins="yes" |
| codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a" |
| # toolset is the tools within the tools directory that we build for |
| # this particular target. |
| toolset=$ipodbitmaptools |
| ;; |
| |
| 16) |
| archos="ipod3g" |
| target="-DIPOD_3G" |
| memory=32 # always |
| arm7tdmicc |
| tool="$rootdir/tools/scramble -add=ip3g" |
| bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" |
| bmp2rb_native="$rootdir/tools/bmp2rb -f 6" |
| output="rockbox.ipod" |
| appextra="recorder:gui" |
| archosrom="" |
| flash="" |
| plugins="yes" |
| codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a" |
| # toolset is the tools within the tools directory that we build for |
| # this particular target. |
| toolset=$ipodbitmaptools |
| ;; |
| |
| 17) |
| archos="ipod4g" |
| target="-DIPOD_4G" |
| memory=32 # always |
| arm7tdmicc |
| tool="$rootdir/tools/scramble -add=ip4g" |
| bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" |
| bmp2rb_native="$rootdir/tools/bmp2rb -f 6" |
| output="rockbox.ipod" |
| appextra="recorder:gui" |
| archosrom="" |
| flash="" |
| plugins="yes" |
| codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a" |
| # toolset is the tools within the tools directory that we build for |
| # this particular target. |
| toolset=$ipodbitmaptools |
| ;; |
| |
| 18) |
| archos="ipodmini" |
| target="-DIPOD_MINI" |
| memory=32 # always |
| arm7tdmicc |
| tool="$rootdir/tools/scramble -add=mini" |
| bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" |
| bmp2rb_native="$rootdir/tools/bmp2rb -f 6" |
| output="rockbox.ipod" |
| appextra="recorder:gui" |
| archosrom="" |
| flash="" |
| plugins="yes" |
| codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a" |
| # toolset is the tools within the tools directory that we build for |
| # this particular target. |
| toolset=$ipodbitmaptools |
| ;; |
| |
| 19) |
| archos="ifp7xx" |
| target="-DIRIVER_IFP7XX" |
| memory=1 |
| arm7tdmicc short |
| tool="cp" |
| bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" |
| bmp2rb_native="$rootdir/tools/bmp2rb -f 0" |
| output="rockbox.wma" |
| appextra="recorder:gui" |
| archosrom="" |
| flash="" |
| plugins="yes" |
| codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a" |
| # toolset is the tools within the tools directory that we build for |
| # this particular target. |
| toolset=$genericbitmaptools |
| ;; |
| |
| 20) |
| archos="gigabeatf" |
| target="-DGIGABEAT_F" |
| memory=32 # always |
| arm9tdmicc |
| tool="cp" |
| bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" |
| bmp2rb_native="$rootdir/tools/bmp2rb -f 4" |
| output="rockbox.gigabeat" |
| appextra="recorder:gui" |
| archosrom="" |
| flash="" |
| plugins="yes" |
| codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a" |
| toolset=$genericbitmaptools |
| # architecture, manufacturer and model for the target-tree build |
| t_cpu="arm" |
| t_manufacturer="gigabeat" |
| t_model="meg-fx" |
| ;; |
| |
| 21) |
| archos="ipodmini2g" |
| target="-DIPOD_MINI2G" |
| memory=32 # always |
| arm7tdmicc |
| tool="$rootdir/tools/scramble -add=mn2g" |
| bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" |
| bmp2rb_native="$rootdir/tools/bmp2rb -f 6" |
| output="rockbox.ipod" |
| appextra="recorder:gui" |
| archosrom="" |
| flash="" |
| plugins="yes" |
| codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a" |
| # toolset is the tools within the tools directory that we build for |
| # this particular target. |
| toolset=$ipodbitmaptools |
| ;; |
| |
| 22) |
| archos="h10" |
| target="-DIRIVER_H10" |
| memory=32 # always |
| arm7tdmicc |
| tool="$rootdir/tools/mkmi4.sh h10" |
| bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" |
| bmp2rb_native="$rootdir/tools/bmp2rb -f 5" |
| output="H10_20GC.mi4" |
| appextra="recorder:gui" |
| archosrom="" |
| flash="" |
| plugins="yes" |
| codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a" |
| # toolset is the tools within the tools directory that we build for |
| # this particular target. |
| toolset=$genericbitmaptools |
| # architecture, manufacturer and model for the target-tree build |
| t_cpu="arm" |
| t_manufacturer="iriver" |
| t_model="h10" |
| ;; |
| |
| 23) |
| archos="e200" |
| target="-DSANSA_E200" |
| memory=32 # supposedly |
| arm7tdmicc |
| tool="$rootdir/tools/mkmi4.sh e200" |
| bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" |
| bmp2rb_native="$rootdir/tools/bmp2rb -f 5" |
| output="PP5022.mi4" |
| appextra="recorder:gui" |
| archosrom="" |
| flash="" |
| plugins="yes" |
| codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a" |
| # toolset is the tools within the tools directory that we build for |
| # this particular target. |
| toolset=$genericbitmaptools |
| # architecture, manufacturer and model for the target-tree build |
| t_cpu="arm" |
| t_manufacturer="sandisk" |
| t_model="sansa-e200" |
| ;; |
| |
| 24) |
| archos="h10_5gb" |
| target="-DIRIVER_H10_5GB" |
| memory=32 # always |
| arm7tdmicc |
| tool="$rootdir/tools/mkmi4.sh h10_5gb" |
| bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" |
| bmp2rb_native="$rootdir/tools/bmp2rb -f 5" |
| output="H10.mi4" |
| appextra="recorder:gui" |
| archosrom="" |
| flash="" |
| plugins="yes" |
| codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a" |
| # toolset is the tools within the tools directory that we build for |
| # this particular target. |
| toolset=$genericbitmaptools |
| # architecture, manufacturer and model for the target-tree build |
| t_cpu="arm" |
| t_manufacturer="iriver" |
| t_model="h10" |
| ;; |
| |
| *) |
| echo "Please select an actual target platform!" |
| exit |
| ;; |
| |
| esac |
| |
| echo "Platform set to $archos" |
| |
| |
| ############################################################################ |
| # Amount of memory, for those that can differ. |
| # |
| |
| if [ -z "$memory" ]; then |
| size="2" |
| if [ -z "$update" ]; then |
| echo "Enter size of your RAM (in MB): (defaults to 2)" |
| size=`input`; |
| fi |
| |
| case $size in |
| 8) |
| memory="8" |
| ;; |
| *) |
| memory="2" |
| ;; |
| |
| esac |
| echo "Memory size selected: $memory MB" |
| fi |
| |
| ################################################################## |
| # Figure out build "type" |
| # |
| |
| # the ifp7x0 is the only platform that supports building a gdb stub like |
| # this |
| case $archos in |
| ifp7xx) |
| gdbstub="(G)DB stub, " |
| ;; |
| *) |
| ;; |
| esac |
| |
| echo "" |
| echo "Build (N)ormal, (D)evel, (S)imulator, (B)ootloader, $gdbstub(M)anual? (N)" |
| |
| option=`input`; |
| |
| case $option in |
| [Bb]) |
| case $archos in |
| h100|h120|h300|x5|ipodcolor|ipodnano|ipodvideo|ipod3g|ipod4g|ipodmini|ipodmini2g|gigabeatf|h10|e200|h10_5gb) |
| extradefines="-DBOOTLOADER" # for target makefile symbol EXTRA_DEFINES |
| appsdir='\$(ROOTDIR)/bootloader' |
| apps="bootloader" |
| ;; |
| *) |
| extradefines="-DBOOTLOADER -ffunction-sections -fdata-sections" |
| appsdir='\$(ROOTDIR)/flash/bootbox' |
| apps="bootbox" |
| ;; |
| esac |
| bootloader="1" |
| echo "Bootloader build selected" |
| ;; |
| [Ss]) |
| debug="-DDEBUG" |
| simulator="yes" |
| extradefines="-DSIMULATOR" |
| echo "Simulator build selected" |
| whichsim |
| ;; |
| [Dd]) |
| echo "Devel build selected" |
| whichdevel |
| ;; |
| [Gg]) |
| extradefines="-DSTUB" # for target makefile symbol EXTRA_DEFINES |
| appsdir='\$(ROOTDIR)/gdb' |
| apps="stub" |
| case $archos in |
| ifp7xx) |
| output="stub.wma" |
| ;; |
| *) |
| ;; |
| esac |
| echo "GDB stub build selected" |
| ;; |
| [Mm]) |
| appsdir='\$(ROOTDIR)/manual' |
| firmdir='\$(ROOTDIR)/manual/platform' # No Makefile here. Effectively ignores target |
| toolsdir=$firmdir; |
| toolset=''; |
| apps="manual" |
| case $archos in |
| fmrecorder) |
| archos="recorderv2fm" |
| ;; |
| recorderv2) |
| archos="recorderv2fm" |
| ;; |
| h1??) |
| archos="h1xx" |
| ;; |
| ipodmini2g) |
| archos="ipodmini" |
| ;; |
| *) |
| ;; |
| esac |
| echo "Manual build selected" |
| ;; |
| *) |
| debug="" |
| echo "Normal build selected" |
| GCCOPTS="$GCCOPTS $GCCOPTIMIZE" |
| ;; |
| |
| esac |
| |
| |
| whichaddr |
| |
| # this was once possible to change at build-time, but no more: |
| language="english" |
| |
| uname=`uname` |
| |
| if [ "yes" = "$simulator" ]; then |
| # setup compiler and things for simulator |
| simcc |
| |
| if [ -d "archos" ]; then |
| echo "sub directory archos already present" |
| else |
| mkdir archos |
| echo "created an archos subdirectory for simulating the hard disk" |
| fi |
| fi |
| |
| # Now, figure out version number of the (gcc) compiler we are about to use |
| gccver=`$CC -dumpversion`; |
| |
| if [ -z "$gccver" ]; then |
| echo "WARNING: The compiler you must use ($CC) is not in your path!" |
| echo "WARNING: this may cause your build to fail since we cannot do the" |
| echo "WARNING: checks we want now." |
| else |
| |
| # gccver should now be "3.3.5", "3.4.3", "2.95.3-6" and similar, but don't |
| # DEPEND on it |
| |
| num1=`echo $gccver | cut -d . -f1` |
| num2=`echo $gccver | cut -d . -f2` |
| gccnum=`(expr $num1 "*" 100 + $num2) 2>/dev/null` |
| |
| # This makes: |
| # 3.3.X => 303 |
| # 3.4.X => 304 |
| # 2.95.3 => 295 |
| |
| echo "Using $CC $gccver ($gccnum)" |
| |
| if test "$gccnum" -ge "400"; then |
| # gcc 4.0 is just *so* much pickier on arguments that differ in signedness |
| # so we ignore that warnings for now |
| # -Wno-pointer-sign |
| GCCOPTS="$GCCOPTS -Wno-pointer-sign" |
| fi |
| |
| if test "$gccnum" -ge "401"; then |
| # this is a lame hack to avoid "warning: dereferencing type-punned pointer |
| # will break strict-aliasing rules" |
| |
| GCCOPTS="$GCCOPTS -fno-strict-aliasing" |
| fi |
| |
| fi |
| |
| # check the compiler for SH platforms |
| if test "$CC" = "sh-elf-gcc"; then |
| if test "$gccnum" -lt "400"; then |
| echo "WARNING: Consider upgrading your compiler to the 4.0.X series!" |
| echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler" |
| else |
| # figure out patch status |
| gccpatch=`$CC --version`; |
| |
| if { echo $gccpatch | grep "rockbox" >/dev/null 2>&1; } then |
| echo "gcc $gccver is rockbox patched" |
| # then convert -O to -Os to get smaller binaries! |
| GCCOPTS=`echo $GCCOPTS | sed 's/ -O / -Os /'` |
| else |
| echo "WARNING: You use an unpatched gcc compiler: $gccver" |
| echo "WARNING: http://www.rockbox.org/twiki/bin/view/Main/CrossCompiler" |
| fi |
| fi |
| fi |
| |
| if test "$1" = "--ccache"; then |
| echo "Enable ccache for building" |
| ccache="ccache" |
| else |
| if test "$1" != "--no-ccache"; then |
| ccache=`findtool ccache` |
| if test -n "$ccache"; then |
| echo "Found and uses ccache ($ccache)" |
| fi |
| fi |
| fi |
| |
| if test -n "$ccache"; then |
| CC="$ccache $CC" |
| fi |
| |
| if test "X$endian" = "Xbig"; then |
| defendian="ROCKBOX_BIG_ENDIAN" |
| else |
| defendian="ROCKBOX_LITTLE_ENDIAN" |
| fi |
| |
| sed > autoconf.h \ |
| -e "s,@ENDIAN@,${defendian},g" \ |
| -e "s,^#undef ROCKBOX_HAS_LOGF,$use_logf,g" \ |
| -e "s,@SIMSOUND@,$use_simsound,g" \ |
| <<EOF |
| /* This header was made by configure */ |
| #ifndef __BUILD_AUTOCONF_H |
| #define __BUILD_AUTOCONF_H |
| |
| /* Define endianess for the target or simulator platform */ |
| #define @ENDIAN@ 1 |
| |
| /* Define this if you build rockbox to support the logf logging and display */ |
| #undef ROCKBOX_HAS_LOGF |
| |
| /* Define this if you have the linux/soundcard.h header and thus can compile |
| the sound-playing code in the X11 sim */ |
| @SIMSOUND@ |
| |
| #endif /* __BUILD_AUTOCONF_H */ |
| EOF |
| |
| if test -n "$t_cpu"; then |
| TARGET_INC="-I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer/$t_model" |
| TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer" |
| TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu" |
| GCCOPTS="$GCCOPTS" |
| fi |
| |
| if test "$simulator" = "yes"; then |
| # add simul make stuff on the #SIMUL# line |
| simmagic1="s,@SIMUL1@,@\$(MAKE) -C \$(SIMDIR) OBJDIR=\$(BUILDDIR)/sim," |
| simmagic2="s,@SIMUL2@,@\$(MAKE) -C \$(ROOTDIR)/uisimulator/common OBJDIR=\$(BUILDDIR)/comsim," |
| else |
| # delete the lines that match |
| simmagic1='/@SIMUL1@/D' |
| simmagic2='/@SIMUL2@/D' |
| fi |
| |
| sed > Makefile \ |
| -e "s,@ROOTDIR@,${rootdir},g" \ |
| -e "s,@DEBUG@,${debug},g" \ |
| -e "s,@MEMORY@,${memory},g" \ |
| -e "s,@TARGET_ID@,${target_id},g" \ |
| -e "s,@TARGET@,${target},g" \ |
| -e "s,@ARCHOS@,${archos},g" \ |
| -e "s,@LANGUAGE@,${language},g" \ |
| -e "s,@PWD@,${pwd},g" \ |
| -e "s,@CC@,${CC},g" \ |
| -e "s,@LD@,${LD},g" \ |
| -e "s,@AR@,${AR},g" \ |
| -e "s,@AS@,${AS},g" \ |
| -e "s,@OC@,${OC},g" \ |
| -e "s,@WINDRES@,${WINDRES},g" \ |
| -e "s,@DLLTOOL@,${DLLTOOL},g" \ |
| -e "s,@DLLWRAP@,${DLLWRAP},g" \ |
| -e "s,@RANLIB@,${RANLIB},g" \ |
| -e "s,@TOOL@,${tool},g" \ |
| -e "s,@BMP2RB_NATIVE@,${bmp2rb_native},g" \ |
| -e "s,@BMP2RB_MONO@,${bmp2rb_mono},g" \ |
| -e "s,@BMP2RB_REMOTENATIVE@,${bmp2rb_remotenative},g" \ |
| -e "s,@BMP2RB_REMOTEMONO@,${bmp2rb_remotemono},g" \ |
| -e "s,@OUTPUT@,${output},g" \ |
| -e "s,@APPEXTRA@,${appextra},g" \ |
| -e "s,@ARCHOSROM@,${archosrom},g" \ |
| -e "s,@FLASHFILE@,${flash},g" \ |
| -e "s,@PLUGINS@,${plugins},g" \ |
| -e "s,@CODECS@,${codecs},g" \ |
| -e "s,@PROFILE_OPTS@,${PROFILE_OPTS},g" \ |
| -e "s,@GCCOPTS@,${GCCOPTS},g" \ |
| -e "s,@TARGET_INC@,${TARGET_INC},g" \ |
| -e "s!@LDOPTS@!${LDOPTS}!g" \ |
| -e "s,@LOADADDRESS@,${loadaddress},g" \ |
| -e "s,@EXTRADEF@,${extradefines},g" \ |
| -e "s,@APPSDIR@,${appsdir},g" \ |
| -e "s,@FIRMDIR@,${firmdir},g" \ |
| -e "s,@TOOLSDIR@,${toolsdir},g" \ |
| -e "s,@APPS@,${apps},g" \ |
| -e "s,@SIMVER@,${simver},g" \ |
| -e "s,@GCCVER@,${gccver},g" \ |
| -e "s,@GCCNUM@,${gccnum},g" \ |
| -e "s,@UNAME@,${uname},g" \ |
| -e "s,@ENDIAN@,${defendian},g" \ |
| -e "s,@TOOLSET@,${toolset},g" \ |
| -e "${simmagic1}" \ |
| -e "${simmagic2}" \ |
| <<EOF |
| ## Automaticly generated. http://www.rockbox.org/ |
| |
| ifndef V |
| SILENT=@ |
| else |
| VERBOSEOPT=-v |
| endif |
| |
| export ROOTDIR=@ROOTDIR@ |
| export FIRMDIR=@FIRMDIR@ |
| export APPSDIR=@APPSDIR@ |
| export TOOLSDIR=@TOOLSDIR@ |
| export DOCSDIR=\$(ROOTDIR)/docs |
| export MANUALDIR=\${ROOTDIR}/manual |
| export DEBUG=@DEBUG@ |
| export ARCHOS=@ARCHOS@ |
| export ARCHOSROM=@ARCHOSROM@ |
| export FLASHFILE=@FLASHFILE@ |
| export TARGET_ID=@TARGET_ID@ |
| export TARGET=@TARGET@ |
| export OBJDIR=@PWD@ |
| export BUILDDIR=@PWD@ |
| export LANGUAGE=@LANGUAGE@ |
| export MEMORYSIZE=@MEMORY@ |
| export VERSION=\$(shell date +%y%m%d-%H%M) |
| export BUILDDATE=\$(shell date +'-DYEAR=%Y -DMONTH=%m -DDAY=%d') |
| export MKFIRMWARE=@TOOL@ |
| export BMP2RB_MONO=@BMP2RB_MONO@ |
| export BMP2RB_NATIVE=@BMP2RB_NATIVE@ |
| export BMP2RB_REMOTEMONO=@BMP2RB_REMOTEMONO@ |
| export BMP2RB_REMOTENATIVE=@BMP2RB_REMOTENATIVE@ |
| export BINARY=@OUTPUT@ |
| export APPEXTRA=@APPEXTRA@ |
| export ENABLEDPLUGINS=@PLUGINS@ |
| export SOFTWARECODECS=@CODECS@ |
| export EXTRA_DEFINES=@EXTRADEF@ |
| export HOSTCC=gcc |
| export CC=@CC@ |
| export LD=@LD@ |
| export AR=@AR@ |
| export AS=@AS@ |
| export OC=@OC@ |
| export WINDRES=@WINDRES@ |
| export DLLTOOL=@DLLTOOL@ |
| export DLLWRAP=@DLLWRAP@ |
| export RANLIB=@RANLIB@ |
| export PROFILE_OPTS=@PROFILE_OPTS@ |
| export GCCOPTS=@GCCOPTS@ |
| export TARGET_INC=@TARGET_INC@ |
| export LOADADDRESS=@LOADADDRESS@ |
| export SIMVER=@SIMVER@ |
| export SIMDIR=\$(ROOTDIR)/uisimulator/\$(SIMVER) |
| export LDOPTS=@LDOPTS@ |
| export GCCVER=@GCCVER@ |
| export GCCNUM=@GCCNUM@ |
| export UNAME=@UNAME@ |
| |
| # Do not print "Entering directory ..." |
| MAKEFLAGS += --no-print-directory |
| |
| .PHONY: all clean tags zip tools manual |
| |
| all: tools |
| @SIMUL1@ |
| @SIMUL2@ |
| \$(SILENT)\$(MAKE) -C \$(FIRMDIR) OBJDIR=\$(BUILDDIR)/firmware |
| \$(SILENT)\$(MAKE) -C \$(APPSDIR) OBJDIR=\$(BUILDDIR)/@APPS@ |
| |
| bin: tools |
| @SIMUL1@ |
| @SIMUL2@ |
| \$(SILENT)\$(MAKE) -C \$(FIRMDIR) OBJDIR=\$(BUILDDIR)/firmware |
| \$(SILENT)\$(MAKE) -C \$(APPSDIR) OBJDIR=\$(BUILDDIR)/@APPS@ \$(BUILDDIR)/\$(BINARY) |
| |
| veryclean: clean toolsclean |
| |
| toolsclean: |
| \$(SILENT)\$(MAKE) -C \$(TOOLSDIR) clean |
| |
| clean: |
| \$(SILENT)echo Cleaning build directory |
| \$(SILENT)rm -rf rockbox.zip TAGS @APPS@ firmware comsim sim lang.[ch]\ |
| manual *.pdf *.a credits.raw @OUTPUT@ bitmaps pluginbitmaps \ |
| @ARCHOSROM@ @FLASHFILE@ UI256.bmp rockbox-full.zip |
| |
| tools: |
| \$(SILENT)\$(MAKE) -C \$(TOOLSDIR) CC=\$(HOSTCC) @TOOLSET@ |
| |
| tags: |
| \$(SILENT)rm -f TAGS |
| \$(SILENT)\$(MAKE) -C \$(FIRMDIR) tags |
| \$(SILENT)\$(MAKE) -C \$(APPSDIR) tags |
| \$(SILENT)\$(MAKE) -C \$(APPSDIR)/plugins tags |
| \$(SILENT)\$(MAKE) -C \$(APPSDIR)/plugins/lib tags |
| |
| fontzip: |
| \$(SILENT)\$(TOOLSDIR)/buildzip.pl \$(VERBOSEOPT) -t \"\$(ARCHOS)\" -r "\$(ROOTDIR)" -f 1 -o rockbox-fonts.zip \$(TARGET) \$(BINARY) |
| |
| zip: |
| \$(SILENT)\$(TOOLSDIR)/buildzip.pl \$(VERBOSEOPT) -t \"\$(ARCHOS)\" -r "\$(ROOTDIR)" \$(TARGET) \$(BINARY) |
| |
| fullzip: |
| \$(SILENT)\$(TOOLSDIR)/buildzip.pl \$(VERBOSEOPT) -t \"\$(ARCHOS)\" -r "\$(ROOTDIR)" -f 2 -o rockbox-full.zip \$(TARGET) \$(BINARY) |
| |
| 7zip: |
| \$(SILENT)\$(TOOLSDIR)/buildzip.pl \$(VERBOSEOPT) -t \"\$(ARCHOS)\" -o "rockbox.7z" -z "7za a" -r "\$(ROOTDIR)" \$(TARGET) \$(BINARY) |
| |
| tar: |
| \$(SILENT)rm -f rockbox.tar |
| \$(SILENT)\$(TOOLSDIR)/buildzip.pl \$(VERBOSEOPT) -t \"\$(ARCHOS)\" -o "rockbox.tar" -z "tar --no-recursion -uf" -r "\$(ROOTDIR)" \$(TARGET) \$(BINARY) |
| |
| bzip2: tar |
| \$(SILENT)bzip2 -f9 rockbox.tar |
| |
| gzip: tar |
| \$(SILENT)gzip -f9 rockbox.tar |
| |
| manual: manual-pdf |
| manual-pdf: |
| \$(SILENT)\$(MAKE) -C \$(MANUALDIR) OBJDIR=\$(BUILDDIR)/manual manual-pdf |
| |
| manual-html: |
| \$(SILENT)\$(MAKE) -C \$(MANUALDIR) OBJDIR=\$(BUILDDIR)/manual manual-html |
| |
| manual-zip: |
| \$(SILENT)\$(MAKE) -C \$(MANUALDIR) OBJDIR=\$(BUILDDIR)/manual manual-zip |
| |
| help: |
| @echo "A few helpful make targets" |
| @echo "" |
| @echo "all - builds a full Rockbox (default), including tools" |
| @echo "clean - cleans a build directory (not tools)" |
| @echo "veryclean - cleans the build and tools directories" |
| @echo "manual - builds a manual" |
| @echo "manual-html - HTML manual" |
| @echo "manual-zip - HTML manual (zipped)" |
| @echo "fullzip - creates a rockbox.zip of your build with fonts" |
| @echo "zip - creates a rockbox.zip of your build (no fonts)" |
| @echo "gzip - creates a rockbox.tar.gz of your build (no fonts)" |
| @echo "bzip2 - creates a rockbox.tar.bz2 of your build (no fonts)" |
| @echo "7zip - creates a rockbox.7z of your build (no fonts)" |
| @echo "fontzip - creates rockbox-fonts.zip" |
| @echo "tools - builds the tools only" |
| @echo "install - installs your build (for simulator builds only)" |
| |
| EOF |
| |
| if [ "yes" = "$simulator" ]; then |
| |
| cat >> Makefile <<EOF |
| |
| install: |
| @echo "installing a full setup in your archos dir" |
| @(\$(MAKE) fullzip && cd archos && unzip -oq ../rockbox-full.zip) |
| EOF |
| |
| fi |
| |
| echo "Created Makefile" |