The Linux port was outdated for quite a while now. I've spent the last months to update it.
If you want to give it a shot, you can get it here: http://pocketradio.awardspace.info/downloads.html
I named it "Internal Test Build" because I'm still changing stuff, try to sort out and test some aspects.
I'm using a VirtualBox with Ubuntu 12.10. For the dependencies: You have to install the fmod library (libfmodex.so & libfmodex-4.44.03.so).
I also use the following script after a fresh installation. Not sure if you need everything in there. Hope it helps a bit.
Code: Select all
#!/bin/bash
###############################################################################
###############################################################################
##
## name: install.sh
## author; jim teeuwen [jimteeuwen[at]gmail.com]
## version 0.9
##
## This script ensures the presence of a number of required packages on the
## user's system. These packages are needed to make blitzmax run properly.
##
## The script supplies (un)installation schemes for various package managers
## as well as any differences between 32 and 64 bit systems that may require
## handling.
##
## Version history:
## [0.9] Dec 8 2011 [degac,markcw]
## - Added inst_apt-get.
## [0.8] Nov 26 2009 [markcw]
## - Added libxpm-dev package to aptitude list.
## [0.7] Aug 16 2009 [markcw]
## - Added inst_zypper.
## - Added package list for inst_pacman.
## [0.6] Aug 9 2009: [markcw]
## - Added package lists for inst_emerge, inst_yum and inst_urpmi.
## - Added a check for root login.
## [0.5b] Aug 6 2009:
## - Removed support for ia32-apt-get in the inst_aptitude function.
## Apparently this is no longer required to make blitzmax work as well
## it causing problems with standard package management on a 64-bit
## system.
##
###############################################################################
###############################################################################
###############################################################################
## Variables we will be needing later on:
PKGMGRS=("apt-get" "aptitude" "emerge" "yum" "urpmi" "pacman" "zypper");
PKGMGR=
IS_64_BIT=0
DO_INSTALL=1;
###############################################################################
## usage
usage() {
echo "Usage: `basename $0` [OPTIONS]";
echo "";
echo " -i : Install all required packages. (This is the default mode)";
echo " -u : Uninstall all required packages.";
echo " -h : Display this help.";
echo "";
}
###############################################################################
## Package Manager-specific (un)installation schemes.
inst_apt-get()
{
if [ $IS_64_BIT -eq 1 ]; then
PKG_LIST="gcc-multilib g++-multilib libxxf86vm-dev libglu1-mesa-dev x11proto-core-dev x11proto-gl-dev x11proto-kb-dev libasound2-dev libidn11-dev libxft-dev x11proto-xext-dev libxpm-dev";
else
PKG_LIST="gcc g++ libxxf86vm-dev libglu1-mesa-dev x11proto-core-dev x11proto-gl-dev x11proto-kb-dev libasound2-dev build-essential libidn11-dev libxft-dev x11proto-xext-dev libxpm-dev";
fi
if [ $DO_INSTALL -eq 1 ]; then
echo "[i] Installing...";
sudo apt-get install $PKG_LIST;
else
echo "[i] Uninstalling...";
sudo apt-get --purge remove $PKG_LIST;
echo "[i] Performing apt-get cleanup...";
sudo apt-get autoremove;
sudo apt-get autoclean;
fi
return $?;
}
inst_aptitude()
{
if [ $IS_64_BIT -eq 1 ]; then
PKG_LIST="gcc-multilib g++-multilib libxxf86vm-dev libglu1-mesa-dev x11proto-core-dev x11proto-gl-dev x11proto-kb-dev libasound2-dev libidn11-dev libxft-dev x11proto-xext-dev libxpm-dev";
else
PKG_LIST="gcc g++ libxxf86vm-dev libglu1-mesa-dev x11proto-core-dev x11proto-gl-dev x11proto-kb-dev libasound2-dev build-essential libidn11-dev libxft-dev x11proto-xext-dev libxpm-dev";
fi
if [ $DO_INSTALL -eq 1 ]; then
echo "[i] Installing...";
# if [ $IS_64_BIT -eq 1 ]; then
# ## install ia32-apt-get separately.
# ## The other packages require this one to be installed and ready.
# ## 'ia32-apt-get' serves as a 32 bit compatibility tool. It creates
# ## links to 64 bit versions of the selected packages.
# sudo apt-get install ia32-apt-get;
# fi
## We can pass all of the packages to aptitude in 1 go,
sudo apt-get install $PKG_LIST;
else
echo "[i] Uninstalling...";
## We can pass all of the packages to aptitude in 1 go,
sudo apt-get --purge remove $PKG_LIST;
# if [ $IS_64_BIT -eq 1 ]; then
# ## uninstall ia32-apt-get separately.
# sudo apt-get --purge remove ia32-apt-get;
# fi
## These 2 commands tell aptitude to clean up any unused packages
## still lingering around the system. They make sure we do not leave
## any orphaned packages behind. These orphans serve no purpose and
## simply waste space.
echo "[i] Performing aptitude cleanup...";
sudo apt-get autoremove;
sudo apt-get autoclean;
fi
return $?;
}
inst_emerge()
{
PKG_LIST="libX11 mesa-progs libXft libXpm";
if [ $DO_INSTALL -eq 1 ]; then
echo "[i] Installing...";
sudo emerge -a $PKG_LIST;
else
echo "[i] Uninstalling...";
sudo emerge -a --unmerge $PKG_LIST;
fi
return $?;
}
inst_yum()
{
PKG_LIST="gcc-c++ libX11-devel mesa-libGLU-devel libXft-devel libXpm-devel";
if [ $DO_INSTALL -eq 1 ]; then
echo "[i] Installing...";
yum install $PKG_LIST;
else
echo "[i] Uninstalling...";
yum remove $PKG_LIST;
echo "[i] Performing yum cleanup...";
yum clean all;
fi
return $?;
}
inst_urpmi()
{
PKG_LIST="gcc-c++ libx11_6-devel libmesaglu1-devel libxft-devel libxpm-devel";
if [ $DO_INSTALL -eq 1 ]; then
echo "[i] Installing...";
urpmi $PKG_LIST;
else
echo "[i] Uninstalling...";
urpme $PKG_LIST;
fi
return $?;
}
inst_pacman()
{
PKG_LIST="gcc";
if [ $DO_INSTALL -eq 1 ]; then
echo "[i] Installing...";
pacman -S $PKG_LIST;
else
echo "[i] Uninstalling...";
pacman -Rsn $PKG_LIST;
fi
return $?;
}
inst_zypper()
{
PKG_LIST="gcc-c++ xorg-x11-libX11-devel Mesa-devel";
if [ $DO_INSTALL -eq 1 ]; then
echo "[i] Installing...";
sudo zypper install $PKG_LIST;
else
echo "[i] Uninstalling...";
sudo zypper remove $PKG_LIST;
fi
return $?;
}
trap_int()
{
echo "[i] SIGINT detected. Exiting script.";
echo " Note that this may leave some operations incomplete.";
echo " Run the script again to complete any pending operations.";
exit 0;
}
###############################################################################
###############################################################################
## Main program
## intercept ctrl-c (SIGINT).
trap trap_int INT;
clear;
echo "Blitzmax Installation Script version 0.9";
echo "Please report bugs or suggestions to: jimteeuwen[at]gmail.com";
echo "";
###############################################################################
## Check for commandline options:
while getopts iuh opt; do
case "$opt" in
i) DO_INSTALL=1;;
u) DO_INSTALL=0;;
h) usage; exit 0;;
*?) usage; exit 1;;
esac
done
unset opt;
###############################################################################
## Get architecture. 64 bit systems require some extra packages
## since blitz has no 64-bit support. We need our system to provide
## symbolic links to the 64 bit modules for us.
echo "[i] Checking architecture...";
IS_64_BIT=0;
if [ `uname -m` == "x86_64" ]; then
IS_64_BIT=1;
echo " found: 64 bit";
else
echo " found: 32 bit";
fi
###############################################################################
## Determine the package manager we have available.
echo "[i] Identifying package manager...";
PKGMGR="";
for pm in ${PKGMGRS[@]}; do
if [ ! -f "`which $pm`" ]; then
continue;
fi
PKGMGR=$pm;
echo " found: $pm";
break;
done
unset pm;
if [ -z "$PKGMGR" ]; then
echo "[e] Unable to find a package manager.";
echo " Supported are: ${PKGMGRS[@]}";
fi
###############################################################################
## Check if root login is needed.
## Some distros use su and others use sudo.
## I am assuming distros using the same package manager use the same su/sudo syntax.
if [ `whoami` = "root" ]; then
echo "[i] Logged in as root user.";
elif [ "$PKGMGR" = "yum" ]; then ## sudo if user in sudoers
PKGMGR=""; ## note: using PKGMGR to force root login
elif [ "$PKGMGR" = "pacman" ]; then
PKGMGR="";
elif [ "$PKGMGR" = "urpmi" ]; then ## no sudo
PKGMGR="";
fi
if [ -z "$PKGMGR" ]; then ## no package manager found or need root login
echo "[i] Login as root and then re-run this script.";
su;
fi
###############################################################################
## perform package manager-specific setup.
## we simply append the manager name as defined in the array above to 'inst_'.
## This assumes the resulting function name exists. Note that this is case-
## sensitive. eg: 'aptitude' becomes a call to function 'inst_aptitude'.
echo "[i] Performing $PKGMGR setup...";
echo "[i] Building package list...";
inst_$PKGMGR;
###############################################################################
## All done. Return control to shell with exit code of last operation.
echo "[i] Done.";
exit $?;
I'm testing a mutithreaded station file updater at the moment. - If everything goes well. It will be available for all ports.
Btw: The station files from build #25.11.2012 have been updated.