more socket cleanup to allow using wxSocket from both wxBase and wxCore (replaces patch 1756260)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50831 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2007-12-19 16:45:08 +00:00
parent 4813bb8d72
commit 2804f77d88
54 changed files with 3817 additions and 1933 deletions

View File

@@ -59,6 +59,18 @@ SERVER_OBJECTS = \
$(os2_lib_res) \
server_server.o \
$(__server___win32rc)
BASECLIENT_CXXFLAGS = -D__WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p) \
$(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) \
-I$(srcdir) $(__DLLFLAG_p) -DwxUSE_GUI=0 $(CXXWARNINGS) $(CPPFLAGS) \
$(CXXFLAGS)
BASECLIENT_OBJECTS = \
baseclient_baseclient.o
BASESERVER_CXXFLAGS = -D__WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p) \
$(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) \
-I$(srcdir) $(__DLLFLAG_p) -DwxUSE_GUI=0 $(CXXWARNINGS) $(CPPFLAGS) \
$(CXXFLAGS)
BASESERVER_OBJECTS = \
baseserver_baseserver.o
### Conditionally set variables: ###
@@ -75,6 +87,7 @@ SERVER_OBJECTS = \
@COND_MONOLITHIC_1@EXTRALIBS_FOR_BASE = $(EXTRALIBS) $(EXTRALIBS_GUI)
@COND_MONOLITHIC_0@EXTRALIBS_FOR_GUI = $(EXTRALIBS_GUI)
@COND_MONOLITHIC_1@EXTRALIBS_FOR_GUI =
@COND_USE_GUI_1@__client___depname = client$(EXEEXT)
@COND_PLATFORM_MAC_1@__client___mac_setfilecmd = \
@COND_PLATFORM_MAC_1@ $(SETFILE) -a C client$(EXEEXT)
@COND_PLATFORM_MAC_1@__client___mac_rezcmd = $(__MACOSX_RESOURCES_p_2)
@@ -87,6 +100,7 @@ COND_PLATFORM_OS2_1___client___os2_emxbindcmd = $(NM) client$(EXEEXT) | if grep
@COND_TOOLKIT_MAC@____client_BUNDLE_TGT_REF_DEP = \
@COND_TOOLKIT_MAC@ client.app/Contents/PkgInfo
@COND_PLATFORM_WIN32_1@__client___win32rc = client_client_rc.o
@COND_USE_GUI_1@__server___depname = server$(EXEEXT)
@COND_PLATFORM_MAC_1@__server___mac_setfilecmd = \
@COND_PLATFORM_MAC_1@ $(SETFILE) -a C server$(EXEEXT)
@COND_PLATFORM_MAC_1@__server___mac_rezcmd = $(__MACOSX_RESOURCES_p_3)
@@ -99,6 +113,10 @@ COND_PLATFORM_OS2_1___server___os2_emxbindcmd = $(NM) server$(EXEEXT) | if grep
@COND_TOOLKIT_MAC@____server_BUNDLE_TGT_REF_DEP = \
@COND_TOOLKIT_MAC@ server.app/Contents/PkgInfo
@COND_PLATFORM_WIN32_1@__server___win32rc = server_server_rc.o
@COND_PLATFORM_MAC_1@__baseclient___mac_setfilecmd = \
@COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL baseclient$(EXEEXT)
@COND_PLATFORM_MAC_1@__baseserver___mac_setfilecmd = \
@COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL baseserver$(EXEEXT)
COND_TOOLKIT_MAC___MACOSX_RESOURCES_p_2 = $(REZ) -d __DARWIN__ -t APPL -d \
__WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p_0) $(__EXCEPTIONS_DEFINE_p_0) \
$(__RTTI_DEFINE_p_0) $(__THREAD_DEFINE_p_0) -i $(srcdir) $(__DLLFLAG_p_0) -i \
@@ -111,21 +129,16 @@ COND_TOOLKIT_MAC___MACOSX_RESOURCES_p_3 = $(REZ) -d __DARWIN__ -t APPL -d \
$(srcdir)/../../samples $(__RCDEFDIR_p) -i $(top_srcdir)/include -o \
server$(EXEEXT) Carbon.r sample.r
@COND_TOOLKIT_MAC@__MACOSX_RESOURCES_p_3 = $(COND_TOOLKIT_MAC___MACOSX_RESOURCES_p_3)
@COND_WXUNIV_1@__WXUNIV_DEFINE_p = -D__WXUNIVERSAL__
@COND_WXUNIV_1@__WXUNIV_DEFINE_p_0 = -d __WXUNIVERSAL__
@COND_WXUNIV_1@__WXUNIV_DEFINE_p_6 = --define __WXUNIVERSAL__
@COND_USE_EXCEPTIONS_0@__EXCEPTIONS_DEFINE_p = -DwxNO_EXCEPTIONS
@COND_WXUNIV_1@__WXUNIV_DEFINE_p_7 = --define __WXUNIVERSAL__
@COND_USE_EXCEPTIONS_0@__EXCEPTIONS_DEFINE_p_0 = -d wxNO_EXCEPTIONS
@COND_USE_EXCEPTIONS_0@__EXCEPTIONS_DEFINE_p_6 = --define wxNO_EXCEPTIONS
@COND_USE_RTTI_0@__RTTI_DEFINE_p = -DwxNO_RTTI
@COND_USE_EXCEPTIONS_0@__EXCEPTIONS_DEFINE_p_7 = --define wxNO_EXCEPTIONS
@COND_USE_RTTI_0@__RTTI_DEFINE_p_0 = -d wxNO_RTTI
@COND_USE_RTTI_0@__RTTI_DEFINE_p_6 = --define wxNO_RTTI
@COND_USE_THREADS_0@__THREAD_DEFINE_p = -DwxNO_THREADS
@COND_USE_RTTI_0@__RTTI_DEFINE_p_7 = --define wxNO_RTTI
@COND_USE_THREADS_0@__THREAD_DEFINE_p_0 = -d wxNO_THREADS
@COND_USE_THREADS_0@__THREAD_DEFINE_p_6 = --define wxNO_THREADS
@COND_SHARED_1@__DLLFLAG_p = -DWXUSINGDLL
@COND_USE_THREADS_0@__THREAD_DEFINE_p_7 = --define wxNO_THREADS
@COND_SHARED_1@__DLLFLAG_p_0 = -d WXUSINGDLL
@COND_SHARED_1@__DLLFLAG_p_6 = --define WXUSINGDLL
@COND_SHARED_1@__DLLFLAG_p_7 = --define WXUSINGDLL
@COND_TOOLKIT_MSW@__RCDEFDIR_p = -i \
@COND_TOOLKIT_MSW@ $(LIBDIRNAME)/wx/include/$(TOOLCHAIN_FULLNAME)
@COND_TOOLKIT_MSW@__RCDEFDIR_p_0 = --include-dir \
@@ -134,15 +147,6 @@ COND_TOOLKIT_MAC___MACOSX_RESOURCES_p_3 = $(REZ) -d __DARWIN__ -t APPL -d \
COND_MONOLITHIC_0___WXLIB_CORE_p = \
-lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core-$(WX_RELEASE)$(HOST_SUFFIX)
@COND_MONOLITHIC_0@__WXLIB_CORE_p = $(COND_MONOLITHIC_0___WXLIB_CORE_p)
COND_MONOLITHIC_0___WXLIB_NET_p = \
-lwx_base$(WXBASEPORT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_net-$(WX_RELEASE)$(HOST_SUFFIX)
@COND_MONOLITHIC_0@__WXLIB_NET_p = $(COND_MONOLITHIC_0___WXLIB_NET_p)
COND_MONOLITHIC_0___WXLIB_BASE_p = \
-lwx_base$(WXBASEPORT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
@COND_MONOLITHIC_0@__WXLIB_BASE_p = $(COND_MONOLITHIC_0___WXLIB_BASE_p)
COND_MONOLITHIC_1___WXLIB_MONO_p = \
-lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
@COND_MONOLITHIC_1@__WXLIB_MONO_p = $(COND_MONOLITHIC_1___WXLIB_MONO_p)
@COND_USE_GUI_1_WXUSE_LIBTIFF_BUILTIN@__LIB_TIFF_p \
@COND_USE_GUI_1_WXUSE_LIBTIFF_BUILTIN@ = \
@COND_USE_GUI_1_WXUSE_LIBTIFF_BUILTIN@ -lwxtiff$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
@@ -152,6 +156,20 @@ COND_MONOLITHIC_1___WXLIB_MONO_p = \
@COND_USE_GUI_1_WXUSE_LIBPNG_BUILTIN@__LIB_PNG_p \
@COND_USE_GUI_1_WXUSE_LIBPNG_BUILTIN@ = \
@COND_USE_GUI_1_WXUSE_LIBPNG_BUILTIN@ -lwxpng$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
@COND_WXUNIV_1@__WXUNIV_DEFINE_p = -D__WXUNIVERSAL__
@COND_USE_EXCEPTIONS_0@__EXCEPTIONS_DEFINE_p = -DwxNO_EXCEPTIONS
@COND_USE_RTTI_0@__RTTI_DEFINE_p = -DwxNO_RTTI
@COND_USE_THREADS_0@__THREAD_DEFINE_p = -DwxNO_THREADS
@COND_SHARED_1@__DLLFLAG_p = -DWXUSINGDLL
COND_MONOLITHIC_0___WXLIB_NET_p = \
-lwx_base$(WXBASEPORT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_net-$(WX_RELEASE)$(HOST_SUFFIX)
@COND_MONOLITHIC_0@__WXLIB_NET_p = $(COND_MONOLITHIC_0___WXLIB_NET_p)
COND_MONOLITHIC_0___WXLIB_BASE_p = \
-lwx_base$(WXBASEPORT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
@COND_MONOLITHIC_0@__WXLIB_BASE_p = $(COND_MONOLITHIC_0___WXLIB_BASE_p)
COND_MONOLITHIC_1___WXLIB_MONO_p = \
-lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
@COND_MONOLITHIC_1@__WXLIB_MONO_p = $(COND_MONOLITHIC_1___WXLIB_MONO_p)
@COND_WXUSE_ZLIB_BUILTIN@__LIB_ZLIB_p = \
@COND_WXUSE_ZLIB_BUILTIN@ -lwxzlib$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
COND_WXUSE_REGEX_BUILTIN___LIB_REGEX_p = \
@@ -162,7 +180,7 @@ COND_WXUSE_REGEX_BUILTIN___LIB_REGEX_p = \
### Targets: ###
all: client$(EXEEXT) $(__client_bundle___depname) server$(EXEEXT) $(__server_bundle___depname)
all: $(__client___depname) $(__client_bundle___depname) $(__server___depname) $(__server_bundle___depname) baseclient$(EXEEXT) baseserver$(EXEEXT)
install: all
@@ -177,18 +195,20 @@ clean:
rm -rf client.app
rm -f server$(EXEEXT)
rm -rf server.app
rm -f baseclient$(EXEEXT)
rm -f baseserver$(EXEEXT)
distclean: clean
rm -f config.cache config.log config.status bk-deps bk-make-pch shared-ld-sh Makefile
client$(EXEEXT): $(CLIENT_OBJECTS) $(__client___win32rc)
$(CXX) -o $@ $(CLIENT_OBJECTS) $(LDFLAGS) -L$(LIBDIRNAME) $(LDFLAGS_GUI) $(SAMPLES_RPATH_FLAG) $(LIBS) $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) $(EXTRALIBS_FOR_GUI) $(__LIB_ZLIB_p) $(__LIB_REGEX_p) $(__LIB_EXPAT_p) $(EXTRALIBS_FOR_BASE)
$(__client___mac_rezcmd)
$(__client___mac_setfilecmd)
$(__client___os2_emxbindcmd)
$(SAMPLES_RPATH_POSTLINK)
@COND_USE_GUI_1@client$(EXEEXT): $(CLIENT_OBJECTS) $(__client___win32rc)
@COND_USE_GUI_1@ $(CXX) -o $@ $(CLIENT_OBJECTS) $(LDFLAGS) -L$(LIBDIRNAME) $(LDFLAGS_GUI) $(SAMPLES_RPATH_FLAG) $(LIBS) $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) $(EXTRALIBS_FOR_GUI) $(__LIB_ZLIB_p) $(__LIB_REGEX_p) $(__LIB_EXPAT_p) $(EXTRALIBS_FOR_BASE)
@COND_USE_GUI_1@ $(__client___mac_rezcmd)
@COND_USE_GUI_1@ $(__client___mac_setfilecmd)
@COND_USE_GUI_1@ $(__client___os2_emxbindcmd)
@COND_USE_GUI_1@ $(SAMPLES_RPATH_POSTLINK)
client.app/Contents/PkgInfo: client$(EXEEXT) $(top_srcdir)/src/mac/carbon/Info.plist.in $(top_srcdir)/src/mac/carbon/wxmac.icns
client.app/Contents/PkgInfo: $(__client___depname) $(top_srcdir)/src/mac/carbon/Info.plist.in $(top_srcdir)/src/mac/carbon/wxmac.icns
mkdir -p client.app/Contents
mkdir -p client.app/Contents/MacOS
mkdir -p client.app/Contents/Resources
@@ -210,14 +230,14 @@ client.app/Contents/PkgInfo: client$(EXEEXT) $(top_srcdir)/src/mac/carbon/Info.p
@COND_PLATFORM_MACOSX_1@client_bundle: $(____client_BUNDLE_TGT_REF_DEP)
server$(EXEEXT): $(SERVER_OBJECTS) $(__server___win32rc)
$(CXX) -o $@ $(SERVER_OBJECTS) $(LDFLAGS) -L$(LIBDIRNAME) $(LDFLAGS_GUI) $(SAMPLES_RPATH_FLAG) $(LIBS) $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) $(EXTRALIBS_FOR_GUI) $(__LIB_ZLIB_p) $(__LIB_REGEX_p) $(__LIB_EXPAT_p) $(EXTRALIBS_FOR_BASE)
$(__server___mac_rezcmd)
$(__server___mac_setfilecmd)
$(__server___os2_emxbindcmd)
$(SAMPLES_RPATH_POSTLINK)
@COND_USE_GUI_1@server$(EXEEXT): $(SERVER_OBJECTS) $(__server___win32rc)
@COND_USE_GUI_1@ $(CXX) -o $@ $(SERVER_OBJECTS) $(LDFLAGS) -L$(LIBDIRNAME) $(LDFLAGS_GUI) $(SAMPLES_RPATH_FLAG) $(LIBS) $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) $(EXTRALIBS_FOR_GUI) $(__LIB_ZLIB_p) $(__LIB_REGEX_p) $(__LIB_EXPAT_p) $(EXTRALIBS_FOR_BASE)
@COND_USE_GUI_1@ $(__server___mac_rezcmd)
@COND_USE_GUI_1@ $(__server___mac_setfilecmd)
@COND_USE_GUI_1@ $(__server___os2_emxbindcmd)
@COND_USE_GUI_1@ $(SAMPLES_RPATH_POSTLINK)
server.app/Contents/PkgInfo: server$(EXEEXT) $(top_srcdir)/src/mac/carbon/Info.plist.in $(top_srcdir)/src/mac/carbon/wxmac.icns
server.app/Contents/PkgInfo: $(__server___depname) $(top_srcdir)/src/mac/carbon/Info.plist.in $(top_srcdir)/src/mac/carbon/wxmac.icns
mkdir -p server.app/Contents
mkdir -p server.app/Contents/MacOS
mkdir -p server.app/Contents/Resources
@@ -239,17 +259,35 @@ server.app/Contents/PkgInfo: server$(EXEEXT) $(top_srcdir)/src/mac/carbon/Info.p
@COND_PLATFORM_MACOSX_1@server_bundle: $(____server_BUNDLE_TGT_REF_DEP)
baseclient$(EXEEXT): $(BASECLIENT_OBJECTS)
$(CXX) -o $@ $(BASECLIENT_OBJECTS) $(LDFLAGS) -L$(LIBDIRNAME) $(SAMPLES_RPATH_FLAG) $(LIBS) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_ZLIB_p) $(__LIB_REGEX_p) $(__LIB_EXPAT_p) $(EXTRALIBS_FOR_BASE)
$(__baseclient___mac_setfilecmd)
$(SAMPLES_RPATH_POSTLINK)
baseserver$(EXEEXT): $(BASESERVER_OBJECTS)
$(CXX) -o $@ $(BASESERVER_OBJECTS) $(LDFLAGS) -L$(LIBDIRNAME) $(SAMPLES_RPATH_FLAG) $(LIBS) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_ZLIB_p) $(__LIB_REGEX_p) $(__LIB_EXPAT_p) $(EXTRALIBS_FOR_BASE)
$(__baseserver___mac_setfilecmd)
$(SAMPLES_RPATH_POSTLINK)
client_client.o: $(srcdir)/client.cpp
$(CXXC) -c -o $@ $(CLIENT_CXXFLAGS) $(srcdir)/client.cpp
client_client_rc.o: $(srcdir)/client.rc
$(WINDRES) -i$< -o$@ --define __WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p_6) $(__EXCEPTIONS_DEFINE_p_6) $(__RTTI_DEFINE_p_6) $(__THREAD_DEFINE_p_6) --include-dir $(srcdir) $(__DLLFLAG_p_6) --include-dir $(srcdir)/../../samples $(__RCDEFDIR_p_0) --include-dir $(top_srcdir)/include
$(WINDRES) -i$< -o$@ --define __WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p_7) $(__EXCEPTIONS_DEFINE_p_7) $(__RTTI_DEFINE_p_7) $(__THREAD_DEFINE_p_7) --include-dir $(srcdir) $(__DLLFLAG_p_7) --include-dir $(srcdir)/../../samples $(__RCDEFDIR_p_0) --include-dir $(top_srcdir)/include
server_server.o: $(srcdir)/server.cpp
$(CXXC) -c -o $@ $(SERVER_CXXFLAGS) $(srcdir)/server.cpp
server_server_rc.o: $(srcdir)/server.rc
$(WINDRES) -i$< -o$@ --define __WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p_6) $(__EXCEPTIONS_DEFINE_p_6) $(__RTTI_DEFINE_p_6) $(__THREAD_DEFINE_p_6) --include-dir $(srcdir) $(__DLLFLAG_p_6) --include-dir $(srcdir)/../../samples $(__RCDEFDIR_p_0) --include-dir $(top_srcdir)/include
$(WINDRES) -i$< -o$@ --define __WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p_7) $(__EXCEPTIONS_DEFINE_p_7) $(__RTTI_DEFINE_p_7) $(__THREAD_DEFINE_p_7) --include-dir $(srcdir) $(__DLLFLAG_p_7) --include-dir $(srcdir)/../../samples $(__RCDEFDIR_p_0) --include-dir $(top_srcdir)/include
baseclient_baseclient.o: $(srcdir)/baseclient.cpp
$(CXXC) -c -o $@ $(BASECLIENT_CXXFLAGS) $(srcdir)/baseclient.cpp
baseserver_baseserver.o: $(srcdir)/baseserver.cpp
$(CXXC) -c -o $@ $(BASESERVER_CXXFLAGS) $(srcdir)/baseserver.cpp
# Include dependency info, if present:

