samples/wxsocket/server.wat
samples/wxsocket/client.vc
samples/wxsocket/server.vc
+samples/wxsocket/client.dos
+samples/wxsocket/server.dos
+samples/wxsocket/client.b32
+samples/wxsocket/server.b32
+samples/wxsocket/client.bcc
+samples/wxsocket/server.bcc
samples/wxsocket/*.xbm
samples/wxsocket/*.xpm
samples/wxsocket/*.ico
samples/dde/server.vc
samples/dde/client.wat
samples/dde/server.wat
+samples/dde/client.b32
+samples/dde/server.b32
+samples/dde/client.bcc
+samples/dde/server.bcc
+samples/dde/client.dos
+samples/dde/server.dos
samples/dde/*.rc
samples/dde/*.def
samples/dde/*.bmp
mkinstalldirs
wxGTK.spec
+distrib/gtk/copy_src
+
docs/gtk/*.html
docs/gtk/*.txt
docs/gtk/makewxgtk
-src/wxVC.dsp
-src/wxVC.dsw
+src/wxvc.dsp
+src/wxvc.dsw
+src/wxvc_dll.dsp
+src/wxvc_dll.dsw
samples/checklst/ChecklstVC.dsp
samples/checklst/ChecklstVC.dsw
utils/ogl/src/OglVC.dsw
utils/ogl/samples/ogledit/OgleditVC.dsp
utils/ogl/samples/ogledit/OgleditVC.dsw
+utils/ogl/samples/studio/StudioVC.dsp
+utils/ogl/samples/studio/StudioVC.dsw
utils/wxtree/src/TreeVC.dsp
utils/wxtree/src/TreeVC.dsw
wxWindows 2 Change Log
----------------------
+Beta 4, February 1999
+-------------------------
+
+wxGTK:
+
+- Miscellaneous fixes.
+
+wxMSW:
+
+- Makefiles for more compilers and samples; Cygwin makefiles
+ rationalised.
+- Added DLL support to VC++ makefiles.
+
+wxMotif:
+
+
+General:
+
+- Further doc improvements.
+- wxGenericValidator added.
+
+
Beta 3, January 31st 1999
-------------------------
\parskip=10pt
\parindent=0pt
\title{User Manual for wxWindows 2.0: a portable C++ GUI toolkit}
-\winhelponly{\author{by Julian Smart
+\winhelponly{\author{by Julian Smart et al
%\winhelponly{\\$$\image{1cm;0cm}{wxwin.wmf}$$}
}}
-\winhelpignore{\author{Julian Smart}
-\date{December 27th 1998}
+\winhelpignore{\author{Julian Smart et al}
+\date{February 10th 1999}
}
\makeindex
\begin{document}
\wxheading{See also}
-\helpref{wxStreamBuffer:SetBufferIO}{wxstreambufsetbufferio}
+\helpref{wxStreamBuffer:SetBufferIO}{wxstreambuffersetbufferio}
\func{}{wxStreamBuffer}{\param{const wxStreamBuffer &}{buffer}}
% -----------
% Filtered IO
% -----------
-\membersection{wxStreamBuffer::Read}\label{wxstreambufread}
+\membersection{wxStreamBuffer::Read}\label{wxstreambufferread}
\func{size\_t}{Read}{\param{void *}{buffer}, \param{size\_t }{size}}
\wxheading{See also}
-\helpref{wxStreamBuffer::WriteBack}{wxstreambufwriteback}
+\helpref{wxStreamBuffer::WriteBack}{wxstreambufferwriteback}
\func{size\_t}{Read}{\param{wxStreamBuffer *}{buffer}}
Reads a \it{buffer}. The function returns when \it{buffer} is full or
when there aren't datas anymore in the current buffer.
-\membersection{wxStreamBuffer::Write}
+\membersection{wxStreamBuffer::Write}\label{wxstreambufferwrite}
\func{size\_t}{Write}{\param{const void *}{buffer}, \param{size\_t }{size}}
\func{size\_t}{Write}{\param{wxStreamBuffer *}{buffer}}
-See \helpref{Read}{wxstreambufreadbuf}
+See \helpref{Read}{wxstreambufferread}.
-\membersection{wxStreamBuffer::WriteBack}\label{wxstreambufwriteback}
+\membersection{wxStreamBuffer::WriteBack}\label{wxstreambufferwriteback}
\func{size\_t}{WriteBack}{\param{const char*}{ buffer}, \param{size\_t}{ size}}
\wxheading{See also}
-\helpref{wxStreamBuffer::Read}{wxstreambufread}
+\helpref{wxStreamBuffer::Read}{wxstreambufferread}
\membersection{wxStreamBuffer::PutChar}
\wxheading{See also}
-\helpref{wxStreamBuffer::Read}{wxstreambufwrite}
+\helpref{wxStreamBuffer::Read}{wxstreambufferwrite}
\membersection{wxStreamBuffer::Tell}
Resets to the initial state variables concerning the buffer.
-\membersection{wxStreamBuffer::SetBufferIO}\label{wxstreambufsetbufferio}
+\membersection{wxStreamBuffer::SetBufferIO}\label{wxstreambuffersetbufferio}
\func{void}{SetBufferIO}{\param{char*}{ buffer\_start}, \param{char*}{ buffer\_end}}
\wxheading{See also}
\helpref{wxStreamBuffer constructor}{wxstreambufconst}\\
-\helpref{wxStreamBuffer::Fixed}{wxstreambuffixed}\\
-\helpref{wxStreamBuffer::Flushable}{wxstreambufflushable}
+\helpref{wxStreamBuffer::Fixed}{wxstreambufferfixed}\\
+\helpref{wxStreamBuffer::Flushable}{wxstreambufferflushable}
\func{void}{SetBufferIO}{\param{size\_t}{ bufsize}}
\wxheading{See also}
-\helpref{wxStreamBuffer::Fixed}{wxstreambuffixed}\\
-\helpref{wxStreamBuffer::Flushable}{wxstreambufflushable}
+\helpref{wxStreamBuffer::Fixed}{wxstreambufferfixed}\\
+\helpref{wxStreamBuffer::Flushable}{wxstreambufferflushable}
\membersection{wxStreamBuffer::GetBufferStart}
Returns the amount of bytes read during the last IO call to the parent stream.
-\membersection{wxStreamBuffer::Fixed}
+\membersection{wxStreamBuffer::Fixed}\label{wxstreambufferfixed}
\func{void}{Fixed}{\param{bool}{ fixed}}
\wxheading{See also}
-\helpref{wxStreamBuffer::SetBufferIO}{wxstreambufsetbufferio}
+\helpref{wxStreamBuffer::SetBufferIO}{wxstreambuffersetbufferio}
-\membersection{wxStreamBuffer::Flushable}
+\membersection{wxStreamBuffer::Flushable}\label{wxstreambufferflushable}
\func{void}{Flushable}{\param{bool}{ flushable}}
\twocolitem{{\bf wxStream_NOERROR}}{No error occured.}
\twocolitem{{\bf wxStream_EOF}}{An End-Of-File occured.}
\twocolitem{{\bf wxStream_WRITE_ERR}}{A generic error occured on the last write call.}
-\twocolitem{\bf wxStream_READ_ERR}{A generic error occured on the last read call.}
+\twocolitem{{\bf wxStream_READ_ERR}}{A generic error occured on the last read call.}
\end{twocollist}
\membersection{wxStreamBase::StreamSize}
% -----------------------------------------------------------------------------
% wxZlibInputStream
% -----------------------------------------------------------------------------
-\section{\class{wxZlibInputStream}}
+\section{\class{wxZlibInputStream}}\label{wxzlibinputstream}
\wxheading{Derived from}
% -----------------------------------------------------------------------------
% wxZlibOutputStream
% -----------------------------------------------------------------------------
-\section{\class{wxZlibOutputStream}}
+\section{\class{wxZlibOutputStream}}\label{wxzliboutputstream}
\wxheading{Derived from}
\wxheading{Short description}
-This stream compresses all data written to it and passed the compressed data
+This stream compresses all data written to it, and passes the compressed data
to the ``filtered'' stream.
\membersection{wxTextEntryDialog::wxTextEntryDialog}\label{wxtextentrydialogconstr}
-\func{}{wxTextEntryDialog}{\param{wxWindow* }{parent}, \param{const wxString\& }{message = "Please enter text"},\rtfsp
-\param{const wxString\& }{defaultValue = ""}, \param{long }{style = wxOK \pipe wxCANCEL \pipe wxCENTRE}, \param{const wxPoint\& }{pos = wxDefaultPosition}}
+\func{}{wxTextEntryDialog}{\param{wxWindow* }{parent}, \param{const wxString\& }{message},\rtfsp
+\param{const wxString\& }{caption = "Please enter text"}, \param{const wxString\& }{defaultValue = ""}, \param{long }{style = wxOK \pipe wxCANCEL \pipe wxCENTRE}, \param{const wxPoint\& }{pos = wxDefaultPosition}}
Constructor. Use \helpref{wxTextEntryDialog::ShowModal}{wxtextentrydialogshowmodal} to show the dialog.
and run the resulting minimal_motif binary.
-Notes:
-------
+Troubleshooting
+---------------
+
+- If you have trouble compiling the file y_tab.c, or have strange
+ linking errors, check whether you're using a C or C++ compiler for this file.
+ You should specify a C compiler in the CCLEX variable in src/make.env.
+ You could also try using bison and flex instead of yacc and
+ lex.
+
+- Solaris compilation with gcc: if the compiler has problems with the variable argument
+ functions, try putting the gcc fixinclude file paths early in the
+ include path.
+
+Other Notes
+-----------
- Better installation and makefile systems are
required. A revised configure system is in preparation.
For Linux, the problem is expected to go away with future
distributions of the operating system.
-- If you have trouble compiling the file y_tab.c, or have strange
- linking errors, check whether you're using a C or C++ compiler for this file.
- You should specify a C compiler in the CCLEX variable in src/make.env.
-
- If you run into problems with a missing X11/Xpm.h header, you
need to install the XPM package. It can be obtained from:
to 0, and recompile. You will not be able to load any XPMs,
though (currently the only supported colour bitmap format).
-- Please send bug reports with a description of your environment,
- compiler and the error message(s) to the wxwin-users mailing list at:
+Bug reports
+-----------
+
+Please send bug reports with a description of your environment,
+compiler and the error message(s) to the wxwin-users mailing list at:
wxwin-users@wx.dent.med.uni-muenchen.de
project files are unlikely to be compatible, so use one method or
the other.
+Note (3): VC++ 5's optimization code seems to be broken and can
+cause problems: this can be seen when deleting an object Dialog
+Editor, in Release mode with optimizations on. If in doubt,
+switch off optimisations, although this will result in much
+larger executables. It seems possible that the library can be created with
+strong optimization, so long as the application is not strongly
+optimized. For example, in wxWindows project, set to 'Minimum
+Size'. In Dialog Editor project, set to 'Customize: Favor Small
+Code' (and no others). This will then work.
+
Visual C++ 1.5 compilation
--------------------------
wxListBox changes (for ownerdraw functionality)
wxThread DONE (except for topic overview)
wxString PARTLY DONE
- wxBaseArray, other arrays
- (wxOwnerDrawn)
Document the include file for each class
- Stream classes
wxSocket topic overview
Functions
Implement new wxClipboard and DnD (Vadim)
-Implement wxToolTip
+Implement wxToolTip (Vadim)
LOW PRIORITY (MEDIUM TERM)
--------------------------
-Get wxMSW's wxGLCanvas working with non-VC++ compilers.
-
-Generate VC++ lib project files and supply VC++ project
-generator utility.
+Supply VC++ project generator utility.
Convert remaining utilities e.g. wxGraphLayout.
-wxWindows 2 beta 3
+wxWindows 2 beta 4
------------------
Welcome to wxWindows 2, a sophisticated cross-platform C++
- Fix TCP/IP mode in dde sample (how to use; why does it crash).
-- Remove trashed CVS files:
-
- include/wx/msw/magnif1.cur
- src/msw/ctl3d/*
- utils/glcanvas/samples/isosurf/isosurf.dat.gz
-
- and re-add them.
-
- wxDB ODBC classes: it seems that there are too many
Sybase-specific features for it to work on e.g. MySQL,
PostgreSQL. Find out what Remstar uses and document
- In doc/view file selector, document type is selected by
extension, not the type selected in the (Windows) file selector.
+- Add all makefiles/documentation for utils/serialize.
+
- Complete this ToDo list :-)
#define IMPLEMENT_WXWIN_MAIN \
extern int wxEntry( int argc, char *argv[] ); \
int main(int argc, char *argv[]) { return wxEntry(argc, argv); }
+
+#elif defined(__WXMSW__) && defined(WXUSINGDLL)
+
+// NT defines APIENTRY, 3.x not
+#if !defined(WXAPIENTRY)
+# ifdef __WATCOMC__
+# define WXAPIENTRY PASCAL
+# else
+# define WXAPIENTRY FAR PASCAL
+# endif
+#endif
+
+#define IMPLEMENT_WXWIN_MAIN \
+int WXAPIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,\
+ LPSTR m_lpCmdLine, int nCmdShow )\
+{\
+ return wxEntry((WXHINSTANCE) hInstance, (WXHINSTANCE) hPrevInstance,\
+ m_lpCmdLine, nCmdShow);\
+}
+
#else
#define IMPLEMENT_WXWIN_MAIN
#endif
#undef wxUSE_THREADS
#define wxUSE_THREADS 0
+#undef wxUSE_TOOLTIPS
+#define wxUSE_TOOLTIPS 0
+
#endif
#endif
// Standard wxWindows Cursors
//
-#ifdef __SALFORDC__
-WXCURSOR_HAND CURSOR DISCARDABLE WXINCDIR"wx/msw/hand.cur"
-WXCURSOR_BULLSEYE CURSOR DISCARDABLE WXINCDIR"wx/msw/bullseye.cur"
-WXCURSOR_PENCIL CURSOR DISCARDABLE WXINCDIR"wx/msw/pencil.cur"
-WXCURSOR_MAGNIFIER CURSOR DISCARDABLE WXINCDIR"wx/msw/magnif1.cur"
-WXCURSOR_NO_ENTRY CURSOR DISCARDABLE WXINCDIR"wx/msw/noentry.cur"
-WXCURSOR_SIZING CURSOR DISCARDABLE WXINCDIR"wx/msw/size.cur"
-WXCURSOR_ROLLER CURSOR DISCARDABLE WXINCDIR"wx/msw/roller.cur"
-WXCURSOR_WATCH CURSOR DISCARDABLE WXINCDIR"wx/msw/watch1.cur"
-WXCURSOR_PBRUSH CURSOR DISCARDABLE WXINCDIR"wx/msw/pbrush.cur"
-WXCURSOR_PLEFT CURSOR DISCARDABLE WXINCDIR"wx/msw/pntleft.cur"
-WXCURSOR_PRIGHT CURSOR DISCARDABLE WXINCDIR"wx/msw/pntright.cur"
-WXCURSOR_QARROW CURSOR DISCARDABLE WXINCDIR"wx/msw/query.cur"
-WXCURSOR_BLANK CURSOR DISCARDABLE WXINCDIR"wx/msw/blank.cur"
-#else
WXCURSOR_HAND CURSOR DISCARDABLE "wx/msw/hand.cur"
WXCURSOR_BULLSEYE CURSOR DISCARDABLE "wx/msw/bullseye.cur"
WXCURSOR_PENCIL CURSOR DISCARDABLE "wx/msw/pencil.cur"
WXCURSOR_PRIGHT CURSOR DISCARDABLE "wx/msw/pntright.cur"
WXCURSOR_QARROW CURSOR DISCARDABLE "wx/msw/query.cur"
WXCURSOR_BLANK CURSOR DISCARDABLE "wx/msw/blank.cur"
-#endif
//////////////////////////////////////////////////////////////////////////////
//
void wxExprCleanUp()
{
+#ifdef FLEX_SCANNER
if (yy_current_buffer)
yy_delete_buffer(yy_current_buffer);
+#endif
}
#include "wx/wx.h"
#endif
+#ifndef __WIN16__
#include "wx/spinbutt.h"
#include "wx/checklst.h"
+#endif
#include "wx/valgen.h"
return TRUE;
}
}
+#ifndef __WIN16__
else if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinButton)) )
{
wxSpinButton* pControl = (wxSpinButton*) m_validatorWindow;
return TRUE;
}
}
+#endif
// string controls
else if (m_validatorWindow->IsKindOf(CLASSINFO(wxButton)) )
{
return TRUE;
}
}
+#ifndef __WIN16__
// array controls
// NOTE: wxCheckListBox isa wxListBox, so wxCheckListBox
// MUST come first:
else
return FALSE;
}
+#endif
else if (m_validatorWindow->IsKindOf(CLASSINFO(wxListBox)) )
{
wxListBox* pControl = (wxListBox*) m_validatorWindow;
return TRUE;
}
}
+#ifndef __WIN16__
else if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinButton)) )
{
wxSpinButton* pControl = (wxSpinButton*) m_validatorWindow;
return TRUE;
}
}
+#endif
// string controls
else if (m_validatorWindow->IsKindOf(CLASSINFO(wxButton)) )
{
return TRUE;
}
}
+#ifndef __WIN16__
// array controls
// NOTE: wxCheckListBox isa wxListBox, so wxCheckListBox
// MUST come first:
else
return FALSE;
}
+#endif
else if (m_validatorWindow->IsKindOf(CLASSINFO(wxListBox)) )
{
wxListBox* pControl = (wxListBox*) m_validatorWindow;
# Debug/trace mode. 1 or more for debugging.
DEBUG = 0
-GUI = -D__MOTIF__ -D__LINUX__ -D__UNIX__
+GUI = -D__MOTIF__ -D__SOLARIS__ -D__UNIX__
GUISUFFIX = _motif
########################## Compiler flags #############################
sed -e "s/YYLMAX 200/YYLMAX 5000/g" > ../common/lex_yy.c
/bin/rm -f ../common/lex.yy.c
+# N.B. if you have lex instead of flex, replace the $(LEX) line above
+# with the following:
+# $(LEX) ../common/lexer.l
+
# Replace yacc with bison if you run into compilation
# problems with y_tab.c.
../common/y_tab.c: ../common/parser.y
#include <netdb.h>
#include <signal.h>
-#if defined(__SVR4__) && !defined(__HPUX__)
+#if defined(__SOLARIS__) || defined(__SVR4__) && !defined(__HPUX__)
#include <sys/systeminfo.h>
#endif
// Get full hostname (eg. DoDo.BSn-Germany.crg.de)
bool wxGetHostName(char *buf, int maxSize)
{
-#if defined(__SVR4__) && !defined(__HPUX__)
+#if defined(__SOLARIS__) || defined(__SVR4__) && !defined(__HPUX__)
return (sysinfo (SI_HOSTNAME, buf, maxSize) != -1);
#else /* BSD Sockets */
char name[255];
size_t len;
environment = GetIniFile (filename, NULL);
len = strlen (environment);
-#if defined(__SVR4__) && !defined(__HPUX__)
+#if defined(__SOLARIS__) || defined(__SVR4__) && !defined(__HPUX__)
(void) sysinfo (SI_HOSTNAME, environment + len, 1024 - len);
#else
(void) gethostname (environment + len, 1024 - len);
// Register the frame window class.
WNDCLASS wndclass; // Structure used to register Windows class.
- wndclass.style = CS_HREDRAW | CS_VREDRAW;
+ wndclass.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS ;
wndclass.lpfnWndProc = (WNDPROC)wxWndProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = sizeof( DWORD ); // was 4
// Register the MDI frame window class.
WNDCLASS wndclass1; // Structure used to register Windows class.
- wndclass1.style = CS_HREDRAW | CS_VREDRAW;
+ wndclass1.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS ;
wndclass1.lpfnWndProc = (WNDPROC)wxWndProc;
wndclass1.cbClsExtra = 0;
wndclass1.cbWndExtra = sizeof( DWORD ); // was 4
// Register the MDI child frame window class.
WNDCLASS wndclass4; // Structure used to register Windows class.
- wndclass4.style = CS_HREDRAW | CS_VREDRAW;
+ wndclass4.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS ;
wndclass4.lpfnWndProc = (WNDPROC)wxWndProc;
wndclass4.cbClsExtra = 0;
wndclass4.cbWndExtra = sizeof( DWORD ); // was 4
memset(&wndclass2, 0, sizeof(WNDCLASS)); // start with NULL defaults
// Use CS_OWNDC to avoid messing about restoring the context
// for every graphic operation.
- wndclass2.style = CS_HREDRAW | CS_VREDRAW;
+ wndclass2.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS ;
wndclass2.lpfnWndProc = (WNDPROC)wxWndProc;
wndclass2.cbClsExtra = 0;
wndclass2.cbWndExtra = sizeof( DWORD ); // was 4
#endif
// if wxWindows is in the DLL link our entry point with the application
-#if defined(WXUSINGDLL)
+// N.B. see include/wx/app.h, we're now putting this in IMPLEMENT_APP so we
+// don't have to link our apps with dummy.obj.
+
+#if 0 // defined(WXUSINGDLL)
// NT defines APIENTRY, 3.x not
#if !defined(APIENTRY)
// Foils optimizations in Visual C++ (see also app.cpp). Without it,
// dummy.obj isn't linked and we get a linker error.
-#if defined(__VISUALC__) && defined(__WIN16__)
+#if defined(__VISUALC__)
char wxDummyChar=0;
#endif
$(COMMDIR)/lex_yy.c: $(COMMDIR)/lexer.l
$(LEX) $(COMMDIR)/lexer.l > $(COMMDIR)/lex_yy.c
-# The following may be required for some versions of LEX/FLEX
+# The following may be required for FLEX
# $(LEX) -o$(COMMDIR)/lex_yy.c $(COMMDIR)/lexer.l
# sed -e "s/BUFSIZ/5000/g" < lex.yy.c | \
########################################################
# Windows-specific objects
-dummy.obj: dummy.$(SRCSUFF) $(WXDIR)\include\wx\wx.h
+dummy.obj: dummy.$(SRCSUFF) $(WXDIR)\include\wx\wx.h $(WXDIR)\include\wx\msw\setup.h
cl $(CPPFLAGS) $(MAKEPRECOMP) /c /Tp $*.$(SRCSUFF)
-dummydll.obj: dummydll.$(SRCSUFF) $(WXDIR)\include\wx\wx.h
+dummydll.obj: dummydll.$(SRCSUFF) $(WXDIR)\include\wx\wx.h $(WXDIR)\include\wx\msw\setup.h
cl @<<
$(CPPFLAGS) $(MAKEPRECOMP) /c /Tp $*.$(SRCSUFF)
<<
+# If taking wxWindows from CVS, setup.h doesn't exist yet.
+$(WXDIR)\include\wx\msw\setup.h: $(WXDIR)\include\wx\msw\setup0.h
+ -copy "$(WXDIR)"\include\wx\msw\setup.h "$(WXDIR)"\include\wx\msw\setup.bak
+ copy "$(WXDIR)"\include\wx\msw\setup0.h "$(WXDIR)"\include\wx\msw\setup.h
+
$(MSWDIR)/accel.obj: $*.$(SRCSUFF)
cl @<<
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@
}
}
+#ifndef __WIN16__
// put the title string in bold face
if ( !m_title.IsEmpty() )
{
wxLogLastError("SetMenuItemInfo");
}
}
+#endif
}
const wxString wxMenu::GetTitle() const
public:
~wxExecuteData()
{
+#ifndef __WIN16__
if ( !::CloseHandle(hProcess) )
{
wxLogLastError("CloseHandle(hProcess)");
}
+#endif
}
HWND hWnd; // window to send wxWM_PROC_TERMINATED to
#include "wx/menuitem.h"
#include "wx/log.h"
+
+#if wxUSE_TOOLTIPS
#include "wx/tooltip.h"
+#endif
+
#include "wx/intl.h"
#include "wx/log.h"
// it
return FALSE;
}
-
+#ifndef __WIN16__
wxButton *btnDefault = GetDefaultItem();
if ( btnDefault && !bCtrlDown )
{
// else: but if there is not it makes sense to make it
// work like a TAB - and that's what we do.
// Note that Ctrl-Enter always works this way.
+#endif
}
break;
# Use FINAL=1 argument to nmake to build final version with no debugging
# info
+
+# N.B. This makefiles uses CPPFLAGS2 to disable precompiled headers so we
+# can override optimization, which is necessary for correct behaviour under
+# VC++ 5 (otherwise deleting an object causes a crash).
+
# Set WXDIR for your system
WXDIR = $(WXWIN)
THISDIR = $(WXDIR)\utils\dialoged\src
DOCDIR=$(WXDIR)\docs
LOCALDOCDIR=$(WXDIR)\utils\dialoged\docs
+OVERRIDEFLAGS=/Od
+
PROGRAM=dialoged
OBJECTS = dialoged.obj reseditr.obj dlghndlr.obj reswrite.obj\
dialoged.obj: winprop.h reseditr.h dialoged.$(SRCSUFF) $(DUMMYOBJ)
$(cc) @<<
-$(CPPFLAGS) /c /Tp $*.$(SRCSUFF)
+$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF)
<<
winprop.obj: winprop.h reseditr.h winprop.$(SRCSUFF) $(DUMMYOBJ)
$(cc) @<<
-$(CPPFLAGS) /c /Tp $*.$(SRCSUFF)
+$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF)
<<
reswrite.obj: winprop.h reseditr.h reswrite.$(SRCSUFF) $(DUMMYOBJ)
$(cc) @<<
-$(CPPFLAGS) /c /Tp $*.$(SRCSUFF)
+$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF)
<<
reseditr.obj: winprop.h reseditr.h reseditr.$(SRCSUFF) $(DUMMYOBJ)
$(cc) @<<
-$(CPPFLAGS) /c /Tp $*.$(SRCSUFF)
+$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF)
<<
edtree.obj: winprop.h reseditr.h edtree.h edtree.$(SRCSUFF) $(DUMMYOBJ)
$(cc) @<<
-$(CPPFLAGS) /c /Tp $*.$(SRCSUFF)
+$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF)
<<
edlist.obj: winprop.h reseditr.h edlist.h edlist.$(SRCSUFF) $(DUMMYOBJ)
$(cc) @<<
-$(CPPFLAGS) /c /Tp $*.$(SRCSUFF)
+$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF)
<<
dlghndlr.obj: winprop.h reseditr.h dlghndlr.$(SRCSUFF) $(DUMMYOBJ)
$(cc) @<<
-$(CPPFLAGS) /c /Tp $*.$(SRCSUFF)
+$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF)
<<
symbtabl.obj: symbtabl.h symbtabl.$(SRCSUFF) $(DUMMYOBJ)
$(cc) @<<
-$(CPPFLAGS) /c /Tp $*.$(SRCSUFF)
+$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF)
<<
winstyle.obj: winstyle.h winstyle.$(SRCSUFF) $(DUMMYOBJ)
$(cc) @<<
-$(CPPFLAGS) /c /Tp $*.$(SRCSUFF)
+$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF)
<<
DOCSOURCES=$(LOCALDOCDIR)\dialoged.tex $(LOCALDOCDIR)\body.tex\