[Scummvm-git-logs] scummvm master -> 7c9a1fa9f3f0e21757cfb7822baac5a31861a2d9
lephilousophe
lephilousophe at users.noreply.github.com
Sat May 1 16:03:27 UTC 2021
This automated email contains information about 19 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
81124a5214 AMIGAOS: Small changes
27857d895f AMIGAOS: Janitorial
4c5b906474 AMIGAOS: Janitorial
cbaaa28ddb AMIGAOS: Change to work with assigns as install dir
d0185f5172 AMIGAOS: Quite some clean up
abd09fd5b0 MORPHOS: Fix oversight in debug message
630a58d262 AMIGAOS: Revert most of the superfluous spaces
8a35ceddda AMIGAOS: Add ALL switch to makedir
6a4adb24d3 AMIGAOS: Add switches to delete
e776921a7e AMIGAOS: Revert some chnages to use new install path
13d5b6660e AMIGAOS: More changes
ae9ad5b187 AMIGAOS: Revert MorphOS change (taken care in another PR)
3c498b4a35 AMIGAOS: Revert install assign to install subdirectory
37ef6b4204 AMIGAOS: Typo in comment
0cd93d8113 AMIGAOS: Update commands
213232ea85 AMIGAOS: Update commands
c889a126b8 AMIGAOS: Janitorial
993779259f AMIGAOS: Strip trailing / to ensure .info file is placed beside folder
7c9a1fa9f3 AMIGAOS4: Add support for dynamic linking (and plugins)
Commit: 81124a521446a117f647c895cda63dec020263cc
https://github.com/scummvm/scummvm/commit/81124a521446a117f647c895cda63dec020263cc
Author: Hubert Maier (raziel- at users.noreply.github.com)
Date: 2021-05-01T18:03:13+02:00
Commit Message:
AMIGAOS: Small changes
- Change install path to use an assign instead of an absolute path
- Change system dialogs output to print "asl" instead of "amigaos (asl)", incorporated with morphos (since both targets use the same dialog system) to save some lines
Changed paths:
configure
diff --git a/configure b/configure
index 636bf690cf..1c429ace70 100755
--- a/configure
+++ b/configure
@@ -230,7 +230,7 @@ _dwp=dwp
_windres=windres
_stagingpath="staging"
_win32path="c:/scummvm"
-_amigaospath="Games:ScummVM"
+_amigaospath="ScummVM:"
_morphospath="PROGDIR:"
_staticlibpath=
_xcodetoolspath=
@@ -5731,8 +5731,8 @@ if test "$_dialogs" = "no"; then
echo "no"
else
case $_host_os in
- amigaos*)
- echo "amigaos (asl)"
+ amigaos* | morphos*)
+ echo "asl"
_dialogs=yes
;;
darwin*)
@@ -5744,10 +5744,6 @@ else
echo "win32"
_dialogs=yes
;;
- morphos*)
- echo "morphos"
- _dialogs=yes
- ;;
*)
if test "$_gtk" = yes; then
echo "gtk"
Commit: 27857d895f32edf09fc7ba6920988aee66b6bd70
https://github.com/scummvm/scummvm/commit/27857d895f32edf09fc7ba6920988aee66b6bd70
Author: Hubert Maier (raziel- at users.noreply.github.com)
Date: 2021-05-01T18:03:13+02:00
Commit Message:
AMIGAOS: Janitorial
Changed paths:
dists/amigaos/RM2AG.rexx
diff --git a/dists/amigaos/RM2AG.rexx b/dists/amigaos/RM2AG.rexx
index 2af9e2d41d..9b4e2ce90c 100644
--- a/dists/amigaos/RM2AG.rexx
+++ b/dists/amigaos/RM2AG.rexx
@@ -41,7 +41,7 @@ ELSE DO
Check for destination path and create it, if needed.
*/
IF ~EXISTS(install_path'/') THEN
- ADDRESS COMMAND 'makedir ALL FORCE 'install_path
+ ADDRESS COMMAND 'makedir ALL 'install_path
END
IF ~OPEN(check_readme,readme_md,'R') THEN DO
@@ -307,7 +307,7 @@ END
/*
Install finished README.guide to installation path and delete it on closure.
*/
-ADDRESS COMMAND 'copy QUIET README.guide 'install_path
+ADDRESS COMMAND 'copy CLONE QUIET README.guide 'install_path
ADDRESS COMMAND 'delete FORCE QUIET README.guide'
EXIT
Commit: 4c5b906474c0c56922d00566f316abceebd87fe5
https://github.com/scummvm/scummvm/commit/4c5b906474c0c56922d00566f316abceebd87fe5
Author: Hubert Maier (raziel- at users.noreply.github.com)
Date: 2021-05-01T18:03:13+02:00
Commit Message:
AMIGAOS: Janitorial
Changed paths:
dists/amigaos/RM2AG.rexx.in
diff --git a/dists/amigaos/RM2AG.rexx.in b/dists/amigaos/RM2AG.rexx.in
index 3d7f889f06..301fe98720 100644
--- a/dists/amigaos/RM2AG.rexx.in
+++ b/dists/amigaos/RM2AG.rexx.in
@@ -41,7 +41,7 @@ ELSE DO
Check for destination path and create it, if needed.
*/
IF ~EXISTS(install_path'/') THEN
- ADDRESS COMMAND 'makedir ALL FORCE 'install_path
+ ADDRESS COMMAND 'makedir ALL 'install_path
END
IF ~OPEN(check_readme,readme_md,'R') THEN DO
@@ -307,7 +307,7 @@ END
/*
Install finished README.guide to installation path and delete it on closure.
*/
-ADDRESS COMMAND 'copy QUIET README.guide 'install_path
+ADDRESS COMMAND 'copy CLONE QUIET README.guide 'install_path
ADDRESS COMMAND 'delete FORCE QUIET README.guide'
EXIT
Commit: cbaaa28ddb871ff73052fc1c9f52f082558f7d7f
https://github.com/scummvm/scummvm/commit/cbaaa28ddb871ff73052fc1c9f52f082558f7d7f
Author: Hubert Maier (raziel- at users.noreply.github.com)
Date: 2021-05-01T18:03:13+02:00
Commit Message:
AMIGAOS: Change to work with assigns as install dir
Also janitorial
Changed paths:
dists/amigaos/Ext_Inst_so.rexx
diff --git a/dists/amigaos/Ext_Inst_so.rexx b/dists/amigaos/Ext_Inst_so.rexx
index 945121e7e9..93c148ceb0 100644
--- a/dists/amigaos/Ext_Inst_so.rexx
+++ b/dists/amigaos/Ext_Inst_so.rexx
@@ -1,5 +1,5 @@
/*
-$VER: Ext_Inst_so.rexx 0.5 (05.12.2020) Extract and install compiled-in shared libraries from a given ELF binary.
+$VER: Ext_Inst_so.rexx 0.6 (19.04.2021) Extract and install compiled-in shared libraries from a given ELF binary.
*/
PARSE ARG executable install_path
@@ -25,7 +25,7 @@ IF ~EXISTS(executable) THEN DO
END
ELSE DO
executable=STRIP(executable)
- executable=COMPRESS(executable,'"')
+ executable=STRIP(executable,'B','"')
END
IF installpath='' THEN DO
SAY 'No installation destination given!'
@@ -34,12 +34,12 @@ END
ELSE DO
install_path=STRIP(install_path)
install_path=STRIP(install_path,'T','/')
- install_path=COMPRESS(install_path,'"')
+ install_path=STRIP(install_path,'B','"')
/*
Check for destination path and create it, if needed.
*/
- IF ~EXISTS(install_path'/sobjs/') THEN
- ADDRESS COMMAND 'makedir 'install_path'/sobjs'
+ IF ~EXISTS(install_path'sobjs/') THEN
+ ADDRESS COMMAND 'makedir 'install_path'sobjs'
END
/*
@@ -91,13 +91,13 @@ DO WHILE i>0
determine which to use the correct path.
*/
IF EXISTS('SDK:local/newlib/lib/'lib.so) THEN
- ADDRESS COMMAND 'copy clone SDK:local/newlib/lib/'lib.so install_path'/sobjs/'
+ ADDRESS COMMAND 'copy clone SDK:local/newlib/lib/'lib.so install_path'sobjs/'
ELSE DO
IF EXISTS('SDK:gcc/lib/'lib.so) THEN
- ADDRESS COMMAND 'copy clone SDK:gcc/lib/'lib.so install_path'/sobjs/'
+ ADDRESS COMMAND 'copy clone SDK:gcc/lib/'lib.so install_path'sobjs/'
ELSE DO
IF EXISTS('SDK:gcc/lib/gcc/ppc-amigaos/'gcc_version'/'lib.so) THEN
- ADDRESS COMMAND 'copy clone SDK:gcc/lib/gcc/ppc-amigaos/'gcc_version'/'lib.so install_path'/sobjs/'
+ ADDRESS COMMAND 'copy clone SDK:gcc/lib/gcc/ppc-amigaos/'gcc_version'/'lib.so install_path'sobjs/'
ELSE DO
/*
If a shared library is not found, abort.
Commit: d0185f51721882b527f0551b29ed8c360f8556e6
https://github.com/scummvm/scummvm/commit/d0185f51721882b527f0551b29ed8c360f8556e6
Author: Hubert Maier (raziel- at users.noreply.github.com)
Date: 2021-05-01T18:03:13+02:00
Commit Message:
AMIGAOS: Quite some clean up
- Cleaned up comments
- Debug messages enhanced
- Fix some leftover spaces instead of TABs
- Removed the newlib workaround: A new version has been released which fixed the cause
- Removed an old workaround dealing with a buffer set too low due to an ill combination of newlib build and disk filesystem.
Even forcing the described behaviour i was not able to see slowdowns in videos.
Also, since "slow video playback" is rather vague and no specific case were given in the comment, i wasn´t able to do specific tesing.
Works for me...
Changed paths:
backends/fs/amigaos/amigaos-fs.cpp
diff --git a/backends/fs/amigaos/amigaos-fs.cpp b/backends/fs/amigaos/amigaos-fs.cpp
index 5f1ed71da0..3f8f205c28 100644
--- a/backends/fs/amigaos/amigaos-fs.cpp
+++ b/backends/fs/amigaos/amigaos-fs.cpp
@@ -27,20 +27,19 @@
#include "common/debug.h"
#include "common/util.h"
-#define ENTER() /* debug(6, "Enter") */
-#define LEAVE() /* debug(6, "Leave") */
-
/**
- * Returns the last component of a given path.
+ * Returns the last component of a given path
*
- * @param str Common::String containing the path.
- * @return Pointer to the first char of the last component inside str.
+ * @param str Common::String containing the path
+ * @return Pointer to the first char of the last component inside str
*/
+
const char *lastPathComponent(const Common::String &str) {
+
int offset = str.size();
if (offset <= 0) {
- debug(6, "Bad offset!");
+ debug(6, "lastPathComponent() failed -> Bad offset!");
return 0;
}
@@ -56,23 +55,22 @@ const char *lastPathComponent(const Common::String &str) {
}
AmigaOSFilesystemNode::AmigaOSFilesystemNode() {
- ENTER();
+
_sDisplayName = "Available HDDs/Partitions";
_bIsValid = true;
_bIsDirectory = true;
_sPath = "";
_pFileLock = 0;
- _nProt = 0; // Protection is ignored for the root volume.
- LEAVE();
+ // Protection is ignored for the root volume
+ _nProt = 0;
}
AmigaOSFilesystemNode::AmigaOSFilesystemNode(const Common::String &p) {
- ENTER();
int offset = p.size();
if (offset <= 0) {
- debug(6, "Bad offset!");
+ debug(6, "AmigaOSFileSystemNode() failed -> Bad offset!");
return;
}
@@ -82,56 +80,40 @@ AmigaOSFilesystemNode::AmigaOSFilesystemNode(const Common::String &p) {
_bIsDirectory = false;
_bIsValid = false;
- // WORKAROUND:
- // This is a workaround for a bug present in AmigaOS
- // newlib.library 53.30 and lower.
- // It will be removed once a fixed version of said library is
- // available to the public.
- // DESCRIPTION:
- // We need to explicitly open dos.library and it's IDOS interface.
- // Otherwise it will hit a NULL pointer with a shared binary build.
- // The hit will happen on loading a game from any engine, if
- // more than one engine (shared) plugin is available.
- DOSBase = IExec->OpenLibrary("dos.library", 0);
- IDOS = (struct DOSIFace *)IExec->GetInterface(DOSBase, "main", 1, NULL);
-
- // Check whether the node exists and if it's a directory.
+ // Check whether the node exists and if it's a directory
struct ExamineData * pExd = IDOS->ExamineObjectTags(EX_StringNameInput,_sPath.c_str(),TAG_END);
+
if (pExd) {
+
_nProt = pExd->Protection;
+
if (EXD_IS_DIRECTORY(pExd)) {
+
_bIsDirectory = true;
_pFileLock = IDOS->Lock((CONST_STRPTR)_sPath.c_str(), SHARED_LOCK);
_bIsValid = (_pFileLock != 0);
-
- // Add a trailing slash, if needed.
+ // Add a trailing slash, if needed
const char c = _sPath.lastChar();
if (c != '/' && c != ':')
_sPath += '/';
} else {
- //_bIsDirectory = false;
+ _bIsDirectory = false;
_bIsValid = true;
}
IDOS->FreeDosObject(DOS_EXAMINEDATA, pExd);
}
-
- // WORKAROUND:
- // Close dos.library and its IDOS interface again.
- IExec->DropInterface((struct Interface *)IDOS);
- IExec->CloseLibrary(DOSBase);
-
- LEAVE();
}
AmigaOSFilesystemNode::AmigaOSFilesystemNode(BPTR pLock, const char *pDisplayName) {
- ENTER();
+
int bufSize = MAXPATHLEN;
_pFileLock = 0;
while (true) {
char *n = new char[bufSize];
if (IDOS->NameFromLock(pLock, (STRPTR)n, bufSize) != DOSFALSE) {
+
_sPath = n;
_sDisplayName = pDisplayName ? pDisplayName : IDOS->FilePart((STRPTR)n);
delete[] n;
@@ -139,9 +121,9 @@ AmigaOSFilesystemNode::AmigaOSFilesystemNode(BPTR pLock, const char *pDisplayNam
}
if (IDOS->IoErr() != ERROR_LINE_TOO_LONG) {
+
_bIsValid = false;
- debug(6, "IDOS->IoErr() failed - ERROR_LINE_TOO_LONG not matched!");
- LEAVE();
+ debug(6, "IDOS->IoErr() failed -> ERROR_LINE_TOO_LONG not matched!");
delete[] n;
return;
}
@@ -153,90 +135,73 @@ AmigaOSFilesystemNode::AmigaOSFilesystemNode(BPTR pLock, const char *pDisplayNam
_bIsDirectory = false;
_bIsValid = false;
- // Check whether the node exists and if it's a directory.
+ // Check whether the node exists and if it's a directory
struct ExamineData * pExd = IDOS->ExamineObjectTags(EX_FileLockInput,pLock,TAG_END);
+
if (pExd) {
+
_nProt = pExd->Protection;
+
if (EXD_IS_DIRECTORY(pExd)) {
+
_bIsDirectory = true;
_pFileLock = IDOS->DupLock(pLock);
_bIsValid = _pFileLock != 0;
- // Add a trailing slash, if needed.
+ // Add a trailing slash, if needed
const char c = _sPath.lastChar();
if (c != '/' && c != ':')
_sPath += '/';
} else {
- //_bIsDirectory = false;
_bIsValid = true;
}
- IDOS->FreeDosObject(DOS_EXAMINEDATA, pExd);
+ IDOS->FreeDosObject(DOS_EXAMINEDATA, pExd);
+
} else {
- debug(6, "IDOS->ExamineData() failed - ExamineDosObject returned NULL!");
- }
- LEAVE();
+ debug(6, "IDOS->ExamineObjectTags() failed -> ExamineDosObject returned NULL!");
+ }
}
-// We need the custom copy constructor because of DupLock().
+// We need the custom copy constructor because of DupLock()
AmigaOSFilesystemNode::AmigaOSFilesystemNode(const AmigaOSFilesystemNode& node)
: AbstractFSNode() {
- ENTER();
+
_sDisplayName = node._sDisplayName;
_bIsValid = node._bIsValid;
_bIsDirectory = node._bIsDirectory;
_sPath = node._sPath;
_pFileLock = IDOS->DupLock(node._pFileLock);
_nProt = node._nProt;
- LEAVE();
}
AmigaOSFilesystemNode::~AmigaOSFilesystemNode() {
- ENTER();
+
if (_pFileLock)
IDOS->UnLock(_pFileLock);
- LEAVE();
}
bool AmigaOSFilesystemNode::exists() const {
- ENTER();
+
if (_sPath.empty())
return false;
bool nodeExists = false;
- // Previously we were trying to examine the node in order
- // to determine if the node exists or not.
- // I don't see the point : once you have been granted a
- // lock on it, it means it exists...
- //
- // ============================= Old code
- // BPTR pLock = IDOS->Lock((STRPTR)_sPath.c_str(), SHARED_LOCK);
- // if (pLock)
- // {
- // if (IDOS->Examine(pLock, fib) != DOSFALSE)
- // nodeExists = true;
- // IDOS->UnLock(pLock);
- // }
- //
- // IDOS->FreeDosObject(DOS_FIB, fib);
- //
- // ============================= New code
BPTR pLock = IDOS->Lock(_sPath.c_str(), SHARED_LOCK);
if (pLock) {
nodeExists = true;
IDOS->UnLock(pLock);
}
- LEAVE();
return nodeExists;
}
AbstractFSNode *AmigaOSFilesystemNode::getChild(const Common::String &n) const {
- ENTER();
+
if (!_bIsDirectory) {
- debug(6, "Not a directory!");
+ debug(6, "AmigaOSFileSystemNode::getChild() failed -> Not a directory!");
return 0;
}
@@ -246,52 +211,50 @@ AbstractFSNode *AmigaOSFilesystemNode::getChild(const Common::String &n) const {
newPath += '/';
newPath += n;
-
- LEAVE();
return new AmigaOSFilesystemNode(newPath);
}
bool AmigaOSFilesystemNode::getChildren(AbstractFSList &myList, ListMode mode, bool hidden) const {
- ENTER();
- bool ret = false;
if (!_bIsValid) {
- debug(6, "Invalid node!");
- LEAVE();
- return false; // Empty list
+ debug(6, "AmigaOSFileSystemNode::getChildren() failed -> Invalid node (Empty list)!");
+ return false;
}
if (!_bIsDirectory) {
- debug(6, "Not a directory!");
- LEAVE();
- return false; // Empty list
+ debug(6, "AmigaOSFileSystemNode::getChildren() failed -> Invalid node (Not a directory)!");
+ return false;
}
if (isRootNode()) {
- debug(6, "Root node!");
- LEAVE();
+ debug(6, "AmigaOSFileSystemNode::getChildren() -> Root node obtained!");
myList = listVolumes();
return true;
}
- APTR context = IDOS->ObtainDirContextTags( EX_FileLockInput, _pFileLock,
- EX_DoCurrentDir, TRUE, /* for softlinks */
- EX_DataFields, (EXF_NAME|EXF_LINK|EXF_TYPE),
+ APTR context = IDOS->ObtainDirContextTags( EX_FileLockInput, _pFileLock,
+ EX_DoCurrentDir, TRUE, /* for softlinks */
+ EX_DataFields, (EXF_NAME|EXF_LINK|EXF_TYPE),
TAG_END);
+
if (context) {
- // No need to free the value after usage, everything will be dealt with by the DirContext release.
+
+ // No need to free the value after usage, everything will be dealt with by the
+ // DirContext release
struct ExamineData * pExd = NULL;
AmigaOSFilesystemNode *entry;
- while ( (pExd = IDOS->ExamineDir(context)) ) {
- if ( (EXD_IS_FILE(pExd) && ( Common::FSNode::kListFilesOnly == mode ))
- || (EXD_IS_DIRECTORY(pExd) && ( Common::FSNode::kListDirectoriesOnly == mode ))
- || Common::FSNode::kListAll == mode
- )
+
+ while ((pExd = IDOS->ExamineDir(context))) {
+ if ((EXD_IS_FILE(pExd) && (Common::FSNode::kListFilesOnly == mode))
+ || (EXD_IS_DIRECTORY(pExd) && (Common::FSNode::kListDirectoriesOnly == mode))
+ || Common::FSNode::kListAll == mode)
{
BPTR pLock = IDOS->Lock( pExd->Name, SHARED_LOCK );
+
if (pLock) {
entry = new AmigaOSFilesystemNode( pLock, pExd->Name );
+
if (entry) {
myList.push_back(entry);
}
@@ -302,30 +265,23 @@ bool AmigaOSFilesystemNode::getChildren(AbstractFSList &myList, ListMode mode, b
}
if (ERROR_NO_MORE_ENTRIES != IDOS->IoErr() ) {
- debug(6, "IDOS->IoErr() failed - ERROR_NO_MORE_ENTRIES!");
- ret = false;
- } else {
- ret = true;
+ debug(6, "IDOS->IoErr() failed -> ERROR_NO_MORE_ENTRIES not matched!");
+ return false;
}
-
IDOS->ReleaseDirContext(context);
+ return true;
+
} else {
debug(6, "IDOS->ObtainDirContext() failed!");
- ret = false;
+ return false;
}
-
- LEAVE();
-
- return ret;
}
AbstractFSNode *AmigaOSFilesystemNode::getParent() const {
- ENTER();
if (isRootNode()) {
- debug(6, "Root node!");
- LEAVE();
+ debug(6, "AmigaOSFileSystemNode::getParent() -> Root node obtained!");
return new AmigaOSFilesystemNode(*this);
}
@@ -340,6 +296,7 @@ AbstractFSNode *AmigaOSFilesystemNode::getParent() const {
AmigaOSFilesystemNode *node;
BPTR parentDir = IDOS->ParentDir( pLock );
+
if (parentDir) {
node = new AmigaOSFilesystemNode(parentDir);
IDOS->UnLock(parentDir);
@@ -350,91 +307,72 @@ AbstractFSNode *AmigaOSFilesystemNode::getParent() const {
IDOS->UnLock(pLock);
}
- LEAVE();
-
return node;
+
}
bool AmigaOSFilesystemNode::isReadable() const {
+
if (!_bIsValid)
return false;
// Regular RWED protection flags are low-active or inverted,
// thus the negation. Moreover, a pseudo root filesystem is
- // readable whatever the protection says.
+ // always readable, whatever the protection says
bool readable = !(_nProt & EXDF_OTR_READ) || isRootNode();
-
return readable;
}
bool AmigaOSFilesystemNode::isWritable() const {
+
if (!_bIsValid)
return false;
// Regular RWED protection flags are low-active or inverted,
// thus the negation. Moreover, a pseudo root filesystem is
- // never writable whatever the protection says.
- // (Because of it's pseudo nature).
+ // never writable (due of it's pseudo nature), whatever the protection says
bool writable = !(_nProt & EXDF_OTR_WRITE) && !isRootNode();
-
return writable;
}
AbstractFSList AmigaOSFilesystemNode::listVolumes() const {
- ENTER();
AbstractFSList myList;
-
const uint32 kLockFlags = LDF_READ | LDF_VOLUMES;
char buffer[MAXPATHLEN];
struct DosList *dosList = IDOS->LockDosList(kLockFlags);
+
if (!dosList) {
debug(6, "IDOS->LockDOSList() failed!");
- LEAVE();
return myList;
}
dosList = IDOS->NextDosEntry(dosList, LDF_VOLUMES);
+
while (dosList) {
if (dosList->dol_Type == DLT_VOLUME &&
dosList->dol_Name &&
dosList->dol_Port) {
- // The original line was
- //
- // if (dosList->dol_Type == DLT_VOLUME &&
- // dosList->dol_Name &&
- // dosList->dol_Task) {
- //
- // which errored using SDK 53.24 with a
- // 'struct dosList' has no member called 'dol_Task'
- // The reason for that was, that
- // 1) dol_Task wasn't a task pointer, it was a message port instead.
- // 2) it was redefined to be dol_Port in dos/obsolete.h in aforementioned SDK.
-
- // Copy name to buffer.
+ // Copy name to buffer
IDOS->CopyStringBSTRToC(dosList->dol_Name, buffer, MAXPATHLEN);
- // Volume name + '\0'.
+ // Volume name + '\0'
char *volName = new char [strlen(buffer) + 1];
strcpy(volName, buffer);
-
strcat(buffer, ":");
BPTR volumeLock = IDOS->Lock((STRPTR)buffer, SHARED_LOCK);
- if (volumeLock) {
+ if (volumeLock) {
char *devName = new char [MAXPATHLEN];
- // Find device name.
+ // Find device name
IDOS->DevNameFromLock(volumeLock, devName, MAXPATHLEN, DN_DEVICEONLY);
-
snprintf(buffer, MAXPATHLEN, "%s (%s)", volName, devName);
-
delete[] devName;
-
AmigaOSFilesystemNode *entry = new AmigaOSFilesystemNode(volumeLock, buffer);
if (entry) {
myList.push_back(entry);
@@ -442,7 +380,6 @@ AbstractFSList AmigaOSFilesystemNode::listVolumes() const {
IDOS->UnLock(volumeLock);
}
-
delete[] volName;
}
dosList = IDOS->NextDosEntry(dosList, LDF_VOLUMES);
@@ -450,34 +387,20 @@ AbstractFSList AmigaOSFilesystemNode::listVolumes() const {
IDOS->UnLockDosList(kLockFlags);
- LEAVE();
-
return myList;
}
Common::SeekableReadStream *AmigaOSFilesystemNode::createReadStream() {
- StdioStream *readStream = StdioStream::makeFromPath(getPath(), false);
-
- //
- // Work around for possibility that someone uses AmigaOS "newlib" build
- // with SmartFileSystem (blocksize 512 bytes), leading to buffer size
- // being only 512 bytes. "Clib2" sets the buffer size to 8KB, resulting
- // smooth movie playback. This forces the buffer to be enough also when
- // using "newlib" compile on SFS.
- //
- if (readStream) {
- readStream->setBufferSize(8192);
- }
-
- return readStream;
+ return StdioStream::makeFromPath(getPath(), false);
}
+
Common::WriteStream *AmigaOSFilesystemNode::createWriteStream() {
return StdioStream::makeFromPath(getPath(), true);
}
bool AmigaOSFilesystemNode::createDirectory() {
- warning("AmigaOSFilesystemNode::createDirectory(): Not supported");
+ warning("AmigaOSFilesystemNode::createDirectory() -> Not supported");
return _bIsValid && _bIsDirectory;
}
Commit: abd09fd5b03f4c37d94df1051c1674979cfdbc48
https://github.com/scummvm/scummvm/commit/abd09fd5b03f4c37d94df1051c1674979cfdbc48
Author: Hubert Maier (raziel- at users.noreply.github.com)
Date: 2021-05-01T18:03:13+02:00
Commit Message:
MORPHOS: Fix oversight in debug message
Changed paths:
backends/fs/morphos/morphos-fs.cpp
diff --git a/backends/fs/morphos/morphos-fs.cpp b/backends/fs/morphos/morphos-fs.cpp
index a15f5fc30e..3a2d4e3e00 100644
--- a/backends/fs/morphos/morphos-fs.cpp
+++ b/backends/fs/morphos/morphos-fs.cpp
@@ -358,7 +358,7 @@ Common::WriteStream *MorphOSFilesystemNode::createWriteStream() {
}
bool MorphOSFilesystemNode::createDirectory() {
- warning("AmigaOSFilesystemNode::createDirectory(): Not supported");
+ warning("MorphOSFilesystemNode::createDirectory(): Not supported");
return _bIsValid && _bIsDirectory;
}
Commit: 630a58d262c6bb5d657b9f767b4f07eeccc8d58c
https://github.com/scummvm/scummvm/commit/630a58d262c6bb5d657b9f767b4f07eeccc8d58c
Author: Hubert Maier (raziel- at users.noreply.github.com)
Date: 2021-05-01T18:03:13+02:00
Commit Message:
AMIGAOS: Revert most of the superfluous spaces
Changed paths:
backends/fs/amigaos/amigaos-fs.cpp
diff --git a/backends/fs/amigaos/amigaos-fs.cpp b/backends/fs/amigaos/amigaos-fs.cpp
index 3f8f205c28..155e04be9f 100644
--- a/backends/fs/amigaos/amigaos-fs.cpp
+++ b/backends/fs/amigaos/amigaos-fs.cpp
@@ -33,9 +33,7 @@
* @param str Common::String containing the path
* @return Pointer to the first char of the last component inside str
*/
-
const char *lastPathComponent(const Common::String &str) {
-
int offset = str.size();
if (offset <= 0) {
@@ -82,22 +80,18 @@ AmigaOSFilesystemNode::AmigaOSFilesystemNode(const Common::String &p) {
// Check whether the node exists and if it's a directory
struct ExamineData * pExd = IDOS->ExamineObjectTags(EX_StringNameInput,_sPath.c_str(),TAG_END);
-
if (pExd) {
-
_nProt = pExd->Protection;
-
if (EXD_IS_DIRECTORY(pExd)) {
-
_bIsDirectory = true;
_pFileLock = IDOS->Lock((CONST_STRPTR)_sPath.c_str(), SHARED_LOCK);
_bIsValid = (_pFileLock != 0);
+
// Add a trailing slash, if needed
const char c = _sPath.lastChar();
if (c != '/' && c != ':')
_sPath += '/';
} else {
- _bIsDirectory = false;
_bIsValid = true;
}
@@ -113,7 +107,6 @@ AmigaOSFilesystemNode::AmigaOSFilesystemNode(BPTR pLock, const char *pDisplayNam
while (true) {
char *n = new char[bufSize];
if (IDOS->NameFromLock(pLock, (STRPTR)n, bufSize) != DOSFALSE) {
-
_sPath = n;
_sDisplayName = pDisplayName ? pDisplayName : IDOS->FilePart((STRPTR)n);
delete[] n;
@@ -121,7 +114,6 @@ AmigaOSFilesystemNode::AmigaOSFilesystemNode(BPTR pLock, const char *pDisplayNam
}
if (IDOS->IoErr() != ERROR_LINE_TOO_LONG) {
-
_bIsValid = false;
debug(6, "IDOS->IoErr() failed -> ERROR_LINE_TOO_LONG not matched!");
delete[] n;
@@ -137,13 +129,9 @@ AmigaOSFilesystemNode::AmigaOSFilesystemNode(BPTR pLock, const char *pDisplayNam
// Check whether the node exists and if it's a directory
struct ExamineData * pExd = IDOS->ExamineObjectTags(EX_FileLockInput,pLock,TAG_END);
-
if (pExd) {
-
_nProt = pExd->Protection;
-
if (EXD_IS_DIRECTORY(pExd)) {
-
_bIsDirectory = true;
_pFileLock = IDOS->DupLock(pLock);
_bIsValid = _pFileLock != 0;
@@ -156,10 +144,8 @@ AmigaOSFilesystemNode::AmigaOSFilesystemNode(BPTR pLock, const char *pDisplayNam
_bIsValid = true;
}
- IDOS->FreeDosObject(DOS_EXAMINEDATA, pExd);
-
+ IDOS->FreeDosObject(DOS_EXAMINEDATA, pExd);
} else {
-
debug(6, "IDOS->ExamineObjectTags() failed -> ExamineDosObject returned NULL!");
}
}
@@ -211,6 +197,7 @@ AbstractFSNode *AmigaOSFilesystemNode::getChild(const Common::String &n) const {
newPath += '/';
newPath += n;
+
return new AmigaOSFilesystemNode(newPath);
}
@@ -236,25 +223,21 @@ bool AmigaOSFilesystemNode::getChildren(AbstractFSList &myList, ListMode mode, b
EX_DoCurrentDir, TRUE, /* for softlinks */
EX_DataFields, (EXF_NAME|EXF_LINK|EXF_TYPE),
TAG_END);
-
if (context) {
-
// No need to free the value after usage, everything will be dealt with by the
// DirContext release
struct ExamineData * pExd = NULL;
AmigaOSFilesystemNode *entry;
-
while ((pExd = IDOS->ExamineDir(context))) {
if ((EXD_IS_FILE(pExd) && (Common::FSNode::kListFilesOnly == mode))
|| (EXD_IS_DIRECTORY(pExd) && (Common::FSNode::kListDirectoriesOnly == mode))
- || Common::FSNode::kListAll == mode)
+ || Common::FSNode::kListAll == mode
+ )
{
BPTR pLock = IDOS->Lock( pExd->Name, SHARED_LOCK );
-
if (pLock) {
entry = new AmigaOSFilesystemNode( pLock, pExd->Name );
-
if (entry) {
myList.push_back(entry);
}
@@ -296,7 +279,6 @@ AbstractFSNode *AmigaOSFilesystemNode::getParent() const {
AmigaOSFilesystemNode *node;
BPTR parentDir = IDOS->ParentDir( pLock );
-
if (parentDir) {
node = new AmigaOSFilesystemNode(parentDir);
IDOS->UnLock(parentDir);
@@ -308,11 +290,9 @@ AbstractFSNode *AmigaOSFilesystemNode::getParent() const {
}
return node;
-
}
bool AmigaOSFilesystemNode::isReadable() const {
-
if (!_bIsValid)
return false;
@@ -320,11 +300,11 @@ bool AmigaOSFilesystemNode::isReadable() const {
// thus the negation. Moreover, a pseudo root filesystem is
// always readable, whatever the protection says
bool readable = !(_nProt & EXDF_OTR_READ) || isRootNode();
+
return readable;
}
bool AmigaOSFilesystemNode::isWritable() const {
-
if (!_bIsValid)
return false;
@@ -332,24 +312,24 @@ bool AmigaOSFilesystemNode::isWritable() const {
// thus the negation. Moreover, a pseudo root filesystem is
// never writable (due of it's pseudo nature), whatever the protection says
bool writable = !(_nProt & EXDF_OTR_WRITE) && !isRootNode();
+
return writable;
}
AbstractFSList AmigaOSFilesystemNode::listVolumes() const {
AbstractFSList myList;
+
const uint32 kLockFlags = LDF_READ | LDF_VOLUMES;
char buffer[MAXPATHLEN];
struct DosList *dosList = IDOS->LockDosList(kLockFlags);
-
if (!dosList) {
debug(6, "IDOS->LockDOSList() failed!");
return myList;
}
dosList = IDOS->NextDosEntry(dosList, LDF_VOLUMES);
-
while (dosList) {
if (dosList->dol_Type == DLT_VOLUME &&
dosList->dol_Name &&
@@ -362,17 +342,21 @@ AbstractFSList AmigaOSFilesystemNode::listVolumes() const {
char *volName = new char [strlen(buffer) + 1];
strcpy(volName, buffer);
+
strcat(buffer, ":");
BPTR volumeLock = IDOS->Lock((STRPTR)buffer, SHARED_LOCK);
-
if (volumeLock) {
+
char *devName = new char [MAXPATHLEN];
// Find device name
IDOS->DevNameFromLock(volumeLock, devName, MAXPATHLEN, DN_DEVICEONLY);
+
snprintf(buffer, MAXPATHLEN, "%s (%s)", volName, devName);
+
delete[] devName;
+
AmigaOSFilesystemNode *entry = new AmigaOSFilesystemNode(volumeLock, buffer);
if (entry) {
myList.push_back(entry);
@@ -380,6 +364,7 @@ AbstractFSList AmigaOSFilesystemNode::listVolumes() const {
IDOS->UnLock(volumeLock);
}
+
delete[] volName;
}
dosList = IDOS->NextDosEntry(dosList, LDF_VOLUMES);
Commit: 8a35ceddda50a94e64cc57e60fc6262bcaa44e65
https://github.com/scummvm/scummvm/commit/8a35ceddda50a94e64cc57e60fc6262bcaa44e65
Author: Hubert Maier (raziel- at users.noreply.github.com)
Date: 2021-05-01T18:03:13+02:00
Commit Message:
AMIGAOS: Add ALL switch to makedir
Changed paths:
dists/amigaos/Ext_Inst_so.rexx
diff --git a/dists/amigaos/Ext_Inst_so.rexx b/dists/amigaos/Ext_Inst_so.rexx
index 93c148ceb0..8cfc1edca5 100644
--- a/dists/amigaos/Ext_Inst_so.rexx
+++ b/dists/amigaos/Ext_Inst_so.rexx
@@ -39,7 +39,7 @@ ELSE DO
Check for destination path and create it, if needed.
*/
IF ~EXISTS(install_path'sobjs/') THEN
- ADDRESS COMMAND 'makedir 'install_path'sobjs'
+ ADDRESS COMMAND 'makedir ALL 'install_path'sobjs'
END
/*
@@ -113,7 +113,7 @@ DO WHILE i>0
END
/*
-AREXX is doing its own cleaning up of open files.
+AREXX is doing it's own cleaning up of open files.
Close the file manually anyway.
*/
IF ~CLOSE(SO_Read) THEN DO
Commit: 6a4adb24d388a5f974db55dba4ecd08c84238654
https://github.com/scummvm/scummvm/commit/6a4adb24d388a5f974db55dba4ecd08c84238654
Author: Hubert Maier (raziel- at users.noreply.github.com)
Date: 2021-05-01T18:03:13+02:00
Commit Message:
AMIGAOS: Add switches to delete
Changed paths:
dists/amigaos/Ext_Inst_so.rexx
diff --git a/dists/amigaos/Ext_Inst_so.rexx b/dists/amigaos/Ext_Inst_so.rexx
index 8cfc1edca5..fa204bd8ba 100644
--- a/dists/amigaos/Ext_Inst_so.rexx
+++ b/dists/amigaos/Ext_Inst_so.rexx
@@ -121,6 +121,6 @@ IF ~CLOSE(SO_Read) THEN DO
EXIT
END
-ADDRESS COMMAND 'delete so_dump'
+ADDRESS COMMAND 'delete FORCE QUIET so_dump'
EXIT
Commit: e776921a7e0567b6b5b047d4ed8e9c6f2c7d45e5
https://github.com/scummvm/scummvm/commit/e776921a7e0567b6b5b047d4ed8e9c6f2c7d45e5
Author: Hubert Maier (raziel- at users.noreply.github.com)
Date: 2021-05-01T18:03:13+02:00
Commit Message:
AMIGAOS: Revert some chnages to use new install path
Changed paths:
backends/platform/sdl/amigaos/amigaos.mk
diff --git a/backends/platform/sdl/amigaos/amigaos.mk b/backends/platform/sdl/amigaos/amigaos.mk
index fb6ee93d52..ff8ee1538a 100644
--- a/backends/platform/sdl/amigaos/amigaos.mk
+++ b/backends/platform/sdl/amigaos/amigaos.mk
@@ -5,52 +5,51 @@
# 'mkdir' seems to incorrectly set permissions to path/dirs on AmigaOS.
# Once a vanilla installation was created, none of the special subdirectories
# are found/accessible (extras, themes, plugins), instead ScummVM reports
-# missing theme files and a valid translation.dat.
+# missing theme files and a mssing valid translation.dat.
# Switching to AmigaOS' own "makedir" until there is a fix or other solution.
#
amigaosdist: $(EXECUTABLE) $(PLUGINS)
- makedir ALL FORCE $(AMIGAOSPATH)
- makedir ALL FORCE $(AMIGAOSPATH)/extras
+ makedir all $(AMIGAOSPATH)
cp ${srcdir}/dists/amigaos/scummvm_drawer.info $(AMIGAOSPATH).info
cp ${srcdir}/dists/amigaos/scummvm.info $(AMIGAOSPATH)/$(EXECUTABLE).info
ifdef DIST_FILES_DOCS
- makedir ALL FORCE $(AMIGAOSPATH)/doc
cp -r $(srcdir)/doc/ $(AMIGAOSPATH)
- cp $(DIST_FILES_DOCS) $(AMIGAOSPATH)/doc/
+ cp $(DIST_FILES_DOCS) $(AMIGAOSPATH)/doc
# Prepare README.md for AmigaGuide conversion.
cat ${srcdir}/README.md | sed -f ${srcdir}/dists/amigaos/convertRM.sed > README.conv
- # AmigaOS AREXX will break with a "Program not found" error, if srcdir is
- # '.'. Copy the script to cwd instead.
+ # AmigaOS AREXX will error with a "Program not found" message
+ # if srcdir is '.'. Copy the script to cwd instead.
cp ${srcdir}/dists/amigaos/RM2AG.rexx .
rx RM2AG.rexx README.conv $(AMIGAOSPATH)/doc/
rm -f README.conv
rm -f RM2AG.rexx
endif
# Copy mandatory installation files.
+ makedir all $(AMIGAOSPATH)/extras
ifdef DIST_FILES_ENGINEDATA
- cp $(DIST_FILES_ENGINEDATA) $(AMIGAOSPATH)/extras/
+ cp $(DIST_FILES_ENGINEDATA) $(AMIGAOSPATH)/extras
endif
ifdef DIST_FILES_NETWORKING
- cp $(DIST_FILES_NETWORKING) $(AMIGAOSPATH)/extras/
+ cp $(DIST_FILES_NETWORKING) $(AMIGAOSPATH)/extras
endif
ifdef DIST_FILES_VKEYBD
- cp $(DIST_FILES_VKEYBD) $(AMIGAOSPATH)/extras/
+ cp $(DIST_FILES_VKEYBD) $(AMIGAOSPATH)/extras
endif
ifdef DIST_FILES_THEMES
- makedir ALL FORCE $(AMIGAOSPATH)/themes
- cp $(DIST_FILES_THEMES) $(AMIGAOSPATH)/themes/
+ makedir all $(AMIGAOSPATH)/themes
+ cp $(DIST_FILES_THEMES) $(AMIGAOSPATH)/themes
endif
# Strip and copy engine plugins.
ifdef DYNAMIC_MODULES
- makedir ALL FORCE $(AMIGAOSPATH)/plugins
+ makedir all $(AMIGAOSPATH)/plugins
$(foreach plugin, $(PLUGINS), $(STRIP) $(plugin) -o $(AMIGAOSPATH)/$(plugin);)
- # Shared objects on AmigaOS change. To avoid conflicts with old or
- # outdated .so's, always remove and install them completely.
+ # Shared objects get updates. To avoid conflicts with obsolete
+ # or outdated .so's, always remove and install them completely.
rm -rf $(AMIGAOSPATH)/sobjs
- makedir ALL FORCE $(AMIGAOSPATH)/sobjs
+ makedir all $(AMIGAOSPATH)/sobjs
# Extract and install compiled-in shared libraries.
- # Not every AmigaOS installation, especially vanilla ones, have
- # every mandatory shared library installed in the correct place.
+ # Not every AmigaOS install, especially vanilla ones, will have
+ # every mandatory shared library, in the correct place, available.
cp ${srcdir}/dists/amigaos/Ext_Inst_so.rexx .
rx Ext_Inst_so.rexx $(EXECUTABLE) $(AMIGAOSPATH)
rm -f Ext_Inst_so.rexx
Commit: 13d5b6660e3c32eeef511f9ade34e4ca82107093
https://github.com/scummvm/scummvm/commit/13d5b6660e3c32eeef511f9ade34e4ca82107093
Author: Hubert Maier (raziel- at users.noreply.github.com)
Date: 2021-05-01T18:03:13+02:00
Commit Message:
AMIGAOS: More changes
Changed paths:
dists/amigaos/Ext_Inst_so.rexx
diff --git a/dists/amigaos/Ext_Inst_so.rexx b/dists/amigaos/Ext_Inst_so.rexx
index fa204bd8ba..945121e7e9 100644
--- a/dists/amigaos/Ext_Inst_so.rexx
+++ b/dists/amigaos/Ext_Inst_so.rexx
@@ -1,5 +1,5 @@
/*
-$VER: Ext_Inst_so.rexx 0.6 (19.04.2021) Extract and install compiled-in shared libraries from a given ELF binary.
+$VER: Ext_Inst_so.rexx 0.5 (05.12.2020) Extract and install compiled-in shared libraries from a given ELF binary.
*/
PARSE ARG executable install_path
@@ -25,7 +25,7 @@ IF ~EXISTS(executable) THEN DO
END
ELSE DO
executable=STRIP(executable)
- executable=STRIP(executable,'B','"')
+ executable=COMPRESS(executable,'"')
END
IF installpath='' THEN DO
SAY 'No installation destination given!'
@@ -34,12 +34,12 @@ END
ELSE DO
install_path=STRIP(install_path)
install_path=STRIP(install_path,'T','/')
- install_path=STRIP(install_path,'B','"')
+ install_path=COMPRESS(install_path,'"')
/*
Check for destination path and create it, if needed.
*/
- IF ~EXISTS(install_path'sobjs/') THEN
- ADDRESS COMMAND 'makedir ALL 'install_path'sobjs'
+ IF ~EXISTS(install_path'/sobjs/') THEN
+ ADDRESS COMMAND 'makedir 'install_path'/sobjs'
END
/*
@@ -91,13 +91,13 @@ DO WHILE i>0
determine which to use the correct path.
*/
IF EXISTS('SDK:local/newlib/lib/'lib.so) THEN
- ADDRESS COMMAND 'copy clone SDK:local/newlib/lib/'lib.so install_path'sobjs/'
+ ADDRESS COMMAND 'copy clone SDK:local/newlib/lib/'lib.so install_path'/sobjs/'
ELSE DO
IF EXISTS('SDK:gcc/lib/'lib.so) THEN
- ADDRESS COMMAND 'copy clone SDK:gcc/lib/'lib.so install_path'sobjs/'
+ ADDRESS COMMAND 'copy clone SDK:gcc/lib/'lib.so install_path'/sobjs/'
ELSE DO
IF EXISTS('SDK:gcc/lib/gcc/ppc-amigaos/'gcc_version'/'lib.so) THEN
- ADDRESS COMMAND 'copy clone SDK:gcc/lib/gcc/ppc-amigaos/'gcc_version'/'lib.so install_path'sobjs/'
+ ADDRESS COMMAND 'copy clone SDK:gcc/lib/gcc/ppc-amigaos/'gcc_version'/'lib.so install_path'/sobjs/'
ELSE DO
/*
If a shared library is not found, abort.
@@ -113,7 +113,7 @@ DO WHILE i>0
END
/*
-AREXX is doing it's own cleaning up of open files.
+AREXX is doing its own cleaning up of open files.
Close the file manually anyway.
*/
IF ~CLOSE(SO_Read) THEN DO
@@ -121,6 +121,6 @@ IF ~CLOSE(SO_Read) THEN DO
EXIT
END
-ADDRESS COMMAND 'delete FORCE QUIET so_dump'
+ADDRESS COMMAND 'delete so_dump'
EXIT
Commit: ae9ad5b18793dd867db8bc56abb4508280cca86e
https://github.com/scummvm/scummvm/commit/ae9ad5b18793dd867db8bc56abb4508280cca86e
Author: Hubert Maier (raziel- at users.noreply.github.com)
Date: 2021-05-01T18:03:13+02:00
Commit Message:
AMIGAOS: Revert MorphOS change (taken care in another PR)
Changed paths:
backends/fs/morphos/morphos-fs.cpp
diff --git a/backends/fs/morphos/morphos-fs.cpp b/backends/fs/morphos/morphos-fs.cpp
index 3a2d4e3e00..a15f5fc30e 100644
--- a/backends/fs/morphos/morphos-fs.cpp
+++ b/backends/fs/morphos/morphos-fs.cpp
@@ -358,7 +358,7 @@ Common::WriteStream *MorphOSFilesystemNode::createWriteStream() {
}
bool MorphOSFilesystemNode::createDirectory() {
- warning("MorphOSFilesystemNode::createDirectory(): Not supported");
+ warning("AmigaOSFilesystemNode::createDirectory(): Not supported");
return _bIsValid && _bIsDirectory;
}
Commit: 3c498b4a3542376c7fac3bdee34395ba6ebf0c92
https://github.com/scummvm/scummvm/commit/3c498b4a3542376c7fac3bdee34395ba6ebf0c92
Author: Hubert Maier (raziel- at users.noreply.github.com)
Date: 2021-05-01T18:03:13+02:00
Commit Message:
AMIGAOS: Revert install assign to install subdirectory
Changed paths:
configure
diff --git a/configure b/configure
index 1c429ace70..66d2325fe8 100755
--- a/configure
+++ b/configure
@@ -230,7 +230,7 @@ _dwp=dwp
_windres=windres
_stagingpath="staging"
_win32path="c:/scummvm"
-_amigaospath="ScummVM:"
+_amigaospath="install"
_morphospath="PROGDIR:"
_staticlibpath=
_xcodetoolspath=
Commit: 37ef6b420400b424a6fb9083819c2385f16f404c
https://github.com/scummvm/scummvm/commit/37ef6b420400b424a6fb9083819c2385f16f404c
Author: Hubert Maier (raziel- at users.noreply.github.com)
Date: 2021-05-01T18:03:13+02:00
Commit Message:
AMIGAOS: Typo in comment
Changed paths:
backends/platform/sdl/amigaos/amigaos.mk
diff --git a/backends/platform/sdl/amigaos/amigaos.mk b/backends/platform/sdl/amigaos/amigaos.mk
index ff8ee1538a..6696249a6b 100644
--- a/backends/platform/sdl/amigaos/amigaos.mk
+++ b/backends/platform/sdl/amigaos/amigaos.mk
@@ -5,7 +5,7 @@
# 'mkdir' seems to incorrectly set permissions to path/dirs on AmigaOS.
# Once a vanilla installation was created, none of the special subdirectories
# are found/accessible (extras, themes, plugins), instead ScummVM reports
-# missing theme files and a mssing valid translation.dat.
+# missing theme files and a missing valid translation.dat.
# Switching to AmigaOS' own "makedir" until there is a fix or other solution.
#
amigaosdist: $(EXECUTABLE) $(PLUGINS)
Commit: 0cd93d8113dd456dfbb59ae0c8973047a890e6a1
https://github.com/scummvm/scummvm/commit/0cd93d8113dd456dfbb59ae0c8973047a890e6a1
Author: Hubert Maier (raziel- at users.noreply.github.com)
Date: 2021-05-01T18:03:13+02:00
Commit Message:
AMIGAOS: Update commands
Changed paths:
dists/amigaos/Ext_Inst_so.rexx
diff --git a/dists/amigaos/Ext_Inst_so.rexx b/dists/amigaos/Ext_Inst_so.rexx
index 945121e7e9..6763269d86 100644
--- a/dists/amigaos/Ext_Inst_so.rexx
+++ b/dists/amigaos/Ext_Inst_so.rexx
@@ -39,7 +39,7 @@ ELSE DO
Check for destination path and create it, if needed.
*/
IF ~EXISTS(install_path'/sobjs/') THEN
- ADDRESS COMMAND 'makedir 'install_path'/sobjs'
+ ADDRESS COMMAND 'makedir all 'install_path'/sobjs'
END
/*
@@ -91,13 +91,13 @@ DO WHILE i>0
determine which to use the correct path.
*/
IF EXISTS('SDK:local/newlib/lib/'lib.so) THEN
- ADDRESS COMMAND 'copy clone SDK:local/newlib/lib/'lib.so install_path'/sobjs/'
+ ADDRESS COMMAND 'copy clone quiet SDK:local/newlib/lib/'lib.so install_path'/sobjs/'
ELSE DO
IF EXISTS('SDK:gcc/lib/'lib.so) THEN
- ADDRESS COMMAND 'copy clone SDK:gcc/lib/'lib.so install_path'/sobjs/'
+ ADDRESS COMMAND 'copy clone quiet SDK:gcc/lib/'lib.so install_path'/sobjs/'
ELSE DO
IF EXISTS('SDK:gcc/lib/gcc/ppc-amigaos/'gcc_version'/'lib.so) THEN
- ADDRESS COMMAND 'copy clone SDK:gcc/lib/gcc/ppc-amigaos/'gcc_version'/'lib.so install_path'/sobjs/'
+ ADDRESS COMMAND 'copy clone quiet SDK:gcc/lib/gcc/ppc-amigaos/'gcc_version'/'lib.so install_path'/sobjs/'
ELSE DO
/*
If a shared library is not found, abort.
@@ -121,6 +121,6 @@ IF ~CLOSE(SO_Read) THEN DO
EXIT
END
-ADDRESS COMMAND 'delete so_dump'
+ADDRESS COMMAND 'delete force quiet so_dump'
EXIT
Commit: 213232ea856510e77bbaded251ff1c38af2a05a5
https://github.com/scummvm/scummvm/commit/213232ea856510e77bbaded251ff1c38af2a05a5
Author: Hubert Maier (raziel- at users.noreply.github.com)
Date: 2021-05-01T18:03:13+02:00
Commit Message:
AMIGAOS: Update commands
Changed paths:
dists/amigaos/RM2AG.rexx
diff --git a/dists/amigaos/RM2AG.rexx b/dists/amigaos/RM2AG.rexx
index 9b4e2ce90c..d41789d348 100644
--- a/dists/amigaos/RM2AG.rexx
+++ b/dists/amigaos/RM2AG.rexx
@@ -41,7 +41,7 @@ ELSE DO
Check for destination path and create it, if needed.
*/
IF ~EXISTS(install_path'/') THEN
- ADDRESS COMMAND 'makedir ALL 'install_path
+ ADDRESS COMMAND 'makedir all 'install_path
END
IF ~OPEN(check_readme,readme_md,'R') THEN DO
@@ -307,7 +307,7 @@ END
/*
Install finished README.guide to installation path and delete it on closure.
*/
-ADDRESS COMMAND 'copy CLONE QUIET README.guide 'install_path
-ADDRESS COMMAND 'delete FORCE QUIET README.guide'
+ADDRESS COMMAND 'copy clone quiet README.guide 'install_path
+ADDRESS COMMAND 'delete force quiet README.guide'
EXIT
Commit: c889a126b8e3d34df24f33f0a62bea876640be27
https://github.com/scummvm/scummvm/commit/c889a126b8e3d34df24f33f0a62bea876640be27
Author: Hubert Maier (raziel- at users.noreply.github.com)
Date: 2021-05-01T18:03:13+02:00
Commit Message:
AMIGAOS: Janitorial
Changed paths:
dists/amigaos/RM2AG.rexx.in
diff --git a/dists/amigaos/RM2AG.rexx.in b/dists/amigaos/RM2AG.rexx.in
index 301fe98720..a5f5d537b3 100644
--- a/dists/amigaos/RM2AG.rexx.in
+++ b/dists/amigaos/RM2AG.rexx.in
@@ -41,7 +41,7 @@ ELSE DO
Check for destination path and create it, if needed.
*/
IF ~EXISTS(install_path'/') THEN
- ADDRESS COMMAND 'makedir ALL 'install_path
+ ADDRESS COMMAND 'makedir all 'install_path
END
IF ~OPEN(check_readme,readme_md,'R') THEN DO
@@ -307,7 +307,7 @@ END
/*
Install finished README.guide to installation path and delete it on closure.
*/
-ADDRESS COMMAND 'copy CLONE QUIET README.guide 'install_path
-ADDRESS COMMAND 'delete FORCE QUIET README.guide'
+ADDRESS COMMAND 'copy clone quiet README.guide 'install_path
+ADDRESS COMMAND 'delete force quiet README.guide'
EXIT
Commit: 993779259f4cca0d841d5de8b7b4b18f5b7bfd72
https://github.com/scummvm/scummvm/commit/993779259f4cca0d841d5de8b7b4b18f5b7bfd72
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2021-05-01T18:03:13+02:00
Commit Message:
AMIGAOS: Strip trailing / to ensure .info file is placed beside folder
Changed paths:
backends/platform/sdl/amigaos/amigaos.mk
diff --git a/backends/platform/sdl/amigaos/amigaos.mk b/backends/platform/sdl/amigaos/amigaos.mk
index 6696249a6b..8c96f07407 100644
--- a/backends/platform/sdl/amigaos/amigaos.mk
+++ b/backends/platform/sdl/amigaos/amigaos.mk
@@ -10,7 +10,7 @@
#
amigaosdist: $(EXECUTABLE) $(PLUGINS)
makedir all $(AMIGAOSPATH)
- cp ${srcdir}/dists/amigaos/scummvm_drawer.info $(AMIGAOSPATH).info
+ cp ${srcdir}/dists/amigaos/scummvm_drawer.info $(patsubst %/,%,$(AMIGAOSPATH)).info
cp ${srcdir}/dists/amigaos/scummvm.info $(AMIGAOSPATH)/$(EXECUTABLE).info
ifdef DIST_FILES_DOCS
cp -r $(srcdir)/doc/ $(AMIGAOSPATH)
Commit: 7c9a1fa9f3f0e21757cfb7822baac5a31861a2d9
https://github.com/scummvm/scummvm/commit/7c9a1fa9f3f0e21757cfb7822baac5a31861a2d9
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2021-05-01T18:03:13+02:00
Commit Message:
AMIGAOS4: Add support for dynamic linking (and plugins)
Changed paths:
configure
dists/amigaos/Ext_Inst_so.rexx
diff --git a/configure b/configure
index 66d2325fe8..95927e3749 100755
--- a/configure
+++ b/configure
@@ -3472,20 +3472,12 @@ if test -n "$_host"; then
# PPC Linker requires this to fix relocation errors
append_var CXXFLAGS "-mlongcall"
- # Only static builds link successfully on buildbot
- LDFLAGS=`echo $LDFLAGS | sed 's/-use-dynld//'`
- append_var LDFLAGS "-static"
-
_port_mk="backends/platform/sdl/amigaos/amigaos.mk"
;;
ppc-morphos)
# PPC Linker requires this to fix relocation errors
append_var CXXFLAGS "-mlongcall"
- # Only static builds link successfully on buildbot
- LDFLAGS=`echo $LDFLAGS | sed 's/-use-dynld//'`
- append_var LDFLAGS "-static"
-
_port_mk="backends/platform/sdl/morphos/morphos.mk"
;;
ps3)
diff --git a/dists/amigaos/Ext_Inst_so.rexx b/dists/amigaos/Ext_Inst_so.rexx
index 6763269d86..93d3e0658f 100644
--- a/dists/amigaos/Ext_Inst_so.rexx
+++ b/dists/amigaos/Ext_Inst_so.rexx
@@ -4,6 +4,11 @@ $VER: Ext_Inst_so.rexx 0.5 (05.12.2020) Extract and install compiled-in shared l
PARSE ARG executable install_path
+/*
+Determine REXX interpreter
+*/
+PARSE UPPER VERSION language .
+
/*
Check if arguments are available, otherwise quit.
*/
@@ -74,7 +79,33 @@ working_line=CALL READLN(SO_read)
working_line=CALL READLN(SO_read)
i=1
+libpaths.i = 'SDK:local/newlib/lib/'
+i=i+1
+libpaths.i = 'SDK:gcc/lib/'
+i=i+1
+libpaths.i = 'SDK:gcc/lib/gcc/ppc-amigaos/'gcc_version'/'
+i=i+1
+/*
+VALUE(arg,, 'ENVIRONMENT') is a Regina REXX extension
+*/
+IF POS('REGINA', language) ~= 0 THEN DO
+ prefix = VALUE('PREFIX',, 'ENVIRONMENT')
+ IF prefix <> '' THEN DO
+ libpaths.i = prefix'/lib/'
+ i=i+1
+ END
+ prefix = VALUE('CROSS_PREFIX',, 'ENVIRONMENT')
+ IF prefix ~= '' THEN DO
+ libpaths.i = prefix'/lib/gcc/ppc-amigaos/'gcc_version'/'
+ i=i+1
+ libpaths.i = prefix'/ppc-amigaos/lib/'
+ i=i+1
+ END
+END
+libpaths.0 = i - 1
+
+i=1
DO WHILE i>0
working_line=READLN(SO_read)
IF POS('Shared library:', working_line)>0 THEN DO
@@ -90,23 +121,19 @@ DO WHILE i>0
by default. Since people can use different gcc versions we have
determine which to use the correct path.
*/
- IF EXISTS('SDK:local/newlib/lib/'lib.so) THEN
- ADDRESS COMMAND 'copy clone quiet SDK:local/newlib/lib/'lib.so install_path'/sobjs/'
- ELSE DO
- IF EXISTS('SDK:gcc/lib/'lib.so) THEN
- ADDRESS COMMAND 'copy clone quiet SDK:gcc/lib/'lib.so install_path'/sobjs/'
- ELSE DO
- IF EXISTS('SDK:gcc/lib/gcc/ppc-amigaos/'gcc_version'/'lib.so) THEN
- ADDRESS COMMAND 'copy clone quiet SDK:gcc/lib/gcc/ppc-amigaos/'gcc_version'/'lib.so install_path'/sobjs/'
- ELSE DO
- /*
- If a shared library is not found, abort.
- */
- SAY lib.so' not found! Aborting!'
- EXIT
- END
+ DO j = 1 TO libpaths.0
+ IF EXISTS(libpaths.j''lib.so) THEN DO
+ ADDRESS COMMAND 'copy clone quiet' libpaths.j''lib.so install_path'/sobjs/'
+ LEAVE
END
END
+ IF j > libpaths.0 THEN DO
+ /*
+ If a shared library is not found, abort.
+ */
+ SAY lib.so' not found! Aborting!'
+ EXIT
+ END
END
ELSE
i=0
More information about the Scummvm-git-logs
mailing list