View File

@@ -0,0 +1,733 @@
/////////////////////////////////////////////////////////////////////////////
// Name: samples/sockbase/client.cpp
// Purpose: Sockets sample for wxBase
// Author: Lukasz Michalski
// Modified by:
// Created: 27.06.2005
// RCS-ID: $Id$
// Copyright: (c) 2005 Lukasz Michalski <lmichalski@sf.net>
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
// ============================================================================
// declarations
// ============================================================================
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
#include "wx/wx.h"
#include "wx/socket.h"
#include "wx/event.h"
#include "wx/list.h"
#include "wx/cmdline.h"
#include "wx/ffile.h"
#include "wx/datetime.h"
#include "wx/timer.h"
#include "wx/thread.h"
const wxEventType wxEVT_WORKER = wxNewEventType();
#define EVT_WORKER(func) DECLARE_EVENT_TABLE_ENTRY( wxEVT_WORKER, -1, -1, (wxObjectEventFunction) (wxEventFunction) (WorkerEventFunction) & func, (wxObject *) NULL ),
const int timeout_val = 1000;
class WorkerEvent : public wxEvent {
public:
typedef enum {
CONNECTING,
SENDING,
RECEIVING,
DISCONNECTING,
DONE
} evt_type;
WorkerEvent(void* pSender, evt_type type)
{
SetId(-1);
SetEventType(wxEVT_WORKER);
m_sender = pSender;
m_eventType = type;
m_isFailed = false;
}
void setFailed() { m_isFailed = true; }
bool isFailed() const { return m_isFailed; }
virtual wxEvent* Clone() const
{
return new WorkerEvent(*this);
}
void* m_sender;
bool m_isFailed;
wxString m_workerIdent;
evt_type m_eventType;
};
typedef void (wxEvtHandler::*WorkerEventFunction)(WorkerEvent&);
class ThreadWorker;
class EventWorker;
WX_DECLARE_LIST(ThreadWorker, TList);
WX_DECLARE_LIST(EventWorker, EList);
class Client : public wxApp {
DECLARE_EVENT_TABLE();
public:
void RemoveEventWorker(EventWorker* p_worker);
private:
typedef enum
{
THREADS,
EVENTS
} workMode;
typedef enum
{
SEND_RANDOM,
SEND_MESSAGE,
STRESS_TEST
} sendType;
workMode m_workMode;
sendType m_sendType;
wxString m_message;
wxString m_host;
long m_stressWorkers;
virtual bool OnInit();
virtual int OnRun();
virtual int OnExit();
void OnInitCmdLine(wxCmdLineParser& pParser);
bool OnCmdLineParsed(wxCmdLineParser& pParser);
void OnWorkerEvent(WorkerEvent& pEvent);
void OnTimerEvent(wxTimerEvent& pEvent);
void StartWorker(workMode pMode, const wxString& pMessage);
void StartWorker(workMode pMode);
char* CreateBuffer(int *msgsize);
void dumpStatistics();
TList m_threadWorkers;
EList m_eventWorkers;
unsigned m_statConnecting;
unsigned m_statSending;
unsigned m_statReceiving;
unsigned m_statDisconnecting;
unsigned m_statDone;
unsigned m_statFailed;
wxTimer mTimer;
};
DECLARE_APP(Client);
class ThreadWorker : public wxThread
{
public:
ThreadWorker(const wxString& p_host, char* p_buf, int p_size);
virtual ExitCode Entry();
private:
wxString m_host;
wxSocketClient* m_clientSocket;
char* m_inbuf;
char* m_outbuf;
int m_outsize;
int m_insize;
wxString m_workerIdent;
};
class EventWorker : public wxEvtHandler
{
DECLARE_EVENT_TABLE();
public:
EventWorker(const wxString& p_host, char* p_buf, int p_size);
void Run();
virtual ~EventWorker();
private:
wxString m_host;
wxSocketClient* m_clientSocket;
char* m_inbuf;
char* m_outbuf;
int m_outsize;
int m_written;
int m_insize;
int m_readed;
WorkerEvent::evt_type m_currentType;
bool m_doneSent;
wxIPV4address m_localaddr;
void OnSocketEvent(wxSocketEvent& pEvent);
void SendEvent(bool failed);
};
/******************* Implementation ******************/
IMPLEMENT_APP_CONSOLE(Client);
#include <wx/listimpl.cpp>
WX_DEFINE_LIST(TList);
WX_DEFINE_LIST(EList);
wxString
CreateIdent(const wxIPV4address& addr)
{
return wxString::Format(wxT("%s:%d"),addr.IPAddress().c_str(),addr.Service());
}
void
Client::OnInitCmdLine(wxCmdLineParser& pParser)
{
wxApp::OnInitCmdLine(pParser);
pParser.AddSwitch(wxT("e"),wxT("event"),_("Use event based worker (default)"),wxCMD_LINE_PARAM_OPTIONAL);
pParser.AddSwitch(wxT("t"),wxT("thread"),_("Use thread based worker"),wxCMD_LINE_PARAM_OPTIONAL);
pParser.AddSwitch(wxT("r"),wxT("random"),_("Send radnom data (default)"),wxCMD_LINE_PARAM_OPTIONAL);
pParser.AddOption(wxT("m"),wxT("message"),_("Send message from <str>"),wxCMD_LINE_VAL_STRING,wxCMD_LINE_PARAM_OPTIONAL);
pParser.AddOption(wxT("f"),wxT("file"),_("Send contents of <file>"),wxCMD_LINE_VAL_STRING,wxCMD_LINE_PARAM_OPTIONAL);
pParser.AddOption(wxT("H"),wxT("hostname"),_("IP or name of host to connect to"),wxCMD_LINE_VAL_STRING,wxCMD_LINE_PARAM_OPTIONAL);
pParser.AddOption(wxT("s"),wxT("stress"),_("stress test with <num> concurrent connections"),wxCMD_LINE_VAL_NUMBER,wxCMD_LINE_PARAM_OPTIONAL);
}
bool
Client::OnCmdLineParsed(wxCmdLineParser& pParser)
{
wxString fname;
m_workMode = EVENTS;
m_stressWorkers = 50;
if (pParser.Found(_("verbose")))
{
wxLog::AddTraceMask(wxT("wxSocket"));
wxLog::AddTraceMask(wxT("epolldispatcher"));
wxLog::AddTraceMask(wxT("selectdispatcher"));
wxLog::AddTraceMask(wxT("thread"));
wxLog::AddTraceMask(wxT("events"));
}
if (pParser.Found(wxT("t")))
m_workMode = THREADS;
m_sendType = SEND_RANDOM;
if (pParser.Found(wxT("m"),&m_message))
m_sendType = SEND_MESSAGE;
else if (pParser.Found(wxT("f"),&fname))
{
wxFFile file(fname);
if (!file.IsOpened()) {
wxLogError(wxT("Cannot open file %s"),fname.c_str());
return false;
};
if (!file.ReadAll(&m_message)) {
wxLogError(wxT("Cannot read conten of file %s"),fname.c_str());
return false;
};
m_sendType = SEND_MESSAGE;
};
if (pParser.Found(wxT("s"),&m_stressWorkers))
m_sendType = STRESS_TEST;
m_host = wxT("127.0.0.1");
pParser.Found(wxT("H"),&m_host);
return wxApp::OnCmdLineParsed(pParser);
};
bool
Client::OnInit()
{
if (!wxApp::OnInit())
return false;
srand(wxDateTime::Now().GetTicks());
mTimer.SetOwner(this);
m_statConnecting = 0;
m_statSending = 0;
m_statReceiving = 0;
m_statDisconnecting = 0;
m_statDone = 0;
m_statFailed = 0;
return true;
}
int
Client::OnRun()
{
switch(m_sendType)
{
case STRESS_TEST:
switch(m_workMode)
{
case THREADS:
for (int i = 0; i < m_stressWorkers; i++) {
if (m_message.empty())
StartWorker(THREADS);
else
StartWorker(THREADS, m_message);
}
break;
case EVENTS:
for (int i = 0; i < m_stressWorkers; i++) {
if (m_message.empty())
StartWorker(EVENTS);
else
StartWorker(EVENTS, m_message);
}
break;
default:
for (int i = 0; i < m_stressWorkers; i++) {
if (m_message.empty())
StartWorker(i % 5 == 0 ? THREADS : EVENTS);
else
StartWorker(i % 5 == 0 ? THREADS : EVENTS, m_message);
}
break;
}
break;
case SEND_MESSAGE:
StartWorker(m_workMode,m_message);
break;
case SEND_RANDOM:
StartWorker(m_workMode);
break;
}
mTimer.Start(timeout_val,true);
return wxApp::OnRun();
}
int
Client::OnExit()
{
for(EList::compatibility_iterator it = m_eventWorkers.GetFirst(); it ; it->GetNext()) {
delete it->GetData();
}
return 0;
}
// Create buffer to be sent by client. Buffer contains test indicator
// message size and place for data
// msgsize parameter contains size of data in bytes and
// if input value does not fit into 250 bytes then
// on exit is updated to new value that is multiply of 1024 bytes
char*
Client::CreateBuffer(int* msgsize)
{
int bufsize = 0;
char* buf;
//if message should have more than 256 bytes then set it as
//test3 for compatibility with GUI server sample
if ((*msgsize) > 250)
{
//send at least one kb of data
int size = (*msgsize)/1024 + 1;
//returned buffer will contain test indicator, message size in kb and data
bufsize = size*1024+2;
buf = new char[bufsize];
buf[0] = 0xDE; //second byte contains size in kilobytes
buf[1] = (char)(size);
*msgsize = size*1024;
}
else
{
//returned buffer will contain test indicator, message size in kb and data
bufsize = (*msgsize)+2;
buf = new char[bufsize];
buf[0] = 0xBE; //second byte contains size in bytes
buf[1] = (char)(*msgsize);
}
return buf;
}
void
Client::StartWorker(workMode pMode) {
int msgsize = 1 + (int) (250000.0 * (rand() / (RAND_MAX + 1.0)));
char* buf = CreateBuffer(&msgsize);
//fill data part of buffer with random bytes
for (int i = 2; i < (msgsize); i++) {
buf[i] = i % 256;
}
if (pMode == THREADS) {
ThreadWorker* c = new ThreadWorker(m_host,buf,msgsize+2);
if (c->Create() != wxTHREAD_NO_ERROR) {
wxLogError(wxT("Cannot create more threads"));
} else {
c->Run();
m_threadWorkers.Append(c);
}
} else {
EventWorker* e = new EventWorker(m_host,buf,msgsize+2);
e->Run();
m_eventWorkers.Append(e);
}
m_statConnecting++;
}
void
Client::StartWorker(workMode pMode, const wxString& pMessage) {
char* tmpbuf = strdup(pMessage.mb_str());
int msgsize = strlen(tmpbuf);
char* buf = CreateBuffer(&msgsize);
memset(buf+2,0x0,msgsize);
memcpy(buf+2,tmpbuf,msgsize);
free(tmpbuf);
if (pMode == THREADS) {
ThreadWorker* c = new ThreadWorker(m_host,buf,msgsize+2);
if (c->Create() != wxTHREAD_NO_ERROR) {
wxLogError(wxT("Cannot create more threads"));
} else {
c->Run();
m_threadWorkers.Append(c);
}
} else {
EventWorker* e = new EventWorker(m_host,buf,msgsize+2);
e->Run();
m_eventWorkers.Append(e);
}
m_statConnecting++;
}
void
Client::OnWorkerEvent(WorkerEvent& pEvent) {
switch (pEvent.m_eventType) {
case WorkerEvent::CONNECTING:
if (pEvent.isFailed())
{
m_statConnecting--;
m_statFailed++;
}
break;
case WorkerEvent::SENDING:
if (pEvent.isFailed())
{
m_statFailed++;
m_statSending--;
}
else
{
m_statConnecting--;
m_statSending++;
}
break;
case WorkerEvent::RECEIVING:
if (pEvent.isFailed())
{
m_statReceiving--;
m_statFailed++;
}
else
{
m_statSending--;
m_statReceiving++;
}
break;
case WorkerEvent::DISCONNECTING:
if (pEvent.isFailed())
{
m_statDisconnecting--;
m_statFailed++;
}
else
{
m_statReceiving--;
m_statDisconnecting++;
}
break;
case WorkerEvent::DONE:
m_statDone++;
m_statDisconnecting--;
break;
};
if (pEvent.isFailed() || pEvent.m_eventType == WorkerEvent::DONE)
{
for(TList::compatibility_iterator it = m_threadWorkers.GetFirst(); it ; it = it->GetNext()) {
if (it->GetData() == pEvent.m_sender) {
m_threadWorkers.DeleteNode(it);
break;
}
}
for(EList::compatibility_iterator it = m_eventWorkers.GetFirst(); it ; it = it->GetNext())
{
if (it->GetData() == pEvent.m_sender) {
delete it->GetData();
m_eventWorkers.DeleteNode(it);
break;
}
}
if ((m_threadWorkers.GetCount() == 0) && (m_eventWorkers.GetCount() == 0))
{
mTimer.Stop();
dumpStatistics();
wxSleep(2);
ExitMainLoop();
}
else
{
mTimer.Start(timeout_val,true);
}
}
}
void
Client::RemoveEventWorker(EventWorker* p_worker) {
for(EList::compatibility_iterator it = m_eventWorkers.GetFirst(); it ; it = it->GetNext()) {
if (it->GetData() == p_worker) {
//wxLogDebug(wxT("Deleting event worker"));
delete it->GetData();
m_eventWorkers.DeleteNode(it);
return;
}
}
}
void
Client::dumpStatistics() {
wxString msg(
wxString::Format(_("Connecting:\t%d\nSending\t\t%d\nReceiving\t%d\nDisconnecting:\t%d\nDone:\t\t%d\nFailed:\t\t%d\n"),
m_statConnecting,
m_statSending,
m_statReceiving,
m_statDisconnecting,
m_statDone,
m_statFailed
));
wxLogMessage(wxT("Current status:\n%s\n"),msg.c_str());
}
void
Client::OnTimerEvent(wxTimerEvent&) {
dumpStatistics();
}
BEGIN_EVENT_TABLE(Client,wxEvtHandler)
EVT_WORKER(Client::OnWorkerEvent)
EVT_TIMER(wxID_ANY,Client::OnTimerEvent)
END_EVENT_TABLE()
EventWorker::EventWorker(const wxString& p_host, char* p_buf, int p_size)
: m_host(p_host),
m_outbuf(p_buf),
m_outsize(p_size),
m_written(0),
m_readed(0)
{
m_clientSocket = new wxSocketClient(wxSOCKET_NOWAIT);
m_clientSocket->SetEventHandler(*this);
m_insize = m_outsize - 2;
m_inbuf = new char[m_insize];
}
void
EventWorker::Run() {
wxIPV4address ca;
ca.Hostname(m_host);
ca.Service(3000);
m_clientSocket->SetNotify(wxSOCKET_CONNECTION_FLAG|wxSOCKET_LOST_FLAG|wxSOCKET_OUTPUT_FLAG|wxSOCKET_INPUT_FLAG);
m_clientSocket->Notify(true);
m_currentType = WorkerEvent::CONNECTING;
m_doneSent = false;
//wxLogMessage(wxT("EventWorker: Connecting....."));
m_clientSocket->Connect(ca,false);
}
void
EventWorker::OnSocketEvent(wxSocketEvent& pEvent) {
switch(pEvent.GetSocketEvent()) {
case wxSOCKET_INPUT:
//wxLogDebug(wxT("EventWorker: INPUT"));
do {
if (m_readed == m_insize)
return; //event already posted
m_clientSocket->Read(m_inbuf + m_readed, m_insize - m_readed);
if (m_clientSocket->Error())
{
if (m_clientSocket->LastError() != wxSOCKET_WOULDBLOCK)
{
wxLogError(wxT("%s: read error"),CreateIdent(m_localaddr).c_str());
SendEvent(true);
}
}
m_readed += m_clientSocket->LastCount();
//wxLogDebug(wxT("EventWorker: readed %d bytes, %d bytes to do"),m_clientSocket->LastCount(), m_insize - m_readed);
if (m_readed == m_insize)
{
if (!memcmp(m_inbuf,m_outbuf,m_insize)) {
wxLogError(wxT("%s: data mismatch"),CreateIdent(m_localaddr).c_str());
SendEvent(true);
}
m_currentType = WorkerEvent::DISCONNECTING;
wxLogDebug(wxT("%s: DISCONNECTING"),CreateIdent(m_localaddr).c_str());
SendEvent(false);
//wxLogDebug(wxT("EventWorker %p closing"),this);
m_clientSocket->Close();
m_currentType = WorkerEvent::DONE;
wxLogDebug(wxT("%s: DONE"),CreateIdent(m_localaddr).c_str());
SendEvent(false);
}
} while (!m_clientSocket->Error());
break;
case wxSOCKET_OUTPUT:
//wxLogDebug(wxT("EventWorker: OUTPUT"));
do {
if (m_written == m_outsize)
return;
if (m_written == 0)
{
m_currentType = WorkerEvent::SENDING;
wxLogDebug(wxT("%s: SENDING"),CreateIdent(m_localaddr).c_str());
}
m_clientSocket->Write(m_outbuf + m_written, m_outsize - m_written);
if (m_clientSocket->Error())
{
if (m_clientSocket->LastError() != wxSOCKET_WOULDBLOCK) {
wxLogError(wxT("%s: Write error"),CreateIdent(m_localaddr).c_str());
SendEvent(true);
}
}
m_written += m_clientSocket->LastCount();
if (m_written != m_outsize)
{
//wxLogDebug(wxT("EventWorker: written %d bytes, %d bytes to do"),m_clientSocket->LastCount(),m_outsize - m_written);
}
else
{
//wxLogDebug(wxT("EventWorker %p SENDING->RECEIVING"),this);
m_currentType = WorkerEvent::RECEIVING;
wxLogDebug(wxT("%s: RECEIVING"),CreateIdent(m_localaddr).c_str());
SendEvent(false);
}
} while(!m_clientSocket->Error());
break;
case wxSOCKET_CONNECTION:
{
//wxLogMessage(wxT("EventWorker: got connection"));
wxLogMessage(wxT("%s: starting writing message (2 bytes for signature and %d bytes of data to write)"),CreateIdent(m_localaddr).c_str(),m_outsize-2);
if (!m_clientSocket->GetLocal(m_localaddr))
wxLogError(_("Cannot get peer data for socket %p"),m_clientSocket);
m_currentType = WorkerEvent::SENDING;
wxLogDebug(wxT("%s: CONNECTING"),CreateIdent(m_localaddr).c_str());
SendEvent(false);
}
break;
case wxSOCKET_LOST:
{
wxLogError(_("%s: connection lost"),CreateIdent(m_localaddr).c_str());
SendEvent(true);
}
break;
}
}
void
EventWorker::SendEvent(bool failed) {
if (m_doneSent)
return;
WorkerEvent e(this,m_currentType);
if (failed) e.setFailed();
wxGetApp().AddPendingEvent(e);
m_doneSent = failed || m_currentType == WorkerEvent::DONE;
};
EventWorker::~EventWorker() {
m_clientSocket->Destroy();
delete [] m_outbuf;
delete [] m_inbuf;
}
BEGIN_EVENT_TABLE(EventWorker,wxEvtHandler)
EVT_SOCKET(wxID_ANY,EventWorker::OnSocketEvent)
END_EVENT_TABLE()
ThreadWorker::ThreadWorker(const wxString& p_host, char* p_buf, int p_size)
: wxThread(wxTHREAD_DETACHED),
m_host(p_host),
m_outbuf(p_buf),
m_outsize(p_size)
{
m_clientSocket = new wxSocketClient(wxSOCKET_BLOCK|wxSOCKET_WAITALL);
m_insize = m_outsize - 2;
m_inbuf = new char[m_insize];
}
wxThread::ExitCode ThreadWorker::Entry()
{
wxIPV4address ca;
ca.Hostname(m_host);
ca.Service(5678);
//wxLogDebug(wxT("ThreadWorker: Connecting....."));
m_clientSocket->SetTimeout(60);
bool failed = false;
WorkerEvent::evt_type etype = WorkerEvent::CONNECTING;
if (!m_clientSocket->Connect(ca)) {
wxLogError(wxT("Cannot connect to %s:%d"),ca.IPAddress().c_str(), ca.Service());
failed = true;
} else {
//wxLogMessage(wxT("ThreadWorker: Connected. Sending %d bytes of data"),m_outsize);
etype = WorkerEvent::SENDING;
WorkerEvent e(this,etype);
wxGetApp().AddPendingEvent(e);
int to_process = m_outsize;
do {
m_clientSocket->Write(m_outbuf,m_outsize);
if (m_clientSocket->Error()) {
wxLogError(wxT("ThreadWorker: Write error"));
failed = true;
}
to_process -= m_clientSocket->LastCount();
//wxLogDebug(wxT("EventWorker: written %d bytes, %d bytes to do"),m_clientSocket->LastCount(),to_process);
} while(!m_clientSocket->Error() && to_process != 0);
if (!failed) {
etype = WorkerEvent::RECEIVING;
WorkerEvent e(this,etype);
wxGetApp().AddPendingEvent(e);
to_process = m_insize;
do {
m_clientSocket->Read(m_inbuf,m_insize);
if (m_clientSocket->Error()) {
wxLogError(wxT("ThreadWorker: Read error"));
failed = true;
break;
}
to_process -= m_clientSocket->LastCount();
//wxLogDebug(wxT("EventWorker: readed %d bytes, %d bytes to do"),m_clientSocket->LastCount(),to_process);
} while(!m_clientSocket->Error() && to_process != 0);
}
char* outdat = (char*)m_outbuf+2;
if (!failed && (memcmp(m_inbuf,outdat,m_insize) != 0))
{
wxLogError(wxT("Data mismatch"));
failed = true;
}
}
//wxLogDebug(wxT("ThreadWorker: Finished"));
if (!failed) {
etype = WorkerEvent::DISCONNECTING;
WorkerEvent e(this,etype);
wxGetApp().AddPendingEvent(e);
};
m_clientSocket->Close();
m_clientSocket->Destroy();
m_clientSocket = NULL;
delete [] m_outbuf;
delete [] m_inbuf;
if (!failed)
etype = WorkerEvent::DONE;
WorkerEvent e(this,etype);
if (failed) e.setFailed();
wxGetApp().AddPendingEvent(e);
return 0;
}

