Linux: Fix ups for people running Linux. If it breaks anything, punch me in the face.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@30 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
Sonicadvance1 2008-07-20 11:02:41 +00:00
parent 35950043a6
commit c7795c41b7
36 changed files with 140 additions and 72 deletions

View File

@ -1,6 +1,6 @@
import os
ccflags = '-g -O2 -msse2 -Wall -D_DEBUG -DLOGGING -D_FILE_OFFSET_BITS=64 D_LARGEFILE_SOURCE'
ccflags = '-g -O2 -msse2 -Wall -DLOGGING -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE'
if False:
ccflags += ' -fomit-frame-pointer'
@ -12,6 +12,7 @@ include_paths = ["../../../Core/Common/Src",
"../../../Core/Core/Src",
"../../../Core/DebuggerWX/src",
"../../../../Externals/Bochs_disasm",
"../../../Core/VideoCommon/Src",
# "../../../Plugins/Plugin_VideoOGL/Src/Windows",
]
@ -20,8 +21,9 @@ dirs = ["Source/Core/Common/Src",
"Source/Core/Core/Src",
"Source/Core/DiscIO/Src",
"Source/Core/DebuggerWX/src",
"Source/Core/VideoCommon/Src",
"Source/Plugins/Plugin_VideoOGL/Src",
"Source/Plugins/Plugin_DSP/Src",
"Source/Plugins/Plugin_DSP_NULL/Src",
"Source/Plugins/Plugin_DSP_LLE/Src",
"Source/Plugins/Plugin_PadSimple/Src",
"Source/Core/DolphinWX/src",
@ -29,8 +31,8 @@ dirs = ["Source/Core/Common/Src",
lib_paths = include_paths
env = Environment(CC="gcc-4.2",
CXX="g++-4.2",
env = Environment(CC="gcc-4.3",
CXX="g++-4.3",
CCFLAGS=ccflags,
CXXFLAGS=ccflags,
CPPPATH=include_paths,

View File

@ -19,6 +19,8 @@
#define _COMMON_H
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#ifdef _WIN32
#define POSIX 0

View File

@ -15,7 +15,7 @@
// Official SVN repository and contact information can be found at
// http://code.google.com/p/dolphin-emu/
#include "plugin.h"
#include "Plugin.h"
namespace Common
{

View File

@ -7,6 +7,7 @@ files = ["Common.cpp",
"HTTP.cpp",
"IniFile.cpp",
"Logging.cpp",
"FileUtil.cpp",
"MappedFile.cpp",
"MathUtil.cpp",
"MemArena.cpp",

View File

@ -23,7 +23,7 @@
#include <time.h>
#include "Common.h"
#include "Timer.H"
#include "Timer.h"
#ifdef __GNUC__
#include <sys/timeb.h>

View File

@ -22,7 +22,7 @@
#endif
#include "Thread.h"
#include "Timer.H"
#include "Timer.h"
#include "Console.h"
#include "Core.h"

View File

@ -15,7 +15,7 @@
// Official SVN repository and contact information can be found at
// http://code.google.com/p/dolphin-emu/
#include "Timer.H"
#include "Timer.h"
#include "EXI_DeviceIPL.h"
#include "../Core.h"

View File

@ -29,7 +29,7 @@
#include "../Core.h"
#include "../IPC_HLE/WII_IPC_HLE.h"
#include "Thread.h"
#include "Timer.H"
#include "Timer.h"
namespace SystemTimers
{

View File

@ -161,7 +161,7 @@ IWII_IPC_HLE_Device* CreateDevice(u32 _DeviceID, const std::string& _rDeviceName
}
std::queue<u32> m_Ack;
std::queue<std::pair<u32,std::string>> m_ReplyQueue;
std::queue<std::pair<u32,std::string> > m_ReplyQueue;
void ExecuteCommand(u32 _Address);
bool AckCommand(u32 _Address)

View File

@ -7,7 +7,9 @@
typedef u8 uint8_t;
typedef s8 int8_t;
#ifdef WIN32
typedef s8 int8_t;
#endif
typedef u16 uint16_t;
typedef s16 int16_t;
typedef u32 uint32_t;

View File

@ -8,7 +8,6 @@ files = ["Console.cpp",
"PatchEngine.cpp",
"MemTools.cpp",
"Tracer.cpp",
"GamesIniEntry.cpp",
"Host.cpp",
"VolumeHandler.cpp",
"Boot/Boot.cpp",
@ -48,6 +47,9 @@ files = ["Console.cpp",
"IPC_HLE/WII_IPC_HLE.cpp",
"IPC_HLE/WII_IPC_HLE_Device_DI.cpp",
"IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp",
"IPC_HLE/WII_IPC_HLE_Device_sdio_slot0.cpp",
"IPC_HLE/WII_IPC_HLE_Device_usb.cpp",
"IPC_HLE/WII_IPC_HLE_WiiMote.cpp",
"Plugins/Plugin_DSP.cpp",
"Plugins/Plugin_PAD.cpp",
"Plugins/Plugin_Video.cpp",
@ -69,13 +71,12 @@ files = ["Console.cpp",
"PowerPC/Jit64/Jit_Branch.cpp",
"PowerPC/Jit64/Jit_Integer.cpp",
"PowerPC/Jit64/Jit_FloatingPoint.cpp",
"PowerPC/Jit64/Jit_LoadStorePaired.cpp",
"PowerPC/Jit64/Jit_Paired.cpp",
"PowerPC/Jit64/Jit_LoadStore.cpp",
"PowerPC/Jit64/Jit_SystemRegisters.cpp",
"HLE/HLE.cpp",
"HLE/HLE_Math.cpp",
"HLE/HLE_Misc.cpp",
"HLE/HLE_OS.cpp",
"HLE/HLE_Pad.cpp",
]
env.StaticLibrary("core", files, LIBS="bdisasm")

View File

@ -54,17 +54,22 @@ CBreakPointView::Update()
const TBreakPoint& rBP = rBreakPoints[i];
if (!rBP.bTemporary)
{
int Item = InsertItem(0, rBP.bOn ? "on" : " ");
SetItem(Item, 1, "BP");
wxString temp;
temp = wxString::FromAscii(rBP.bOn ? "on" : " ");
int Item = InsertItem(0, temp);
temp = wxString::FromAscii("BP");
SetItem(Item, 1, temp);
Debugger::XSymbolIndex index = Debugger::FindSymbol(rBP.iAddress);
if (index > 0)
{
SetItem(Item, 2, Debugger::GetDescription(rBP.iAddress));
temp = wxString::FromAscii(Debugger::GetDescription(rBP.iAddress));
SetItem(Item, 2, temp);
}
sprintf(szBuffer, "0x%08x", rBP.iAddress);
SetItem(Item, 3, szBuffer);
temp = wxString::FromAscii(szBuffer);
SetItem(Item, 3, temp);
SetItemData(Item, rBP.iAddress);
}
@ -82,4 +87,4 @@ CBreakPointView::Update()
u32 Address = GetItemData(Item);
CBreakPoints::DeleteElementByAddress(Address);
}
}
}

View File

@ -3,7 +3,7 @@
//
#include "Debugger.h"
#include "BreakPointWindow.h"
#include "BreakpointWindow.h"
#include "BreakpointView.h"
#include "CodeWindow.h"
#include "HW/Memmap.h"

View File

@ -163,14 +163,14 @@ void CCodeView::OnPopupMenu(wxCommandEvent& event)
break;
case IDM_COPYCODE:
wxTheClipboard->SetData(new wxTextDataObject(debugger->disasm(selection)));
wxTheClipboard->SetData(new wxTextDataObject(wxString::FromAscii(debugger->disasm(selection)))); //Have to manually convert from char* to wxString, don't have to in Windows?
break;
case IDM_COPYHEX:
{
char temp[24];
sprintf(temp, "%08x", debugger->readMemory(selection));
wxTheClipboard->SetData(new wxTextDataObject(temp));
wxTheClipboard->SetData(new wxTextDataObject(wxString::FromAscii(temp)));
}
break;
#endif
@ -205,9 +205,9 @@ void CCodeView::OnMouseUpR(wxMouseEvent& event)
wxMenu menu;
//menu.Append(IDM_GOTOINMEMVIEW, "&Goto in mem view");
#if wxUSE_CLIPBOARD
menu.Append(IDM_COPYADDRESS, "Copy &address");
menu.Append(IDM_COPYCODE, "Copy &code");
menu.Append(IDM_COPYHEX, "Copy &hex");
menu.Append(IDM_COPYADDRESS, wxString::FromAscii("Copy &address"));
menu.Append(IDM_COPYCODE, wxString::FromAscii("Copy &code"));
menu.Append(IDM_COPYHEX, wxString::FromAscii("Copy &hex"));
#endif
menu.Append(IDM_RUNTOHERE, _T("&Run To Here"));
//menu.Append(IDM_DYNARECRESULTS, "Copy &address");

View File

@ -39,7 +39,7 @@
#include "LogManager.h"
// ugly that this lib included code from the main
#include "../../DolphinWX/src/globals.h"
#include "../../DolphinWX/src/Globals.h"
class SymbolList
: public wxListCtrl
@ -348,7 +348,7 @@ void CCodeWindow::Update()
}
else
{
callstack->Append("invalid callstack");
callstack->Append(wxString::FromAscii("invalid callstack"));
}
UpdateButtonStates();

View File

@ -74,7 +74,7 @@ CLogWindow::CLogWindow(wxWindow* parent)
void CLogWindow::OnSubmit(wxCommandEvent& event)
{
Console_Submit(m_cmdline->GetValue().c_str());
Console_Submit(m_cmdline->GetValue().To8BitData());
m_cmdline->SetValue(_T(""));
NotifyUpdate();
}
@ -128,7 +128,7 @@ void CLogWindow::UpdateChecks()
for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; i++)
{
m_checks->Append(LogManager::m_Log[i]->m_szName);
m_checks->Append(wxString::FromAscii(LogManager::m_Log[i]->m_szName));
}
m_checks->Show(true);
@ -218,7 +218,7 @@ void CLogWindow::UpdateLog()
}
*p = 0; //end the string
m_log->SetValue(m_logBuffer);
m_log->SetValue(wxString::FromAscii(m_logBuffer));
m_log->SetInsertionPoint(p - m_logBuffer - 1);
}

View File

@ -39,10 +39,10 @@ CRegisterView::CRegisterView(wxWindow* parent, const wxWindowID id, const wxPoin
for (int i = 0; i < 16; i++)
{
// 0-15
int Item = InsertItem(0, GetGRPName(i));
int Item = InsertItem(0, wxString::FromAscii(GetGRPName(i)));
// 16-31
SetItem(Item, 2, GetGRPName(16 + i));
SetItem(Item, 2, wxString::FromAscii(GetGRPName(16 + i)));
// just for easy sort

View File

@ -1,6 +1,9 @@
Import('env')
files = ["LogWindow.cpp",
"BreakpointView.cpp",
"CodeView.cpp",
"BreakpointWindow.cpp",
"CodeWindow.cpp",
"CodeView.cpp",
"Debugger.cpp",

View File

@ -1,10 +1,11 @@
#ifdef WIN32
#include <io.h>
#include <windows.h>
#else
#include <unistd.h>
#endif
#include "stdafx.h"
#include "../../../../Externals/zlib/zlib.h"
#include "Blob.h"
@ -103,7 +104,11 @@ class PlainFileReader
PlainFileReader(const char* filename)
{
file_ = fopen(filename, "rb");
fseek64(file_, 0, SEEK_END);
#if 0
fseek64(file_, 0, SEEK_END);
#else
fseek(file_, 0, SEEK_END); // I don't have fseek64 with gcc 4.3
#endif
size = ftell(file_);
fseek(file_, 0, SEEK_SET);
}

View File

@ -5,19 +5,12 @@ files = ["BannerLoader.cpp",
"BannerLoaderWii.cpp",
"Blob.cpp",
"FileHandlerARC.cpp",
"FileHandlerLZ77.cpp",
"Filesystem.cpp",
"FileSystemGCWii.cpp",
"VolumeCreator.cpp",
"VolumeGC.cpp",
"VolumeWiiCrypted.cpp",
"AES/aes_cbc.c",
"AES/aes_cfb.c",
"AES/aes_core.c",
"AES/aes_ctr.c",
"AES/aes_ecb.c",
"AES/aes_ige.c",
"AES/aes_misc.c",
"AES/aes_ofb.c",
]
env.StaticLibrary("discio", files, LIBS = ["common"])

View File

@ -37,7 +37,13 @@ enum EDiscType
DISC_TYPE_WII_CONTAINER,
DISC_TYPE_GC
};
#ifndef WIN32
struct SPartition
{
u64 Offset;
u32 Type;
}; //gcc 4.3 cries if it's local
#endif
class CBlobBigEndianReader
{
public:
@ -150,12 +156,13 @@ IVolume* CreateVolumeFromCryptedWiiImage(IBlobReader& _rReader, int _VolumeType)
u32 numPartitions = Reader.Read32(0x40000);
u64 PartitionsOffset = (u64)Reader.Read32(0x40004) << 2;
#ifdef WIN32
struct SPartition
{
u64 Offset;
u32 Type;
};
#endif
std::vector<SPartition>PartitionsVec;
// read all partitions

View File

@ -26,7 +26,7 @@
#include "VolumeCreator.h"
#include "Config.h"
#include "Core.h"
#include "frame.h"
#include "Frame.h"
#include "CodeWindow.h"
static std::string s_DataBasePath_EUR = "Data_EUR";

View File

@ -194,14 +194,18 @@ CFrame::CreateMenu()
{
m_pMenuItemPlay = new wxMenuItem(pEmulationMenu, IDM_PLAY, _T("&Play"));
m_pMenuItemPlay->SetBitmap(m_BitmapsMenu[Toolbar_Play]);
m_pMenuItemPlay->SetDisabledBitmap(m_BitmapsMenu[Toolbar_Play_Dis]);
#ifdef WIN32
m_pMenuItemPlay->SetDisabledBitmap(m_BitmapsMenu[Toolbar_Play_Dis]); //Linux Doesn't have
#endif
pEmulationMenu->Append(m_pMenuItemPlay);
}
// stop
{
m_pMenuItemStop = new wxMenuItem(pEmulationMenu, IDM_STOP, _T("&Stop"));
m_pMenuItemStop->SetBitmap(m_BitmapsMenu[Toolbar_Stop]);
m_pMenuItemStop->SetDisabledBitmap(m_BitmapsMenu[Toolbar_Stop_Dis]);
#ifdef WIN32
m_pMenuItemStop->SetDisabledBitmap(m_BitmapsMenu[Toolbar_Stop_Dis]); //Linux doesn't have
#endif
pEmulationMenu->Append(m_pMenuItemStop);
}
pEmulationMenu->AppendSeparator();
@ -226,7 +230,9 @@ CFrame::CreateMenu()
{
m_pPluginOptions = pPluginMenu->Append(IDM_PLUGIN_OPTIONS, _T("&Choose Plugins..."));
m_pPluginOptions->SetBitmap(m_BitmapsMenu[Toolbar_PluginOptions]);
m_pPluginOptions->SetDisabledBitmap(m_BitmapsMenu[Toolbar_PluginOptions_Dis]);
#ifdef WIN32
m_pPluginOptions->SetDisabledBitmap(m_BitmapsMenu[Toolbar_PluginOptions_Dis]); //Linux doesn't have
#endif
}
pPluginMenu->AppendSeparator();
{
@ -362,8 +368,9 @@ CFrame::OnOpen(wxCommandEvent& WXUNUSED (event))
{
return;
}
BootManager::BootCore(path.c_str());
std::string temp;
temp.insert(0, path.ToAscii()); //Need to convert to C++ style string first
BootManager::BootCore(temp);
}
@ -403,7 +410,7 @@ CFrame::OnAbout(wxCommandEvent& WXUNUSED (event))
void
CFrame::OnHelp(wxCommandEvent& WXUNUSED (event))
{
wxMessageBox("missing OnHelp()");
wxMessageBox(wxString::FromAscii("missing OnHelp()"));
}
@ -516,7 +523,7 @@ CFrame::OnHostMessage(wxCommandEvent& event)
wxPD_SMOOTH // - makes indeterminate mode bar on WinXP very small
);*/
m_pBootProcessDialog = new wxBusyInfo("Booting...", this);
m_pBootProcessDialog = new wxBusyInfo(wxString::FromAscii("Booting..."), this);
}
break;

View File

@ -83,7 +83,9 @@ CGameListCtrl::BrowseForDirectory()
if (dialog.ShowModal() == wxID_OK)
{
SConfig::GetInstance().m_ISOFolder.push_back(dialog.GetPath().c_str());
std::string temp;
temp.insert(0, dialog.GetPath().ToAscii()); //Manual conversion to C++ string
SConfig::GetInstance().m_ISOFolder.push_back(temp);
SConfig::GetInstance().SaveSettings();
Update();
}
@ -154,7 +156,9 @@ wxString NiceSizeFormat(s64 _size)
float f = (float)_size + ((float)frac / 1024.0f);
wxString NiceString;
NiceString.Printf("%3.1f %s", f, sizes[s]);
wxString tempstring;
tempstring = wxString::FromAscii("%3.1f %s"); // Gotta convert to wxString first or else it complains
NiceString.Printf(tempstring, f, sizes[s]);
return(NiceString);
}
@ -192,7 +196,7 @@ CGameListCtrl::InsertItemInReportView(size_t _Index)
wxListItem item;
item.SetId(ItemIndex);
item.SetColumn(COLUMN_TITLE);
item.SetText(rISOFile.GetName());
item.SetText(wxString::FromAscii(rISOFile.GetName().c_str()));
SetItem(item);
}
@ -201,7 +205,7 @@ CGameListCtrl::InsertItemInReportView(size_t _Index)
wxListItem item;
item.SetId(ItemIndex);
item.SetColumn(COLUMN_COMPANY);
item.SetText(rISOFile.GetCompany());
item.SetText(wxString::FromAscii(rISOFile.GetCompany().c_str()));
SetItem(item);
}
@ -276,7 +280,9 @@ CGameListCtrl::ScanForISOs()
SplitPath(rFilenames[i], NULL, &FileName, NULL);
wxString msg;
msg.Printf("Scanning %s", FileName.c_str());
wxString tempstring;
tempstring = wxString::FromAscii("Scanning %s");
msg.Printf(tempstring, FileName.c_str());
bool Cont = dialog.Update(i, msg);

View File

@ -18,7 +18,6 @@
#include <string>
#include <vector>
#include "Common.h"
#include "Globals.h"
#include "ISOFile.h"

View File

@ -111,7 +111,7 @@ void DolphinApp::OnEndSession()
bool wxPanicAlert(const char* text, bool /*yes_no*/)
{
wxMessageBox(text, _T("PANIC ALERT"));
wxMessageBox(wxString::FromAscii(text), _T("PANIC ALERT"));
return(true);
}
@ -234,7 +234,7 @@ void Host_CloseDisplay()
void Host_UpdateStatusBar(const char* _pText)
{
wxCommandEvent event(wxEVT_HOST_COMMAND, IDM_UPDATESTATUSBAR);
event.SetString(_pText);
event.SetString(wxString::FromAscii(_pText));
wxPostEvent(main_frame, event);
}

View File

@ -18,7 +18,6 @@
#include <string>
#include <vector>
#include "Common.h"
#include "Globals.h"
#include "FileSearch.h"
#include "FileUtil.h"
@ -42,7 +41,9 @@ CPluginManager::ScanForPlugins(wxWindow* _wxWindow)
m_PluginInfos.clear();
CFileSearch::XStringVector Directories;
Directories.push_back(_T("Plugins"));
std::string temp;
temp.insert(0, "Plugins");
Directories.push_back(temp);
CFileSearch::XStringVector Extensions;
#ifdef _WIN32
@ -83,7 +84,9 @@ CPluginManager::ScanForPlugins(wxWindow* _wxWindow)
}
wxString msg;
msg.Printf("Scanning %s", FileName.c_str());
wxString temp;
temp = wxString::FromAscii("Scanning %s");
msg.Printf(temp, FileName.c_str());
bool Cont = dialog.Update((int)i, msg);
if (!Cont)

View File

@ -18,7 +18,7 @@
#ifndef __PLUGIN_MANAGER_H_
#define __PLUGIN_MANAGER_H_
#include "plugin.h"
#include "Plugin.h"
class CPluginInfo
{

View File

@ -18,7 +18,6 @@
#include <string>
#include <vector>
#include "Common.h"
#include "Globals.h"
#include "PluginOptions.h"
@ -232,7 +231,9 @@ CPluginOptions::FillChoiceBox(wxChoice* _pChoice, int _PluginType, const std::st
if (rPluginInfo.Type == _PluginType)
{
int NewIndex = _pChoice->Append(rInfos[i].GetPluginInfo().Name, (void*)&rInfos[i]);
wxString temp;
temp = wxString::FromAscii(rInfos[i].GetPluginInfo().Name);
int NewIndex = _pChoice->Append(temp, (void*)&rInfos[i]);
if (rInfos[i].GetFileName() == _SelectFilename)
{

View File

@ -0,0 +1,19 @@
Import('env')
files = ["BootManager.cpp",
"Config.cpp",
"FileSearch.cpp",
"Frame.cpp",
"GameListCtrl.cpp",
"Globals.cpp",
"ISOFile.cpp",
"Main.cpp",
# "MainNoGUI.cpp",
"PluginManager.cpp",
"PluginOptions.cpp",
"stdafx.cpp",
]
wxenv = env.Copy(CXXFLAGS = "`wx-config --cppflags --debug` -DUSE_XPM_BITMAPS -DwxNEEDS_CHARPP",
LINKFLAGS = "-L/usr/local/lib -pthread `wx-config --libs --debug`")
wxenv.Program("../../../../Binary/linux/Dolphin", files, LIBS = ["debwx", "discio", "core", "bdisasm", "videocommon", "common"])

View File

@ -0,0 +1,10 @@
Import('env')
files = ["BPMemory.cpp",
"CPMemory.cpp",
"LookUpTables.cpp",
"XFMemory.cpp",
]
env_common = env.Copy(CXXFLAGS = " -fPIC ")
env_common.StaticLibrary("videocommon", files)

View File

@ -19,7 +19,7 @@
#define _GLOBALS_H
#include "pluginspecs_dsp.h"
#include <stdio.h>
#define WITH_DSP_ON_THREAD 1
#define DUMP_DSP_IMEM 0

View File

@ -1,5 +1,5 @@
Import('env')
output = "../../../../Binary/linux/Plugins/temp/dsplle.so"
output = "../../../../Binary/linux/Plugins/dsplle.so"
files = ["disassemble.cpp",
"gdsp_aram.cpp",
"gdsp_ext_op.cpp",
@ -11,7 +11,6 @@ files = ["disassemble.cpp",
"Globals.cpp",
"opcodes.cpp",
"Tools.cpp",
"UCode_AX.cpp",
]
#env.Append(LINKFLAGS = "-symbolic")
env.SharedLibrary(output, files)

View File

@ -28,10 +28,10 @@
HINSTANCE g_hInstance = NULL;
HANDLE g_hDSPThread = NULL;
CRITICAL_SECTION g_CriticalSection;
CDisAsmDlg g_Dialog;
#endif
DSPInitialize g_dspInitialize;
CDisAsmDlg g_Dialog;
#define GDSP_MBOX_CPU 0
#define GDSP_MBOX_DSP 1

View File

@ -237,4 +237,5 @@ void DSP_Update()
void DSP_SendAIBuffer(unsigned int _Address, unsigned int _Size)
{}
void DllDebugger(HWND _hParent)
{}

View File

@ -10,6 +10,7 @@ files = ["BPStructs.cpp",
"OpcodeDecoding.cpp",
# "OpcodeReaders.cpp", # outdated
"PixelShader.cpp",
"PixelShaderManager.cpp",
"rasterfont.cpp",
"Render.cpp",
"TextureDecoder.cpp",
@ -17,10 +18,11 @@ files = ["BPStructs.cpp",
"VertexLoader.cpp",
"VertexLoader_Normal.cpp",
"VertexShader.cpp",
"VertexShaderManager.cpp",
# "Linux/Conf.cpp",
"Linux/Linux.cpp",
]
gfxenv=env.Copy(CXXFLAGS = " `pkg-config --cflags gtk+-2.0`", LINKFLAGS = " `pkg-config --libs gtk+-2.0`")
gfxenv=env.Copy(CXXFLAGS = " `pkg-config --cflags gtk+-2.0 xxf86vm`", LINKFLAGS = " `pkg-config --libs gtk+-2.0 xxf86vm`")
gfxenv.SharedLibrary("../../../../Binary/linux/Plugins/zeroogl.so", files, LIBS=["common", "cairo", "GL", "GLEW", "CgGL", "Cg"])
gfxenv.SharedLibrary("../../../../Binary/linux/Plugins/zeroogl.so", files, LIBS=["videocommon", "common", "cairo", "GL", "GLEW", "CgGL", "Cg", "X11"])