Created
February 14, 2011 15:07
-
-
Save aczid/825995 to your computer and use it in GitHub Desktop.
devkitpro.sh, originally from http://lmn.mooo.com/projects/devkitpro-sh updated on 2011-02-14
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Edit the following properties to your own taste: | |
# NOTE: DIRECTORY PATHS MUST BE ABSOLUTE | |
DEVKITPRO_PATH=$HOME'/.dev/devkitpro' | |
LIBNDS_PATH=$DEVKITPRO_PATH'/libnds' | |
DEFAULT_ARM7_PATH=$LIBNDS_PATH | |
LIBNDS_EX_PATH=$LIBNDS_PATH'/examples' | |
NOCASHGBA_PATH="$DEVKITPRO_PATH/nocashgba" | |
NOCASHGBA_PATH_PRINT="\$DEVKITPRO/nocashgba" | |
PALIB_PATH=$DEVKITPRO_PATH | |
ULIB_PATH=$DEVKITPRO_PATH | |
MAXMOD_PATH=$LIBNDS_PATH | |
LIBFILESYSTEM_PATH=$LIBNDS_PATH | |
ULIB_INC_PATH=$LIBNDS_PATH'/include/ulib' | |
ULIB_LIB_PATH=$LIBNDS_PATH'/lib' | |
DOWNLOAD_CACHE_PATH=$HOME'/.dev/.devkitpro_cache' | |
LOGFILE=$PWD'/install.log' | |
# File URLS: | |
if [ `uname -m` == "x86_64" ] | |
then | |
DEVKITARM_URL="http://downloads.sourceforge.net/project/devkitpro/devkitARM/devkitARM_r32-x86_64-linux.tar.bz2" | |
else | |
# Default behavior | |
DEVKITARM_URL="http://downloads.sourceforge.net/project/devkitpro/devkitARM/devkitARM_r32-i686-linux.tar.bz2" | |
fi | |
DEFAULT_ARM7_URL="http://downloads.sourceforge.net/project/devkitpro/default%20arm7/default_arm7-0.5.20.tar.bz2" | |
PALIB_URL="http://palib-dev.com/PAlib100707.7z" | |
LIBNDS_URL="http://downloads.sourceforge.net/project/devkitpro/libnds/libnds-1.5.0.tar.bz2" | |
LIBNDS_EX_URL="http://downloads.sourceforge.net/project/devkitpro/examples/nds/nds-examples-20110214.tar.bz2" | |
LIBFAT_URL="http://downloads.sourceforge.net/project/devkitpro/libfat/libfat-nds-1.0.9.tar.bz2" | |
LIBFILESYSTEM_URL="http://downloads.sourceforge.net/project/devkitpro/filesystem/libfilesystem-0.9.9.tar.bz2" | |
DSWIFI_URL="http://downloads.sourceforge.net/project/devkitpro/dswifi/dswifi-0.3.13.tar.bz2" | |
NOCASHGBA_URL="http://nocash.emubase.de/no\$gba-w.zip" | |
ULIB_URL="http://brunni.dev-fr.org/dl/nds/uLibrary.7z" | |
MAXMOD_URL="http://downloads.sourceforge.net/project/devkitpro/maxmod/maxmod-nds-1.0.6.tar.bz2" | |
red='\E[31;m' | |
green='\E[32;m' | |
function msg() { | |
echo \-\> $1 >>$LOGFILE | |
echo -n -e "$green" | |
echo -n \-\>\ | |
tput sgr0 | |
echo $1 >&1 | |
} | |
function error() { | |
echo \-\>ERROR: $1 >>$LOGFILE | |
echo -n -e "$red" | |
echo -n \-\>ERROR:\ | |
tput sgr0 | |
echo $1 >&2 | |
exit | |
} | |
function checkForErrors() { | |
if [ $? -ne 0 ] | |
then | |
if [ -n "$1" ] | |
then | |
error "$@" | |
else | |
error "Unexpected error: check $LOGFILE for details." | |
fi | |
exit 1 | |
fi | |
} | |
function download() { | |
if [ ! -e `stripURL $1` ] | |
then | |
wget -c $1 | |
checkForErrors "Failed to download file: $1." | |
else | |
msg "File already exists, not downloading: `stripURL $1`" | |
fi | |
} | |
function stripURL() { | |
echo ${1:$(expr "$1" : '.*/')} | |
} | |
function createDir() { | |
if [ ! -d $1 ] | |
then | |
mkdir -p $1 | |
checkForErrors "Could not create directory: $1" | |
msg "Created directory: $1" | |
else | |
msg "$1: directory already exists." | |
fi | |
} | |
which 7zr &>/dev/null | |
checkForErrors "The program \"7zr\" is required to run this script." | |
which unzip &>/dev/null | |
checkForErrors "The program \"unzip\" is required to run this script." | |
which unrar &>/dev/null | |
checkForErrors "The program \"unrar\" is required to run this script." | |
echo -n >$LOGFILE | |
echo | |
msg "Building directory tree..." | |
createDir $DEVKITPRO_PATH | |
createDir $DOWNLOAD_CACHE_PATH | |
createDir $LIBNDS_PATH | |
createDir $LIBNDS_EX_PATH | |
createDir $ULIB_PATH | |
createDir $NOCASHGBA_PATH | |
pushd $DOWNLOAD_CACHE_PATH >>$LOGFILE | |
echo | |
echo >>$LOGFILE | |
msg "Downloading files..." | |
download $DEVKITARM_URL | |
download $PALIB_URL | |
download $LIBNDS_URL | |
download $DEFAULT_ARM7_URL | |
download $LIBNDS_EX_URL | |
download $ULIB_URL | |
download $LIBFAT_URL | |
download $LIBFILESYSTEM_URL | |
download $DSWIFI_URL | |
download $NOCASHGBA_URL | |
download $MAXMOD_URL | |
echo | |
echo >>$LOGFILE | |
msg "Extracting archives..." | |
msg " ...devkitARM" | |
tar xvf $(stripURL $DEVKITARM_URL) -C $DEVKITPRO_PATH >>$LOGFILE | |
checkForErrors "Problem extracting $(stripURL $DEVKITARM_URL)" | |
msg " ...PAlib" | |
7zr x -o $PALIB_PATH -y $(stripURL $PALIB_URL ) >>$LOGFILE | |
checkForErrors "Problem extracting $(stripURL $PALIB_URL)" | |
msg " ...libnds" | |
tar xvf $(stripURL $LIBNDS_URL) -C $LIBNDS_PATH >>$LOGFILE | |
checkForErrors "Problem extracting $(stripURL $LIBNDS_URL)" | |
msg " ...default arm7" | |
tar xvf $(stripURL $DEFAULT_ARM7_URL) -C $DEFAULT_ARM7_PATH >>$LOGFILE | |
checkForErrors "Problem extracting $(stripURL $DEFAULT_ARM7_URL)" | |
msg " ...libnds_examples" | |
tar xvf $(stripURL $LIBNDS_EX_URL) -C $LIBNDS_EX_PATH >>$LOGFILE | |
checkForErrors "Problem extracting $(stripURL $LIBNDS_EX_URL)" | |
msg " ...libfat" | |
tar xvf $(stripURL $LIBFAT_URL) -C $LIBNDS_PATH >>$LOGFILE | |
checkForErrors "Problem extracting $(stripURL $LIBFAT_URL)" | |
msg " ...libfilesystem" | |
tar xvf $(stripURL $LIBFILESYSTEM_URL) -C $LIBFILESYSTEM_PATH >>$LOGFILE | |
checkForErrors "Problem extracting $(stripURL $LIBFILESYSTEM_URL)" | |
msg " ...dswifi" | |
tar xvf $(stripURL $DSWIFI_URL) -C $LIBNDS_PATH >>$LOGFILE | |
checkForErrors "Problem extracting $(stripURL $DSWIFI_URL)" | |
msg " ...NO\$GBA" | |
unzip -o $(stripURL $NOCASHGBA_URL) -d $NOCASHGBA_PATH >>$LOGFILE | |
checkForErrors "Problem extracting $(stripURL $NOCASHGBA_URL)" | |
msg " ...uLibrary" | |
7zr x -o$ULIB_PATH -y $(stripURL $ULIB_URL) >>$LOGFILE | |
checkForErrors "Problem extracting $(stripURL $ULIB_URL)" | |
msg " ...Maxmod" | |
tar xvf $(stripURL $MAXMOD_URL) -C $MAXMOD_PATH >>$LOGFILE | |
checkForErrors "Problem extracting $(stripURL $MAXMOD_URL)" | |
createDir $ULIB_INC_PATH | |
createDir $ULIB_LIB_PATH | |
msg " ....moving some files around" | |
cp $ULIB_PATH/uLibrary/Install/*h $ULIB_INC_PATH/. >>$LOGFILE | |
checkForErrors "Problem copying some files (see logfile)" | |
cp $ULIB_PATH/uLibrary/Install/*a $ULIB_LIB_PATH/. >>$LOGFILE | |
checkForErrors "Problem copying some files (see logfile)" | |
popd >>$LOGFILE | |
echo | |
msg "devkitPRO installed successfully!" | |
msg | |
msg "One last step: add/update the following lines in $HOME/.bashrc:" | |
echo "export DEVKITPRO=$DEVKITPRO_PATH" | |
echo "export DEVKITARM=\$DEVKITPRO/devkitARM" | |
echo "export PAPATH=\$DEVKITPRO/PAlib/lib" | |
echo "export NOCASHGBA=$NOCASHGBA_PATH_PRINT" | |
# Yes, that's seven backslashes in a row. | |
echo "alias nds=\"wine \$NOCASHGBA/NO\\\\\\\$GBA.EXE\"" | |
echo |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment