Skip to content

Instantly share code, notes, and snippets.

@aczid
Created February 14, 2011 15:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aczid/825995 to your computer and use it in GitHub Desktop.
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
#!/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