#!/bin/sh # __________ __ ___. # Open \______ \ ____ ____ | | _\_ |__ _______ ___ # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ # \/ \/ \/ \/ \/ # $Id$ # target=$1 debug=$2 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!" 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 input() { read response echo $response } simul () { 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 fi ################################################################## # Figure out where the firmware code is! # simfile="$simver/lcd-$simver.c" # a file to check for in the uisimulator root dir for dir in uisimulator . .. ../uisimulator ../../uisimulator; do if [ -f "$dir/$simfile" ]; then simdir="$dir/$simver" break fi done if [ -z "$simdir" ]; then echo "This script couldn't find your uisimulator/$simver directory. Please enter the" echo "full path to your uisimulator/$simver directory here:" simdir=`input` fi sed > Makefile \ -e "s,@SIMDIR@,${simdir},g" \ -e "s,@TARGET@,${target},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" \ -e "s,@EXTRA_DEFINES@,${extra_defines},g" \ </dev/null 2>&1 ; } then echo "Existing generated Makefile found. Getting defaults from it." target=`grep "^TARGET=" Makefile | cut -d= -f2-` debug=`grep "^DEBUG=" Makefile | cut -d= -f2-` language=`grep "^LANGUAGE=" Makefile | cut -d= -f2-` extra_defines=`grep "^EXTRA_DEFINES=" 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-` fi fi fi else echo "Setup your Rockbox build environment." echo "http://rockbox.haxx.se/" echo "" fi if [ -z "$target" ]; then ################################################################## # Figure out target platform # echo "Enter target platform: (defaults to Recorder)" echo "1 - Archos Player/Studio" echo "2 - Archos Recorder" getit=`input`; case $getit in 1) target="-DARCHOS_PLAYER" display="-DHAVE_LCD_CHARCELLS" keypad="-DHAVE_PLAYER_KEYPAD" ;; *|2) target="-DARCHOS_RECORDER" display="-DHAVE_LCD_BITMAP" keypad="-DHAVE_RECORDER_KEYPAD" ;; esac fi if [ -z "$extra_defines" ]; then if [ "-DARCHOS_RECORDER" = "$target" ] ; then disable_demos="-DDISABLE_NOTHING" disable_games="" echo "Do you want to use Demos? (Y)" getit=`input`; if [ "n" = "$getit" -o "N" = "$getit" ] ; then disable_demos="-DDISABLE_DEMOS" fi echo "Do you want to play Games? (Y)" getit=`input`; if [ "n" = "$getit" -o "N" = "$getit" ] ; then disable_games=" -DDISABLE_GAMES" fi extra_defines="$disable_demos$disable_games" fi fi if [ -z "$debug" ]; then ################################################################## # Figure out debug on/off # echo "" echo "Build (N)ormal, (D)ebug or (S)imulated version? (N)" option=`input`; case $option in [Ss]) debug="SIMULATOR=1" simulator="yes" ;; [Dd]) debug="DEBUG=1" ;; *) debug="NODEBUG=1" ;; esac fi ################################################################## # Figure out where the firmware code is! # firmfile="crt0.S" # a file to check for in the firmware root dir for dir in firmware . .. ../firmware ../../firmware; do if [ -f $dir/$firmfile ]; then firmdir=$dir break fi done if [ -z "$firmdir" ]; then echo "This script couldn't find your firmware directory. Please enter the" echo "full path to the firmware directory here:" firmdir=`input` fi ################################################################## # Figure out where the apps code is! # appsfile="credits.c" # a file to check for in the apps root dir for dir in apps . .. ../apps ../../apps $firmdir/apps $firmdir/../apps; do if [ -f $dir/$appsfile ]; then appsdir=$dir break fi done if [ -z "$appsdir" ]; then echo "This script couldn't find your apps directory. Please enter the" echo "full path to the apps directory here:" appsdir=`input` fi picklang() { # figure out which languages that are around for file in $appsdir/lang/*.lang; do clean=`echo $file | sed -e 's:.*/::g' | cut "-d." -f1` langs="$langs $clean" done num=1 for one in $langs; do echo "$num. $one" num=`expr $num + 1` done read pick return $pick; } whichlang() { num=1 for one in $langs; do if [ "$num" = "$pick" ]; then echo $one return fi num=`expr $num + 1` done } 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 fi if [ "yes" = "$simulator" ]; then # we deal with the simulator Makefile separately simul exit fi sed > Makefile \ -e "s,@FIRMDIR@,${firmdir},g" \ -e "s,@APPSDIR@,${appsdir},g" \ -e "s,@DEBUG@,${debug},g" \ -e "s,@TARGET@,${target},g" \ -e "s,@LANGUAGE@,${language},g" \ -e "s,@EXTRA_DEFINES@,${extra_defines},g" \ -e "s,@PWD@,${pwd},g" \ <