Atari ST toolchain installer theoretically working.
This commit is contained in:
parent
18c53676a3
commit
d588561b0c
5 changed files with 275 additions and 115 deletions
|
@ -1,10 +1,10 @@
|
|||
TEMPLATE = app
|
||||
|
||||
CONFIG += console
|
||||
CONFIG -= \
|
||||
app_bundle \
|
||||
qt
|
||||
|
||||
JOEY = /home/scott/joey
|
||||
|
||||
JOEY_INCLUDES = \
|
||||
$$JOEY/dist
|
||||
|
||||
|
|
|
@ -41,3 +41,6 @@ SDL_LIBS = \
|
|||
|
||||
LIBS += \
|
||||
$$SDL_LIBS
|
||||
|
||||
DISTFILES += \
|
||||
joey.pri
|
||||
|
|
|
@ -39,8 +39,10 @@
|
|||
#define JOEY_LITLE_ENDIAN
|
||||
#define JOEY_PATH_SEPARATOR '/'
|
||||
#define segment(x)
|
||||
typedef short jint16;
|
||||
typedef short jint16;
|
||||
typedef unsigned short juint16;
|
||||
typedef int jint32;
|
||||
typedef unsigned int juint32;
|
||||
|
||||
#elif _WIN32
|
||||
|
||||
|
@ -48,9 +50,10 @@ typedef unsigned short juint16;
|
|||
#define JOEY_PC
|
||||
#define JOEY_LITLE_ENDIAN
|
||||
#define JOEY_PATH_SEPARATOR '\\'
|
||||
#define segment(x)
|
||||
typedef short jint16;
|
||||
typedef short jint16;
|
||||
typedef unsigned short juint16;
|
||||
typedef int jint32;
|
||||
typedef unsigned int juint32;
|
||||
|
||||
#elif __APPLE__
|
||||
|
||||
|
@ -58,9 +61,10 @@ typedef unsigned short juint16;
|
|||
#define JOEY_PC
|
||||
#define JOEY_LITLE_ENDIAN
|
||||
#define JOEY_PATH_SEPARATOR '/'
|
||||
#define segment(x)
|
||||
typedef short jint16;
|
||||
typedef short jint16;
|
||||
typedef unsigned short juint16;
|
||||
typedef int jint32;
|
||||
typedef unsigned int juint32;
|
||||
|
||||
#elif __ORCAC__
|
||||
|
||||
|
@ -68,8 +72,10 @@ typedef unsigned short juint16;
|
|||
#define JOEY_LITLE_ENDIAN
|
||||
#define JOEY_PATH_SEPARATOR '/'
|
||||
#define __attribute__(x)
|
||||
typedef int jint16;
|
||||
typedef unsigned int juint16;
|
||||
typedef int jint16;
|
||||
typedef unsigned int juint16;
|
||||
typedef long jint32;
|
||||
typedef unsigned long juint32;
|
||||
#ifndef JOEY_MAIN
|
||||
#pragma noroot
|
||||
#endif
|
||||
|
@ -84,9 +90,10 @@ typedef unsigned int juint16;
|
|||
#define JOEY_BIG_ENDIAN
|
||||
#define JOEY_PATH_SEPARATOR '/'
|
||||
#define __attribute__(x)
|
||||
#define segment(x)
|
||||
typedef int jint16;
|
||||
typedef unsigned int juint16;
|
||||
typedef int jint16;
|
||||
typedef unsigned int juint16;
|
||||
typedef long jint32;
|
||||
typedef unsigned long juint32;
|
||||
|
||||
#else
|
||||
|
||||
|
@ -94,9 +101,10 @@ typedef unsigned int juint16;
|
|||
#define JOEY_BIG_ENDIAN
|
||||
#define JOEY_PATH_SEPARATOR '/'
|
||||
#define __attribute__(x)
|
||||
#define segment(x)
|
||||
typedef int jint16;
|
||||
typedef unsigned int juint16;
|
||||
typedef int jint16;
|
||||
typedef unsigned int juint16;
|
||||
typedef long jint32;
|
||||
typedef unsigned long juint32;
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -27,8 +27,6 @@
|
|||
|
||||
#define JOEY_MAIN
|
||||
#include "joey.h"
|
||||
|
||||
|
||||
#ifdef JOEY_IIGS
|
||||
segment "testapp";
|
||||
#endif
|
||||
|
|
|
@ -26,17 +26,20 @@
|
|||
# Global variables
|
||||
#
|
||||
G_TITLE="JoeyLib Installer"
|
||||
G_WORK=installerWork
|
||||
G_PARENT=
|
||||
G_SCRIPT=
|
||||
G_UID=$(id -ru)
|
||||
G_GID=$(id -rg)
|
||||
G_IS_INSTALLED=()
|
||||
G_VBCC_CURRENT="2017-08-14"
|
||||
G_IIGS=0
|
||||
#G_AMIGA=1
|
||||
#G_ATARIST=2
|
||||
G_LINUX32=1
|
||||
G_LINUX64=2
|
||||
G_WIN32=3
|
||||
G_WIN64=4
|
||||
G_ATARIST=1
|
||||
G_LINUX32=2
|
||||
G_LINUX64=3
|
||||
G_WIN32=4
|
||||
G_WIN64=5
|
||||
#G_MAC32=7
|
||||
#G_MAC64=8
|
||||
#G_ANDROID=9
|
||||
|
@ -56,9 +59,6 @@ function buildPCDeps() {
|
|||
local SRC="${G_PARENT}/joeylib/joeylib/src"
|
||||
local G_CFLAGS="-Wall -D_REENTRANT_ -I${SRC} -I${PREFIX}/include -c"
|
||||
|
||||
echo ""
|
||||
tBoldBox tCYAN "NOTE: If an error is encountered, installer will exit!"
|
||||
|
||||
mkdir -p ${PREFIX}
|
||||
|
||||
pushd deps &> /dev/null
|
||||
|
@ -67,9 +67,7 @@ function buildPCDeps() {
|
|||
export CXX="${CXX_EXPORT}"
|
||||
|
||||
# SDL2
|
||||
echo ""
|
||||
tBoldBox tPURPLE "Building SDL2"
|
||||
echo ""
|
||||
purple "Building SDL2"
|
||||
if [[ ! -d SDL ]]; then
|
||||
hg clone http://hg.libsdl.org/SDL
|
||||
fi
|
||||
|
@ -89,9 +87,7 @@ function buildPCDeps() {
|
|||
fi
|
||||
|
||||
# libModPlug
|
||||
echo ""
|
||||
tBoldBox tPURPLE "Building libModPlug"
|
||||
echo ""
|
||||
purple "Building libModPlug"
|
||||
if [[ ! -d libmodplug ]]; then
|
||||
git clone https://github.com/Konstanty/libmodplug.git
|
||||
pushd libmodplug &> /dev/null
|
||||
|
@ -118,9 +114,7 @@ function buildPCDeps() {
|
|||
fi
|
||||
|
||||
# SDL_mixer
|
||||
echo ""
|
||||
tBoldBox tPURPLE "Building SDL_mixer"
|
||||
echo ""
|
||||
purple "Building SDL_mixer"
|
||||
if [[ ! -d SDL_mixer ]]; then
|
||||
hg clone http://hg.libsdl.org/SDL_mixer
|
||||
fi
|
||||
|
@ -157,9 +151,7 @@ function buildPCDeps() {
|
|||
export CXX="${CXX_OLD}"
|
||||
|
||||
# JoeyLib
|
||||
echo ""
|
||||
tBoldBox tPURPLE "Building JoeyLib"
|
||||
echo ""
|
||||
purple "Building JoeyLib"
|
||||
if [[ -d "${DIST}" ]]; then
|
||||
rm -rf "${DIST}"
|
||||
fi
|
||||
|
@ -198,22 +190,84 @@ function configRead() {
|
|||
|
||||
function configWrite() {
|
||||
local O=${G_PARENT}/joeyDev.sh
|
||||
local P=\${JOEYPATH}
|
||||
echo "#!/bin/bash" > "${O}"
|
||||
# Remember the initial path so we can run this more than once
|
||||
echo "if [[ -z \$JOEYPATH || \"\${JOEYPATH}\" == \"\" ]]; then" >> "${O}"
|
||||
echo -e "\texport JOEYPATH=\"\${PATH}\"" >> "${O}"
|
||||
echo "fi" >> "${O}"
|
||||
echo "export PATH=\"\${JOEYPATH}\"" >> "${O}"
|
||||
echo "export JOEY=\"${G_PARENT}\"" >> "${O}"
|
||||
if [[ ${G_IS_INSTALLED[$G_IIGS]} == 1 ]]; then
|
||||
# IIgs Runtime & ORCA Compilers
|
||||
P=\${JOEY}/sdks/IIgs:${P}
|
||||
echo "export GOLDEN_GATE=\"\${JOEY}/sdks/IIgs/ORCA\"" >> "${O}"
|
||||
echo "export PATH=\"\${JOEY}/sdks/IIgs:\${PATH}\"" >> "${O}"
|
||||
echo "mountORCA.sh" >> "${O}"
|
||||
fi
|
||||
if [[ ${G_IS_INSTALLED[$G_ATARIST]} == 1 ]]; then
|
||||
# All VBCC targets get these
|
||||
P=\${JOEY}/sdks/vbcc/bin:${P}
|
||||
echo "export VBCC=\"\${JOEY}/sdks/vbcc\"" >> "${O}"
|
||||
fi
|
||||
echo "export PATH=\"${P}\"" >> "${O}"
|
||||
chmod +x "${O}"
|
||||
}
|
||||
|
||||
|
||||
function doSudo() {
|
||||
local ARGS="$@"
|
||||
local ASK="${G_PARENT}/${G_WORK}/askPass.sh"
|
||||
|
||||
cat <<- ASKPASS > "${ASK}"
|
||||
#!/bin/bash
|
||||
"${G_PARENT}/${G_SCRIPT}" ASKPASS
|
||||
ASKPASS
|
||||
chmod +x "${ASK}"
|
||||
|
||||
if [[ "${ARGS}x" == "x" ]]; then
|
||||
SUDO_ASKPASS="${ASK}" sudo -A -v
|
||||
else
|
||||
SUDO_ASKPASS="${ASK}" sudo -A "${ARGS}"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
function doSudoAskPass() {
|
||||
local RET=
|
||||
local PASSWORD=
|
||||
|
||||
set +e
|
||||
PASSWORD=$(
|
||||
whiptail --passwordbox "\n${G_TITLE} needs superuser access.\n\nPlease enter your password:" 12 60 --title "Need Root" 3>&1 1>&2 2>&3
|
||||
)
|
||||
RET=$?
|
||||
set -e
|
||||
|
||||
if [[ ${RET} -ne 0 ]]; then
|
||||
echo "Cannot continue without superuser access." 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
printf "${PASSWORD}\n"
|
||||
exit 0
|
||||
}
|
||||
|
||||
|
||||
function download() {
|
||||
local URL=$1
|
||||
local FILE=$2
|
||||
|
||||
if [[ -z ${FILE} ]]; then
|
||||
FILE=${URL##*/}
|
||||
fi
|
||||
|
||||
if [[ -e "${FILE}" ]]; then
|
||||
rm -f "${FILE}"
|
||||
fi
|
||||
|
||||
wget -O "${FILE}" ${URL}
|
||||
}
|
||||
|
||||
|
||||
function fetchGitHubRelease() {
|
||||
local __RESULT=$1
|
||||
local DEVELOPER=$2
|
||||
|
@ -224,11 +278,7 @@ function fetchGitHubRelease() {
|
|||
| cut -d : -f 2,3 \
|
||||
| tr -d \" \
|
||||
| head -n 1)
|
||||
local FILE=${URL##*/}
|
||||
if [[ -e "${FILE}" ]]; then
|
||||
rm "${FILE}"
|
||||
fi
|
||||
wget ${URL}
|
||||
download ${URL}
|
||||
eval $__RESULT=\${FILE}
|
||||
}
|
||||
|
||||
|
@ -240,7 +290,7 @@ function installIIgs() {
|
|||
local GGATE=
|
||||
local IIGS="${G_PARENT}/sdks/IIgs"
|
||||
|
||||
G_IS_INSTALLED[$G_IIGS] = 1
|
||||
G_IS_INSTALLED[$G_IIGS]=1
|
||||
configWrite
|
||||
configRead
|
||||
|
||||
|
@ -251,9 +301,7 @@ function installIIgs() {
|
|||
chmod 777 "${IIGS}/ORCA"
|
||||
|
||||
if [[ ! -e "${IIGS}/hfsDrive.img" ]]; then
|
||||
echo ""
|
||||
tBoldBox tPURPLE "Creating HFS Volume"
|
||||
echo ""
|
||||
purple "Creating HFS Volume"
|
||||
O=${IIGS}/mountORCA.sh
|
||||
echo "#!/bin/bash" > "${O}"
|
||||
echo "IIGS=${IIGS}" >> "${O}"
|
||||
|
@ -280,7 +328,7 @@ function installIIgs() {
|
|||
fi
|
||||
|
||||
"${IIGS}/mountORCA.sh"
|
||||
sudo chown ${G_UID}:${G_GID} "${IIGS}/ORCA/."
|
||||
doSudo chown ${G_UID}:${G_GID} "${IIGS}/ORCA/."
|
||||
|
||||
if [[ ! -e "${IIGS}/ORCA/Languages/cc" ]]; then
|
||||
tFileBrowser ORCA "Please locate your 'OPUS ][ The Software' ISO" .iso ..
|
||||
|
@ -289,17 +337,12 @@ function installIIgs() {
|
|||
fi
|
||||
fi
|
||||
|
||||
echo ""
|
||||
tBoldBox tCYAN "NOTE: If an error is encountered, installer will exit!"
|
||||
|
||||
if [[ ! -d GoldenGate ]]; then
|
||||
tFileBrowser GGATE "Please locate your 'Golden Gate' MSI" .msi ..
|
||||
if [[ -z ${GGATE} || "${GGATE}" == "" ]]; then
|
||||
return 0
|
||||
fi
|
||||
echo ""
|
||||
tBoldBox tPURPLE "Building GoldenGate"
|
||||
echo ""
|
||||
purple "Building GoldenGate"
|
||||
git clone git@gitlab.com:GoldenGate/GoldenGate.git
|
||||
if [ ! -d GoldenGate ]; then
|
||||
tBoldBox tRED "Unable to clone the GoldenGate repository!"
|
||||
|
@ -328,15 +371,11 @@ function installIIgs() {
|
|||
fi
|
||||
|
||||
if [[ ! -e "${IIGS}/ORCA/Languages/cc" ]]; then
|
||||
echo ""
|
||||
tBoldBox tPURPLE "Installing ORCA/C"
|
||||
echo ""
|
||||
purple "Installing ORCA/C"
|
||||
isoinfo -i "${ORCA}" -x /FOR_EMUL/BYTEWORK.S\;1 > BYTEWORKS
|
||||
"${IIGS}/opus-extractor" -v BYTEWORKS "${IIGS}/ORCA"
|
||||
|
||||
echo ""
|
||||
tBoldBox tPURPLE "Upgrading ORCA/C"
|
||||
echo ""
|
||||
purple "Upgrading ORCA/C"
|
||||
fetchGitHubRelease RESULT byteworksinc ORCA-C 2mg
|
||||
"${IIGS}/opus-extractor" -v -s / ${RESULT} "${IIGS}/ORCA"
|
||||
|
||||
|
@ -369,9 +408,7 @@ function installIIgs() {
|
|||
fi
|
||||
|
||||
if [[ ! -d gsplus ]]; then
|
||||
echo ""
|
||||
tBoldBox tPURPLE "Building GSplus"
|
||||
echo ""
|
||||
purple "Building GSplus"
|
||||
git clone https://github.com/digarok/gsplus.git
|
||||
mkdir gsplus/build
|
||||
pushd gsplus/build &> /dev/null
|
||||
|
@ -389,33 +426,21 @@ function installIIgs() {
|
|||
fi
|
||||
|
||||
if [[ ! -f "${IIGS}/gsplus/ROM.03" ]]; then
|
||||
echo ""
|
||||
tBoldBox tPURPLE "Installing IIgs ROM"
|
||||
echo ""
|
||||
if [[ -e rom3.zip ]]; then
|
||||
rm -f rom3.zip
|
||||
fi
|
||||
wget http://www.whatisthe2gs.apple2.org.za/files/rom3.zip
|
||||
purple "Installing IIgs ROM"
|
||||
download http://www.whatisthe2gs.apple2.org.za/files/rom3.zip
|
||||
unzip rom3.zip
|
||||
mv -f APPLE2GS.ROM2 "${IIGS}/gsplus/ROM.03"
|
||||
fi
|
||||
|
||||
if [[ ! -f "${IIGS}/gsplus/System601.po" ]]; then
|
||||
echo ""
|
||||
tBoldBox tPURPLE "Installing GS/OS"
|
||||
echo ""
|
||||
if [[ -e harddrive_image.zip ]]; then
|
||||
rm -f harddrive_image.zip
|
||||
fi
|
||||
wget http://www.whatisthe2gs.apple2.org.za/files/harddrive_image.zip
|
||||
purple "Installing GS/OS"
|
||||
download http://www.whatisthe2gs.apple2.org.za/files/harddrive_image.zip
|
||||
unzip harddrive_image.zip
|
||||
mv -f "System 6 and Free Games.hdv" "${IIGS}/gsplus/System601.po"
|
||||
fi
|
||||
|
||||
if [[ ! -d cadius ]]; then
|
||||
echo ""
|
||||
tBoldBox tPURPLE "Building Cadius"
|
||||
echo ""
|
||||
purple "Building Cadius"
|
||||
git clone https://github.com/mach-kernel/cadius.git
|
||||
pushd cadius &> /dev/null
|
||||
make
|
||||
|
@ -429,13 +454,8 @@ function installIIgs() {
|
|||
fi
|
||||
|
||||
if [[ ! -e "${IIGS}/ntconverter/ntconverter.php" ]]; then
|
||||
echo ""
|
||||
tBoldBox tPURPLE "Installing NinjaTracker Converter"
|
||||
echo ""
|
||||
if [[ -e ntconverter.zip ]]; then
|
||||
rm -f ntconverter.zip
|
||||
fi
|
||||
wget https://www.ninjaforce.com/downloads/ntconverter.zip
|
||||
purple "Installing NinjaTracker Converter"
|
||||
download https://www.ninjaforce.com/downloads/ntconverter.zip
|
||||
unzip ntconverter.zip
|
||||
mkdir -p "${IIGS}/ntconverter"
|
||||
cp -f ntconverter.php "${IIGS}/ntconverter/."
|
||||
|
@ -444,20 +464,13 @@ function installIIgs() {
|
|||
mkdir -p "${JOEY}/dist/IIgs"
|
||||
|
||||
if [[ ! -e "${JOEY}/dist/IIgs/Tool221#ba0000" ]]; then
|
||||
echo ""
|
||||
tBoldBox tPURPLE "Installing Tool221"
|
||||
echo ""
|
||||
if [[ -e ninjatracker_tool221_v2.1.2mg ]]; then
|
||||
rm -f ninjatracker_tool221_v2.1.2mg
|
||||
fi
|
||||
wget https://www.brutaldeluxe.fr/products/apple2gs/tool221/ninjatracker_tool221_v2.1.2mg
|
||||
purple "Installing Tool221"
|
||||
download https://www.brutaldeluxe.fr/products/apple2gs/tool221/ninjatracker_tool221_v2.1.2mg
|
||||
"${IIGS}/cadius/cadius" extractfile ninjatracker_tool221_v2.1.2mg NT.TOOL221.V2.1/SYSTEM/TOOLS/TOOL221 .
|
||||
cp -f TOOL221#BA0000 "${JOEY}/dist/IIgs/Tool221#ba0000"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
tBoldBox tPURPLE "Building JoeyLib"
|
||||
echo ""
|
||||
purple "Building JoeyLib"
|
||||
O=${IIGS}/ORCA/out/joey
|
||||
if [[ -d "${O}" ]]; then
|
||||
rm -rf "${O}"
|
||||
|
@ -524,11 +537,130 @@ function installWin64() {
|
|||
}
|
||||
|
||||
|
||||
function installST() {
|
||||
local ST="${G_PARENT}/sdks/st"
|
||||
|
||||
G_IS_INSTALLED[$G_ATARIST]=1
|
||||
configWrite
|
||||
configRead
|
||||
|
||||
mkdir -p "${ST}"
|
||||
|
||||
if [[ ! -e "${ST}/tos104us.img" ]]; then
|
||||
purple "Installing TOS & Language Disk"
|
||||
download http://www.avtandil.narod.ru/tos/tos104us.zip
|
||||
unzip tos104us.zip
|
||||
mv tos104us.img "${ST}/."
|
||||
fi
|
||||
|
||||
if [[ ! -e "${ST}/ST_language_disk_ca026062-004.ST" ]]; then
|
||||
purple "Installing Language Disk"
|
||||
download http://www.atarimania.com/pgedump.awp?id=28777 1040languagedisk.zip
|
||||
unzip 1040languagedisk.zip
|
||||
mv ST_language_disk_ca026062-004.ST "${ST}/."
|
||||
fi
|
||||
|
||||
if [[ ! -e "${ST}/hatari.cfg" ]]; then
|
||||
purple "Configuring Hatari"
|
||||
cat <<-CONFIG > "${ST}/hatari.cfg"
|
||||
[Screen]
|
||||
bResizable = TRUE
|
||||
|
||||
[Joystick1]
|
||||
nJoystickMode = 1
|
||||
nJoyId = 0
|
||||
|
||||
[Sound]
|
||||
szYMCaptureFileName = "${ST}/hatari.wav"
|
||||
|
||||
[Memory]
|
||||
szMemoryCaptureFileName = "${ST}/hatari.sav"
|
||||
szAutoSaveFileName = "${ST}/auto.sav"
|
||||
|
||||
[Floppy]
|
||||
szDiskAFileName = "${ST}/ST_language_disk_ca026062-004.ST"
|
||||
szDiskImageDirectory = "${ST}"
|
||||
|
||||
[HardDisk]
|
||||
szHardDiskDirectory = "${ST}"
|
||||
szHardDiskImage = "${ST}"
|
||||
szIdeMasterHardDiskImage = "${ST}"
|
||||
szIdeSlaveHardDiskImage = "${ST}"
|
||||
|
||||
[ROM]
|
||||
szTosImageFileName = "${ST}/tos104us.img"
|
||||
bPatchTos = TRUE
|
||||
|
||||
[Printer]
|
||||
szPrintToFileName = "${ST}/hatari.prn"
|
||||
|
||||
[System]
|
||||
bPatchTimerD = TRUE
|
||||
bFastBoot = TRUE
|
||||
|
||||
[Video]
|
||||
AviRecordFile = "${ST}/hatari.avi"
|
||||
CONFIG
|
||||
fi
|
||||
|
||||
installVbcc
|
||||
|
||||
if [[ ! -e "${G_PARENT}/sdks/vbcc/targets/m68k-atari" ]]; then
|
||||
purple "Configuring VBCC"
|
||||
download http://server.owl.de/~frank/vbcc/${G_VBCC_CURRENT}/vbcc_target_m68k-atari.lha
|
||||
lha xf vbcc_target_m68k-atari.lha
|
||||
mkdir -p "${G_PARENT}/sdks/vbcc/targets"
|
||||
cp -rf vbcc_target_m68k-atari/targets/m68k-atari "${G_PARENT}/sdks/vbcc/targets/."
|
||||
fi
|
||||
|
||||
#hatari -c ${JOEY}/sdks/st/hatari.cfg
|
||||
}
|
||||
|
||||
|
||||
function installVbcc() {
|
||||
local VBCC="${G_PARENT}/sdks/vbcc"
|
||||
|
||||
if [[ ! -e "${VBCC}/config" ]]; then
|
||||
purple "Installing VBCC"
|
||||
download http://sun.hasenbraten.de/vasm/release/vasm.tar.gz
|
||||
download http://sun.hasenbraten.de/vlink/release/vlink.tar.gz
|
||||
download http://www.ibaug.de/vbcc/vbcc.tar.gz
|
||||
download http://server.owl.de/~frank/vbcc/${G_VBCC_CURRENT}/vbcc_unix_config.tar
|
||||
|
||||
tar xzf vasm.tar.gz
|
||||
tar xzf vlink.tar.gz
|
||||
tar xzf vbcc.tar.gz
|
||||
tar xf vbcc_unix_config.tar
|
||||
|
||||
pushd vasm &> /dev/null
|
||||
make CPU=m68k SYNTAX=mot
|
||||
popd &> /dev/null
|
||||
|
||||
pushd vlink &> /dev/null
|
||||
mkdir -p objects
|
||||
make
|
||||
popd &> /dev/null
|
||||
|
||||
pushd vbcc &> /dev/null
|
||||
mkdir -p bin
|
||||
yes "" | make TARGET=m68k
|
||||
yes "" | make TARGET=m68ks
|
||||
popd &> /dev/null
|
||||
|
||||
mkdir -p "${VBCC}/bin"
|
||||
cp vasm/{vasmm68k_mot,vobjdump} "${VBCC}/bin/."
|
||||
cp vlink/vlink "${VBCC}/bin/."
|
||||
cp vbcc/bin/* "${VBCC}/bin/."
|
||||
mv config "${VBCC}/."
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
function mainMenu() {
|
||||
local ITEMS=(
|
||||
"IIgs"
|
||||
# "Amiga"
|
||||
# "ST"
|
||||
"ST"
|
||||
"Linux32"
|
||||
"Linux64"
|
||||
"Win32"
|
||||
|
@ -541,7 +673,7 @@ function mainMenu() {
|
|||
local DESC=(
|
||||
"Apple IIgs 16"
|
||||
# "Commodore Amiga 16"
|
||||
# "Atari ST 16"
|
||||
"Atari ST 16"
|
||||
"Linux 32"
|
||||
"Linux 64"
|
||||
"Windows 32"
|
||||
|
@ -554,7 +686,7 @@ function mainMenu() {
|
|||
local CHECK=(
|
||||
"IIgs/joeylib#b20000"
|
||||
# "Amiga"
|
||||
# "ST"
|
||||
"ST/libjoeylib.a"
|
||||
"linux/i386/libjoeylib.a"
|
||||
"linux/x64/libjoeylib.a"
|
||||
"windows/i386/libjoeylib.a"
|
||||
|
@ -573,7 +705,7 @@ function mainMenu() {
|
|||
G_IS_INSTALLED=(
|
||||
0
|
||||
# 0
|
||||
# 0
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
|
@ -603,39 +735,48 @@ function mainMenu() {
|
|||
set e-
|
||||
)
|
||||
if [[ "${CHOICE}" != "" ]]; then
|
||||
sudo -v
|
||||
doSudo
|
||||
CHOICE="install${CHOICE}"
|
||||
echo ""
|
||||
tBoldBox tCYAN "NOTE: If an error is encountered, installer will exit!"
|
||||
${CHOICE}
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
function purple() {
|
||||
local TEXT=$1
|
||||
echo ""
|
||||
tBoldBox tPURPLE "${TEXT}"
|
||||
echo ""
|
||||
}
|
||||
|
||||
|
||||
# --- START
|
||||
function start() {
|
||||
sudo -v
|
||||
|
||||
mkdir -p installerWork
|
||||
# This has to exist before doSudo is called
|
||||
mkdir -p "${G_WORK}"
|
||||
|
||||
doSudo
|
||||
|
||||
# Do we have Towel yet?
|
||||
if [[ ! -f installerWork/towel/towel.sh ]]; then
|
||||
if [[ ! -f "${G_WORK}/towel/towel.sh" ]]; then
|
||||
# Do we have GIT?
|
||||
if [[ "$(which git || true)" == "" ]]; then
|
||||
echo "Installing git..."
|
||||
sudo apt-get -y install git &> /dev/null
|
||||
doSudo apt-get -y install git &> /dev/null
|
||||
fi
|
||||
echo "Downloading towel.sh support library..."
|
||||
git clone https://skunkworks.kangaroopunch.com/skunkworks/towel.git installerWork/towel &> /dev/null
|
||||
git clone https://skunkworks.kangaroopunch.com/skunkworks/towel.git "${G_WORK}/towel" &> /dev/null
|
||||
fi
|
||||
|
||||
# Load Towel
|
||||
source installerWork/towel/towel.sh
|
||||
|
||||
# Remember where we live.
|
||||
G_PARENT=$(pwd)
|
||||
source "${G_WORK}/towel/towel.sh"
|
||||
|
||||
# Don't change directories until Towel is loaded.
|
||||
pushd installerWork &> /dev/null
|
||||
pushd "${G_WORK}" &> /dev/null
|
||||
|
||||
# See if all the packages we need are installed
|
||||
echo ""
|
||||
|
@ -646,7 +787,7 @@ function start() {
|
|||
uuid-dev libssl-dev bash patch make tar xz-utils bzip2 gzip sed cpio \
|
||||
libpulse-dev{,:i386} libasound2-dev{,:i386} \
|
||||
libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libfreetype6-dev libpcap0.8-dev \
|
||||
php-cli msitools
|
||||
php-cli msitools hatari lhasa bison
|
||||
|
||||
if [[ "${MISSING}" != "" ]]; then
|
||||
if (whiptail --title "${G_TITLE}" --yesno "Some required packages are missing.\n\nInstall them now?" 9 40); then
|
||||
|
@ -657,7 +798,7 @@ function start() {
|
|||
for PACKAGE in ${MISSING}; do
|
||||
PERCENT=$(( 100*(++COUNT)/TOTAL ))
|
||||
echo ${PERCENT}
|
||||
sudo apt-get -y install ${PACKAGE} &> /dev/null
|
||||
doSudo apt-get -y install ${PACKAGE} &> /dev/null
|
||||
done
|
||||
} | whiptail --title "${G_TITLE}" --gauge "\nInstalling packages..." 7 50 0
|
||||
else
|
||||
|
@ -689,5 +830,15 @@ function start() {
|
|||
popd &> /dev/null
|
||||
}
|
||||
|
||||
|
||||
# Remember where we live.
|
||||
G_PARENT=$(pwd)
|
||||
G_SCRIPT=$(basename -- "$0")
|
||||
|
||||
# Is SUDO after us?
|
||||
if [[ "$1" == "ASKPASS" ]]; then
|
||||
doSudoAskPass
|
||||
fi
|
||||
|
||||
# At the very end so we can stream this script from a web server.
|
||||
start
|
||||
|
|
Loading…
Add table
Reference in a new issue