Remove: MorphOS / AmigaOS support

In 10 years there is no commit to change how MorphOS works, and we
have no active maintainer for it. It is unlikely it works in its
current state (but not impossible).

With the arrival of SDL2 (and removal of SDL), MorphOS is no longer
support. There is an SDL2 port for MorphOS, but it is not maintained
by upstream SDL2, and nobody can currently test it out.

If anyone wants to re-add MorphOS, please do (revert this patch,
fix the problems, and create a Pull Request). If you need any help
doing so, let us know! It is not that we don't like MorphOS, it is
that we don't have anyone fixing the problems :(
This commit is contained in:
Patric Stout 2019-03-04 19:21:13 +01:00
parent db49efe29a
commit 7784d77713
83 changed files with 32 additions and 617 deletions

View File

@ -157,7 +157,6 @@ platforms are:
- FreeBSD (SDL)
- Linux (SDL or Allegro)
- macOS (universal) (Cocoa video and sound drivers)
- MorphOS (SDL)
- OpenBSD (SDL)
- OS/2 (SDL)
- Windows (Win32 GDI (faster) or SDL or Allegro)
@ -551,13 +550,6 @@ instead of '`./configure`'.
Use '`make`', but do a '`./configure`' before the first build.
### MorphOS:
Use '`make`'. However, for the first build one has to do a '`./configure`'
first. Note that you need the MorphOS SDK, latest libnix updates (else C++
parts of OpenTTD will not build) and the powersdl.library SDK. Optionally libz,
libpng and freetype2 developer files.
### OS/2:
A comprehensive GNU build environment is required to build the OS/2 version.

View File