View File

@@ -0,0 +1,738 @@
/////////////////////////////////////////////////////////////////////////////
// Name: samples/sockbase/client.cpp
// Purpose: Sockets sample for wxBase
// Author: Lukasz Michalski
// Modified by:
// Created: 27.06.2005
// RCS-ID: $Id$
// Copyright: (c) 2005 Lukasz Michalski <lmichalski@user.sourceforge.net>
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
// ============================================================================
// declarations
// ============================================================================
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
#include "wx/wx.h"
#include "wx/socket.h"
#include "wx/event.h"
#include "wx/list.h"
#include "wx/cmdline.h"
#include "wx/datetime.h"
#include "wx/timer.h"
#include "wx/thread.h"
wxChar* GetSocketErrorMsg(int pSockError)
{
switch(pSockError)
{
case wxSOCKET_NOERROR:
return wxT("wxSOCKET_NOERROR");
break;
case wxSOCKET_INVOP:
return wxT("wxSOCKET_INVOP");
break;
case wxSOCKET_IOERR:
return wxT("wxSOCKET_IOERR");
break;
case wxSOCKET_INVADDR:
return wxT("wxSOCKET_INVADDR");
break;
case wxSOCKET_NOHOST:
return wxT("wxSOCKET_NOHOST");
break;
case wxSOCKET_INVPORT:
return wxT("wxSOCKET_INVPORT");
break;
case wxSOCKET_WOULDBLOCK:
return wxT("wxSOCKET_WOULDBLOCK");
break;
case wxSOCKET_TIMEDOUT:
return wxT("wxSOCKET_TIMEDOUT");
break;
case wxSOCKET_MEMERR:
return wxT("wxSOCKET_MEMERR");
break;
default:
return wxT("Unknown");
break;
}
}
//log output types for LogWorker helper function
typedef enum
{
LOG_MESSAGE,
LOG_ERROR,
LOG_VERBOSE
} logWorker_t;
//outputs log message with IP and TCP port number prepended
void
LogWorker(const wxIPV4address& pAddr, const wxString& pMessage, logWorker_t pType = LOG_VERBOSE)
{
wxString msg(wxString::Format(wxT("%s:%d "),pAddr.IPAddress().c_str(),pAddr.Service()));
msg += pMessage;
switch (pType)
{
case LOG_VERBOSE:
wxLogVerbose(msg);
break;
case LOG_MESSAGE:
wxLogMessage(msg);
break;
case LOG_ERROR:
wxLogError(msg);
break;
}
}
//event sent by workers to server class
//after client is served
const wxEventType wxEVT_WORKER = wxNewEventType();
#define EVT_WORKER(func) DECLARE_EVENT_TABLE_ENTRY( wxEVT_WORKER, -1, -1, (wxObjectEventFunction) (wxEventFunction) (WorkerEventFunction) & func, (wxObject *) NULL ),
class WorkerEvent : public wxEvent {
public:
WorkerEvent(void* pSender)
{
SetId(-1);
SetEventType(wxEVT_WORKER);
m_sender = pSender;
m_exit = false;
m_workerFailed = false;
}
virtual wxEvent* Clone() const
{
return new WorkerEvent(*this);
}
void* m_sender;
bool m_exit;
bool m_workerFailed;
};
typedef void (wxEvtHandler::*WorkerEventFunction)(WorkerEvent&);
class ThreadWorker;
class EventWorker;
WX_DECLARE_LIST(ThreadWorker, TList);
WX_DECLARE_LIST(EventWorker, EList);
//main server class contains listening socket
//and list of two type worker classes that serve clients
class Server : public wxApp
{
DECLARE_EVENT_TABLE();
public:
Server() : m_maxConnections(-1) {}
~Server() {}
private:
enum WorkMode
{
MIXED,
THREADS,
EVENTS
};
virtual bool OnInit();
virtual int OnExit();
void OnInitCmdLine(wxCmdLineParser& pParser);
bool OnCmdLineParsed(wxCmdLineParser& pParser);
void OnSocketEvent(wxSocketEvent& pEvent);
void OnWorkerEvent(WorkerEvent& pEvent);
void OnTimerEvent(wxTimerEvent& pEvent);
void DumpStatistics();
TList m_threadWorkers;
EList m_eventWorkers;
WorkMode m_workMode;
wxSocketServer* m_listeningSocket;
// statistics
unsigned m_threadWorkersCreated;
unsigned m_threadWorkersDone;
unsigned m_threadWorkersFailed;
unsigned m_maxThreadWorkers;
unsigned m_eventWorkersCreated;
unsigned m_eventWorkersDone;
unsigned m_eventWorkersFailed;
unsigned m_maxEventWorkers;
long int m_maxConnections;
long m_port;
wxTimer mTimer;
};
DECLARE_APP(Server);
//thread based worker reads signature and all data first from connected client
//and resends data to client after reading
class ThreadWorker : public wxThread
{
public:
ThreadWorker(wxSocketBase* pSocket);
virtual ExitCode Entry();
private:
wxSocketBase* m_socket;
wxIPV4address m_peer;
};
//event based worker reads signature and creates buffer for incoming data.
//When part of data arrives this worker resends it as soon as possible.
class EventWorker : public wxEvtHandler
{
DECLARE_EVENT_TABLE();
public:
EventWorker(wxSocketBase* pSock);
~EventWorker();
private:
wxSocketBase* m_socket;
wxIPV4address m_peer;
unsigned char m_signature[2];
char* m_inbuf;
int m_infill;
int m_size;
char* m_outbuf;
int m_outfill;
int m_written;
void OnSocketEvent(wxSocketEvent& pEvent);
void DoWrite();
void DoRead();
};
/******************* Implementation ******************/
IMPLEMENT_APP_CONSOLE(Server)
#include <wx/listimpl.cpp>
WX_DEFINE_LIST(TList);
WX_DEFINE_LIST(EList);
void
Server::OnInitCmdLine(wxCmdLineParser& pParser)
{
wxApp::OnInitCmdLine(pParser);
pParser.AddSwitch(wxT("t"),wxT("threads"),_("Use thread based workers only"));
pParser.AddSwitch(wxT("e"),wxT("events"),_("Use event based workers only"));
pParser.AddOption(wxT("m"),wxT("max"),_("Exit after <n> connections"),wxCMD_LINE_VAL_NUMBER,wxCMD_LINE_PARAM_OPTIONAL);
pParser.AddOption(wxT("p"),wxT("port"),_("listen on given port (default 3000)"),wxCMD_LINE_VAL_NUMBER,wxCMD_LINE_PARAM_OPTIONAL);
}
void
Server::DumpStatistics()
{
wxString mode;
switch(m_workMode)
{
case EVENTS:
mode = _("Event based workers");
break;
case THREADS:
mode = _("Thread based workers");
break;
case MIXED:
mode = _("Event and thread based workers");
break;
}
wxLogMessage(wxString::Format(wxT("Server mode: %s"),mode.c_str()));
wxLogMessage(wxString::Format(wxT("\t\t\t\tThreads\tEvents\tTotal")));
wxLogMessage(wxString::Format(wxT("Workers created:\t\t%d\t%d\t%d"),m_threadWorkersCreated,m_eventWorkersCreated,m_threadWorkersCreated+m_eventWorkersCreated));
wxLogMessage(wxString::Format(wxT("Max concurrent workers:\t%d\t%d\t%d"),m_maxThreadWorkers,m_maxEventWorkers,m_maxThreadWorkers+m_maxEventWorkers));
wxLogMessage(wxString::Format(wxT("Workers failed:\t\t%d\t%d\t%d"),m_threadWorkersFailed,m_eventWorkersFailed,m_threadWorkersFailed+m_eventWorkersFailed));
wxLogMessage(wxString::Format(wxT("Workers done:\t\t%d\t%d\t%d"),m_threadWorkersDone,m_eventWorkersDone,m_threadWorkersDone+m_eventWorkersDone));
if ((int)(m_threadWorkersDone+m_eventWorkersDone) == m_maxConnections)
{
wxLogMessage(wxT("%d connection(s) served, exiting"),m_maxConnections);
ExitMainLoop();
}
}
bool
Server::OnCmdLineParsed(wxCmdLineParser& pParser)
{
if (pParser.Found(_("verbose")))
{
wxLog::AddTraceMask(wxT("wxSocket"));
wxLog::AddTraceMask(wxT("epolldispatcher"));
wxLog::AddTraceMask(wxT("selectdispatcher"));
wxLog::AddTraceMask(wxT("thread"));
wxLog::AddTraceMask(wxT("events"));
wxLog::AddTraceMask(wxT("timer"));
}
if (pParser.Found(wxT("m"),&m_maxConnections))
{
wxLogMessage(wxT("%d connection(s) to exit"),m_maxConnections);
}
if (pParser.Found(wxT("p"),&m_port))
{
wxLogMessage(wxT("%d connection(s) to exit"),m_maxConnections);
}
if (pParser.Found(wxT("t")))
m_workMode = THREADS;
else if (pParser.Found(wxT("e")))
m_workMode = EVENTS;
else
m_workMode = MIXED;
return wxApp::OnCmdLineParsed(pParser);
}
bool Server::OnInit()
{
wxLog* logger = new wxLogStderr();
wxLog::SetActiveTarget(logger);
m_port = 3000;
//send interesting things to console
if (!wxApp::OnInit())
return false;
//setup listening socket
wxIPV4address la;
la.Service(m_port);
m_listeningSocket = new wxSocketServer(la,wxSOCKET_NOWAIT|wxSOCKET_REUSEADDR);
m_listeningSocket->SetEventHandler(*this);
m_listeningSocket->SetNotify(wxSOCKET_CONNECTION_FLAG);
m_listeningSocket->Notify(true);
if (!m_listeningSocket->Ok())
{
wxLogError(wxT("Cannot bind listening socket"));
return false;
}
m_threadWorkersCreated = 0;
m_threadWorkersDone = 0;
m_threadWorkersFailed = 0;
m_maxThreadWorkers = 0;
m_eventWorkersCreated = 0;
m_eventWorkersDone = 0;
m_eventWorkersFailed = 0;
m_maxEventWorkers = 0;
wxLogMessage(wxT("Server listening at port %d, waiting for connections"), m_port);
return true;
}
int Server::OnExit()
{
for(TList::compatibility_iterator it = m_threadWorkers.GetFirst(); it ; it = it->GetNext()) {
it->GetData()->Wait();
delete it->GetData();
}
for(EList::compatibility_iterator it = m_eventWorkers.GetFirst(); it ; it->GetNext()) {
delete it->GetData();
}
m_threadWorkers.Clear();
m_eventWorkers.Clear();
m_listeningSocket->Destroy();
return 0;
}
void Server::OnSocketEvent(wxSocketEvent& pEvent)
{
switch(pEvent.GetSocketEvent())
{
case wxSOCKET_INPUT:
wxLogError(wxT("Unexpected wxSOCKET_INPUT in wxSocketServer"));
break;
case wxSOCKET_OUTPUT:
wxLogError(wxT("Unexpected wxSOCKET_OUTPUT in wxSocketServer"));
break;
case wxSOCKET_CONNECTION:
{
wxSocketBase* sock = m_listeningSocket->Accept();
wxIPV4address addr;
if (!sock->GetPeer(addr))
{
wxLogError(wxT("Server: cannot get peer info"));
} else {
wxLogMessage(wxT("Got connection from %s:%d"),addr.IPAddress().c_str(), addr.Service());
}
bool createThread;
if (m_workMode != MIXED)
createThread = m_workMode == THREADS;
else
createThread = (wxDateTime::Now().GetSecond())%2 == 0;
if (createThread)
{
ThreadWorker* c = new ThreadWorker(sock);
if (c->Create() == wxTHREAD_NO_ERROR)
{
m_threadWorkers.Append(c);
if (m_threadWorkers.GetCount() > m_maxThreadWorkers)
m_maxThreadWorkers++;
m_threadWorkersCreated++;
c->Run();
}
else
{
wxLogError(wxT("Server: cannot create next thread (current threads: %d"), m_threadWorkers.size());
};
}
else
{
EventWorker* w = new EventWorker(sock);
m_eventWorkers.Append(w);
if (m_eventWorkers.GetCount() > m_maxEventWorkers)
m_maxEventWorkers++;
m_eventWorkersCreated++;
}
}
break;
case wxSOCKET_LOST:
wxLogError(wxT("Unexpected wxSOCKET_LOST in wxSocketServer"));
break;
}
}
void Server::OnWorkerEvent(WorkerEvent& pEvent)
{
//wxLogMessage(wxT("Got worker event"));
for(TList::compatibility_iterator it = m_threadWorkers.GetFirst(); it ; it = it->GetNext())
{
if (it->GetData() == pEvent.m_sender)
{
wxLogVerbose(wxT("Deleting thread worker (%d left)"),m_threadWorkers.GetCount());
it->GetData()->Wait();
delete it->GetData();
m_threadWorkers.DeleteNode(it);
if (!pEvent.m_workerFailed)
m_threadWorkersDone++;
else
m_threadWorkersFailed++;
break;
}
}
for(EList::compatibility_iterator it = m_eventWorkers.GetFirst(); it ; it = it->GetNext())
{
if (it->GetData() == pEvent.m_sender)
{
wxLogVerbose(wxT("Deleting event worker (%d left)"),m_eventWorkers.GetCount());
delete it->GetData();
m_eventWorkers.DeleteNode(it);
if (!pEvent.m_workerFailed)
m_eventWorkersDone++;
else
m_eventWorkersFailed++;
break;
}
}
if (m_eventWorkers.GetCount() == 0 && m_threadWorkers.GetCount() == 0)
{
mTimer.Start(1000,true);
}
}
void Server::OnTimerEvent(wxTimerEvent&)
{
DumpStatistics();
}
BEGIN_EVENT_TABLE(Server,wxEvtHandler)
EVT_SOCKET(wxID_ANY,Server::OnSocketEvent)
EVT_WORKER(Server::OnWorkerEvent)
EVT_TIMER(wxID_ANY,Server::OnTimerEvent)
END_EVENT_TABLE()
ThreadWorker::ThreadWorker(wxSocketBase* pSocket) : wxThread(wxTHREAD_JOINABLE)
{
m_socket = pSocket;
//Notify() cannot be called in thread context. We have to detach from main loop
//before switching thread contexts.
m_socket->Notify(false);
m_socket->SetFlags(wxSOCKET_WAITALL|wxSOCKET_BLOCK);
pSocket->GetPeer(m_peer);
}
wxThread::ExitCode ThreadWorker::Entry()
{
WorkerEvent e(this);
if (!m_socket->IsConnected())
{
LogWorker(m_peer,wxT("ThreadWorker: not connected"),LOG_ERROR);
return 0;
}
int to_process = -1;
if (m_socket->IsConnected())
{
unsigned char signature[2];
LogWorker(m_peer,wxT("ThreadWorker: reading for data"));
to_process = 2;
do
{
m_socket->Read(&signature,to_process);
if (m_socket->Error())
{
LogWorker(m_peer,wxT("ThreadWorker: Read error"),LOG_ERROR);
wxGetApp().AddPendingEvent(e);
return 0;
}
to_process -= m_socket->LastCount();
LogWorker(m_peer,wxString::Format(wxT("to_process: %d"),to_process));
}
while (!m_socket->Error() && to_process != 0);
if (signature[0] == 0)
{
e.m_exit = true;
return 0;
}
if (signature[0] == 0xCE)
{
LogWorker(m_peer,_("This server does not support test2 from GUI client"));
e.m_workerFailed = true;
e.m_exit = true;
return 0;
}
int size = signature[1] * (signature[0] == 0xBE ? 1 : 1024);
char* buf = new char[size];
LogWorker(m_peer,wxString::Format(wxT("Message signature: chunks: %d, kilobytes: %d, size: %d (bytes)"),signature[0],signature[1],size));
to_process = size;
LogWorker(m_peer,wxString::Format(wxT("ThreadWorker: reading %d bytes of data"),to_process));
do
{
m_socket->Read(buf,to_process);
if (m_socket->Error())
{
LogWorker(m_peer,wxT("ThreadWorker: Read error"),LOG_ERROR);
wxGetApp().AddPendingEvent(e);
return 0;
}
to_process -= m_socket->LastCount();
LogWorker(m_peer,wxString::Format(wxT("ThreadWorker: %d bytes readed, %d todo"),m_socket->LastCount(),to_process));
}
while(!m_socket->Error() && to_process != 0);
to_process = size;
do
{
m_socket->Write(buf,to_process);
if (m_socket->Error()) {
LogWorker(m_peer,wxT("ThreadWorker: Write error"),LOG_ERROR);
break;
}
to_process -= m_socket->LastCount();
LogWorker(m_peer,wxString::Format(wxT("ThreadWorker: %d bytes written, %d todo"),m_socket->LastCount(),to_process));
}
while(!m_socket->Error() && to_process != 0);
}
LogWorker(m_peer,wxT("ThreadWorker: done"));
e.m_workerFailed = to_process != 0;
m_socket->Destroy();
wxGetApp().AddPendingEvent(e);
return 0;
}
EventWorker::EventWorker(wxSocketBase* pSock)
: m_socket(pSock),
m_inbuf(NULL),
m_infill(0),
m_outbuf(NULL),
m_outfill(0)
{
m_socket->SetNotify(wxSOCKET_LOST_FLAG|wxSOCKET_INPUT_FLAG|wxSOCKET_OUTPUT_FLAG);
m_socket->Notify(true);
m_socket->SetEventHandler(*this);
m_socket->SetFlags(wxSOCKET_NOWAIT);
m_socket->GetPeer(m_peer);
}
EventWorker::~EventWorker() {
m_socket->Destroy();
delete [] m_inbuf;
delete [] m_outbuf;
}
void
EventWorker::DoRead()
{
if (m_inbuf == NULL)
{
//read message header
do
{
m_socket->Read(m_signature,2 - m_infill);
if (m_socket->Error()) {
if (m_socket->LastError() != wxSOCKET_WOULDBLOCK)
{
LogWorker(m_peer,wxString::Format(wxT("Read error (%d): %s"),m_socket->LastError(),GetSocketErrorMsg(m_socket->LastError())),LOG_ERROR);
m_socket->Close();
}
}
else
{
m_infill += m_socket->LastCount();
if (m_infill == 2) {
unsigned char chunks = m_signature[1];
unsigned char type = m_signature[0];
if (type == 0xCE)
{
LogWorker(m_peer,_("This server does not support test2 from GUI client"));
m_written = -1; //wxSOCKET_LOST will interpret this as failure
m_socket->Close();
}
else if (type == 0xBE || type == 0xDE)
{
m_size = chunks * (type == 0xBE ? 1 : 1024);
m_inbuf = new char[m_size];
m_outbuf = new char[m_size];
m_infill = 0;
m_outfill = 0;
m_written = 0;
LogWorker(m_peer,wxString::Format(wxT("Message signature: len: %d, type: %s, size: %d (bytes)"),chunks,type == 0xBE ? wxT("b") : wxT("kB"),m_size));
break;
} else
{
LogWorker(m_peer,wxString::Format(wxT("Unknown test type %x"),type));
m_socket->Close();
}
}
}
}
while(!m_socket->Error() && (2 - m_infill != 0));
}
if (m_inbuf == NULL)
return;
//read message data
do {
if (m_size == m_infill) {
m_signature[0] = m_signature[1] = 0x0;
delete [] m_inbuf;
m_inbuf = NULL;
m_infill = 0;
return;
}
m_socket->Read(m_inbuf + m_infill,m_size - m_infill);
if (m_socket->Error()) {
if (m_socket->LastError() != wxSOCKET_WOULDBLOCK)
{
LogWorker(
m_peer,
wxString::Format(wxT("Read error (%d): %s"),
m_socket->LastError(),
GetSocketErrorMsg(m_socket->LastError())
),
LOG_ERROR);
m_socket->Close();
}
}
else
{
memcpy(m_outbuf+m_outfill,m_inbuf+m_infill,m_socket->LastCount());
m_infill += m_socket->LastCount();
m_outfill += m_socket->LastCount();
DoWrite();
}
}
while(!m_socket->Error());
};
void EventWorker::OnSocketEvent(wxSocketEvent& pEvent)
{
switch(pEvent.GetSocketEvent())
{
case wxSOCKET_INPUT:
DoRead();
break;
case wxSOCKET_OUTPUT:
if (m_inbuf != NULL)
DoWrite();
break;
case wxSOCKET_CONNECTION:
LogWorker(m_peer,wxString::Format(wxT("Unexpected wxSOCKET_CONNECTION in EventWorker")),LOG_ERROR);
break;
case wxSOCKET_LOST:
{
LogWorker(m_peer,wxString::Format(wxT("Connection lost")));
WorkerEvent e(this);
e.m_workerFailed = m_written != m_size;
wxGetApp().AddPendingEvent(e);
}
break;
}
}
void EventWorker::DoWrite() {
do {
if (m_written == m_size)
{
delete [] m_outbuf;
m_outbuf = NULL;
m_outfill = 0;
LogWorker(m_peer,wxString::Format(wxT("All data written")));
return;
}
if (m_outfill - m_written == 0)
{
return;
}
m_socket->Write(m_outbuf + m_written,m_outfill - m_written);
if (m_socket->Error())
{
if (m_socket->LastError() != wxSOCKET_WOULDBLOCK)
{
LogWorker(m_peer,
wxString::Format(wxT("Write error (%d): %s"),
m_socket->LastError(),
GetSocketErrorMsg(m_socket->LastError())
)
,LOG_ERROR
);
m_socket->Close();
}
else
{
LogWorker(m_peer,wxString::Format(wxT("Write would block, waiting for OUTPUT event")));
}
}
else
{
memmove(m_outbuf,m_outbuf+m_socket->LastCount(),m_outfill-m_socket->LastCount());
m_written += m_socket->LastCount();
}
LogWorker(m_peer,wxString::Format(wxT("Written %d of %d bytes, todo %d"),m_socket->LastCount(),m_size,m_size - m_written));
}
while (!m_socket->Error());
}
BEGIN_EVENT_TABLE(EventWorker,wxEvtHandler)
EVT_SOCKET(wxID_ANY,EventWorker::OnSocketEvent)
END_EVENT_TABLE()

