diff --git a/appframework/posixapp.cpp b/appframework/posixapp.cpp index ee4c6953..722675dc 100644 --- a/appframework/posixapp.cpp +++ b/appframework/posixapp.cpp @@ -118,7 +118,7 @@ bool CSteamApplication::Create( ) m_pFileSystem = (IFileSystem*)AddSystem( fileSystemModule, FILESYSTEM_INTERFACE_VERSION ); if ( !m_pFileSystem ) { - Error( "Unable to load %s", pFileSystemDLL ); + Error( "Unable to load %s\n", pFileSystemDLL ); return false; } diff --git a/dedicated/sys_ded.cpp b/dedicated/sys_ded.cpp index 50f9f24a..a7aa53a0 100644 --- a/dedicated/sys_ded.cpp +++ b/dedicated/sys_ded.cpp @@ -360,12 +360,9 @@ void CDedicatedAppSystemGroup::Destroy() bool GetExecutableName( char *out, int nMaxLen ) { #ifdef _WIN32 - if ( !::GetModuleFileName( ( HINSTANCE )GetModuleHandle( NULL ), out, nMaxLen ) ) - return false; - return true; -#elif POSIX - Q_strncpy( out, g_szEXEName, nMaxLen ); - return true; + return !!::GetModuleFileName( ( HINSTANCE )GetModuleHandle( NULL ), out, nMaxLen ); +#else + return false; #endif } diff --git a/dedicated_main/main.cpp b/dedicated_main/main.cpp index 418c857c..5f56c578 100644 --- a/dedicated_main/main.cpp +++ b/dedicated_main/main.cpp @@ -188,33 +188,13 @@ static void WaitForDebuggerConnect( int argc, char *argv[], int time ) int main( int argc, char *argv[] ) { - // Must add 'bin' to the path.... - char* pPath = getenv("LD_LIBRARY_PATH"); - char szBuffer[4096]; - char cwd[ MAX_PATH ]; - if ( !getcwd( cwd, sizeof(cwd)) ) - { - printf( "getcwd failed (%s)", strerror(errno)); - } - - snprintf( szBuffer, sizeof( szBuffer ) - 1, "LD_LIBRARY_PATH=%s/bin:%s", cwd, pPath ); - int ret = putenv( szBuffer ); - if ( ret ) - { - printf( "%s\n", strerror(errno) ); - } - void *tier0 = dlopen( "libtier0" DLL_EXT_STRING, RTLD_NOW ); - void *vstdlib = dlopen( "libvstdlib" DLL_EXT_STRING, RTLD_NOW ); - - const char *pBinaryName = "bin/dedicated" DLL_EXT_STRING; - - void *dedicated = dlopen( pBinaryName, RTLD_NOW ); + void *dedicated = dlopen( "libdedicated" DLL_EXT_STRING, RTLD_NOW ); if ( !dedicated ) - dedicated = dlopen( "bin/libdedicated" DLL_EXT_STRING, RTLD_NOW ); + dedicated = dlopen( "dedicated" DLL_EXT_STRING, RTLD_NOW ); if ( !dedicated ) { - printf( "Failed to open %s (%s)\n", pBinaryName, dlerror()); + printf( "Failed to open dedicated" DLL_EXT_STRING " (%s)\n", dlerror()); return -1; } DedicatedMain_t dedicated_main = (DedicatedMain_t)dlsym( dedicated, "DedicatedMain" ); @@ -226,9 +206,8 @@ int main( int argc, char *argv[] ) WaitForDebuggerConnect( argc, argv, 30 ); - ret = dedicated_main( argc,argv ); + int ret = dedicated_main( argc,argv ); dlclose( dedicated ); - dlclose( vstdlib ); - dlclose( tier0 ); + return ret; } #endif diff --git a/engine/sys_dll.cpp b/engine/sys_dll.cpp index 40201312..f71f5928 100644 --- a/engine/sys_dll.cpp +++ b/engine/sys_dll.cpp @@ -342,33 +342,34 @@ bool Sys_MessageBox(const char *title, const char *info, bool bShowOkAndCancel) return true; } return false; - -#elif defined( USE_SDL ) - - int buttonid = 0; - SDL_MessageBoxData messageboxdata = { 0 }; - SDL_MessageBoxButtonData buttondata[] = - { - { SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT, 1, "OK" }, - { SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT, 0, "Cancel" }, - }; - - messageboxdata.window = GetAssertDialogParent(); - messageboxdata.title = title; - messageboxdata.message = info; - messageboxdata.numbuttons = bShowOkAndCancel ? 2 : 1; - messageboxdata.buttons = buttondata; - - SDL_ShowMessageBox( &messageboxdata, &buttonid ); - return ( buttonid == 1 ); - -#elif defined( POSIX ) - - Warning( "%s\n", info ); - return true; - #else -#error "implement me" +#if defined( USE_SDL ) + SDL_Window *dialogParent = GetAssertDialogParent(); + if (dialogParent) + { + int buttonid = 0; + SDL_MessageBoxData messageboxdata = { 0 }; + SDL_MessageBoxButtonData buttondata[] = + { + { SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT, 1, "OK" }, + { SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT, 0, "Cancel" }, + }; + + messageboxdata.window = GetAssertDialogParent(); + messageboxdata.title = title; + messageboxdata.message = info; + messageboxdata.numbuttons = bShowOkAndCancel ? 2 : 1; + messageboxdata.buttons = buttondata; + + SDL_ShowMessageBox( &messageboxdata, &buttonid ); + return ( buttonid == 1 ); + } + else +#endif + { + Warning( "%s\n", info ); + return true; + } #endif } @@ -464,7 +465,7 @@ void Sys_Error_Internal( bool bMinidump, const char *error, va_list argsList ) // Doing this doesn't quite work the way we want because there is no "crashing" thread // and we see "No thread was identified as the cause of the crash; No signature could be created because we do not know which thread crashed" on the back end //SteamAPI_WriteMiniDump( 0, NULL, build_number() ); - printf("\n ##### Sys_Error: %s", text ); + printf("\n ##### Sys_Error: %s\n", text ); fflush(stdout ); raise(SIGTRAP); @@ -1117,7 +1118,6 @@ void Sys_ShutdownGame( void ) CreateInterfaceFn g_ServerFactory; - #pragma optimize( "g", off ) static bool LoadThisDll( char *szDllFilename, bool bIsServerOnly ) { @@ -1255,7 +1255,7 @@ void LoadEntityDLLs( const char *szBaseDir, bool bIsServerOnly ) if ( serverGameDLL ) { - Msg("server%s loaded for \"%s\"\n", DLL_EXT_STRING, (char *)serverGameDLL->GetGameDescription()); + Msg("server" DLL_EXT_STRING " loaded for \"%s\"\n", (char *)serverGameDLL->GetGameDescription()); } } diff --git a/filesystem/basefilesystem.cpp b/filesystem/basefilesystem.cpp index aad38434..22c96da1 100644 --- a/filesystem/basefilesystem.cpp +++ b/filesystem/basefilesystem.cpp @@ -5057,20 +5057,17 @@ CSysModule *CBaseFileSystem::LoadModule( const char *pFileName, const char *pPat if ( FilterByPathID( &m_SearchPaths[i], lookup ) ) continue; - Q_snprintf( tempPathID, sizeof(tempPathID), "%s%s", m_SearchPaths[i].GetPathString(), pFileName ); // append the path to this dir. - pModule = Sys_LoadModule( tempPathID ); - if ( pModule ) - { - // we found the binary in one of our search paths - return pModule; - } - #ifdef POSIX Q_snprintf( tempPathID, sizeof(tempPathID), "%slib%s", m_SearchPaths[i].GetPathString(), pFileName ); // append the path to this dir. pModule = Sys_LoadModule( tempPathID ); if ( pModule ) return pModule; #endif + + Q_snprintf( tempPathID, sizeof(tempPathID), "%s%s", m_SearchPaths[i].GetPathString(), pFileName ); // append the path to this dir. + pModule = Sys_LoadModule( tempPathID ); + if ( pModule ) + return pModule; } #endif diff --git a/game/client/wscript b/game/client/wscript index c454d535..454f66b7 100755 --- a/game/client/wscript +++ b/game/client/wscript @@ -65,9 +65,9 @@ def build(bld): 'ZLIB' ] - install_path = bld.env.PREFIX + install_path = bld.env.LIBDIR if bld.env.DEST_OS != 'android': - install_path += '/'+bld.env.GAMES+'/bin' + install_path += '/'+bld.env.GAMES source = [ 'in_touch.cpp' ] if bld.env.DEST_OS == 'win32': diff --git a/game/server/wscript b/game/server/wscript index 1b6d834d..8200e754 100755 --- a/game/server/wscript +++ b/game/server/wscript @@ -59,9 +59,9 @@ def build(bld): if bld.env.DEST_OS == 'win32': libs += ['USER32'] - install_path = bld.env.PREFIX + install_path = bld.env.LIBDIR if bld.env.DEST_OS != 'android': - install_path += '/'+bld.env.GAMES+'/bin' + install_path += '/'+bld.env.GAMES source = game["sources"] + ['../../public/tier0/memoverride.cpp'] includes += game["includes"] diff --git a/launcher/launcher.cpp b/launcher/launcher.cpp index 0b27da73..ca1f1393 100644 --- a/launcher/launcher.cpp +++ b/launcher/launcher.cpp @@ -239,11 +239,7 @@ void SetGameDirectory( const char *game ) bool GetExecutableName( char *out, int outSize ) { #ifdef WIN32 - if ( !::GetModuleFileName( ( HINSTANCE )GetModuleHandle( NULL ), out, outSize ) ) - { - return false; - } - return true; + return !!::GetModuleFileName( ( HINSTANCE )GetModuleHandle( NULL ), out, outSize ); #else return false; #endif diff --git a/launcher_main/main.cpp b/launcher_main/main.cpp index bc075b94..1929915b 100644 --- a/launcher_main/main.cpp +++ b/launcher_main/main.cpp @@ -216,31 +216,12 @@ static void WaitForDebuggerConnect( int argc, char *argv[], int time ) int main( int argc, char *argv[] ) { - char ld_path[4196]; - char *path = "bin/"; - char *ld_env; - - if( (ld_env = getenv("LD_LIBRARY_PATH")) != NULL ) - { - snprintf(ld_path, sizeof(ld_path), "%s:bin/", ld_env); - path = ld_path; - } - - setenv("LD_LIBRARY_PATH", path, 1); - - extern char** environ; - if( getenv("NO_EXECVE_AGAIN") == NULL ) - { - setenv("NO_EXECVE_AGAIN", "1", 1); - execve(argv[0], argv, environ); - } - - void *launcher = dlopen( "bin/liblauncher" DLL_EXT_STRING, RTLD_NOW ); + void *launcher = dlopen( "liblauncher" DLL_EXT_STRING, RTLD_NOW ); if ( !launcher ) + { fprintf( stderr, "%s\nFailed to load the launcher\n", dlerror() ); - - if( !launcher ) - launcher = dlopen( "bin/launcher" DLL_EXT_STRING, RTLD_NOW ); + launcher = dlopen( "launcher" DLL_EXT_STRING, RTLD_NOW ); + } if ( !launcher ) { diff --git a/materialsystem/cmaterialsystem.cpp b/materialsystem/cmaterialsystem.cpp index e7870712..d0db83ea 100644 --- a/materialsystem/cmaterialsystem.cpp +++ b/materialsystem/cmaterialsystem.cpp @@ -672,7 +672,7 @@ bool CMaterialSystem::Connect( CreateInterfaceFn factory ) g_pLauncherMgr = (ILauncherMgr *)factory( "SDLMgrInterface001" /*SDL_MGR_INTERFACE_VERSION*/, NULL ); if ( !g_pLauncherMgr ) { - return false; + Warning("Cannot connect SDL\n"); } #endif // USE_SDL #endif // !DEDICATED @@ -3102,8 +3102,6 @@ void CMaterialSystem::ResetTempHWMemory( bool bExitingLevel ) //----------------------------------------------------------------------------- void CMaterialSystem::CacheUsedMaterials( ) { - printf("Cache materials\n"); - g_pShaderAPI->EvictManagedResources(); for (MaterialHandle_t i = FirstMaterial(); i != InvalidMaterial(); i = NextMaterial(i) ) diff --git a/public/filesystem_init.cpp b/public/filesystem_init.cpp index d309efcd..c3729707 100644 --- a/public/filesystem_init.cpp +++ b/public/filesystem_init.cpp @@ -308,54 +308,13 @@ static bool Sys_GetExecutableName( char *out, int len ) bool FileSystem_GetExecutableDir( char *exedir, int exeDirLen ) { #ifdef ANDROID - Q_snprintf( exedir, exeDirLen, "%s", getenv("APP_LIB_PATH") ); + Q_strncpy( exedir, getenv("APP_LIB_PATH"), exeDirLen ); #else - exedir[0] = 0; - - if ( s_bUseVProjectBinDir ) - { - const char *pProject = GetVProjectCmdLineValue(); - if ( !pProject ) - { - // Check their registry. - pProject = getenv( GAMEDIR_TOKEN ); - } - if ( pProject ) - { - Q_snprintf( exedir, exeDirLen, "%s%c..%cbin", pProject, CORRECT_PATH_SEPARATOR, CORRECT_PATH_SEPARATOR ); - return true; - } - return false; - } - - if ( !Sys_GetExecutableName( exedir, exeDirLen ) ) - return false; - Q_StripFilename( exedir ); - - if ( IsX360() ) - { - // The 360 can have its exe and dlls reside on different volumes - // use the optional basedir as the exe dir - if ( CommandLine()->FindParm( "-basedir" ) ) - { - strcpy( exedir, CommandLine()->ParmValue( "-basedir", "" ) ); - } - } - - Q_FixSlashes( exedir ); - - const char* libDir = "bin"; - - // Return the bin directory as the executable dir if it's not in there - // because that's really where we're running from... - char ext[MAX_PATH]; - Q_StrRight( exedir, 4, ext, sizeof( ext ) ); - if ( ext[0] != CORRECT_PATH_SEPARATOR || Q_stricmp( ext+1, libDir ) != 0 ) - { - Q_strncat( exedir, CORRECT_PATH_SEPARATOR_S, exeDirLen, COPY_ALL_CHARACTERS ); - Q_strncat( exedir, libDir, exeDirLen, COPY_ALL_CHARACTERS ); - Q_FixSlashes( exedir ); - } +# ifdef _WIN32 + Q_strncpy( exedir, "./bin", exeDirLen ); +# else + Q_strncpy( exedir, LIBDIR, exeDirLen ); +# endif #endif return true; @@ -364,17 +323,15 @@ bool FileSystem_GetExecutableDir( char *exedir, int exeDirLen ) static bool FileSystem_GetBaseDir( char *baseDir, int baseDirLen ) { #ifdef ANDROID - strncpy(baseDir, getenv("VALVE_GAME_PATH"), baseDirLen); - return true; + Q_strncpy(baseDir, getenv("VALVE_GAME_PATH"), baseDirLen); #else - if ( FileSystem_GetExecutableDir( baseDir, baseDirLen ) ) - { - Q_StripFilename( baseDir ); - return true; - } - - return false; + // get relative base dir which appends to other paths + // allows to run from everywhere + // "hl2/portal" -> "hl2"; "hl2" -> "" + Q_strncpy( baseDir, CommandLine()->ParmValue("-game", ""), baseDirLen ); + Q_StripFilename( baseDir ); #endif + return true; } void LaunchVConfig() @@ -1094,16 +1051,23 @@ FSReturnCode_t FileSystem_SetBasePaths( IFileSystem *pFileSystem ) { pFileSystem->RemoveSearchPaths( "EXECUTABLE_PATH" ); - char executablePath[MAX_PATH]; - if ( !FileSystem_GetExecutableDir( executablePath, sizeof( executablePath ) ) ) + char path[MAX_PATH]; + if ( !FileSystem_GetExecutableDir( path, MAX_PATH ) ) return SetupFileSystemError( false, FS_INVALID_PARAMETERS, "FileSystem_GetExecutableDir failed." ); - pFileSystem->AddSearchPath( executablePath, "EXECUTABLE_PATH" ); + pFileSystem->AddSearchPath( path, "EXECUTABLE_PATH" ); - if ( !FileSystem_GetBaseDir( executablePath, sizeof( executablePath ) ) ) + if ( !FileSystem_GetBaseDir( path, MAX_PATH ) ) return SetupFileSystemError( false, FS_INVALID_PARAMETERS, "FileSystem_GetBaseDir failed." ); - pFileSystem->AddSearchPath( executablePath, "BASE_PATH" ); + pFileSystem->AddSearchPath( path, "BASE_PATH" ); + + // path for client/server libraries + // "hl2/portal" -> "LIBDIR/portal"; "hl2" -> "LIBDIR/hl2" + char gamePath[MAX_PATH]; + V_FileBase( CommandLine()->ParmValue("-game"), gamePath, MAX_PATH ); + Q_snprintf( path, MAX_PATH, "%s/%s", LIBDIR, gamePath ); + pFileSystem->AddSearchPath( path, "GAMEBIN" ); return FS_OK; } diff --git a/scripts/tests-macos-amd64.sh b/scripts/tests-macos-amd64.sh index 2befa2d2..6e01b18d 100755 --- a/scripts/tests-macos-amd64.sh +++ b/scripts/tests-macos-amd64.sh @@ -4,4 +4,4 @@ git submodule init && git submodule update ./waf configure -T release --sanitize=address,undefined --disable-warns --tests --prefix=out/ $* && ./waf install && cd out && -DYLD_LIBRARY_PATH=bin/ ./unittest || exit 1 +./bin/unittest || exit 1 diff --git a/scripts/tests-ubuntu-amd64.sh b/scripts/tests-ubuntu-amd64.sh index 1a4d47f2..21443414 100755 --- a/scripts/tests-ubuntu-amd64.sh +++ b/scripts/tests-ubuntu-amd64.sh @@ -7,4 +7,4 @@ sudo apt-get install -y libbz2-dev ./waf configure -T release --sanitize=address,undefined --disable-warns --tests --prefix=out/ $* && ./waf install && cd out && -LD_LIBRARY_PATH=bin/ ./unittest +./bin/unittest diff --git a/scripts/tests-ubuntu-i386.sh b/scripts/tests-ubuntu-i386.sh index c7a28144..cf5cda9e 100755 --- a/scripts/tests-ubuntu-i386.sh +++ b/scripts/tests-ubuntu-i386.sh @@ -8,4 +8,4 @@ sudo apt-get install -y g++-multilib gcc-multilib libbz2-dev:i386 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig ./waf configure -T release --32bits --sanitize=address,undefined --disable-warns --tests --prefix=out/ $* && ./waf install && cd out && -LD_LIBRARY_PATH=bin/ ./unittest +./bin/unittest diff --git a/tier0/assert_dialog.cpp b/tier0/assert_dialog.cpp index d0a73b8e..a5ab80d0 100644 --- a/tier0/assert_dialog.cpp +++ b/tier0/assert_dialog.cpp @@ -369,6 +369,16 @@ DBG_INTERFACE struct SDL_Window * GetAssertDialogParent() { return g_SDLWindow; } +#elif !defined( _WIN32 ) +DBG_INTERFACE void SetAssertDialogParent( void *window) +{ + (void)window; +} + +DBG_INTERFACE void * GetAssertDialogParent() +{ + return NULL; +} #endif DBG_INTERFACE bool ShouldUseNewAssertDialog() diff --git a/tier1/interface.cpp b/tier1/interface.cpp index 47fda8f9..cd9f968d 100644 --- a/tier1/interface.cpp +++ b/tier1/interface.cpp @@ -269,12 +269,6 @@ static bool s_bRunningWithDebugModules = false; #ifdef POSIX -#ifdef ANDROID -#define DEFAULT_LIB_PATH "" -#else -#define DEFAULT_LIB_PATH "bin/" -#endif - bool foundLibraryWithPrefix( char *pModuleAbsolutePath, size_t AbsolutePathSize, const char *pPath, const char *pModuleName ) { char str[1024]; @@ -283,21 +277,9 @@ bool foundLibraryWithPrefix( char *pModuleAbsolutePath, size_t AbsolutePathSize, bool bFound = false; struct stat statBuf; - Q_snprintf(pModuleAbsolutePath, AbsolutePathSize, "%s/" DEFAULT_LIB_PATH "lib%s", pPath, str); + Q_snprintf(pModuleAbsolutePath, AbsolutePathSize, "%s/lib%s", pPath, str); bFound |= stat(pModuleAbsolutePath, &statBuf) == 0; - if( !bFound ) - { - Q_snprintf(pModuleAbsolutePath, AbsolutePathSize, "%s/" DEFAULT_LIB_PATH "%s", pPath, str); - bFound |= stat(pModuleAbsolutePath, &statBuf) == 0; - } - - if( !bFound ) - { - Q_snprintf(pModuleAbsolutePath, AbsolutePathSize, "%s/lib%s", pPath, str); - bFound |= stat(pModuleAbsolutePath, &statBuf) == 0; - } - if( !bFound ) { Q_snprintf(pModuleAbsolutePath, AbsolutePathSize, "%s/%s", pPath, str); @@ -321,7 +303,7 @@ CSysModule *Sys_LoadModule( const char *pModuleName, Sys_Flags flags /* = SYS_NO // prior to the call to this routine. char szCwd[1024]; #ifdef POSIX - char szModuleName[1024] = { 0 }; + char szModuleName[1024] = { '\0' }; #endif HMODULE hDLL = NULL; @@ -367,7 +349,7 @@ CSysModule *Sys_LoadModule( const char *pModuleName, Sys_Flags flags /* = SYS_NO } #elif defined( POSIX ) - if( !foundLibraryWithPrefix(szAbsoluteModuleName, sizeof(szAbsoluteModuleName), szCwd, pModuleName) ) + if( !foundLibraryWithPrefix(szAbsoluteModuleName, sizeof(szAbsoluteModuleName), LIBDIR, pModuleName) ) { Warning("Can't find module - %s\n", pModuleName); return reinterpret_cast(hDLL); diff --git a/utils/unittest/unittest.cpp b/utils/unittest/unittest.cpp index 898e86e7..bee9b505 100644 --- a/utils/unittest/unittest.cpp +++ b/utils/unittest/unittest.cpp @@ -94,7 +94,7 @@ bool CUnitTestApp::Create() #ifdef WIN32 WIN32_FIND_DATA findFileData; - HANDLE hFind= FindFirstFile("tests/*.dll", &findFileData); + HANDLE hFind= FindFirstFile("bin/tests/*.dll", &findFileData); while (hFind != INVALID_HANDLE_VALUE) { @@ -122,7 +122,7 @@ bool CUnitTestApp::Create() #elif POSIX DIR *d; struct dirent *dir; - d = opendir("tests"); + d = opendir(LIBDIR "/tests"); if (d) { while ((dir = readdir(d)) != NULL) diff --git a/waf b/waf index 1a25450d..4b5aff68 100755 --- a/waf +++ b/waf @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # encoding: latin-1 # Thomas Nagy, 2005-2018 # diff --git a/wscript b/wscript index 16f2263b..04064817 100644 --- a/wscript +++ b/wscript @@ -1,4 +1,5 @@ #! /usr/bin/env python +# vim: noexpandtab # encoding: utf-8 # nillerusr @@ -495,6 +496,19 @@ def configure(conf): cflags, linkflags = conf.get_optimization_flags() + # installation paths + if conf.env.DEST_OS == 'android': + conf.env.LIBDIR = conf.env.BINDIR = conf.env.PREFIX + elif conf.env.DEST_OS == 'win32': + # mustdie + conf.env.LIBDIR = conf.env.PREFIX + '/bin' + conf.env.BINDIR = conf.env.PREFIX + else: + conf.env.LIBDIR = conf.env.LIBDIR + '/srceng' + + conf.env.TESTDIR = conf.env.LIBDIR + '/tests' + conf.define('BINDIR', conf.env.BINDIR) + conf.define('LIBDIR', conf.env.LIBDIR) flags = [] @@ -502,12 +516,14 @@ def configure(conf): flags += ['-fsanitize=%s'%conf.options.SANITIZE, '-fno-sanitize=vptr'] if conf.env.DEST_OS != 'win32': - flags += ['-pipe', '-fPIC', '-L'+os.path.abspath('.')+'/lib/'+conf.env.DEST_OS+'/'+conf.env.DEST_CPU+'/'] + flags += ['-pipe', '-fPIC'] + conf.env.RPATH = [conf.env.LIBDIR] if conf.env.COMPILER_CC != 'msvc': flags += ['-pthread'] if conf.env.DEST_OS == 'android': flags += [ + '-L'+os.path.abspath('.')+'/lib/android/'+conf.env.DEST_CPU+'/', '-I'+os.path.abspath('.')+'/thirdparty/curl/include', '-I'+os.path.abspath('.')+'/thirdparty/SDL', '-I'+os.path.abspath('.')+'/thirdparty/openal-soft/include/', @@ -518,7 +534,10 @@ def configure(conf): ] flags += ['-funwind-tables', '-g'] - elif conf.env.COMPILER_CC != 'msvc' and conf.env.DEST_OS != 'darwin' and conf.env.DEST_CPU in ['x86', 'x86_64']: + elif conf.env.DEST_OS == 'win32': + flags += ['-L'+os.path.abspath('.')+'/lib/win32/'+conf.env.DEST_CPU+'/'] + + if conf.env.COMPILER_CC != 'msvc' and conf.env.DEST_OS != 'darwin' and conf.env.DEST_CPU in ['x86', 'x86_64']: flags += ['-march=core2'] if conf.env.DEST_CPU in ['x86', 'x86_64']: @@ -529,9 +548,6 @@ def configure(conf): if conf.env.DEST_CPU == 'arm': flags += ['-march=armv7-a', '-mfpu=neon-vfpv4'] - if conf.env.DEST_OS == 'freebsd': - linkflags += ['-lexecinfo'] - if conf.env.DEST_OS != 'win32': cflags += flags linkflags += flags @@ -605,14 +621,6 @@ def configure(conf): check_deps( conf ) - # indicate if we are packaging for Linux/BSD - if conf.env.DEST_OS != 'android': - conf.env.LIBDIR = conf.env.PREFIX+'/bin/' - conf.env.TESTDIR = conf.env.PREFIX+'/tests/' - conf.env.BINDIR = conf.env.PREFIX - else: - conf.env.LIBDIR = conf.env.BINDIR = conf.env.PREFIX - if conf.options.CCACHE: conf.env.CC.insert(0, 'ccache') conf.env.CXX.insert(0, 'ccache')