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:
@@ -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:
|
||||
|
733
samples/sockets/baseclient.cpp
Normal file
733
samples/sockets/baseclient.cpp
Normal 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;
|
||||
}
|
||||
|
738
samples/sockets/baseserver.cpp
Normal file
738
samples/sockets/baseserver.cpp
Normal 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()
|
@@ -38,9 +38,7 @@
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
// the application icon
|
||||
#if defined(__WXGTK__) || defined(__WXX11__) || defined(__WXMOTIF__) || defined(__WXMAC__)
|
||||
# include "mondrian.xpm"
|
||||
#endif
|
||||
#include "mondrian.xpm"
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
// classes
|
||||
|
@@ -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) $**
|
||||
|
||||
|
@@ -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
|
||||
|
||||
|
||||
|
@@ -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
|
||||
|
||||
|
||||
|
@@ -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) $**
|
||||
|
||||
|
@@ -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) $<
|
||||
|
||||
|
@@ -36,9 +36,7 @@
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
// the application icon
|
||||
#if defined(__WXGTK__) || defined(__WXX11__) || defined(__WXMOTIF__) || defined(__WXMAC__)
|
||||
# include "mondrian.xpm"
|
||||
#endif
|
||||
#include "mondrian.xpm"
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
// classes
|
||||
|
@@ -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>
|
||||
|
243
samples/sockets/sockets_baseclient.dsp
Normal file
243
samples/sockets/sockets_baseclient.dsp
Normal 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
|
||||
|
243
samples/sockets/sockets_baseserver.dsp
Normal file
243
samples/sockets/sockets_baseserver.dsp
Normal 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
|
||||
|
Reference in New Issue
Block a user