@ -559,10 +559,10 @@ check_params() {
# Check if all params have valid values
# OS only allows DETECT, UNIX, OSX, FREEBSD, DRAGONFLY, OPENBSD, NETBSD, MORPHOS, BEOS, HAIKU, SUNOS, CYGWIN, MINGW, OS2, and DOS
if [ -z "`echo $os | egrep '^(DETECT|UNIX|OSX|FREEBSD|DRAGONFLY|OPENBSD|NETBSD|HPUX|MORPHOS|BEOS|HAIKU|SUNOS|CYGWIN|MINGW|OS2|DOS)$'`" ]; then
# OS only allows DETECT, UNIX, OSX, FREEBSD, DRAGONFLY, OPENBSD, NETBSD, BEOS, HAIKU, SUNOS, CYGWIN, MINGW, OS2, and DOS
if [ -z "`echo $os | egrep '^(DETECT|UNIX|OSX|FREEBSD|DRAGONFLY|OPENBSD|NETBSD|HPUX|BEOS|HAIKU|SUNOS|CYGWIN|MINGW|OS2|DOS)$'`" ]; then
log 1 "configure: error: invalid option --os=$os"
log 1 " Available options are: --os=[DETECT|UNIX|OSX|FREEBSD|DRAGONFLY|OPENBSD|NETBSD|HPUX|MORPHOS|BEOS|HAIKU|SUNOS|CYGWIN|MINGW|OS2|DOS]"
log 1 " Available options are: --os=[DETECT|UNIX|OSX|FREEBSD|DRAGONFLY|OPENBSD|NETBSD|HPUX|BEOS|HAIKU|SUNOS|CYGWIN|MINGW|OS2|DOS]"
exit 1
fi
# cpu_type can be either 32 or 64
@ -629,7 +629,7 @@ check_params() {
detect_sse_capable_architecture
if [ "$enable_static" = "1" ]; then
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ] || [ "$os" = "MORPHOS" ] || [ "$os" = "DOS" ]; then
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ] || [ "$os" = "DOS" ]; then
enable_static="2"
else
enable_static="0"
@ -639,8 +639,8 @@ check_params() {
if [ "$enable_static" != "0" ]; then
log 1 "checking static... yes"
if [ "$os" != "MINGW" ] && [ "$os" != "CYGWIN" ] && [ "$os" != "OSX" ] && [ "$os" != "MORPHOS" ] && [ "$os" != "DOS" ]; then
log 1 "WARNING: static is only known to work on Windows, DOS, MacOSX and MorphOS"
if [ "$os" != "MINGW" ] && [ "$os" != "CYGWIN" ] && [ "$os" != "OSX" ] && [ "$os" != "DOS" ]; then
log 1 "WARNING: static is only known to work on Windows, DOS, and MacOSX"
log 1 "WARNING: use static at your own risk on this platform"
sleep 5
@ -939,9 +939,7 @@ check_params() {
fi
if [ "$enable_debug" = "0" ] && [ "$enable_profiling" = "0" ] && [ "$enable_strip" != "0" ]; then
if [ "$os" = "MORPHOS" ]; then
strip_arg="--strip-all --strip-unneeded --remove-section .comment"
elif [ "$os" = "OSX" ]; then
if [ "$os" = "OSX" ]; then
strip_arg=""
elif [ "$os" = "OS2" ]; then
strip_arg=""
@ -1527,10 +1525,6 @@ make_cflags_and_ldflags() {
if [ "$enable_debug" = "0" ]; then
# No debug, add default stuff
OBJS_SUBDIR="release"
if [ "$os" = "MORPHOS" ]; then
CFLAGS="-I/gg/os-include -noixemul -fstrict-aliasing -fexpensive-optimizations -mcpu=604 -fno-inline -mstring -mmultiple $CFLAGS"
LDFLAGS="$LDFLAGS -noixemul"
fi
if [ "$enable_profiling" = "0" ]; then
# -fomit-frame-pointer and -pg do not go well together (gcc errors they are incompatible)
@ -1616,7 +1610,7 @@ make_cflags_and_ldflags() {
fi
fi
if [ "$os" != "CYGWIN" ] && [ "$os" != "HAIKU" ] && [ "$os" != "OPENBSD" ] && [ "$os" != "MINGW" ] && [ "$os" != "MORPHOS" ] && [ "$os" != "OSX" ] && [ "$os" != "DOS" ] && [ "$os" != "OS2" ]; then
if [ "$os" != "CYGWIN" ] && [ "$os" != "HAIKU" ] && [ "$os" != "OPENBSD" ] && [ "$os" != "MINGW" ] && [ "$os" != "OSX" ] && [ "$os" != "DOS" ] && [ "$os" != "OS2" ]; then
LIBS="$LIBS -lpthread"
fi
@ -1624,11 +1618,6 @@ make_cflags_and_ldflags() {
LIBS="$LIBS -lc"
fi
if [ "$os" = "MORPHOS" ]; then
# -Wstrict-prototypes generates much noise because of system headers
CFLAGS="$CFLAGS -Wno-strict-prototypes"
fi
if [ "$os" = "OPENBSD" ]; then
LIBS="$LIBS -pthread"
fi
@ -1657,7 +1646,7 @@ make_cflags_and_ldflags() {
fi
# Most targets act like UNIX, just with some additions
if [ "$os" = "BEOS" ] || [ "$os" = "HAIKU" ] || [ "$os" = "OSX" ] || [ "$os" = "MORPHOS" ] || [ "$os" = "FREEBSD" ] || [ "$os" = "DRAGONFLY" ] || [ "$os" = "OPENBSD" ] || [ "$os" = "NETBSD" ] || [ "$os" = "HPUX" ] || [ "$os" = "SUNOS" ] || [ "$os" = "OS2" ]; then
if [ "$os" = "BEOS" ] || [ "$os" = "HAIKU" ] || [ "$os" = "OSX" ] || [ "$os" = "FREEBSD" ] || [ "$os" = "DRAGONFLY" ] || [ "$os" = "OPENBSD" ] || [ "$os" = "NETBSD" ] || [ "$os" = "HPUX" ] || [ "$os" = "SUNOS" ] || [ "$os" = "OS2" ]; then
CFLAGS="$CFLAGS -DUNIX"
fi
# And others like Windows
@ -2361,7 +2350,7 @@ detect_awk() {
detect_os() {
if [ "$os" = "DETECT" ]; then
# Detect UNIX, OSX, FREEBSD, DRAGONFLY, OPENBSD, NETBSD, HPUX, MORPHOS, BEOS, SUNOS, CYGWIN, MINGW, OS2, and DOS
# Detect UNIX, OSX, FREEBSD, DRAGONFLY, OPENBSD, NETBSD, HPUX, BEOS, SUNOS, CYGWIN, MINGW, OS2, and DOS
# Try first via dumpmachine, then via uname
os=`echo "$host" | tr '[A-Z]' '[a-z]' | $awk '
@ -2372,7 +2361,6 @@ detect_os() {
/openbsd/ { print "OPENBSD"; exit}
/netbsd/ { print "NETBSD"; exit}
/hp-ux/ { print "HPUX"; exit}
/morphos/ { print "MORPHOS"; exit}
/beos/ { print "BEOS"; exit}
/haiku/ { print "HAIKU"; exit}
/sunos/ { print "SUNOS"; exit}
@ -2392,7 +2380,6 @@ detect_os() {
/openbsd/ { print "OPENBSD"; exit}
/netbsd/ { print "NETBSD"; exit}
/hp-ux/ { print "HPUX"; exit}
/morphos/ { print "MORPHOS"; exit}
/beos/ { print "BEOS"; exit}
/haiku/ { print "HAIKU"; exit}
/sunos/ { print "SUNOS"; exit}
@ -2406,7 +2393,7 @@ detect_os() {
if [ -z "$os" ]; then
log 1 "detecting OS... none detected"
log 1 "I couldn't detect your OS. Please use --os=OS to force one"
log 1 "Allowed values are: UNIX, OSX, FREEBSD, DRAGONFLY, OPENBSD, NETBSD, MORPHOS, HPUX, BEOS, HAIKU, SUNOS, CYGWIN, MINGW, OS2, and DOS"
log 1 "Allowed values are: UNIX, OSX, FREEBSD, DRAGONFLY, OPENBSD, NETBSD, HPUX, BEOS, HAIKU, SUNOS, CYGWIN, MINGW, OS2, and DOS"
exit 1
fi
@ -3493,7 +3480,7 @@ showhelp() {
echo " --lipo=LIPO the lipo to use (OSX ONLY) [HOST-lipo]"
echo " --os=OS the OS we are compiling for [DETECT]"
echo " DETECT/UNIX/OSX/FREEBSD/DRAGONFLY/OPENBSD/"
echo " NETBSD/MORPHOS/HPUX/BEOS/SUNOS/CYGWIN/"
echo " NETBSD/HPUX/BEOS/SUNOS/CYGWIN/"
echo " MINGW/OS2/DOS/HAIKU"
echo ""
echo "Paths:"

1
configure vendored
View File

@ -121,7 +121,6 @@ AWKCOMMAND='
"'$os'" != "HAIKU") { next; }
if ($0 == "WIN32" && "'$os'" != "MINGW" &&
"'$os'" != "CYGWIN" && "'$os'" != "MSVC") { next; }
if ($0 == "MORPHOS" && "'$os'" != "MORPHOS") { next; }
if ($0 == "MSVC" && "'$os'" != "MSVC") { next; }
if ($0 == "DIRECTMUSIC" && "'$with_direct_music'" == "0") { next; }
if ($0 == "LIBTIMIDITY" && "'$libtimidity'" == "" ) { next; }

View File

@ -1114,10 +1114,7 @@ music/midifile.cpp
#else
#if DOS
#else
#if MORPHOS
#else
music/extmidi.cpp
#end
music/extmidi.cpp
#end
#end
#if BEOS
@ -1186,11 +1183,7 @@ thread/thread.h
#if OS2
thread/thread_os2.cpp
#else
#if MORPHOS
thread/thread_morphos.cpp
#else
thread/thread_pthread.cpp
#end
thread/thread_pthread.cpp
#end
#end
#else

View File

@ -12,11 +12,6 @@
#ifndef GEOMETRY_TYPE_HPP
#define GEOMETRY_TYPE_HPP
#if defined(__AMIGA__)
/* AmigaOS already has a Point declared */
#define Point OTTD_Point
#endif /* __AMIGA__ */
#if defined(__APPLE__)
/* Mac OS X already has both Rect and Point declared */
#define Rect OTTD_Rect

View File

@ -16,7 +16,7 @@
char *_log_file = NULL; ///< File to reroute output of a forked OpenTTD to
FILE *_log_fd = NULL; ///< File to reroute output of a forked OpenTTD to
#if defined(UNIX) && !defined(__MORPHOS__)
#if defined(UNIX)
#include <unistd.h>
@ -71,7 +71,7 @@ void DedicatedFork()
#else
/** Empty helper function call for NOT(UNIX and not MORPHOS) systems */
/** Empty helper function call for NOT(UNIX) systems */
void DedicatedFork() {}
#endif /* ENABLE_NETWORK */

View File

@ -539,16 +539,6 @@ void FioCreateDirectory(const char *name)
CreateDirectory(OTTD2FS(name), NULL);
#elif defined(OS2) && !defined(__INNOTEK_LIBC__)
mkdir(OTTD2FS(name));
#elif defined(__MORPHOS__) || defined(__AMIGAOS__)
char buf[MAX_PATH];
strecpy(buf, name, lastof(buf));
size_t len = strlen(name) - 1;
if (buf[len] == '/') {
buf[len] = '\0'; // Kill pathsep, so mkdir() will not fail
}
mkdir(OTTD2FS(buf), 0755);
#else
mkdir(OTTD2FS(name), 0755);
#endif
@ -1066,7 +1056,7 @@ void DetermineBasePaths(const char *exe)
AppendPathSeparator(tmp, lastof(tmp));
_searchpaths[SP_PERSONAL_DIR_XDG] = stredup(tmp);
#endif
#if defined(__MORPHOS__) || defined(__AMIGA__) || defined(DOS) || defined(OS2) || !defined(WITH_PERSONAL_DIR)
#if defined(DOS) || defined(OS2) || !defined(WITH_PERSONAL_DIR)
_searchpaths[SP_PERSONAL_DIR] = NULL;
#else
#ifdef __HAIKU__
@ -1109,13 +1099,9 @@ void DetermineBasePaths(const char *exe)
_searchpaths[SP_SHARED_DIR] = NULL;
#endif
#if defined(__MORPHOS__) || defined(__AMIGA__)
_searchpaths[SP_WORKING_DIR] = NULL;
#else
if (getcwd(tmp, MAX_PATH) == NULL) *tmp = '\0';
AppendPathSeparator(tmp, lastof(tmp));
_searchpaths[SP_WORKING_DIR] = stredup(tmp);
#endif
_do_scan_working_directory = DoScanWorkingDirectory();
@ -1135,7 +1121,7 @@ void DetermineBasePaths(const char *exe)
}
}
#if defined(__MORPHOS__) || defined(__AMIGA__) || defined(DOS) || defined(OS2)
#if defined(DOS) || defined(OS2)
_searchpaths[SP_INSTALLATION_DIR] = NULL;
#else
seprintf(tmp, lastof(tmp), "%s", GLOBAL_DATA_DIR);
@ -1239,7 +1225,7 @@ void DeterminePaths(const char *exe)
}
/* Make the necessary folders */
#if !defined(__MORPHOS__) && !defined(__AMIGA__) && defined(WITH_PERSONAL_DIR)
#if defined(WITH_PERSONAL_DIR)
FioCreateDirectory(config_dir);
if (config_dir != _personal_dir) FioCreateDirectory(_personal_dir);
#endif

View File

@ -162,7 +162,7 @@ const char *FiosBrowseTo(const FiosItem *item)
break;
case FIOS_TYPE_PARENT: {
/* Check for possible NULL ptr (not required for UNIXes, but AmigaOS-alikes) */
/* Check for possible NULL ptr */
char *s = strrchr(_fios_path, PATHSEPCHAR);
if (s != NULL && s != _fios_path) {
s[0] = '\0'; // Remove last path separator character, so we can go up one level.
@ -170,11 +170,6 @@ const char *FiosBrowseTo(const FiosItem *item)
s = strrchr(_fios_path, PATHSEPCHAR);
if (s != NULL) {
s[1] = '\0'; // go up a directory
#if defined(__MORPHOS__) || defined(__AMIGAOS__)
/* On MorphOS or AmigaOS paths look like: "Volume:directory/subdirectory" */
} else if ((s = strrchr(_fios_path, ':')) != NULL) {
s[1] = '\0';
#endif
}
break;
}
@ -215,21 +210,7 @@ static void FiosMakeFilename(char *buf, const char *path, const char *name, cons
/* Don't append the extension if it is already there */
period = strrchr(name, '.');
if (period != NULL && strcasecmp(period, ext) == 0) ext = "";
#if defined(__MORPHOS__) || defined(__AMIGAOS__)
if (path != NULL) {
unsigned char sepchar = path[(strlen(path) - 1)];
if (sepchar != ':' && sepchar != '/') {
seprintf(buf, last, "%s" PATHSEP "%s%s", path, name, ext);
} else {
seprintf(buf, last, "%s%s%s", path, name, ext);
}
} else {
seprintf(buf, last, "%s%s", name, ext);
}
#else
seprintf(buf, last, "%s" PATHSEP "%s%s", path, name, ext);
#endif
}
/**

View File

@ -297,10 +297,6 @@ void AskExitGame()
SetDParam(0, STR_OSNAME_BEOS);
#elif defined(__HAIKU__)
SetDParam(0, STR_OSNAME_HAIKU);
#elif defined(__MORPHOS__)
SetDParam(0, STR_OSNAME_MORPHOS);
#elif defined(__AMIGA__)
SetDParam(0, STR_OSNAME_AMIGAOS);
#elif defined(__OS2__)
SetDParam(0, STR_OSNAME_OS2);
#elif defined(SUNOS)

View File

@ -1773,8 +1773,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1445,8 +1445,6 @@ STR_OSNAME_UNIX :يونكس
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :بي او اس
STR_OSNAME_HAIKU :هايكو
STR_OSNAME_MORPHOS :مورف او اس
STR_OSNAME_AMIGAOS :اميقا
STR_OSNAME_OS2 :او اس/2
STR_OSNAME_SUNOS :صن

View File

@ -1685,8 +1685,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -2098,8 +2098,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1789,8 +1789,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1721,8 +1721,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1800,8 +1800,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1895,8 +1895,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1867,8 +1867,6 @@ STR_OSNAME_UNIX :Unixu
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1799,8 +1799,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1799,8 +1799,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1803,8 +1803,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1749,8 +1749,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1803,8 +1803,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1432,8 +1432,6 @@ STR_OSNAME_UNIX :Unikso
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1833,8 +1833,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1596,8 +1596,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1803,8 +1803,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1800,8 +1800,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1983,8 +1983,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1776,8 +1776,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1794,8 +1794,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1896,8 +1896,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1798,8 +1798,6 @@ STR_OSNAME_UNIX :יוניקס
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :מערכת הפעלה בי
STR_OSNAME_HAIKU :הייקו
STR_OSNAME_MORPHOS :מערכת הפעלה מורפ
STR_OSNAME_AMIGAOS :מערכת הפעלה אניגמה
STR_OSNAME_OS2 :מערכת הפעלה או.אס שתיים
STR_OSNAME_SUNOS :סולריס

View File

@ -1863,8 +1863,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1637,8 +1637,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1782,8 +1782,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1772,8 +1772,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1823,8 +1823,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1772,8 +1772,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1800,8 +1800,6 @@ STR_OSNAME_UNIX :{G=f}Unix
STR_OSNAME_OSX :{G=f}OS{NBSP}X
STR_OSNAME_BEOS :{G=f}BeOS
STR_OSNAME_HAIKU :{G=f}Haiku
STR_OSNAME_MORPHOS :{G=f}MorphOS
STR_OSNAME_AMIGAOS :{G=f}AmigaOS
STR_OSNAME_OS2 :{G=f}OS/2
STR_OSNAME_SUNOS :{G=f}SunOS

View File

@ -1973,8 +1973,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1719,8 +1719,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1991,8 +1991,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1775,8 +1775,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1533,8 +1533,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1802,8 +1802,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1695,8 +1695,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -2171,8 +2171,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1800,8 +1800,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1749,8 +1749,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1951,8 +1951,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1979,8 +1979,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1782,8 +1782,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1840,8 +1840,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1926,8 +1926,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1785,8 +1785,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1800,8 +1800,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1793,8 +1793,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1542,8 +1542,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1723,8 +1723,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :ระบบปฏิบัติการ Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1772,8 +1772,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1798,8 +1798,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1901,8 +1901,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -667,8 +667,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1706,8 +1706,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -953,8 +953,6 @@ STR_OSNAME_WINDOWS :Windows
STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1489,8 +1489,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :هایکو
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1386,8 +1386,6 @@ STR_OSNAME_UNIX :یونیکس
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1788,8 +1788,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -1775,8 +1775,6 @@ STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
STR_OSNAME_SUNOS :SunOS

View File

@ -21,48 +21,12 @@
#include "../../safeguards.h"
#ifdef __MORPHOS__
/* the library base is required here */
struct Library *SocketBase = NULL;
#endif
/**
* Initializes the network core (as that is needed for some platforms
* @return true if the core has been initialized, false otherwise
*/
bool NetworkCoreInitialize()
{
#if defined(__MORPHOS__) || defined(__AMIGA__)
/*
* IMPORTANT NOTE: SocketBase needs to be initialized before we use _any_
* network related function, else: crash.
*/
DEBUG(net, 3, "[core] loading bsd socket library");
SocketBase = OpenLibrary("bsdsocket.library", 4);
if (SocketBase == NULL) {
DEBUG(net, 0, "[core] can't open bsdsocket.library version 4, network unavailable");
return false;
}
#if defined(__AMIGA__)
/* for usleep() implementation (only required for legacy AmigaOS builds) */
TimerPort = CreateMsgPort();
if (TimerPort != NULL) {
TimerRequest = (struct timerequest*)CreateIORequest(TimerPort, sizeof(struct timerequest);
if (TimerRequest != NULL) {
if (OpenDevice("timer.device", UNIT_MICROHZ, (struct IORequest*)TimerRequest, 0) == 0) {
TimerBase = TimerRequest->tr_node.io_Device;
if (TimerBase == NULL) {
/* free resources... */
DEBUG(net, 0, "[core] can't initialize timer, network unavailable");
return false;
}
}
}
}
#endif /* __AMIGA__ */
#endif /* __MORPHOS__ / __AMIGA__ */
/* Let's load the network in windows */
#ifdef _WIN32
{
@ -83,17 +47,6 @@ bool NetworkCoreInitialize()
*/
void NetworkCoreShutdown()
{
#if defined(__MORPHOS__) || defined(__AMIGA__)
/* free allocated resources */
#if defined(__AMIGA__)
if (TimerBase != NULL) CloseDevice((struct IORequest*)TimerRequest); // XXX This smells wrong
if (TimerRequest != NULL) DeleteIORequest(TimerRequest);
if (TimerPort != NULL) DeleteMsgPort(TimerPort);
#endif
if (SocketBase != NULL) CloseLibrary(SocketBase);
#endif
#if defined(_WIN32)
WSACleanup();
#endif

View File

@ -48,13 +48,11 @@ typedef unsigned long in_addr_t;
# endif
# define SOCKET int
# define INVALID_SOCKET -1
# if !defined(__MORPHOS__) && !defined(__AMIGA__)
# define ioctlsocket ioctl
# define ioctlsocket ioctl
# if !defined(BEOS_NET_SERVER)
# define closesocket close
# endif
# define GET_LAST_ERROR() (errno)
# endif
# define GET_LAST_ERROR() (errno)
/* Need this for FIONREAD on solaris */
# define BSD_COMP
@ -74,7 +72,7 @@ typedef unsigned long in_addr_t;
# include <arpa/inet.h>
# include <net/if.h>
/* According to glibc/NEWS, <ifaddrs.h> appeared in glibc-2.3. */
# if !defined(__sgi__) && !defined(SUNOS) && !defined(__MORPHOS__) && !defined(__BEOS__) && !defined(__HAIKU__) && !defined(__INNOTEK_LIBC__) \
# if !defined(__sgi__) && !defined(SUNOS) && !defined(__BEOS__) && !defined(__HAIKU__) && !defined(__INNOTEK_LIBC__) \
&& !(defined(__GLIBC__) && (__GLIBC__ <= 2) && (__GLIBC_MINOR__ <= 2)) && !defined(__dietlibc__) && !defined(HPUX)
/* If for any reason ifaddrs.h does not exist on your system, comment out
* the following two lines and an alternative way will be used to fetch
@ -164,39 +162,6 @@ typedef unsigned long in_addr_t;
#endif /* OS/2 */
/* MorphOS and Amiga stuff */
#if defined(__MORPHOS__) || defined(__AMIGA__)
# include <exec/types.h>
# include <proto/exec.h> /* required for Open/CloseLibrary() */
/* MorphOS defines his network functions with UBYTE arrays while we
* use char arrays. This gives tons of unneeded warnings */
# define UBYTE char
# if defined(__MORPHOS__)
# include <sys/filio.h> /* FIO* defines */
# include <sys/sockio.h> /* SIO* defines */
# include <netinet/in.h>
# else /* __AMIGA__ */
# include <proto/socket.h>
# endif
/* Make the names compatible */
# define closesocket(s) CloseSocket(s)
# define GET_LAST_ERROR() Errno()
# define ioctlsocket(s, request, status) IoctlSocket((LONG)s, (ULONG)request, (char*)status)
# define ioctl ioctlsocket
typedef unsigned int in_addr_t;
typedef long socklen_t;
extern struct Library *SocketBase;
# ifdef __AMIGA__
/* for usleep() implementation */
extern struct Device *TimerBase;
extern struct MsgPort *TimerPort;
extern struct timerequest *TimerRequest;
# endif
#endif /* __MORPHOS__ || __AMIGA__ */
/**
* Try to set the socket into non-blocking mode.
* @param d The socket to set the non-blocking more for.

View File

@ -238,11 +238,7 @@ bool NetworkTCPSocketHandler::CanSendReceive()
FD_SET(this->sock, &write_fd);
tv.tv_sec = tv.tv_usec = 0; // don't block at all.
#if !defined(__MORPHOS__) && !defined(__AMIGA__)
if (select(FD_SETSIZE, &read_fd, &write_fd, NULL, &tv) < 0) return false;
#else
if (WaitSelect(FD_SETSIZE, &read_fd, &write_fd, NULL, &tv, NULL) < 0) return false;
#endif
this->writable = !!FD_ISSET(this->sock, &write_fd);
return FD_ISSET(this->sock, &read_fd) != 0;

View File

@ -310,11 +310,7 @@ int NetworkHTTPSocketHandler::Receive()
}
tv.tv_sec = tv.tv_usec = 0; // don't block at all.
#if !defined(__MORPHOS__) && !defined(__AMIGA__)
int n = select(FD_SETSIZE, &read_fd, NULL, NULL, &tv);
#else
int n = WaitSelect(FD_SETSIZE, &read_fd, NULL, NULL, &tv, NULL);
#endif
if (n == -1) return;
for (NetworkHTTPSocketHandler **iter = _http_connections.Begin(); iter < _http_connections.End(); /* nothing */) {

View File

@ -118,11 +118,7 @@ public:
}
tv.tv_sec = tv.tv_usec = 0; // don't block at all.
#if !defined(__MORPHOS__) && !defined(__AMIGA__)
if (select(FD_SETSIZE, &read_fd, &write_fd, NULL, &tv) < 0) return false;
#else
if (WaitSelect(FD_SETSIZE, &read_fd, &write_fd, NULL, &tv, NULL) < 0) return false;
#endif
/* accept clients.. */
for (SocketList::iterator s = sockets.Begin(); s != sockets.End(); s++) {

View File

@ -170,7 +170,7 @@ static void ShowHelp()
" -P password = Password to join company\n"
" -D [ip][:port] = Start dedicated server\n"
" -l ip[:port] = Redirect DEBUG()\n"
#if !defined(__MORPHOS__) && !defined(__AMIGA__) && !defined(_WIN32)
#if !defined(_WIN32)
" -f = Fork into the background (dedicated only)\n"
#endif
#endif /* ENABLE_NETWORK */
@ -497,7 +497,7 @@ struct AfterNewGRFScan : NewGRFScanCallback {
}
};
#if defined(UNIX) && !defined(__MORPHOS__)
#if defined(UNIX)
extern void DedicatedFork();
#endif
@ -516,7 +516,7 @@ static const OptionData _options[] = {
GETOPT_SHORT_VALUE('l'),
GETOPT_SHORT_VALUE('p'),
GETOPT_SHORT_VALUE('P'),
#if !defined(__MORPHOS__) && !defined(__AMIGA__) && !defined(_WIN32)
#if !defined(_WIN32)
GETOPT_SHORT_NOVAL('f'),
#endif
#endif /* ENABLE_NETWORK */
@ -707,7 +707,7 @@ int openttd_main(int argc, char *argv[])
if (dedicated) DEBUG(net, 0, "Starting dedicated version %s", _openttd_revision);
if (_dedicated_forks && !dedicated) _dedicated_forks = false;
#if defined(UNIX) && !defined(__MORPHOS__)
#if defined(UNIX)
/* We must fork here, or we'll end up without some resources we need (like sockets) */
if (_dedicated_forks) DedicatedFork();
#endif

View File

@ -43,21 +43,6 @@
#include <sys/sysctl.h>
#endif
#ifdef __MORPHOS__
#include <exec/types.h>
ULONG __stack = (1024*1024)*2; // maybe not that much is needed actually ;)
/* The system supplied definition of SIG_IGN does not match */
#undef SIG_IGN
#define SIG_IGN (void (*)(int))1
#endif /* __MORPHOS__ */
#ifdef __AMIGA__
#warning add stack symbol to avoid that user needs to set stack manually (tokai)
// ULONG __stack =
#endif
#if defined(__APPLE__)
#if defined(WITH_SDL)
/* the mac implementation needs this file included in the same file as main() */
@ -69,13 +54,7 @@ ULONG __stack = (1024*1024)*2; // maybe not that much is needed actually ;)
bool FiosIsRoot(const char *path)
{
#if !defined(__MORPHOS__) && !defined(__AMIGAOS__)
return path[1] == '\0';
#else
/* On MorphOS or AmigaOS paths look like: "Volume:directory/subdirectory" */
const char *s = strchr(path, ':');
return s != NULL && s[1] == '\0';
#endif
}
void FiosGetDrives(FileList &file_list)
@ -106,15 +85,8 @@ bool FiosIsValidFile(const char *path, const struct dirent *ent, struct stat *sb
{
char filename[MAX_PATH];
int res;
#if defined(__MORPHOS__) || defined(__AMIGAOS__)
/* On MorphOS or AmigaOS paths look like: "Volume:directory/subdirectory" */
if (FiosIsRoot(path)) {
res = seprintf(filename, lastof(filename), "%s:%s", path, ent->d_name);
} else // XXX - only next line!
#else
assert(path[strlen(path) - 1] == PATHSEPCHAR);
if (strlen(path) > 2) assert(path[strlen(path) - 2] != PATHSEPCHAR);
#endif
res = seprintf(filename, lastof(filename), "%s%s", path, ent->d_name);
/* Could we fully concatenate the path and filename? */
@ -296,36 +268,10 @@ bool GetClipboardContents(char *buffer, const char *last)
/* multi os compatible sleep function */
#ifdef __AMIGA__
/* usleep() implementation */
# include <devices/timer.h>
# include <dos/dos.h>
extern struct Device *TimerBase = NULL;
extern struct MsgPort *TimerPort = NULL;
extern struct timerequest *TimerRequest = NULL;
#endif /* __AMIGA__ */
void CSleep(int milliseconds)
{
#if defined(__BEOS__)
snooze(milliseconds * 1000);
#elif defined(__AMIGA__)
{
ULONG signals;
ULONG TimerSigBit = 1 << TimerPort->mp_SigBit;
/* send IORequest */
TimerRequest->tr_node.io_Command = TR_ADDREQUEST;
TimerRequest->tr_time.tv_secs = (milliseconds * 1000) / 1000000;
TimerRequest->tr_time.tv_micro = (milliseconds * 1000) % 1000000;
SendIO((struct IORequest *)TimerRequest);
if (!((signals = Wait(TimerSigBit | SIGBREAKF_CTRL_C)) & TimerSigBit) ) {
AbortIO((struct IORequest *)TimerRequest);
}
WaitIO((struct IORequest *)TimerRequest);
}
#else
usleep(milliseconds * 1000);
#endif

View File

@ -83,10 +83,3 @@ const byte _openttd_revision_tagged = !!ISTAG!!;
* version, thus making comparisons on specific revisions easy.
*/
const uint32 _openttd_newgrf_version = 1 << 28 | 10 << 24 | 0 << 20 | !!ISSTABLETAG!! << 19 | 28004;
#ifdef __MORPHOS__
/**
* Variable used by MorphOS to show the version.
*/
extern const char morphos_versions_tag[] = "$VER: OpenTTD !!VERSION!! (!!DATE!!) OpenTTD Team [MorphOS, PowerPC]";
#endif

View File

@ -23,13 +23,6 @@
#include <sys/stat.h>
#endif
#ifdef __MORPHOS__
#ifdef stderr
#undef stderr
#endif
#define stderr stdout
#endif /* __MORPHOS__ */
#include "../safeguards.h"
/**

View File

@ -29,9 +29,9 @@
/* It seems that we need to include stdint.h before anything else
* We need INT64_MAX, which for most systems comes from stdint.h. However, MSVC
* does not have stdint.h and apparently neither does MorphOS.
* does not have stdint.h.
* For OSX the inclusion is already done in osx_stdafx.h. */
#if !defined(__APPLE__) && (!defined(_MSC_VER) || _MSC_VER >= 1600) && !defined(__MORPHOS__)
#if !defined(__APPLE__) && (!defined(_MSC_VER) || _MSC_VER >= 1600)
#if defined(SUNOS)
/* SunOS/Solaris does not have stdint.h, but inttypes.h defines everything
* stdint.h defines and we need. */
@ -104,30 +104,6 @@
#include <alloca.h>
#endif
#if defined(__MORPHOS__)
/* MorphOS defines certain Amiga defines per default, we undefine them
* here to make the rest of source less messy and more clear what is
* required for morphos and what for AmigaOS */
#if defined(amigaos)
#undef amigaos
#endif
#if defined(__amigaos__)
#undef __amigaos__
# endif
#if defined(__AMIGA__)
#undef __AMIGA__
#endif
#if defined(AMIGA)
#undef AMIGA
#endif
#if defined(amiga)
#undef amiga
#endif
/* Act like we already included this file, as it somehow gives linkage problems
* (mismatch linkage of C++ and C between this include and unistd.h). */
#define CLIB_USERGROUP_PROTOS_H
#endif /* __MORPHOS__ */
/* Stuff for GCC */
#if defined(__GNUC__)
#define NORETURN __attribute__ ((noreturn))
@ -331,7 +307,7 @@
typedef unsigned char byte;
/* This is already defined in unix, but not in QNX Neutrino (6.x)*/
#if (!defined(UNIX) && !defined(__CYGWIN__) && !defined(__BEOS__) && !defined(__HAIKU__) && !defined(__MORPHOS__)) || defined(__QNXNTO__)
#if (!defined(UNIX) && !defined(__CYGWIN__) && !defined(__BEOS__) && !defined(__HAIKU__)) || defined(__QNXNTO__)
typedef unsigned int uint;
#endif
@ -457,8 +433,8 @@ void NORETURN CDECL error(const char *str, ...) WARN_FORMAT(1, 2);
#define OTTD_ASSERT
#endif
#if defined(MORPHOS) || defined(__NDS__) || defined(__DJGPP__)
/* MorphOS and NDS don't have C++ conformant _stricmp... */
#if defined(__NDS__) || defined(__DJGPP__)
/* DJGPP doesn't have C++ conformant _stricmp... */
#define _stricmp stricmp
#elif defined(OPENBSD)
/* OpenBSD uses strcasecmp(3) */

View File

@ -30,13 +30,6 @@
#include <direct.h>
#endif /* _WIN32 || __WATCOMC__ */
#ifdef __MORPHOS__
#ifdef stderr
#undef stderr
#endif
#define stderr stdout
#endif /* __MORPHOS__ */
#include "../table/strgen_tables.h"
#include "../safeguards.h"

View File

@ -1,197 +0,0 @@
/* $Id$ */
/*
* This file is part of OpenTTD.
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
*/
/** @file thread_morphos.cpp MorphOS implementation of Threads. */
#include "../stdafx.h"
#include "thread.h"
#include "../debug.h"
#include "../core/alloc_func.hpp"
#include <stdlib.h>
#include <unistd.h>
#include <exec/types.h>
#include <exec/rawfmt.h>
#include <dos/dostags.h>
#include <proto/dos.h>
#include <proto/exec.h>
#include "../safeguards.h"
/**
* avoid name clashes with MorphOS API functions
*/
#undef Exit
#undef Wait
/**
* NOTE: this code heavily depends on latest libnix updates. So make
* sure you link with new stuff which supports semaphore locking of
* the IO resources, else it will just go foobar.
*/
struct OTTDThreadStartupMessage {
struct Message msg; ///< standard exec.library message (MUST be the first thing in the message struct!)
OTTDThreadFunc func; ///< function the thread will execute
void *arg; ///< functions arguments for the thread function
};
/**
* Default OpenTTD STDIO/ERR debug output is not very useful for this, so we
* utilize serial/ramdebug instead.
*/
void KPutStr(CONST_STRPTR format)
{
RawDoFmt(format, NULL, (void (*)())RAWFMTFUNC_SERIAL, NULL);
}
/**
* MorphOS version for ThreadObject.
*/
class ThreadObject_MorphOS : public ThreadObject {
private:
APTR m_thr; ///< System thread identifier.
struct MsgPort *m_replyport;
struct OTTDThreadStartupMessage m_msg;
bool self_destruct;
public:
/**
* Create a sub process and start it, calling proc(param).
*/
ThreadObject_MorphOS(OTTDThreadFunc proc, void *param, self_destruct) :
m_thr(0), self_destruct(self_destruct)
{
struct Task *parent;
KPutStr("[OpenTTD] Create thread...\n");
parent = FindTask(NULL);
/* Make sure main thread runs with sane priority */
SetTaskPri(parent, 0);
/* Things we'll pass down to the child by utilizing NP_StartupMsg */
m_msg.func = proc;
m_msg.arg = param;
m_replyport = CreateMsgPort();
if (m_replyport != NULL) {
struct Process *child;
m_msg.msg.mn_Node.ln_Type = NT_MESSAGE;
m_msg.msg.mn_ReplyPort = m_replyport;
m_msg.msg.mn_Length = sizeof(struct OTTDThreadStartupMessage);
child = CreateNewProcTags(
NP_CodeType, CODETYPE_PPC,
NP_Entry, ThreadObject_MorphOS::Proxy,
NP_StartupMsg, (IPTR)&m_msg,
NP_Priority, 5UL,
NP_Name, (IPTR)"OpenTTD Thread",
NP_PPCStackSize, 131072UL,
TAG_DONE);
m_thr = (APTR) child;
if (child != NULL) {
KPutStr("[OpenTTD] Child process launched.\n");
} else {
KPutStr("[OpenTTD] Couldn't create child process. (constructors never fail, yeah!)\n");
DeleteMsgPort(m_replyport);
}
}
}
/* virtual */ ~ThreadObject_MorphOS()
{
}
/* virtual */ bool Exit()
{
struct OTTDThreadStartupMessage *msg;
/* You can only exit yourself */
assert(IsCurrent());
KPutStr("[Child] Aborting...\n");
if (NewGetTaskAttrs(NULL, &msg, sizeof(struct OTTDThreadStartupMessage *), TASKINFOTYPE_STARTUPMSG, TAG_DONE) && msg != NULL) {
/* For now we terminate by throwing an error, gives much cleaner cleanup */
throw OTTDThreadExitSignal();
}
return true;
}
/* virtual */ void Join()
{
struct OTTDThreadStartupMessage *reply;
/* You cannot join yourself */
assert(!IsCurrent());
KPutStr("[OpenTTD] Join threads...\n");
KPutStr("[OpenTTD] Wait for child to quit...\n");
WaitPort(m_replyport);
GetMsg(m_replyport);
DeleteMsgPort(m_replyport);
m_thr = 0;
}
/* virtual */ bool IsCurrent()
{
return FindTask(NULL) == m_thr;
}
private:
/**
* On thread creation, this function is called, which calls the real startup
* function. This to get back into the correct instance again.
*/
static void Proxy()
{
struct Task *child = FindTask(NULL);
struct OTTDThreadStartupMessage *msg;
/* Make sure, we don't block the parent. */
SetTaskPri(child, -5);
KPutStr("[Child] Progressing...\n");
if (NewGetTaskAttrs(NULL, &msg, sizeof(struct OTTDThreadStartupMessage *), TASKINFOTYPE_STARTUPMSG, TAG_DONE) && msg != NULL) {
try {
msg->func(msg->arg);
} catch(OTTDThreadExitSignal e) {
KPutStr("[Child] Returned to main()\n");
} catch(...) {
NOT_REACHED();
}
}
/* Quit the child, exec.library will reply the startup msg internally. */
KPutStr("[Child] Done.\n");
if (self_destruct) delete this;
}
};
/* static */ bool ThreadObject::New(OTTDThreadFunc proc, void *param, ThreadObject **thread, const char *name)
{
ThreadObject *to = new ThreadObject_MorphOS(proc, param, thread == NULL);
if (thread != NULL) *thread = to;
return true;
}

View File

@ -496,8 +496,6 @@ static uint ConvertSdlKeyIntoMy(SDL_keysym *sym, WChar *character)
if (sym->scancode == 41) key = WKC_BACKQUOTE;
#elif defined(__APPLE__)
if (sym->scancode == 10) key = WKC_BACKQUOTE;
#elif defined(__MORPHOS__)
if (sym->scancode == 0) key = WKC_BACKQUOTE; // yes, that key is code '0' under MorphOS :)
#elif defined(__BEOS__)
if (sym->scancode == 17) key = WKC_BACKQUOTE;
#elif defined(__SVR4) && defined(__sun)