View File

@@ -38,9 +38,7 @@
// --------------------------------------------------------------------------
// the application icon
#if defined(__WXGTK__) || defined(__WXX11__) || defined(__WXMOTIF__) || defined(__WXMAC__)
# include "mondrian.xpm"
#endif
#include "mondrian.xpm"
// --------------------------------------------------------------------------
// classes

View File

@@ -29,7 +29,7 @@ LIBDIRNAME = .\..\..\lib\$(COMPILER_PREFIX)_$(LIBTYPE_SUFFIX)$(CFG)
SETUPHDIR = \
$(LIBDIRNAME)\$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)
CLIENT_CXXFLAGS = $(__RUNTIME_LIBS) -I$(BCCDIR)\include $(__DEBUGINFO) \
$(__OPTIMIZEFLAG) $(__THREADSFLAG_0) -D__WXMSW__ $(__WXUNIV_DEFINE_p) \
$(__OPTIMIZEFLAG) $(__THREADSFLAG_2) -D__WXMSW__ $(__WXUNIV_DEFINE_p) \
$(__DEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) \
$(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p) $(__MSLU_DEFINE_p) \
$(__GFXCTX_DEFINE_p) -I$(SETUPHDIR) -I.\..\..\include -I. $(__DLLFLAG_p) \
@@ -37,13 +37,29 @@ CLIENT_CXXFLAGS = $(__RUNTIME_LIBS) -I$(BCCDIR)\include $(__DEBUGINFO) \
CLIENT_OBJECTS = \
$(OBJS)\client_client.obj
SERVER_CXXFLAGS = $(__RUNTIME_LIBS) -I$(BCCDIR)\include $(__DEBUGINFO) \
$(__OPTIMIZEFLAG) $(__THREADSFLAG_0) -D__WXMSW__ $(__WXUNIV_DEFINE_p) \
$(__OPTIMIZEFLAG) $(__THREADSFLAG_2) -D__WXMSW__ $(__WXUNIV_DEFINE_p) \
$(__DEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) \
$(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p) $(__MSLU_DEFINE_p) \
$(__GFXCTX_DEFINE_p) -I$(SETUPHDIR) -I.\..\..\include -I. $(__DLLFLAG_p) \
-I.\..\..\samples -DNOPCH $(CPPFLAGS) $(CXXFLAGS)
SERVER_OBJECTS = \
$(OBJS)\server_server.obj
BASECLIENT_CXXFLAGS = $(__RUNTIME_LIBS) -I$(BCCDIR)\include $(__DEBUGINFO) \
$(__OPTIMIZEFLAG) $(__THREADSFLAG_2) -D__WXMSW__ $(__WXUNIV_DEFINE_p) \
$(__DEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) \
$(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p) $(__MSLU_DEFINE_p) \
$(__GFXCTX_DEFINE_p) -I$(SETUPHDIR) -I.\..\..\include -I. $(__DLLFLAG_p) \
-DwxUSE_GUI=0 $(CPPFLAGS) $(CXXFLAGS)
BASECLIENT_OBJECTS = \
$(OBJS)\baseclient_baseclient.obj
BASESERVER_CXXFLAGS = $(__RUNTIME_LIBS) -I$(BCCDIR)\include $(__DEBUGINFO) \
$(__OPTIMIZEFLAG) $(__THREADSFLAG_2) -D__WXMSW__ $(__WXUNIV_DEFINE_p) \
$(__DEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) \
$(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p) $(__MSLU_DEFINE_p) \
$(__GFXCTX_DEFINE_p) -I$(SETUPHDIR) -I.\..\..\include -I. $(__DLLFLAG_p) \
-DwxUSE_GUI=0 $(CPPFLAGS) $(CXXFLAGS)
BASESERVER_OBJECTS = \
$(OBJS)\baseserver_baseserver.obj
### Conditionally set variables: ###
@@ -80,6 +96,58 @@ EXTRALIBS_FOR_BASE =
!if "$(MONOLITHIC)" == "1"
EXTRALIBS_FOR_BASE =
!endif
!if "$(USE_GUI)" == "1"
__client___depname = $(OBJS)\client.exe
!endif
!if "$(USE_GUI)" == "1"
__server___depname = $(OBJS)\server.exe
!endif
!if "$(WXUNIV)" == "1"
__WXUNIV_DEFINE_p_0 = -d__WXUNIVERSAL__
!endif
!if "$(BUILD)" == "debug" && "$(DEBUG_FLAG)" == "default"
__DEBUG_DEFINE_p_0 = -d__WXDEBUG__
!endif
!if "$(DEBUG_FLAG)" == "1"
__DEBUG_DEFINE_p_0 = -d__WXDEBUG__
!endif
!if "$(USE_EXCEPTIONS)" == "0"
__EXCEPTIONS_DEFINE_p_0 = -dwxNO_EXCEPTIONS
!endif
!if "$(USE_RTTI)" == "0"
__RTTI_DEFINE_p_0 = -dwxNO_RTTI
!endif
!if "$(USE_THREADS)" == "0"
__THREAD_DEFINE_p_0 = -dwxNO_THREADS
!endif
!if "$(UNICODE)" == "0"
__UNICODE_DEFINE_p_0 = -dwxUSE_UNICODE=0
!endif
!if "$(UNICODE)" == "1"
__UNICODE_DEFINE_p_0 = -d_UNICODE
!endif
!if "$(MSLU)" == "1"
__MSLU_DEFINE_p_0 = -dwxUSE_UNICODE_MSLU=1
!endif
!if "$(USE_GDIPLUS)" == "1"
__GFXCTX_DEFINE_p_0 = -dwxUSE_GRAPHICS_CONTEXT=1
!endif
!if "$(SHARED)" == "1"
__DLLFLAG_p_0 = -dWXUSINGDLL
!endif
!if "$(MONOLITHIC)" == "0"
__WXLIB_CORE_p = \
wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.lib
!endif
!if "$(USE_GUI)" == "1"
__LIB_TIFF_p = wxtiff$(WXDEBUGFLAG).lib
!endif
!if "$(USE_GUI)" == "1"
__LIB_JPEG_p = wxjpeg$(WXDEBUGFLAG).lib
!endif
!if "$(USE_GUI)" == "1"
__LIB_PNG_p = wxpng$(WXDEBUGFLAG).lib
!endif
!if "$(BUILD)" == "debug"
__OPTIMIZEFLAG = -Od
!endif
@@ -93,10 +161,10 @@ __THREADSFLAG =
__THREADSFLAG = mt
!endif
!if "$(USE_THREADS)" == "0"
__THREADSFLAG_0 =
__THREADSFLAG_2 =
!endif
!if "$(USE_THREADS)" == "1"
__THREADSFLAG_0 = -tWM
__THREADSFLAG_2 = -tWM
!endif
!if "$(RUNTIME_LIBS)" == "dynamic"
__RUNTIME_LIBS = -tWR
@@ -105,81 +173,44 @@ __RUNTIME_LIBS = -tWR
__RUNTIME_LIBS =
!endif
!if "$(RUNTIME_LIBS)" == "dynamic"
__RUNTIME_LIBS_0 = i
__RUNTIME_LIBS_2 = i
!endif
!if "$(RUNTIME_LIBS)" == "static"
__RUNTIME_LIBS_0 =
__RUNTIME_LIBS_2 =
!endif
!if "$(WXUNIV)" == "1"
__WXUNIV_DEFINE_p = -D__WXUNIVERSAL__
!endif
!if "$(WXUNIV)" == "1"
__WXUNIV_DEFINE_p_0 = -d__WXUNIVERSAL__
!endif
!if "$(BUILD)" == "debug" && "$(DEBUG_FLAG)" == "default"
__DEBUG_DEFINE_p = -D__WXDEBUG__
!endif
!if "$(DEBUG_FLAG)" == "1"
__DEBUG_DEFINE_p = -D__WXDEBUG__
!endif
!if "$(BUILD)" == "debug" && "$(DEBUG_FLAG)" == "default"
__DEBUG_DEFINE_p_0 = -d__WXDEBUG__
!endif
!if "$(DEBUG_FLAG)" == "1"
__DEBUG_DEFINE_p_0 = -d__WXDEBUG__
!endif
!if "$(USE_EXCEPTIONS)" == "0"
__EXCEPTIONS_DEFINE_p = -DwxNO_EXCEPTIONS
!endif
!if "$(USE_EXCEPTIONS)" == "0"
__EXCEPTIONS_DEFINE_p_0 = -dwxNO_EXCEPTIONS
!endif
!if "$(USE_RTTI)" == "0"
__RTTI_DEFINE_p = -DwxNO_RTTI
!endif
!if "$(USE_RTTI)" == "0"
__RTTI_DEFINE_p_0 = -dwxNO_RTTI
!endif
!if "$(USE_THREADS)" == "0"
__THREAD_DEFINE_p = -DwxNO_THREADS
!endif
!if "$(USE_THREADS)" == "0"
__THREAD_DEFINE_p_0 = -dwxNO_THREADS
!endif
!if "$(UNICODE)" == "0"
__UNICODE_DEFINE_p = -DwxUSE_UNICODE=0
!endif
!if "$(UNICODE)" == "1"
__UNICODE_DEFINE_p = -D_UNICODE
!endif
!if "$(UNICODE)" == "0"
__UNICODE_DEFINE_p_0 = -dwxUSE_UNICODE=0
!endif
!if "$(UNICODE)" == "1"
__UNICODE_DEFINE_p_0 = -d_UNICODE
!endif
!if "$(MSLU)" == "1"
__MSLU_DEFINE_p = -DwxUSE_UNICODE_MSLU=1
!endif
!if "$(MSLU)" == "1"
__MSLU_DEFINE_p_0 = -dwxUSE_UNICODE_MSLU=1
!endif
!if "$(USE_GDIPLUS)" == "1"
__GFXCTX_DEFINE_p = -DwxUSE_GRAPHICS_CONTEXT=1
!endif
!if "$(USE_GDIPLUS)" == "1"
__GFXCTX_DEFINE_p_0 = -dwxUSE_GRAPHICS_CONTEXT=1
!endif
!if "$(SHARED)" == "1"
__DLLFLAG_p = -DWXUSINGDLL
!endif
!if "$(SHARED)" == "1"
__DLLFLAG_p_0 = -dWXUSINGDLL
!endif
!if "$(MONOLITHIC)" == "0"
__WXLIB_CORE_p = \
wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.lib
!endif
!if "$(MONOLITHIC)" == "0"
__WXLIB_NET_p = \
wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_net.lib
@@ -192,15 +223,6 @@ __WXLIB_BASE_p = \
__WXLIB_MONO_p = \
wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).lib
!endif
!if "$(USE_GUI)" == "1"
__LIB_TIFF_p = wxtiff$(WXDEBUGFLAG).lib
!endif
!if "$(USE_GUI)" == "1"
__LIB_JPEG_p = wxjpeg$(WXDEBUGFLAG).lib
!endif
!if "$(USE_GUI)" == "1"
__LIB_PNG_p = wxpng$(WXDEBUGFLAG).lib
!endif
!if "$(MSLU)" == "1"
__UNICOWS_LIB_p = unicows.lib
!endif
@@ -227,7 +249,7 @@ $(OBJS):
### Targets: ###
all: $(OBJS)\client.exe $(OBJS)\server.exe
all: $(__client___depname) $(__server___depname) $(OBJS)\baseclient.exe $(OBJS)\baseserver.exe
clean:
-if exist $(OBJS)\*.obj del $(OBJS)\*.obj
@@ -245,15 +267,41 @@ clean:
-if exist $(OBJS)\server.ild del $(OBJS)\server.ild
-if exist $(OBJS)\server.ilf del $(OBJS)\server.ilf
-if exist $(OBJS)\server.ils del $(OBJS)\server.ils
-if exist $(OBJS)\baseclient.exe del $(OBJS)\baseclient.exe
-if exist $(OBJS)\baseclient.tds del $(OBJS)\baseclient.tds
-if exist $(OBJS)\baseclient.ilc del $(OBJS)\baseclient.ilc
-if exist $(OBJS)\baseclient.ild del $(OBJS)\baseclient.ild
-if exist $(OBJS)\baseclient.ilf del $(OBJS)\baseclient.ilf
-if exist $(OBJS)\baseclient.ils del $(OBJS)\baseclient.ils
-if exist $(OBJS)\baseserver.exe del $(OBJS)\baseserver.exe
-if exist $(OBJS)\baseserver.tds del $(OBJS)\baseserver.tds
-if exist $(OBJS)\baseserver.ilc del $(OBJS)\baseserver.ilc
-if exist $(OBJS)\baseserver.ild del $(OBJS)\baseserver.ild
-if exist $(OBJS)\baseserver.ilf del $(OBJS)\baseserver.ilf
-if exist $(OBJS)\baseserver.ils del $(OBJS)\baseserver.ils
!if "$(USE_GUI)" == "1"
$(OBJS)\client.exe: $(CLIENT_OBJECTS) $(OBJS)\client_client.res
ilink32 -Tpe -q $(LDFLAGS) -L$(BCCDIR)\lib -L$(BCCDIR)\lib\psdk $(__DEBUGINFO) -L$(LIBDIRNAME) -aa @&&|
c0w32.obj $(CLIENT_OBJECTS),$@,, $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) wxzlib$(WXDEBUGFLAG).lib wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) $(__GDIPLUS_LIB_p) ole2w32.lib oleacc.lib import32.lib cw32$(__THREADSFLAG)$(__RUNTIME_LIBS_0).lib,, $(OBJS)\client_client.res
c0w32.obj $(CLIENT_OBJECTS),$@,, $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) wxzlib$(WXDEBUGFLAG).lib wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) $(__GDIPLUS_LIB_p) ole2w32.lib oleacc.lib import32.lib cw32$(__THREADSFLAG)$(__RUNTIME_LIBS_2).lib,, $(OBJS)\client_client.res
|
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\server.exe: $(SERVER_OBJECTS) $(OBJS)\server_server.res
ilink32 -Tpe -q $(LDFLAGS) -L$(BCCDIR)\lib -L$(BCCDIR)\lib\psdk $(__DEBUGINFO) -L$(LIBDIRNAME) -aa @&&|
c0w32.obj $(SERVER_OBJECTS),$@,, $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) wxzlib$(WXDEBUGFLAG).lib wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) $(__GDIPLUS_LIB_p) ole2w32.lib oleacc.lib import32.lib cw32$(__THREADSFLAG)$(__RUNTIME_LIBS_0).lib,, $(OBJS)\server_server.res
c0w32.obj $(SERVER_OBJECTS),$@,, $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) wxzlib$(WXDEBUGFLAG).lib wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) $(__GDIPLUS_LIB_p) ole2w32.lib oleacc.lib import32.lib cw32$(__THREADSFLAG)$(__RUNTIME_LIBS_2).lib,, $(OBJS)\server_server.res
|
!endif
$(OBJS)\baseclient.exe: $(BASECLIENT_OBJECTS)
ilink32 -Tpe -q $(LDFLAGS) -L$(BCCDIR)\lib -L$(BCCDIR)\lib\psdk $(__DEBUGINFO) -L$(LIBDIRNAME) -ap @&&|
c0x32.obj $(BASECLIENT_OBJECTS),$@,, $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) wxzlib$(WXDEBUGFLAG).lib wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) $(__GDIPLUS_LIB_p) ole2w32.lib oleacc.lib import32.lib cw32$(__THREADSFLAG)$(__RUNTIME_LIBS_2).lib,,
|
$(OBJS)\baseserver.exe: $(BASESERVER_OBJECTS)
ilink32 -Tpe -q $(LDFLAGS) -L$(BCCDIR)\lib -L$(BCCDIR)\lib\psdk $(__DEBUGINFO) -L$(LIBDIRNAME) -ap @&&|
c0x32.obj $(BASESERVER_OBJECTS),$@,, $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) wxzlib$(WXDEBUGFLAG).lib wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) $(__GDIPLUS_LIB_p) ole2w32.lib oleacc.lib import32.lib cw32$(__THREADSFLAG)$(__RUNTIME_LIBS_2).lib,,
|
$(OBJS)\client_client.obj: .\client.cpp
@@ -268,3 +316,9 @@ $(OBJS)\server_server.obj: .\server.cpp
$(OBJS)\server_server.res: .\server.rc
brcc32 -32 -r -fo$@ -i$(BCCDIR)\include -d__WXMSW__ $(__WXUNIV_DEFINE_p_0) $(__DEBUG_DEFINE_p_0) $(__EXCEPTIONS_DEFINE_p_0) $(__RTTI_DEFINE_p_0) $(__THREAD_DEFINE_p_0) $(__UNICODE_DEFINE_p_0) $(__MSLU_DEFINE_p_0) $(__GFXCTX_DEFINE_p_0) -i$(SETUPHDIR) -i.\..\..\include -i. $(__DLLFLAG_p_0) -i.\..\..\samples -dNOPCH $**
$(OBJS)\baseclient_baseclient.obj: .\baseclient.cpp
$(CXX) -q -c -P -o$@ $(BASECLIENT_CXXFLAGS) $**
$(OBJS)\baseserver_baseserver.obj: .\baseserver.cpp
$(CXX) -q -c -P -o$@ $(BASESERVER_CXXFLAGS) $**

