# include <dlfcn.h>
#endif
-qboolean sys_nostdout = false;
-
static char sys_timestring[128];
char *Sys_TimeString(const char *timeformat)
{
exit(0);
}
-char engineversion[128];
-
-void Sys_Shared_EarlyInit(void)
-{
- const char* os;
-
- Memory_Init ();
- Log_Init ();
-
- COM_InitArgv();
- COM_InitGameType();
-
-#if defined(__linux__)
- os = "Linux";
-#elif defined(WIN32)
- os = "Windows";
-#elif defined(__FreeBSD__)
- os = "FreeBSD";
-#elif defined(__NetBSD__)
- os = "NetBSD";
-#elif defined(__OpenBSD__)
- os = "OpenBSD";
-#elif defined(MACOSX)
- os = "Mac OS X";
-#else
- os = "Unknown";
-#endif
- dpsnprintf (engineversion, sizeof (engineversion), "%s %s %s", gamename, os, buildstring);
-
-// COMMANDLINEOPTION: Console: -nostdout disables text output to the terminal the game was launched from
- if (COM_CheckParm("-nostdout"))
- sys_nostdout = 1;
- else
- Con_Printf("%s\n", engineversion);
-}
-
-void Sys_Shared_LateInit(void)
-{
-}
-
/*
===============================================================================
*func->funcvariable = NULL;
// Try every possible name
+ Con_Printf ("Trying to load library...");
for (i = 0; dllnames[i] != NULL; i++)
{
+ Con_Printf (" \"%s\"", dllnames[i]);
#ifdef WIN32
dllhandle = LoadLibrary (dllnames[i]);
#else
- dllhandle = dlopen (dllnames[i], RTLD_LAZY);
+ dllhandle = dlopen (dllnames[i], RTLD_LAZY | RTLD_GLOBAL);
#endif
if (dllhandle)
break;
+ }
- Con_Printf ("Can't load \"%s\".\n", dllnames[i]);
+ // see if the names can be loaded relative to the executable path
+ // (this is for Mac OSX which does not check next to the executable)
+ if (!dllhandle && strrchr(com_argv[0], '/'))
+ {
+ char path[MAX_OSPATH];
+ strlcpy(path, com_argv[0], sizeof(path));
+ strrchr(path, '/')[1] = 0;
+ for (i = 0; dllnames[i] != NULL; i++)
+ {
+ char temp[MAX_OSPATH];
+ strlcpy(temp, path, sizeof(temp));
+ strlcat(temp, dllnames[i], sizeof(temp));
+ Con_Printf (" \"%s\"", temp);
+#ifdef WIN32
+ dllhandle = LoadLibrary (temp);
+#else
+ dllhandle = dlopen (temp, RTLD_LAZY | RTLD_GLOBAL);
+#endif
+ if (dllhandle)
+ break;
+ }
}
// No DLL found
if (! dllhandle)
+ {
+ Con_Printf(" - failed.\n");
return false;
+ }
- Con_Printf("\"%s\" loaded.\n", dllnames[i]);
+ Con_Printf(" - loaded.\n");
// Get the function adresses
for (func = fcts; func && func->name != NULL; func++)