#!/bin/sh # __________ __ ___. # Open \______ \ ____ ____ | | _\_ |__ _______ ___ # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ # \/ \/ \/ \/ \/ # $Id$ # # # Begin Function Definitions # input() { read response echo $response } whichsim () { if [ -z "$simver" ]; then ################################################################## # Figure out win32/x11 GUI # echo "" echo "Build (W)in32 or (X)11 GUI version? (X)" option=`input`; case $option in [Ww]) simver="win32" ;; *) simver="x11" ;; esac echo "Selected $simver simulator" fi } simul () { sed > Makefile \ -e "s,@ROOTDIR@,${rootdir},g" \ -e "s,@ARCHOS@,${archos},g" \ -e "s,@DEBUG@,${debug},g" \ -e "s,@DISPLAY@,${display},g" \ -e "s,@KEYPAD@,${keypad},g" \ -e "s,@PWD@,${pwd},g" \ -e "s,@LANGUAGE@,${language},g" \ -e "s,@SIMVER@,${simver},g" \ </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`; if [ "$target" = "update" ]; then update="1" target="" if [ -f Makefile ]; then if { grep "^## Auto" Makefile >/dev/null 2>&1 ; } then echo "Existing generated Makefile found. Getting defaults from it." archos=`grep "^ARCHOS=" Makefile | cut -d= -f2-` debug=`grep "^DEBUG=" Makefile | cut -d= -f2-` language=`grep "^LANGUAGE=" Makefile | cut -d= -f2-` memory=`grep "^MEMORYSIZE=" Makefile | cut -d= -f2-` rootdir=`grep "^ROOTDIR=" Makefile | cut -d= -f2-` if [ "$debug" = "SIMULATOR=1" ]; then simulator="yes" display=`grep "^DISPLAY=" Makefile | cut -d= -f2-` keypad=`grep "^KEYPAD=" Makefile | cut -d= -f2-` simver=`grep "^SIMVER=" Makefile | cut -d= -f2-` else target=`grep "^TARGET=" Makefile | cut -d= -f2-` fi fi fi else echo "This script will setup your Rockbox build environment." echo "Further docs here: http://rockbox.haxx.se/docs/" echo "" fi if [ -z "$archos" ]; then ################################################################## # Figure out target platform # echo "Enter target platform: (default is Archos Recorder)" echo "1 - Archos Player/Studio" echo "2 - Archos Recorder" echo "3 - Archos FM Recorder" echo "4 - Archos Recorder v2" echo "5 - Neo mStation" echo "6 - Neo 35" getit=`input`; case $getit in 1) archos="player" target="-DARCHOS_PLAYER" display="-DHAVE_LCD_CHARCELLS" keypad="-DHAVE_PLAYER_KEYPAD" ;; 3) archos="fmrecorder" target="-DARCHOS_FMRECORDER" display="-DHAVE_LCD_BITMAP" keypad="-DHAVE_RECORDER_KEYPAD" ;; 4) archos="recorderv2" target="-DARCHOS_RECORDERV2" display="-DHAVE_LCD_BITMAP" keypad="-DHAVE_RECORDER_KEYPAD" ;; 5) archos="neomstation" target="-DNEO_MSTATION" display="-DHAVE_NEOLCD_CHARCELLS" keypad="-DHAVE_NEO_KEYPAD" ;; 6) archos="neo35" target="-DNEO_35" display="-DHAVE_NEOLCD_CHARCELLS" keypad="-DHAVE_NEO_KEYPAD" ;; *) archos="recorder" target="-DARCHOS_RECORDER" display="-DHAVE_LCD_BITMAP" keypad="-DHAVE_RECORDER_KEYPAD" ;; esac echo "Platform set to $archos" fi 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 if [ -z "$debug" ]; then ################################################################## # Figure out debug on/off # echo "Build (N)ormal, (D)ebug or (S)imulated version? (N)" option=`input`; case $option in [Ss]) debug="SIMULATOR=1" simulator="yes" echo "Simulator build selected" whichsim ;; [Dd]) debug="DEBUG=1" echo "Debug build selected" ;; *) debug="NODEBUG=1" echo "Normal build selected" ;; esac fi 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 if [ -z "$language" ]; then echo "Select a number for the language to use (default is english)" picklang language=`whichlang` if [ -z "$language" ]; then # pick a default language="english" fi echo "Language set to $language" fi if [ "yes" = "$simulator" ]; then # we have already dealt with the simulator Makefile separately simul exit fi sed > Makefile \ -e "s,@ROOTDIR@,${rootdir},g" \ -e "s,@DEBUG@,${debug},g" \ -e "s,@MEMORY@,${memory},g" \ -e "s,@TARGET@,${target},g" \ -e "s,@ARCHOS@,${archos},g" \ -e "s,@LANGUAGE@,${language},g" \ -e "s,@PWD@,${pwd},g" \ <