View File

@@ -40,6 +40,24 @@ SERVER_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) $(GCCFLAGS)
SERVER_OBJECTS = \
$(OBJS)\server_server.o \
$(OBJS)\server_server_rc.o
BASECLIENT_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) \
$(GCCFLAGS) -DHAVE_W32API_H -D__WXMSW__ $(__WXUNIV_DEFINE_p) \
$(__DEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) \
$(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p) $(__MSLU_DEFINE_p) \
$(__GFXCTX_DEFINE_p) -I$(SETUPHDIR) -I.\..\..\include -W -Wall -I. \
$(__DLLFLAG_p) -DwxUSE_GUI=0 $(__RTTIFLAG) $(__EXCEPTIONSFLAG) \
-Wno-ctor-dtor-privacy $(CPPFLAGS) $(CXXFLAGS)
BASECLIENT_OBJECTS = \
$(OBJS)\baseclient_baseclient.o
BASESERVER_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) \
$(GCCFLAGS) -DHAVE_W32API_H -D__WXMSW__ $(__WXUNIV_DEFINE_p) \
$(__DEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) \
$(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p) $(__MSLU_DEFINE_p) \
$(__GFXCTX_DEFINE_p) -I$(SETUPHDIR) -I.\..\..\include -W -Wall -I. \
$(__DLLFLAG_p) -DwxUSE_GUI=0 $(__RTTIFLAG) $(__EXCEPTIONSFLAG) \
-Wno-ctor-dtor-privacy $(CPPFLAGS) $(CXXFLAGS)
BASESERVER_OBJECTS = \
$(OBJS)\baseserver_baseserver.o
### Conditionally set variables: ###
@@ -81,6 +99,60 @@ endif
ifeq ($(MONOLITHIC),1)
EXTRALIBS_FOR_BASE =
endif
ifeq ($(USE_GUI),1)
__client___depname = $(OBJS)\client.exe
endif
ifeq ($(USE_GUI),1)
__server___depname = $(OBJS)\server.exe
endif
ifeq ($(WXUNIV),1)
__WXUNIV_DEFINE_p_0 = --define __WXUNIVERSAL__
endif
ifeq ($(BUILD),debug)
ifeq ($(DEBUG_FLAG),default)
__DEBUG_DEFINE_p_0 = --define __WXDEBUG__
endif
endif
ifeq ($(DEBUG_FLAG),1)
__DEBUG_DEFINE_p_0 = --define __WXDEBUG__
endif
ifeq ($(USE_EXCEPTIONS),0)
__EXCEPTIONS_DEFINE_p_0 = --define wxNO_EXCEPTIONS
endif
ifeq ($(USE_RTTI),0)
__RTTI_DEFINE_p_0 = --define wxNO_RTTI
endif
ifeq ($(USE_THREADS),0)
__THREAD_DEFINE_p_0 = --define wxNO_THREADS
endif
ifeq ($(UNICODE),0)
__UNICODE_DEFINE_p_0 = --define wxUSE_UNICODE=0
endif
ifeq ($(UNICODE),1)
__UNICODE_DEFINE_p_0 = --define _UNICODE
endif
ifeq ($(MSLU),1)
__MSLU_DEFINE_p_0 = --define wxUSE_UNICODE_MSLU=1
endif
ifeq ($(USE_GDIPLUS),1)
__GFXCTX_DEFINE_p_0 = --define wxUSE_GRAPHICS_CONTEXT=1
endif
ifeq ($(SHARED),1)
__DLLFLAG_p_0 = --define WXUSINGDLL
endif
ifeq ($(MONOLITHIC),0)
__WXLIB_CORE_p = \
-lwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core
endif
ifeq ($(USE_GUI),1)
__LIB_TIFF_p = -lwxtiff$(WXDEBUGFLAG)
endif
ifeq ($(USE_GUI),1)
__LIB_JPEG_p = -lwxjpeg$(WXDEBUGFLAG)
endif
ifeq ($(USE_GUI),1)
__LIB_PNG_p = -lwxpng$(WXDEBUGFLAG)
endif
ifeq ($(BUILD),debug)
__OPTIMIZEFLAG = -O0
endif
@@ -102,9 +174,6 @@ endif
ifeq ($(WXUNIV),1)
__WXUNIV_DEFINE_p = -D__WXUNIVERSAL__
endif
ifeq ($(WXUNIV),1)
__WXUNIV_DEFINE_p_0 = --define __WXUNIVERSAL__
endif
ifeq ($(BUILD),debug)
ifeq ($(DEBUG_FLAG),default)
__DEBUG_DEFINE_p = -D__WXDEBUG__
@@ -113,66 +182,30 @@ endif
ifeq ($(DEBUG_FLAG),1)
__DEBUG_DEFINE_p = -D__WXDEBUG__
endif
ifeq ($(BUILD),debug)
ifeq ($(DEBUG_FLAG),default)
__DEBUG_DEFINE_p_0 = --define __WXDEBUG__
endif
endif
ifeq ($(DEBUG_FLAG),1)
__DEBUG_DEFINE_p_0 = --define __WXDEBUG__
endif
ifeq ($(USE_EXCEPTIONS),0)
__EXCEPTIONS_DEFINE_p = -DwxNO_EXCEPTIONS
endif
ifeq ($(USE_EXCEPTIONS),0)
__EXCEPTIONS_DEFINE_p_0 = --define wxNO_EXCEPTIONS
endif
ifeq ($(USE_RTTI),0)
__RTTI_DEFINE_p = -DwxNO_RTTI
endif
ifeq ($(USE_RTTI),0)
__RTTI_DEFINE_p_0 = --define wxNO_RTTI
endif
ifeq ($(USE_THREADS),0)
__THREAD_DEFINE_p = -DwxNO_THREADS
endif
ifeq ($(USE_THREADS),0)
__THREAD_DEFINE_p_0 = --define wxNO_THREADS
endif
ifeq ($(UNICODE),0)
__UNICODE_DEFINE_p = -DwxUSE_UNICODE=0
endif
ifeq ($(UNICODE),1)
__UNICODE_DEFINE_p = -D_UNICODE
endif
ifeq ($(UNICODE),0)
__UNICODE_DEFINE_p_0 = --define wxUSE_UNICODE=0
endif
ifeq ($(UNICODE),1)
__UNICODE_DEFINE_p_0 = --define _UNICODE
endif
ifeq ($(MSLU),1)
__MSLU_DEFINE_p = -DwxUSE_UNICODE_MSLU=1
endif
ifeq ($(MSLU),1)
__MSLU_DEFINE_p_0 = --define wxUSE_UNICODE_MSLU=1
endif
ifeq ($(USE_GDIPLUS),1)
__GFXCTX_DEFINE_p = -DwxUSE_GRAPHICS_CONTEXT=1
endif
ifeq ($(USE_GDIPLUS),1)
__GFXCTX_DEFINE_p_0 = --define wxUSE_GRAPHICS_CONTEXT=1
endif
ifeq ($(SHARED),1)
__DLLFLAG_p = -DWXUSINGDLL
endif
ifeq ($(SHARED),1)
__DLLFLAG_p_0 = --define WXUSINGDLL
endif
ifeq ($(MONOLITHIC),0)
__WXLIB_CORE_p = \
-lwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core
endif
ifeq ($(MONOLITHIC),0)
__WXLIB_NET_p = \
-lwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_net
@@ -185,15 +218,6 @@ ifeq ($(MONOLITHIC),1)
__WXLIB_MONO_p = \
-lwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)
endif
ifeq ($(USE_GUI),1)
__LIB_TIFF_p = -lwxtiff$(WXDEBUGFLAG)
endif
ifeq ($(USE_GUI),1)
__LIB_JPEG_p = -lwxjpeg$(WXDEBUGFLAG)
endif
ifeq ($(USE_GUI),1)
__LIB_PNG_p = -lwxpng$(WXDEBUGFLAG)
endif
ifeq ($(MSLU),1)
__UNICOWS_LIB_p = -lunicows
endif
@@ -230,19 +254,31 @@ $(OBJS):
### Targets: ###
all: $(OBJS)\client.exe $(OBJS)\server.exe
all: $(__client___depname) $(__server___depname) $(OBJS)\baseclient.exe $(OBJS)\baseserver.exe
clean:
-if exist $(OBJS)\*.o del $(OBJS)\*.o
-if exist $(OBJS)\*.d del $(OBJS)\*.d
-if exist $(OBJS)\client.exe del $(OBJS)\client.exe
-if exist $(OBJS)\server.exe del $(OBJS)\server.exe
-if exist $(OBJS)\baseclient.exe del $(OBJS)\baseclient.exe
-if exist $(OBJS)\baseserver.exe del $(OBJS)\baseserver.exe
ifeq ($(USE_GUI),1)
$(OBJS)\client.exe: $(CLIENT_OBJECTS) $(OBJS)\client_client_rc.o
$(CXX) -o $@ $(CLIENT_OBJECTS) $(LDFLAGS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--subsystem,windows -mwindows $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) $(__GDIPLUS_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32
endif
ifeq ($(USE_GUI),1)
$(OBJS)\server.exe: $(SERVER_OBJECTS) $(OBJS)\server_server_rc.o
$(CXX) -o $@ $(SERVER_OBJECTS) $(LDFLAGS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--subsystem,windows -mwindows $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) $(__GDIPLUS_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32
endif
$(OBJS)\baseclient.exe: $(BASECLIENT_OBJECTS)
$(CXX) -o $@ $(BASECLIENT_OBJECTS) $(LDFLAGS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) $(__GDIPLUS_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32
$(OBJS)\baseserver.exe: $(BASESERVER_OBJECTS)
$(CXX) -o $@ $(BASESERVER_OBJECTS) $(LDFLAGS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) $(__GDIPLUS_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32
$(OBJS)\client_client.o: ./client.cpp
$(CXX) -c -o $@ $(CLIENT_CXXFLAGS) $(CPPDEPS) $<
@@ -256,6 +292,12 @@ $(OBJS)\server_server.o: ./server.cpp
$(OBJS)\server_server_rc.o: ./server.rc
windres --use-temp-file -i$< -o$@ --define __WXMSW__ $(__WXUNIV_DEFINE_p_0) $(__DEBUG_DEFINE_p_0) $(__EXCEPTIONS_DEFINE_p_0) $(__RTTI_DEFINE_p_0) $(__THREAD_DEFINE_p_0) $(__UNICODE_DEFINE_p_0) $(__MSLU_DEFINE_p_0) $(__GFXCTX_DEFINE_p_0) --include-dir $(SETUPHDIR) --include-dir ./../../include --include-dir . $(__DLLFLAG_p_0) --include-dir ./../../samples --define NOPCH
$(OBJS)\baseclient_baseclient.o: ./baseclient.cpp
$(CXX) -c -o $@ $(BASECLIENT_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\baseserver_baseserver.o: ./baseserver.cpp
$(CXX) -c -o $@ $(BASESERVER_CXXFLAGS) $(CPPDEPS) $<
.PHONY: all clean

View File

@@ -62,6 +62,14 @@ SERVER_CXXFLAGS = -I. `$(WX_CONFIG) --cxxflags $(WX_CONFIG_FLAGS)` $(CPPFLAGS) \
$(CXXFLAGS)
SERVER_OBJECTS = \
server_server.o
BASECLIENT_CXXFLAGS = -I. `$(WX_CONFIG) --cxxflags $(WX_CONFIG_FLAGS)` \
$(CPPFLAGS) $(CXXFLAGS)
BASECLIENT_OBJECTS = \
baseclient_baseclient.o
BASESERVER_CXXFLAGS = -I. `$(WX_CONFIG) --cxxflags $(WX_CONFIG_FLAGS)` \
$(CPPFLAGS) $(CXXFLAGS)
BASESERVER_OBJECTS = \
baseserver_baseserver.o
### Conditionally set variables: ###
@@ -87,7 +95,7 @@ endif
### Targets: ###
all: test_for_selected_wxbuild client server
all: test_for_selected_wxbuild client server baseclient baseserver
install: all
@@ -98,6 +106,8 @@ clean:
rm -f ./*.d
rm -f client
rm -f server
rm -f baseclient
rm -f baseserver
test_for_selected_wxbuild:
@$(WX_CONFIG) $(WX_CONFIG_FLAGS)
@@ -108,12 +118,24 @@ client: $(CLIENT_OBJECTS)
server: $(SERVER_OBJECTS)
$(CXX) -o $@ $(SERVER_OBJECTS) $(LDFLAGS) `$(WX_CONFIG) $(WX_CONFIG_FLAGS) --libs core,net,base`
baseclient: $(BASECLIENT_OBJECTS)
$(CXX) -o $@ $(BASECLIENT_OBJECTS) $(LDFLAGS) `$(WX_CONFIG) $(WX_CONFIG_FLAGS) --libs net,base`
baseserver: $(BASESERVER_OBJECTS)
$(CXX) -o $@ $(BASESERVER_OBJECTS) $(LDFLAGS) `$(WX_CONFIG) $(WX_CONFIG_FLAGS) --libs net,base`
client_client.o: ./client.cpp
$(CXX) -c -o $@ $(CLIENT_CXXFLAGS) $(CPPDEPS) $<
server_server.o: ./server.cpp
$(CXX) -c -o $@ $(SERVER_CXXFLAGS) $(CPPDEPS) $<
baseclient_baseclient.o: ./baseclient.cpp
$(CXX) -c -o $@ $(BASECLIENT_CXXFLAGS) $(CPPDEPS) $<
baseserver_baseserver.o: ./baseserver.cpp
$(CXX) -c -o $@ $(BASESERVER_CXXFLAGS) $(CPPDEPS) $<
.PHONY: all install uninstall clean

View File

@@ -42,6 +42,26 @@ SERVER_CXXFLAGS = /M$(__RUNTIME_LIBS_22)$(__DEBUGRUNTIME) /DWIN32 \
SERVER_OBJECTS = \
$(OBJS)\server_server.obj \
$(OBJS)\server_server.res
BASECLIENT_CXXFLAGS = /M$(__RUNTIME_LIBS_36)$(__DEBUGRUNTIME) /DWIN32 \
$(__DEBUGINFO) /Fd$(OBJS)\baseclient.pdb $(____DEBUGRUNTIME) \
$(__OPTIMIZEFLAG) $(__NO_VC_CRTDBG_p) /D__WXMSW__ $(__WXUNIV_DEFINE_p) \
$(__DEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) \
$(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p) $(__MSLU_DEFINE_p) \
$(__GFXCTX_DEFINE_p) /I$(SETUPHDIR) /I.\..\..\include /W4 /I. $(__DLLFLAG_p) \
/D_CONSOLE /DwxUSE_GUI=0 $(__RTTIFLAG) $(__EXCEPTIONSFLAG) $(CPPFLAGS) \
$(CXXFLAGS)
BASECLIENT_OBJECTS = \
$(OBJS)\baseclient_baseclient.obj
BASESERVER_CXXFLAGS = /M$(__RUNTIME_LIBS_50)$(__DEBUGRUNTIME) /DWIN32 \
$(__DEBUGINFO) /Fd$(OBJS)\baseserver.pdb $(____DEBUGRUNTIME) \
$(__OPTIMIZEFLAG) $(__NO_VC_CRTDBG_p) /D__WXMSW__ $(__WXUNIV_DEFINE_p) \
$(__DEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) \
$(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p) $(__MSLU_DEFINE_p) \
$(__GFXCTX_DEFINE_p) /I$(SETUPHDIR) /I.\..\..\include /W4 /I. $(__DLLFLAG_p) \
/D_CONSOLE /DwxUSE_GUI=0 $(__RTTIFLAG) $(__EXCEPTIONSFLAG) $(CPPFLAGS) \
$(CXXFLAGS)
BASESERVER_OBJECTS = \
$(OBJS)\baseserver_baseserver.obj
### Conditionally set variables: ###
@@ -102,18 +122,100 @@ EXTRALIBS_FOR_BASE =
!if "$(MONOLITHIC)" == "1"
EXTRALIBS_FOR_BASE =
!endif
!if "$(USE_GUI)" == "1"
__client___depname = $(OBJS)\client.exe
!endif
!if "$(RUNTIME_LIBS)" == "dynamic"
__RUNTIME_LIBS_8 = D
!endif
!if "$(RUNTIME_LIBS)" == "static"
__RUNTIME_LIBS_8 = $(__THREADSFLAG)
!endif
!if "$(USE_GUI)" == "1"
__server___depname = $(OBJS)\server.exe
!endif
!if "$(RUNTIME_LIBS)" == "dynamic"
__RUNTIME_LIBS_22 = D
!endif
!if "$(RUNTIME_LIBS)" == "static"
__RUNTIME_LIBS_22 = $(__THREADSFLAG)
!endif
!if "$(RUNTIME_LIBS)" == "dynamic"
__RUNTIME_LIBS_36 = D
!endif
!if "$(RUNTIME_LIBS)" == "static"
__RUNTIME_LIBS_36 = $(__THREADSFLAG)
!endif
!if "$(RUNTIME_LIBS)" == "dynamic"
__RUNTIME_LIBS_50 = D
!endif
!if "$(RUNTIME_LIBS)" == "static"
__RUNTIME_LIBS_50 = $(__THREADSFLAG)
!endif
!if "$(BUILD)" == "debug" && "$(DEBUG_RUNTIME_LIBS)" == "default"
____DEBUGRUNTIME_0 = /d _DEBUG
!endif
!if "$(BUILD)" == "release" && "$(DEBUG_RUNTIME_LIBS)" == "default"
____DEBUGRUNTIME_0 =
!endif
!if "$(DEBUG_RUNTIME_LIBS)" == "0"
____DEBUGRUNTIME_0 =
!endif
!if "$(DEBUG_RUNTIME_LIBS)" == "1"
____DEBUGRUNTIME_0 = /d _DEBUG
!endif
!if "$(BUILD)" == "debug" && "$(DEBUG_RUNTIME_LIBS)" == "0"
__NO_VC_CRTDBG_p_0 = /d __NO_VC_CRTDBG__
!endif
!if "$(BUILD)" == "release" && "$(DEBUG_FLAG)" == "1"
__NO_VC_CRTDBG_p_0 = /d __NO_VC_CRTDBG__
!endif
!if "$(WXUNIV)" == "1"
__WXUNIV_DEFINE_p_0 = /d __WXUNIVERSAL__
!endif
!if "$(BUILD)" == "debug" && "$(DEBUG_FLAG)" == "default"
__DEBUG_DEFINE_p_0 = /d __WXDEBUG__
!endif
!if "$(DEBUG_FLAG)" == "1"
__DEBUG_DEFINE_p_0 = /d __WXDEBUG__
!endif
!if "$(USE_EXCEPTIONS)" == "0"
__EXCEPTIONS_DEFINE_p_0 = /d wxNO_EXCEPTIONS
!endif
!if "$(USE_RTTI)" == "0"
__RTTI_DEFINE_p_0 = /d wxNO_RTTI
!endif
!if "$(USE_THREADS)" == "0"
__THREAD_DEFINE_p_0 = /d wxNO_THREADS
!endif
!if "$(UNICODE)" == "0"
__UNICODE_DEFINE_p_0 = /d wxUSE_UNICODE=0
!endif
!if "$(UNICODE)" == "1"
__UNICODE_DEFINE_p_0 = /d _UNICODE
!endif
!if "$(MSLU)" == "1"
__MSLU_DEFINE_p_0 = /d wxUSE_UNICODE_MSLU=1
!endif
!if "$(USE_GDIPLUS)" == "1"
__GFXCTX_DEFINE_p_0 = /d wxUSE_GRAPHICS_CONTEXT=1
!endif
!if "$(SHARED)" == "1"
__DLLFLAG_p_0 = /d WXUSINGDLL
!endif
!if "$(MONOLITHIC)" == "0"
__WXLIB_CORE_p = \
wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.lib
!endif
!if "$(USE_GUI)" == "1"
__LIB_TIFF_p = wxtiff$(WXDEBUGFLAG).lib
!endif
!if "$(USE_GUI)" == "1"
__LIB_JPEG_p = wxjpeg$(WXDEBUGFLAG).lib
!endif
!if "$(USE_GUI)" == "1"
__LIB_PNG_p = wxpng$(WXDEBUGFLAG).lib
!endif
!if "$(BUILD)" == "debug" && "$(DEBUG_INFO)" == "default"
__DEBUGINFO = /Zi
!endif
@@ -127,16 +229,16 @@ __DEBUGINFO =
__DEBUGINFO = /Zi
!endif
!if "$(BUILD)" == "debug" && "$(DEBUG_INFO)" == "default"
__DEBUGINFO_1 = /DEBUG
__DEBUGINFO_3 = /DEBUG
!endif
!if "$(BUILD)" == "release" && "$(DEBUG_INFO)" == "default"
__DEBUGINFO_1 =
__DEBUGINFO_3 =
!endif
!if "$(DEBUG_INFO)" == "0"
__DEBUGINFO_1 =
__DEBUGINFO_3 =
!endif
!if "$(DEBUG_INFO)" == "1"
__DEBUGINFO_1 = /DEBUG
__DEBUGINFO_3 = /DEBUG
!endif
!if "$(BUILD)" == "debug" && "$(DEBUG_RUNTIME_LIBS)" == "default"
____DEBUGRUNTIME = /D_DEBUG
@@ -151,18 +253,6 @@ ____DEBUGRUNTIME =
____DEBUGRUNTIME = /D_DEBUG
!endif
!if "$(BUILD)" == "debug" && "$(DEBUG_RUNTIME_LIBS)" == "default"
____DEBUGRUNTIME_0 = /d _DEBUG
!endif
!if "$(BUILD)" == "release" && "$(DEBUG_RUNTIME_LIBS)" == "default"
____DEBUGRUNTIME_0 =
!endif
!if "$(DEBUG_RUNTIME_LIBS)" == "0"
____DEBUGRUNTIME_0 =
!endif
!if "$(DEBUG_RUNTIME_LIBS)" == "1"
____DEBUGRUNTIME_0 = /d _DEBUG
!endif
!if "$(BUILD)" == "debug" && "$(DEBUG_RUNTIME_LIBS)" == "default"
__DEBUGRUNTIME = d
!endif
!if "$(BUILD)" == "release" && "$(DEBUG_RUNTIME_LIBS)" == "default"
@@ -204,82 +294,39 @@ __NO_VC_CRTDBG_p = /D__NO_VC_CRTDBG__
!if "$(BUILD)" == "release" && "$(DEBUG_FLAG)" == "1"
__NO_VC_CRTDBG_p = /D__NO_VC_CRTDBG__
!endif
!if "$(BUILD)" == "debug" && "$(DEBUG_RUNTIME_LIBS)" == "0"
__NO_VC_CRTDBG_p_0 = /d __NO_VC_CRTDBG__
!endif
!if "$(BUILD)" == "release" && "$(DEBUG_FLAG)" == "1"
__NO_VC_CRTDBG_p_0 = /d __NO_VC_CRTDBG__
!endif
!if "$(WXUNIV)" == "1"
__WXUNIV_DEFINE_p = /D__WXUNIVERSAL__
!endif
!if "$(WXUNIV)" == "1"
__WXUNIV_DEFINE_p_0 = /d __WXUNIVERSAL__
!endif
!if "$(BUILD)" == "debug" && "$(DEBUG_FLAG)" == "default"
__DEBUG_DEFINE_p = /D__WXDEBUG__
!endif
!if "$(DEBUG_FLAG)" == "1"
__DEBUG_DEFINE_p = /D__WXDEBUG__
!endif
!if "$(BUILD)" == "debug" && "$(DEBUG_FLAG)" == "default"
__DEBUG_DEFINE_p_0 = /d __WXDEBUG__
!endif
!if "$(DEBUG_FLAG)" == "1"
__DEBUG_DEFINE_p_0 = /d __WXDEBUG__
!endif
!if "$(USE_EXCEPTIONS)" == "0"
__EXCEPTIONS_DEFINE_p = /DwxNO_EXCEPTIONS
!endif
!if "$(USE_EXCEPTIONS)" == "0"
__EXCEPTIONS_DEFINE_p_0 = /d wxNO_EXCEPTIONS
!endif
!if "$(USE_RTTI)" == "0"
__RTTI_DEFINE_p = /DwxNO_RTTI
!endif
!if "$(USE_RTTI)" == "0"
__RTTI_DEFINE_p_0 = /d wxNO_RTTI
!endif
!if "$(USE_THREADS)" == "0"
__THREAD_DEFINE_p = /DwxNO_THREADS
!endif
!if "$(USE_THREADS)" == "0"
__THREAD_DEFINE_p_0 = /d wxNO_THREADS
!endif
!if "$(UNICODE)" == "0"
__UNICODE_DEFINE_p = /DwxUSE_UNICODE=0
!endif
!if "$(UNICODE)" == "1"
__UNICODE_DEFINE_p = /D_UNICODE
!endif
!if "$(UNICODE)" == "0"
__UNICODE_DEFINE_p_0 = /d wxUSE_UNICODE=0
!endif
!if "$(UNICODE)" == "1"
__UNICODE_DEFINE_p_0 = /d _UNICODE
!endif
!if "$(MSLU)" == "1"
__MSLU_DEFINE_p = /DwxUSE_UNICODE_MSLU=1
!endif
!if "$(MSLU)" == "1"
__MSLU_DEFINE_p_0 = /d wxUSE_UNICODE_MSLU=1
!endif
!if "$(USE_GDIPLUS)" == "1"
__GFXCTX_DEFINE_p = /DwxUSE_GRAPHICS_CONTEXT=1
!endif
!if "$(USE_GDIPLUS)" == "1"
__GFXCTX_DEFINE_p_0 = /d wxUSE_GRAPHICS_CONTEXT=1
!endif
!if "$(SHARED)" == "1"
__DLLFLAG_p = /DWXUSINGDLL
!endif
!if "$(SHARED)" == "1"
__DLLFLAG_p_0 = /d WXUSINGDLL
!endif
!if "$(MONOLITHIC)" == "0"
__WXLIB_CORE_p = \
wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.lib
!endif
!if "$(MONOLITHIC)" == "0"
__WXLIB_NET_p = \
wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_net.lib
@@ -292,15 +339,6 @@ __WXLIB_BASE_p = \
__WXLIB_MONO_p = \
wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).lib
!endif
!if "$(USE_GUI)" == "1"
__LIB_TIFF_p = wxtiff$(WXDEBUGFLAG).lib
!endif
!if "$(USE_GUI)" == "1"
__LIB_JPEG_p = wxjpeg$(WXDEBUGFLAG).lib
!endif
!if "$(USE_GUI)" == "1"
__LIB_PNG_p = wxpng$(WXDEBUGFLAG).lib
!endif
!if "$(MSLU)" == "1"
__UNICOWS_LIB_p = unicows.lib
!endif
@@ -315,7 +353,7 @@ $(OBJS):
### Targets: ###
all: $(OBJS)\client.exe $(OBJS)\server.exe
all: $(__client___depname) $(__server___depname) $(OBJS)\baseclient.exe $(OBJS)\baseserver.exe
clean:
-if exist $(OBJS)\*.obj del $(OBJS)\*.obj
@@ -327,16 +365,36 @@ clean:
-if exist $(OBJS)\server.exe del $(OBJS)\server.exe
-if exist $(OBJS)\server.ilk del $(OBJS)\server.ilk
-if exist $(OBJS)\server.pdb del $(OBJS)\server.pdb
-if exist $(OBJS)\baseclient.exe del $(OBJS)\baseclient.exe
-if exist $(OBJS)\baseclient.ilk del $(OBJS)\baseclient.ilk
-if exist $(OBJS)\baseclient.pdb del $(OBJS)\baseclient.pdb
-if exist $(OBJS)\baseserver.exe del $(OBJS)\baseserver.exe
-if exist $(OBJS)\baseserver.ilk del $(OBJS)\baseserver.ilk
-if exist $(OBJS)\baseserver.pdb del $(OBJS)\baseserver.pdb
!if "$(USE_GUI)" == "1"
$(OBJS)\client.exe: $(CLIENT_OBJECTS) $(OBJS)\client_client.res
link /NOLOGO /OUT:$@ $(LDFLAGS) $(__DEBUGINFO_1) $(LINK_TARGET_CPU) /LIBPATH:$(LIBDIRNAME) /SUBSYSTEM:WINDOWS @<<
link /NOLOGO /OUT:$@ $(LDFLAGS) $(__DEBUGINFO_3) $(LINK_TARGET_CPU) /LIBPATH:$(LIBDIRNAME) /SUBSYSTEM:WINDOWS @<<
$(CLIENT_OBJECTS) $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) wxzlib$(WXDEBUGFLAG).lib wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) $(__GDIPLUS_LIB_p) kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib
<<
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\server.exe: $(SERVER_OBJECTS) $(OBJS)\server_server.res
link /NOLOGO /OUT:$@ $(LDFLAGS) $(__DEBUGINFO_1) $(LINK_TARGET_CPU) /LIBPATH:$(LIBDIRNAME) /SUBSYSTEM:WINDOWS @<<
link /NOLOGO /OUT:$@ $(LDFLAGS) $(__DEBUGINFO_3) $(LINK_TARGET_CPU) /LIBPATH:$(LIBDIRNAME) /SUBSYSTEM:WINDOWS @<<
$(SERVER_OBJECTS) $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) wxzlib$(WXDEBUGFLAG).lib wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) $(__GDIPLUS_LIB_p) kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib
<<
!endif
$(OBJS)\baseclient.exe: $(BASECLIENT_OBJECTS)
link /NOLOGO /OUT:$@ $(LDFLAGS) $(__DEBUGINFO_3) $(LINK_TARGET_CPU) /LIBPATH:$(LIBDIRNAME) /SUBSYSTEM:CONSOLE @<<
$(BASECLIENT_OBJECTS) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) wxzlib$(WXDEBUGFLAG).lib wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) $(__GDIPLUS_LIB_p) kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib
<<
$(OBJS)\baseserver.exe: $(BASESERVER_OBJECTS)
link /NOLOGO /OUT:$@ $(LDFLAGS) $(__DEBUGINFO_3) $(LINK_TARGET_CPU) /LIBPATH:$(LIBDIRNAME) /SUBSYSTEM:CONSOLE @<<
$(BASESERVER_OBJECTS) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) wxzlib$(WXDEBUGFLAG).lib wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) $(__GDIPLUS_LIB_p) kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib
<<
$(OBJS)\client_client.obj: .\client.cpp
$(CXX) /c /nologo /TP /Fo$@ $(CLIENT_CXXFLAGS) $**
@@ -350,3 +408,9 @@ $(OBJS)\server_server.obj: .\server.cpp
$(OBJS)\server_server.res: .\server.rc
rc /fo$@ /d WIN32 $(____DEBUGRUNTIME_0) $(__NO_VC_CRTDBG_p_0) /d __WXMSW__ $(__WXUNIV_DEFINE_p_0) $(__DEBUG_DEFINE_p_0) $(__EXCEPTIONS_DEFINE_p_0) $(__RTTI_DEFINE_p_0) $(__THREAD_DEFINE_p_0) $(__UNICODE_DEFINE_p_0) $(__MSLU_DEFINE_p_0) $(__GFXCTX_DEFINE_p_0) /i $(SETUPHDIR) /i .\..\..\include /i . $(__DLLFLAG_p_0) /d _WINDOWS /i .\..\..\samples /d NOPCH $**
$(OBJS)\baseclient_baseclient.obj: .\baseclient.cpp
$(CXX) /c /nologo /TP /Fo$@ $(BASECLIENT_CXXFLAGS) $**
$(OBJS)\baseserver_baseserver.obj: .\baseserver.cpp
$(CXX) /c /nologo /TP /Fo$@ $(BASESERVER_CXXFLAGS) $**

View File

@@ -69,6 +69,31 @@ EXTRALIBS_FOR_BASE =
!ifeq MONOLITHIC 1
EXTRALIBS_FOR_BASE =
!endif
__client___depname =
!ifeq USE_GUI 1
__client___depname = $(OBJS)\client.exe
!endif
__server___depname =
!ifeq USE_GUI 1
__server___depname = $(OBJS)\server.exe
!endif
__WXLIB_CORE_p =
!ifeq MONOLITHIC 0
__WXLIB_CORE_p = &
wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.lib
!endif
__LIB_TIFF_p =
!ifeq USE_GUI 1
__LIB_TIFF_p = wxtiff$(WXDEBUGFLAG).lib
!endif
__LIB_JPEG_p =
!ifeq USE_GUI 1
__LIB_JPEG_p = wxjpeg$(WXDEBUGFLAG).lib
!endif
__LIB_PNG_p =
!ifeq USE_GUI 1
__LIB_PNG_p = wxpng$(WXDEBUGFLAG).lib
!endif
__DEBUGINFO =
!ifeq BUILD debug
!ifeq DEBUG_INFO default
@@ -86,22 +111,22 @@ __DEBUGINFO = -d0
!ifeq DEBUG_INFO 1
__DEBUGINFO = -d2
!endif
__DEBUGINFO_1 =
__DEBUGINFO_3 =
!ifeq BUILD debug
!ifeq DEBUG_INFO default
__DEBUGINFO_1 = debug all
__DEBUGINFO_3 = debug all
!endif
!endif
!ifeq BUILD release
!ifeq DEBUG_INFO default
__DEBUGINFO_1 =
__DEBUGINFO_3 =
!endif
!endif
!ifeq DEBUG_INFO 0
__DEBUGINFO_1 =
__DEBUGINFO_3 =
!endif
!ifeq DEBUG_INFO 1
__DEBUGINFO_1 = debug all
__DEBUGINFO_3 = debug all
!endif
__OPTIMIZEFLAG =
!ifeq BUILD debug
@@ -138,42 +163,6 @@ __EXCEPTIONSFLAG =
!ifeq USE_EXCEPTIONS 1
__EXCEPTIONSFLAG = -xs
!endif
__WXLIB_CORE_p =
!ifeq MONOLITHIC 0
__WXLIB_CORE_p = &
wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.lib
!endif
__WXLIB_NET_p =
!ifeq MONOLITHIC 0
__WXLIB_NET_p = &
wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_net.lib
!endif
__WXLIB_BASE_p =
!ifeq MONOLITHIC 0
__WXLIB_BASE_p = &
wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).lib
!endif
__WXLIB_MONO_p =
!ifeq MONOLITHIC 1
__WXLIB_MONO_p = &
wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).lib
!endif
__LIB_TIFF_p =
!ifeq USE_GUI 1
__LIB_TIFF_p = wxtiff$(WXDEBUGFLAG).lib
!endif
__LIB_JPEG_p =
!ifeq USE_GUI 1
__LIB_JPEG_p = wxjpeg$(WXDEBUGFLAG).lib
!endif
__LIB_PNG_p =
!ifeq USE_GUI 1
__LIB_PNG_p = wxpng$(WXDEBUGFLAG).lib
!endif
__GDIPLUS_LIB_p =
!ifeq USE_GDIPLUS 1
__GDIPLUS_LIB_p = gdiplus.lib
!endif
__WXUNIV_DEFINE_p =
!ifeq WXUNIV 1
__WXUNIV_DEFINE_p = -d__WXUNIVERSAL__
@@ -214,6 +203,25 @@ __DLLFLAG_p =
!ifeq SHARED 1
__DLLFLAG_p = -dWXUSINGDLL
!endif
__WXLIB_NET_p =
!ifeq MONOLITHIC 0
__WXLIB_NET_p = &
wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_net.lib
!endif
__WXLIB_BASE_p =
!ifeq MONOLITHIC 0
__WXLIB_BASE_p = &
wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).lib
!endif
__WXLIB_MONO_p =
!ifeq MONOLITHIC 1
__WXLIB_MONO_p = &
wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).lib
!endif
__GDIPLUS_LIB_p =
!ifeq USE_GDIPLUS 1
__GDIPLUS_LIB_p = gdiplus.lib
!endif
### Variables: ###
@@ -242,6 +250,22 @@ SERVER_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) &
$(CXXFLAGS)
SERVER_OBJECTS = &
$(OBJS)\server_server.obj
BASECLIENT_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) &
$(__RUNTIME_LIBS) -d__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) &
$(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) &
$(__UNICODE_DEFINE_p) $(__GFXCTX_DEFINE_p) -i=$(SETUPHDIR) &
-i=.\..\..\include -wx -wcd=549 -wcd=656 -wcd=657 -wcd=667 -i=. $(__DLLFLAG_p) &
-dwxUSE_GUI=0 $(__RTTIFLAG) $(__EXCEPTIONSFLAG) $(CPPFLAGS) $(CXXFLAGS)
BASECLIENT_OBJECTS = &
$(OBJS)\baseclient_baseclient.obj
BASESERVER_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) &
$(__RUNTIME_LIBS) -d__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) &
$(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) &
$(__UNICODE_DEFINE_p) $(__GFXCTX_DEFINE_p) -i=$(SETUPHDIR) &
-i=.\..\..\include -wx -wcd=549 -wcd=656 -wcd=657 -wcd=667 -i=. $(__DLLFLAG_p) &
-dwxUSE_GUI=0 $(__RTTIFLAG) $(__EXCEPTIONSFLAG) $(CPPFLAGS) $(CXXFLAGS)
BASESERVER_OBJECTS = &
$(OBJS)\baseserver_baseserver.obj
all : $(OBJS)
@@ -250,7 +274,7 @@ $(OBJS) :
### Targets: ###
all : .SYMBOLIC $(OBJS)\client.exe $(OBJS)\server.exe
all : .SYMBOLIC $(__client___depname) $(__server___depname) $(OBJS)\baseclient.exe $(OBJS)\baseserver.exe
clean : .SYMBOLIC
-if exist $(OBJS)\*.obj del $(OBJS)\*.obj
@@ -260,30 +284,60 @@ clean : .SYMBOLIC
-if exist $(OBJS)\*.pch del $(OBJS)\*.pch
-if exist $(OBJS)\client.exe del $(OBJS)\client.exe
-if exist $(OBJS)\server.exe del $(OBJS)\server.exe
-if exist $(OBJS)\baseclient.exe del $(OBJS)\baseclient.exe
-if exist $(OBJS)\baseserver.exe del $(OBJS)\baseserver.exe
!ifeq USE_GUI 1
$(OBJS)\client.exe : $(CLIENT_OBJECTS) $(OBJS)\client_client.res
@%create $(OBJS)\client.lbc
@%append $(OBJS)\client.lbc option quiet
@%append $(OBJS)\client.lbc name $^@
@%append $(OBJS)\client.lbc option caseexact
@%append $(OBJS)\client.lbc $(LDFLAGS) $(__DEBUGINFO_1) libpath $(LIBDIRNAME) system nt_win ref '_WinMain@16'
@%append $(OBJS)\client.lbc $(LDFLAGS) $(__DEBUGINFO_3) libpath $(LIBDIRNAME) system nt_win ref '_WinMain@16'
@for %i in ($(CLIENT_OBJECTS)) do @%append $(OBJS)\client.lbc file %i
@for %i in ( $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) wxzlib$(WXDEBUGFLAG).lib wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__GDIPLUS_LIB_p) kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib) do @%append $(OBJS)\client.lbc library %i
@%append $(OBJS)\client.lbc option resource=$(OBJS)\client_client.res
@for %i in () do @%append $(OBJS)\client.lbc option stack=%i
wlink @$(OBJS)\client.lbc
!endif
!ifeq USE_GUI 1
$(OBJS)\server.exe : $(SERVER_OBJECTS) $(OBJS)\server_server.res
@%create $(OBJS)\server.lbc
@%append $(OBJS)\server.lbc option quiet
@%append $(OBJS)\server.lbc name $^@
@%append $(OBJS)\server.lbc option caseexact
@%append $(OBJS)\server.lbc $(LDFLAGS) $(__DEBUGINFO_1) libpath $(LIBDIRNAME) system nt_win ref '_WinMain@16'
@%append $(OBJS)\server.lbc $(LDFLAGS) $(__DEBUGINFO_3) libpath $(LIBDIRNAME) system nt_win ref '_WinMain@16'
@for %i in ($(SERVER_OBJECTS)) do @%append $(OBJS)\server.lbc file %i
@for %i in ( $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) wxzlib$(WXDEBUGFLAG).lib wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__GDIPLUS_LIB_p) kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib) do @%append $(OBJS)\server.lbc library %i
@%append $(OBJS)\server.lbc option resource=$(OBJS)\server_server.res
@for %i in () do @%append $(OBJS)\server.lbc option stack=%i
wlink @$(OBJS)\server.lbc
!endif
$(OBJS)\baseclient.exe : $(BASECLIENT_OBJECTS)
@%create $(OBJS)\baseclient.lbc
@%append $(OBJS)\baseclient.lbc option quiet
@%append $(OBJS)\baseclient.lbc name $^@
@%append $(OBJS)\baseclient.lbc option caseexact
@%append $(OBJS)\baseclient.lbc $(LDFLAGS) $(__DEBUGINFO_3) libpath $(LIBDIRNAME) system nt ref 'main_'
@for %i in ($(BASECLIENT_OBJECTS)) do @%append $(OBJS)\baseclient.lbc file %i
@for %i in ( $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) wxzlib$(WXDEBUGFLAG).lib wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__GDIPLUS_LIB_p) kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib) do @%append $(OBJS)\baseclient.lbc library %i
@%append $(OBJS)\baseclient.lbc
@for %i in () do @%append $(OBJS)\baseclient.lbc option stack=%i
wlink @$(OBJS)\baseclient.lbc
$(OBJS)\baseserver.exe : $(BASESERVER_OBJECTS)
@%create $(OBJS)\baseserver.lbc
@%append $(OBJS)\baseserver.lbc option quiet
@%append $(OBJS)\baseserver.lbc name $^@
@%append $(OBJS)\baseserver.lbc option caseexact
@%append $(OBJS)\baseserver.lbc $(LDFLAGS) $(__DEBUGINFO_3) libpath $(LIBDIRNAME) system nt ref 'main_'
@for %i in ($(BASESERVER_OBJECTS)) do @%append $(OBJS)\baseserver.lbc file %i
@for %i in ( $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) wxzlib$(WXDEBUGFLAG).lib wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__GDIPLUS_LIB_p) kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib) do @%append $(OBJS)\baseserver.lbc library %i
@%append $(OBJS)\baseserver.lbc
@for %i in () do @%append $(OBJS)\baseserver.lbc option stack=%i
wlink @$(OBJS)\baseserver.lbc
$(OBJS)\client_client.obj : .AUTODEPEND .\client.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(CLIENT_CXXFLAGS) $<
@@ -297,3 +351,9 @@ $(OBJS)\server_server.obj : .AUTODEPEND .\server.cpp
$(OBJS)\server_server.res : .AUTODEPEND .\server.rc
wrc -q -ad -bt=nt -r -fo=$^@ -d__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p) $(__GFXCTX_DEFINE_p) -i=$(SETUPHDIR) -i=.\..\..\include -i=. $(__DLLFLAG_p) -i=.\..\..\samples -dNOPCH $<
$(OBJS)\baseclient_baseclient.obj : .AUTODEPEND .\baseclient.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(BASECLIENT_CXXFLAGS) $<
$(OBJS)\baseserver_baseserver.obj : .AUTODEPEND .\baseserver.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(BASESERVER_CXXFLAGS) $<

View File

@@ -36,9 +36,7 @@
// --------------------------------------------------------------------------
// the application icon
#if defined(__WXGTK__) || defined(__WXX11__) || defined(__WXMOTIF__) || defined(__WXMAC__)
# include "mondrian.xpm"
#endif
#include "mondrian.xpm"
// --------------------------------------------------------------------------
// classes

View File

@@ -3,7 +3,15 @@
<include file="../../build/bakefiles/common_samples.bkl"/>
<exe id="client" template="wx_sample" template_append="wx_append">
<if cond="FORMAT=='gnu'">
<!-- as we can't (easily) test for GUI, build them always -->
<set var="cond_build_gui">1</set>
</if>
<if cond="FORMAT!='gnu'">
<set var="cond_build_gui">USE_GUI=='1'</set>
</if>
<exe id="client" template="wx_sample" template_append="wx_append" cond="$(cond_build_gui)">
<sources>client.cpp</sources>
<wx-lib>core</wx-lib>
<wx-lib>net</wx-lib>
@@ -11,7 +19,7 @@
<win32-res>client.rc</win32-res>
</exe>
<exe id="server" template="wx_sample" template_append="wx_append">
<exe id="server" template="wx_sample" template_append="wx_append" cond="$(cond_build_gui)">
<sources>server.cpp</sources>
<wx-lib>core</wx-lib>
<wx-lib>net</wx-lib>
@@ -19,4 +27,18 @@
<win32-res>server.rc</win32-res>
</exe>
<exe id="baseclient" template="wx_sample_console"
template_append="wx_append_base">
<sources>baseclient.cpp</sources>
<wx-lib>net</wx-lib>
<wx-lib>base</wx-lib>
</exe>
<exe id="baseserver" template="wx_sample_console"
template_append="wx_append_base">
<sources>baseserver.cpp</sources>
<wx-lib>net</wx-lib>
<wx-lib>base</wx-lib>
</exe>
</makefile>

View File

@@ -0,0 +1,243 @@
# Microsoft Developer Studio Project File - Name="sockets_baseclient" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=baseclient - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "sockets_baseclient.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "sockets_baseclient.mak" CFG="baseclient - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "baseclient - Win32 DLL Universal Release" (based on "Win32 (x86) Console Application")
!MESSAGE "baseclient - Win32 DLL Universal Debug" (based on "Win32 (x86) Console Application")
!MESSAGE "baseclient - Win32 DLL Release" (based on "Win32 (x86) Console Application")
!MESSAGE "baseclient - Win32 DLL Debug" (based on "Win32 (x86) Console Application")
!MESSAGE "baseclient - Win32 Universal Release" (based on "Win32 (x86) Console Application")
!MESSAGE "baseclient - Win32 Universal Debug" (based on "Win32 (x86) Console Application")
!MESSAGE "baseclient - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "baseclient - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "baseclient - Win32 DLL Universal Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "vc_mswunivudll"
# PROP BASE Intermediate_Dir "vc_mswunivudll\baseclient"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "vc_mswunivudll"
# PROP Intermediate_Dir "vc_mswunivudll\baseclient"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /FD /MD /Fdvc_mswunivudll\baseclient.pdb /O2 /GR /EHsc /I ".\..\..\lib\vc_dll\mswunivu" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD CPP /nologo /FD /MD /Fdvc_mswunivudll\baseclient.pdb /O2 /GR /EHsc /I ".\..\..\lib\vc_dll\mswunivu" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD BASE RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "_UNICODE" /i ".\..\..\lib\vc_dll\mswunivu" /i ".\..\..\include" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
# ADD RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "_UNICODE" /i ".\..\..\lib\vc_dll\mswunivu" /i ".\..\..\include" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 wxbase29u_net.lib wxbase29u.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswunivudll\baseclient.exe" /libpath:".\..\..\lib\vc_dll" /subsystem:console
# ADD LINK32 wxbase29u_net.lib wxbase29u.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswunivudll\baseclient.exe" /libpath:".\..\..\lib\vc_dll" /subsystem:console
!ELSEIF "$(CFG)" == "baseclient - Win32 DLL Universal Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "vc_mswunivuddll"
# PROP BASE Intermediate_Dir "vc_mswunivuddll\baseclient"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "vc_mswunivuddll"
# PROP Intermediate_Dir "vc_mswunivuddll\baseclient"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswunivuddll\baseclient.pdb /Od /GR /EHsc /I ".\..\..\lib\vc_dll\mswunivud" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswunivuddll\baseclient.pdb /Od /GR /EHsc /I ".\..\..\lib\vc_dll\mswunivud" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\..\lib\vc_dll\mswunivud" /i ".\..\..\include" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\..\lib\vc_dll\mswunivud" /i ".\..\..\include" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 wxbase29ud_net.lib wxbase29ud.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswunivuddll\baseclient.exe" /debug /libpath:".\..\..\lib\vc_dll" /subsystem:console
# ADD LINK32 wxbase29ud_net.lib wxbase29ud.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswunivuddll\baseclient.exe" /debug /libpath:".\..\..\lib\vc_dll" /subsystem:console
!ELSEIF "$(CFG)" == "baseclient - Win32 DLL Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "vc_mswudll"
# PROP BASE Intermediate_Dir "vc_mswudll\baseclient"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "vc_mswudll"
# PROP Intermediate_Dir "vc_mswudll\baseclient"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /FD /MD /Fdvc_mswudll\baseclient.pdb /O2 /GR /EHsc /I ".\..\..\lib\vc_dll\mswu" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "__WXMSW__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD CPP /nologo /FD /MD /Fdvc_mswudll\baseclient.pdb /O2 /GR /EHsc /I ".\..\..\lib\vc_dll\mswu" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "__WXMSW__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD BASE RSC /l 0x409 /d "__WXMSW__" /d "_UNICODE" /i ".\..\..\lib\vc_dll\mswu" /i ".\..\..\include" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
# ADD RSC /l 0x409 /d "__WXMSW__" /d "_UNICODE" /i ".\..\..\lib\vc_dll\mswu" /i ".\..\..\include" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 wxbase29u_net.lib wxbase29u.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswudll\baseclient.exe" /libpath:".\..\..\lib\vc_dll" /subsystem:console
# ADD LINK32 wxbase29u_net.lib wxbase29u.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswudll\baseclient.exe" /libpath:".\..\..\lib\vc_dll" /subsystem:console
!ELSEIF "$(CFG)" == "baseclient - Win32 DLL Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "vc_mswuddll"
# PROP BASE Intermediate_Dir "vc_mswuddll\baseclient"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "vc_mswuddll"
# PROP Intermediate_Dir "vc_mswuddll\baseclient"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswuddll\baseclient.pdb /Od /GR /EHsc /I ".\..\..\lib\vc_dll\mswud" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswuddll\baseclient.pdb /Od /GR /EHsc /I ".\..\..\lib\vc_dll\mswud" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\..\lib\vc_dll\mswud" /i ".\..\..\include" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\..\lib\vc_dll\mswud" /i ".\..\..\include" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 wxbase29ud_net.lib wxbase29ud.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswuddll\baseclient.exe" /debug /libpath:".\..\..\lib\vc_dll" /subsystem:console
# ADD LINK32 wxbase29ud_net.lib wxbase29ud.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswuddll\baseclient.exe" /debug /libpath:".\..\..\lib\vc_dll" /subsystem:console
!ELSEIF "$(CFG)" == "baseclient - Win32 Universal Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "vc_mswunivu"
# PROP BASE Intermediate_Dir "vc_mswunivu\baseclient"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "vc_mswunivu"
# PROP Intermediate_Dir "vc_mswunivu\baseclient"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /FD /MD /Fdvc_mswunivu\baseclient.pdb /O2 /GR /EHsc /I ".\..\..\lib\vc_lib\mswunivu" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD CPP /nologo /FD /MD /Fdvc_mswunivu\baseclient.pdb /O2 /GR /EHsc /I ".\..\..\lib\vc_lib\mswunivu" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD BASE RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "_UNICODE" /i ".\..\..\lib\vc_lib\mswunivu" /i ".\..\..\include" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
# ADD RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "_UNICODE" /i ".\..\..\lib\vc_lib\mswunivu" /i ".\..\..\include" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 wxbase29u_net.lib wxbase29u.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswunivu\baseclient.exe" /libpath:".\..\..\lib\vc_lib" /subsystem:console
# ADD LINK32 wxbase29u_net.lib wxbase29u.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswunivu\baseclient.exe" /libpath:".\..\..\lib\vc_lib" /subsystem:console
!ELSEIF "$(CFG)" == "baseclient - Win32 Universal Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "vc_mswunivud"
# PROP BASE Intermediate_Dir "vc_mswunivud\baseclient"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "vc_mswunivud"
# PROP Intermediate_Dir "vc_mswunivud\baseclient"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswunivud\baseclient.pdb /Od /GR /EHsc /I ".\..\..\lib\vc_lib\mswunivud" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswunivud\baseclient.pdb /Od /GR /EHsc /I ".\..\..\lib\vc_lib\mswunivud" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\..\lib\vc_lib\mswunivud" /i ".\..\..\include" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\..\lib\vc_lib\mswunivud" /i ".\..\..\include" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 wxbase29ud_net.lib wxbase29ud.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswunivud\baseclient.exe" /debug /libpath:".\..\..\lib\vc_lib" /subsystem:console
# ADD LINK32 wxbase29ud_net.lib wxbase29ud.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswunivud\baseclient.exe" /debug /libpath:".\..\..\lib\vc_lib" /subsystem:console
!ELSEIF "$(CFG)" == "baseclient - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "vc_mswu"
# PROP BASE Intermediate_Dir "vc_mswu\baseclient"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "vc_mswu"
# PROP Intermediate_Dir "vc_mswu\baseclient"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /FD /MD /Fdvc_mswu\baseclient.pdb /O2 /GR /EHsc /I ".\..\..\lib\vc_lib\mswu" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "__WXMSW__" /D "_UNICODE" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD CPP /nologo /FD /MD /Fdvc_mswu\baseclient.pdb /O2 /GR /EHsc /I ".\..\..\lib\vc_lib\mswu" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "__WXMSW__" /D "_UNICODE" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD BASE RSC /l 0x409 /d "__WXMSW__" /d "_UNICODE" /i ".\..\..\lib\vc_lib\mswu" /i ".\..\..\include" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
# ADD RSC /l 0x409 /d "__WXMSW__" /d "_UNICODE" /i ".\..\..\lib\vc_lib\mswu" /i ".\..\..\include" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 wxbase29u_net.lib wxbase29u.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswu\baseclient.exe" /libpath:".\..\..\lib\vc_lib" /subsystem:console
# ADD LINK32 wxbase29u_net.lib wxbase29u.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswu\baseclient.exe" /libpath:".\..\..\lib\vc_lib" /subsystem:console
!ELSEIF "$(CFG)" == "baseclient - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "vc_mswud"
# PROP BASE Intermediate_Dir "vc_mswud\baseclient"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "vc_mswud"
# PROP Intermediate_Dir "vc_mswud\baseclient"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswud\baseclient.pdb /Od /GR /EHsc /I ".\..\..\lib\vc_lib\mswud" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswud\baseclient.pdb /Od /GR /EHsc /I ".\..\..\lib\vc_lib\mswud" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\..\lib\vc_lib\mswud" /i ".\..\..\include" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\..\lib\vc_lib\mswud" /i ".\..\..\include" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 wxbase29ud_net.lib wxbase29ud.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswud\baseclient.exe" /debug /libpath:".\..\..\lib\vc_lib" /subsystem:console
# ADD LINK32 wxbase29ud_net.lib wxbase29ud.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswud\baseclient.exe" /debug /libpath:".\..\..\lib\vc_lib" /subsystem:console
!ENDIF
# Begin Target
# Name "baseclient - Win32 DLL Universal Release"
# Name "baseclient - Win32 DLL Universal Debug"
# Name "baseclient - Win32 DLL Release"
# Name "baseclient - Win32 DLL Debug"
# Name "baseclient - Win32 Universal Release"
# Name "baseclient - Win32 Universal Debug"
# Name "baseclient - Win32 Release"
# Name "baseclient - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\baseclient.cpp
# End Source File
# End Group
# End Target
# End Project

View File

@@ -0,0 +1,243 @@
# Microsoft Developer Studio Project File - Name="sockets_baseserver" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=baseserver - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "sockets_baseserver.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "sockets_baseserver.mak" CFG="baseserver - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "baseserver - Win32 DLL Universal Release" (based on "Win32 (x86) Console Application")
!MESSAGE "baseserver - Win32 DLL Universal Debug" (based on "Win32 (x86) Console Application")
!MESSAGE "baseserver - Win32 DLL Release" (based on "Win32 (x86) Console Application")
!MESSAGE "baseserver - Win32 DLL Debug" (based on "Win32 (x86) Console Application")
!MESSAGE "baseserver - Win32 Universal Release" (based on "Win32 (x86) Console Application")
!MESSAGE "baseserver - Win32 Universal Debug" (based on "Win32 (x86) Console Application")
!MESSAGE "baseserver - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "baseserver - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "baseserver - Win32 DLL Universal Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "vc_mswunivudll"
# PROP BASE Intermediate_Dir "vc_mswunivudll\baseserver"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "vc_mswunivudll"
# PROP Intermediate_Dir "vc_mswunivudll\baseserver"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /FD /MD /Fdvc_mswunivudll\baseserver.pdb /O2 /GR /EHsc /I ".\..\..\lib\vc_dll\mswunivu" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD CPP /nologo /FD /MD /Fdvc_mswunivudll\baseserver.pdb /O2 /GR /EHsc /I ".\..\..\lib\vc_dll\mswunivu" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD BASE RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "_UNICODE" /i ".\..\..\lib\vc_dll\mswunivu" /i ".\..\..\include" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
# ADD RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "_UNICODE" /i ".\..\..\lib\vc_dll\mswunivu" /i ".\..\..\include" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 wxbase29u_net.lib wxbase29u.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswunivudll\baseserver.exe" /libpath:".\..\..\lib\vc_dll" /subsystem:console
# ADD LINK32 wxbase29u_net.lib wxbase29u.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswunivudll\baseserver.exe" /libpath:".\..\..\lib\vc_dll" /subsystem:console
!ELSEIF "$(CFG)" == "baseserver - Win32 DLL Universal Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "vc_mswunivuddll"
# PROP BASE Intermediate_Dir "vc_mswunivuddll\baseserver"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "vc_mswunivuddll"
# PROP Intermediate_Dir "vc_mswunivuddll\baseserver"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswunivuddll\baseserver.pdb /Od /GR /EHsc /I ".\..\..\lib\vc_dll\mswunivud" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswunivuddll\baseserver.pdb /Od /GR /EHsc /I ".\..\..\lib\vc_dll\mswunivud" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\..\lib\vc_dll\mswunivud" /i ".\..\..\include" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\..\lib\vc_dll\mswunivud" /i ".\..\..\include" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 wxbase29ud_net.lib wxbase29ud.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswunivuddll\baseserver.exe" /debug /libpath:".\..\..\lib\vc_dll" /subsystem:console
# ADD LINK32 wxbase29ud_net.lib wxbase29ud.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswunivuddll\baseserver.exe" /debug /libpath:".\..\..\lib\vc_dll" /subsystem:console
!ELSEIF "$(CFG)" == "baseserver - Win32 DLL Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "vc_mswudll"
# PROP BASE Intermediate_Dir "vc_mswudll\baseserver"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "vc_mswudll"
# PROP Intermediate_Dir "vc_mswudll\baseserver"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /FD /MD /Fdvc_mswudll\baseserver.pdb /O2 /GR /EHsc /I ".\..\..\lib\vc_dll\mswu" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "__WXMSW__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD CPP /nologo /FD /MD /Fdvc_mswudll\baseserver.pdb /O2 /GR /EHsc /I ".\..\..\lib\vc_dll\mswu" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "__WXMSW__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD BASE RSC /l 0x409 /d "__WXMSW__" /d "_UNICODE" /i ".\..\..\lib\vc_dll\mswu" /i ".\..\..\include" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
# ADD RSC /l 0x409 /d "__WXMSW__" /d "_UNICODE" /i ".\..\..\lib\vc_dll\mswu" /i ".\..\..\include" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 wxbase29u_net.lib wxbase29u.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswudll\baseserver.exe" /libpath:".\..\..\lib\vc_dll" /subsystem:console
# ADD LINK32 wxbase29u_net.lib wxbase29u.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswudll\baseserver.exe" /libpath:".\..\..\lib\vc_dll" /subsystem:console
!ELSEIF "$(CFG)" == "baseserver - Win32 DLL Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "vc_mswuddll"
# PROP BASE Intermediate_Dir "vc_mswuddll\baseserver"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "vc_mswuddll"
# PROP Intermediate_Dir "vc_mswuddll\baseserver"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswuddll\baseserver.pdb /Od /GR /EHsc /I ".\..\..\lib\vc_dll\mswud" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswuddll\baseserver.pdb /Od /GR /EHsc /I ".\..\..\lib\vc_dll\mswud" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "WXUSINGDLL" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\..\lib\vc_dll\mswud" /i ".\..\..\include" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\..\lib\vc_dll\mswud" /i ".\..\..\include" /i "." /d "WXUSINGDLL" /d "_CONSOLE" /d wxUSE_GUI=0
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 wxbase29ud_net.lib wxbase29ud.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswuddll\baseserver.exe" /debug /libpath:".\..\..\lib\vc_dll" /subsystem:console
# ADD LINK32 wxbase29ud_net.lib wxbase29ud.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswuddll\baseserver.exe" /debug /libpath:".\..\..\lib\vc_dll" /subsystem:console
!ELSEIF "$(CFG)" == "baseserver - Win32 Universal Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "vc_mswunivu"
# PROP BASE Intermediate_Dir "vc_mswunivu\baseserver"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "vc_mswunivu"
# PROP Intermediate_Dir "vc_mswunivu\baseserver"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /FD /MD /Fdvc_mswunivu\baseserver.pdb /O2 /GR /EHsc /I ".\..\..\lib\vc_lib\mswunivu" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD CPP /nologo /FD /MD /Fdvc_mswunivu\baseserver.pdb /O2 /GR /EHsc /I ".\..\..\lib\vc_lib\mswunivu" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD BASE RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "_UNICODE" /i ".\..\..\lib\vc_lib\mswunivu" /i ".\..\..\include" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
# ADD RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "_UNICODE" /i ".\..\..\lib\vc_lib\mswunivu" /i ".\..\..\include" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 wxbase29u_net.lib wxbase29u.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswunivu\baseserver.exe" /libpath:".\..\..\lib\vc_lib" /subsystem:console
# ADD LINK32 wxbase29u_net.lib wxbase29u.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswunivu\baseserver.exe" /libpath:".\..\..\lib\vc_lib" /subsystem:console
!ELSEIF "$(CFG)" == "baseserver - Win32 Universal Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "vc_mswunivud"
# PROP BASE Intermediate_Dir "vc_mswunivud\baseserver"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "vc_mswunivud"
# PROP Intermediate_Dir "vc_mswunivud\baseserver"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswunivud\baseserver.pdb /Od /GR /EHsc /I ".\..\..\lib\vc_lib\mswunivud" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswunivud\baseserver.pdb /Od /GR /EHsc /I ".\..\..\lib\vc_lib\mswunivud" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\..\lib\vc_lib\mswunivud" /i ".\..\..\include" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\..\lib\vc_lib\mswunivud" /i ".\..\..\include" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 wxbase29ud_net.lib wxbase29ud.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswunivud\baseserver.exe" /debug /libpath:".\..\..\lib\vc_lib" /subsystem:console
# ADD LINK32 wxbase29ud_net.lib wxbase29ud.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswunivud\baseserver.exe" /debug /libpath:".\..\..\lib\vc_lib" /subsystem:console
!ELSEIF "$(CFG)" == "baseserver - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "vc_mswu"
# PROP BASE Intermediate_Dir "vc_mswu\baseserver"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "vc_mswu"
# PROP Intermediate_Dir "vc_mswu\baseserver"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /FD /MD /Fdvc_mswu\baseserver.pdb /O2 /GR /EHsc /I ".\..\..\lib\vc_lib\mswu" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "__WXMSW__" /D "_UNICODE" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD CPP /nologo /FD /MD /Fdvc_mswu\baseserver.pdb /O2 /GR /EHsc /I ".\..\..\lib\vc_lib\mswu" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "__WXMSW__" /D "_UNICODE" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD BASE RSC /l 0x409 /d "__WXMSW__" /d "_UNICODE" /i ".\..\..\lib\vc_lib\mswu" /i ".\..\..\include" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
# ADD RSC /l 0x409 /d "__WXMSW__" /d "_UNICODE" /i ".\..\..\lib\vc_lib\mswu" /i ".\..\..\include" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 wxbase29u_net.lib wxbase29u.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswu\baseserver.exe" /libpath:".\..\..\lib\vc_lib" /subsystem:console
# ADD LINK32 wxbase29u_net.lib wxbase29u.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswu\baseserver.exe" /libpath:".\..\..\lib\vc_lib" /subsystem:console
!ELSEIF "$(CFG)" == "baseserver - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "vc_mswud"
# PROP BASE Intermediate_Dir "vc_mswud\baseserver"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "vc_mswud"
# PROP Intermediate_Dir "vc_mswud\baseserver"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswud\baseserver.pdb /Od /GR /EHsc /I ".\..\..\lib\vc_lib\mswud" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD CPP /nologo /FD /MDd /Zi /Gm /GZ /Fdvc_mswud\baseserver.pdb /Od /GR /EHsc /I ".\..\..\lib\vc_lib\mswud" /I ".\..\..\include" /W4 /I "." /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "_CONSOLE" /D wxUSE_GUI=0 /c
# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\..\lib\vc_lib\mswud" /i ".\..\..\include" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\..\lib\vc_lib\mswud" /i ".\..\..\include" /i "." /d "_CONSOLE" /d wxUSE_GUI=0
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 wxbase29ud_net.lib wxbase29ud.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswud\baseserver.exe" /debug /libpath:".\..\..\lib\vc_lib" /subsystem:console
# ADD LINK32 wxbase29ud_net.lib wxbase29ud.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswud\baseserver.exe" /debug /libpath:".\..\..\lib\vc_lib" /subsystem:console
!ENDIF
# Begin Target
# Name "baseserver - Win32 DLL Universal Release"
# Name "baseserver - Win32 DLL Universal Debug"
# Name "baseserver - Win32 DLL Release"
# Name "baseserver - Win32 DLL Debug"
# Name "baseserver - Win32 Universal Release"
# Name "baseserver - Win32 Universal Debug"
# Name "baseserver - Win32 Release"
# Name "baseserver - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\baseserver.cpp
# End Source File
# End Group
# End Target
# End Project