(svn r1236) MorphOS: added make release like in OSX (tokai)

MorphOS: cleaned up the code telling the difference between AmigaOS and MorphOS (tokai)
This commit is contained in:
bjarni
2004-12-22 21:12:36 +00:00
parent 64e153fc34
commit fb345e983e
13 changed files with 137 additions and 43 deletions

View File

@@ -23,6 +23,11 @@
#include <stdarg.h> /* va_list */
#include "md5.h"
#ifdef __MORPHOS__
// the library base is required here
struct Library *SocketBase = NULL;
#endif
// The listen socket for the server
static SOCKET _listensocket;
@@ -1255,7 +1260,39 @@ static void NetworkGenerateUniqueId(void)
void NetworkStartUp(void)
{
DEBUG(net, 3) ("[NET][Core] Starting network...");
// Network is available
#if defined(__MORPHOS__) || defined(__AMIGA__)
/*
* IMPORTANT NOTE: SocketBase needs to be initialized before we use _any_
* network related function, else: crash.
*/
{
DEBUG(misc,3) ("[NET][Core] Loading bsd socket library");
if (!(SocketBase = OpenLibrary("bsdsocket.library", 4))) {
DEBUG(net, 0) ("[NET][Core] Error: couldn't open bsdsocket.library version 4. Network not available.");
_network_available = false;
return;
}
#if defined(__AMIGA__)
// for usleep() implementation (only required for legacy AmigaOS builds)
if ( (TimerPort = CreateMsgPort()) ) {
if ( (TimerRequest = (struct timerequest *) CreateIORequest(TimerPort, sizeof(struct timerequest))) ) {
if ( OpenDevice("timer.device", UNIT_MICROHZ, (struct IORequest *) TimerRequest, 0) == 0 ) {
if ( !(TimerBase = TimerRequest->tr_node.io_Device) ) {
// free ressources...
DEBUG(net, 0) ("[NET][Core] Error: couldn't initialize timer. Network not available.");
_network_available = false;
return;
}
}
}
}
#endif // __AMIGA__
}
#endif // __MORPHOS__ / __AMIGA__
// Network is available
_network_available = true;
_network_dedicated = false;
_network_last_advertise_date = 0;
@@ -1287,33 +1324,6 @@ void NetworkStartUp(void)
return;
}
}
#else
#if defined(__MORPHOS__) || defined(__AMIGA__)
{
DEBUG(misc,3) ("[NET][Core] Loading bsd socket library");
if (!(SocketBase = OpenLibrary("bsdsocket.library", 4))) {
DEBUG(net, 0) ("[NET][Core] Error: couldn't open bsdsocket.library version 4. Network not available.");
_network_available = false;
return;
}
#if defined(__AMIGA__)
// for usleep() implementation (only required for legacy AmigaOS builds)
if ( (TimerPort = CreateMsgPort()) ) {
if ( (TimerRequest = (struct timerequest *) CreateIORequest(TimerPort, sizeof(struct timerequest))) ) {
if ( OpenDevice("timer.device", UNIT_MICROHZ, (struct IORequest *) TimerRequest, 0) == 0 ) {
if ( !(TimerBase = TimerRequest->tr_node.io_Device) ) {
// free ressources...
DEBUG(net, 0) ("[NET][Core] Error: couldn't initialize timer. Network not available.");
_network_available = false;
return;
}
}
}
}
#endif // __AMIGA__
}
#endif // __MORPHOS__ / __AMIGA__
#endif // WIN32
NetworkInitialize();
@@ -1331,7 +1341,7 @@ void NetworkShutDown(void)
#if defined(__MORPHOS__) || defined(__AMIGA__)
{
// free allocated ressources
#if !defined(__MORPHOS__)
#if defined(__AMIGA__)
if (TimerBase) { CloseDevice((struct IORequest *) TimerRequest); }
if (TimerRequest) { DeleteIORequest(TimerRequest); }
if (TimerPort) { DeleteMsgPort(TimerPort); }