-1. Make sure your WXWIN variable is set, and uses the FAT (short
- name) form if doing a 16-bit compile.
-2. Change directory to wx\src\msw. Type 'make -f makefile.b32' to
- make the wxWindows core library. Ignore the warnings about
- 'XXX' not found in library.
-3. Change directory to a sample such as minimal, and type
- 'make -f makefile.b32'.
-4. For release versions, recompile wxWindows and samples using
- 'make -f makefile.b32 clean'
- 'make -f makefile.b32 FINAL=1'
- for the library and samples.
-
-Note: the wxWindows library and (some) samples compile in 16-bit mode
-using makefile.bcc, but at present the wxWindows resource system is switched
-off in this mode. See issues.txt for details.
-
-Borland C++Builder compilation
-------------------------------
-
-C++Builder compilation is the same as for Borland C++ above.
-
-Tested with C++Builder 1.0 and 3.0. Only makefiles are currently
-supplied.
-
-Watcom C++ 10.6 compilation
----------------------------
-
-1. Make sure your WXWIN variable is set, and uses the FAT (short
- name) form.
-2. Change directory to wx\src\msw. Type 'wmake -f makefile.wat' to
- make the wxWindows core library.
-3. Change directory to wx\samples\minimal and type 'wmake -f makefile.wat'
- to make this sample.
-
-Metrowerks CodeWarrior compilation
-----------------------------------
-
-1. Downloaded and unzip wx200cw.zip.
-2. Load the make_cw.mcp project in wx\src, and compile.
-3. Load the make_cw.mcp project in wx\samples\minimal, and compile.
- Further project files for samples will be available in due
- course.
-
-Symantec C++ compilation
-------------------------
-
-1. Make sure your WXWIN variable is set, and uses the FAT (short
- name) form.
-2. Edit setup.h and set wxUSE_DRAG_AND_DROP to 0.
-3. Change directory to wx\src\msw. Type 'make -f makefile.sc' to
- make the wxWindows core library.
-4. Change directory to wx\samples\minimal and type 'make -f makefile.sc'
- to make this sample.
-
-Note: the minimal sample doesn't link properly ('Error: no
-start address').
-32-bit compilation only (partially) supported at present, using SC++ 6.1.
-Some functionality is missing using this compiler (see makefile).
-Add -D__WIN95__ if your SC++ has Windows 95 support, and ignore
-Step (2). 16-bit compilation is left as an excercise for the user!
-
-Salford C++ compilation
------------------------
-
-1. Make sure your WXWIN variable is set, and uses the FAT (short
- name) form.
-2. Edit SALFORDDIR and RESOURCEDIR in src/makesl.env as per
- notes.
-3. Change directory to wx\src\msw. Type 'mk32 -f makefile.sl all' to
- make the wxWindows core library.
-4. Change directory to wx\samples\minimal and type 'mk32 -f makefile.sl'
- to make this sample.
-
-Unfortunately, Salford C++ seems to have problems with its code generation for
-operations on objects, as seen in wxFrame::OnMenuHighlight
-(minimal sample) or wxWindow::SetValidator (mdi sample). Also the
-the debugging version of the library is 90MB, with samples coming in
-at 40MB :-) However, wxWindows at least makes a good test suite for
-improving the compiler.
-
-Gnu-Win32 b19/b20/Mingw32 compilation
--------------------------------------
-
-wxWindows 2.0 supports Gnu-Win32/Cygwin b19, b20, Mingw32, and Mingw32/EGCS.
-
-Thanks are due to Keith Garry Boyce (garp@opustel.com) and Cygnus for making
-it all possible.
-
-From wxWindows 2.0 beta 9, both Gnu-Win32 and Mingw32 (the minimal
-distribution of Gnu-Win32) can be used with the same makefiles.
-
-Here are the steps required:
-
-- Retrieve and install the latest beta of Gnu-Win32, or Mingw32, as per the
- instructions with either of these packages.
-
-- If using Mingw32 (including the EGCS variant), you need some
- extra files to use the wxWindows makefiles. You can find these
- files in ports/mingw32 on the ftp site or CD-ROM, as extra.zip.
- These should be extracted to the Mingw32 directory.
- IMPORTANT: also see mingw32.txt in this directory (docs/msw)
- about a fix that has to be applied to a Mingw32 header file.
+1. Change directory to build\msw. Type 'wmake -f makefile.wat' to
+ make the wxWidgets core library.
+
+2. Change directory to samples\minimal and type 'wmake -f makefile.wat'
+ to make this sample. Repeat for other samples of interest.
+
+Note (1): if variant.cpp is compiled with date/time class options, the linker
+ gives up. So the date/time option is switched off for Watcom C++.
+ Also, wxAutomationObject is not compiled with Watcom C++ 10.
+
+Note (2): RawBitmaps won't work at present because they use unsupported template
+ classes
+
+Note (3): if Watcom can't read the precompiled header when building a sample,
+ try deleting .pch files in build\msw\wat_* and compiling
+ the sample again.
+
+Note (4): wxUSE_STD_STRING is disabled in wx/string.h for Watcom as this
+ compiler doesn't come with standard C++ library headers by default.
+ If you install STLPort or another STL implementation, you'll need to
+ edit wx/string.h and remove the check for Digital Mars in it (search
+ for __WATCOM__).
+
+
+Metrowerks CodeWarrior Compilation
+----------------------------------------------------------------
+
+** NOTE: We don't use Metrowerks compiler any more and so depend on
+** your contributions to keep it up to date. It is possible that
+** the project files mentioned below are out of date due to recently
+** added files, please add them manually if you get linking errors.
+** The authoritative list of files is in build/bakefiles/files.bkl
+
+1. CodeWarrior Pro 7 project files in XML format are already
+ included in wxMSW-2.8.x.zip and the setup version.
+
+2. Review the file include\wx\msw\setup.h (or include\wx\msw\setup0.h if
+ you are working from the SVN version) to make sure the settings reflect
+ what you want. If you aren't sure, leave it alone and go with the
+ default settings. A few notes:
+ - Don't use wxUSE_DEBUG_NEW_ALWAYS: it doesn't mix well with MSL
+ - wxUSE_GLOBAL_MEMORY_OPERATORS works, but memory leak reports
+ will be rather confusing due to interactions with the MSL ANSI
+ and runtime libs.
+
+3. The project file to build the Win32 wxWidgets libraries relies on the
+ Batch File Runner plug-in. This plug-in is not installed as part of
+ a normal CW7 installation. However, you can find this plug-in on the
+ CodeWarrior Reference CD, in the Thrill Seekers folder; it's called the
+ "Batch File Post Linker".
+
+4. If you choose not to install the Batch File Runner plug-in, then you
+ need to do the following by hand:
+ (1) Create the directories lib\cw7msw\include\wx and copy the file
+ include\wx\msw\setup.h (or include\wx\msw\setup0.h if you are
+ working from the SVN version) to lib\cw7msw\include\wx\setup.h
+ (2) Create the directories lib\cw7mswd\include\wx and copy the file
+ include\wx\msw\setup.h (or include\wx\msw\setup0.h if you are
+ working from the SVN version) to lib\cw7mswd\include\wx\setup.h
+
+5. Import src\wxWidgetsW7.xml to create the project file wxWidgetsW7.mcp.
+ Store this project file in directory src. You may get warnings about
+ not being able to find certain project paths; ignore these warnings, the
+ appropriate paths will be created during the build by the Batch File Runner.
+
+6. Choose the wxlib Win32 debug or wxlib Win32 Release target and build. You
+ will get some warnings about hidden virtual functions, illegal conversions
+ from const pointers to pointers, etc., all of which you can safely ignore.
+ ***Note: if you get errors that the compiler can't find "wx/setup.h", just
+ stop the build and build again. These errors occur because sometimes the
+ compiler starts doing its thing before the copying of setup.h has completed.
+
+7. The following libraries will be produced depending on chosen
+ target:
+ - wx_x86.lib ANSI Release (static)
+ - wx_x86_d.lib ANSI Debug (static)
+
+8. Sorry, I haven't had time yet to create and test Unicode or DLL versions.
+ Volunteers for this are welcome (as neither DLLs nor Unicode builds are
+ big priorities for me ;).
+
+9. CodeWarrior Pro7 project files (in XML format) are also provided for some
+ of the samples. In particular, there are project files for the minimal,
+ controls, dialogs, dnd, nd docview samples. You can use these project
+ files as templates for the other samples and for your own projects.
+ - For example, to make a project file for the "grid" sample,
+ just copy the project file for the "minimal" sample, minimalW7.mcp
+ (made by importing minimalW7.xml into CodeWarrior), into the
+ sample/grid directory, calling it gridW7.mcp. Open
+ newgridW7.mcp and revise the project by deleting the files
+ minimal.rc and minimal.cpp and adding the files griddemo.rc and
+ griddemo.cpp. Build and run....
+
+
+Cygwin/MinGW Compilation
+----------------------------------------------------------------
+
+wxWidgets supports Cygwin (formerly GnuWin32) betas and
+releases, and MinGW. Cygwin can be downloaded from:
+
+ http://sources.redhat.com/cygwin/
+
+and MinGW from:
+
+ http://www.mingw.org/
+
+Both Cygwin and MinGW can be used with configure (assuming you have MSYS
+installed in case of MinGW). You will need new enough MinGW version, preferably
+MinGW 2.0 (ships with gcc3) or at least 1.0 (gcc-2.95.3). GCC versions older
+than 2.95.3 don't work; you can use wxWidgets 2.4 with them.
+
+NOTE: some notes specific to old Cygwin (< 1.1.x) are at the end of this
+ section (see OLD VERSIONS)
+
+There are two methods of compiling wxWidgets, by using the
+makefiles provided or by using 'configure'.
+
+Retrieve and install the latest version of Cygwin, or MinGW, as per
+the instructions with either of these packages.
+
+If using MinGW, you can download the add-on MSYS package to
+provide Unix-like tools that you'll need to build wxWidgets using configure.
+
+Using makefiles Directly
+----------------------------------------------------------------
+
+NOTE: The makefile.gcc makefiles are for compilation under MinGW using
+ Windows command interpreter (command.com/cmd.exe), they won't work in
+ other environments (such as UNIX or Unix-like, e.g. MSYS where you have
+ to use configure instead, see the section below)
+
+Use the makefile.gcc files for compiling wxWidgets and samples,
+e.g. to compile a debugging version of wxWidgets:
+ > cd c:\wx\build\msw
+ > mingw32-make -f makefile.gcc BUILD=debug
+ > cd c:\wx\samples\minimal
+ > mingw32-make -f makefile.gcc BUILD=debug
+ (See below for more options.)
+
+Notice that Windows command interpreter (cmd.exe) and mingw32-make must be
+used, using Bash (sh.exe) and make.exe from MSYS will only work when using
+configure-based build procedure described below!
+
+You can also use the 'strip' command to reduce executable/dll size (note that
+stripping an executable/dll will remove debug information!).
+
+All targets have 'clean' targets to allow removal of object files
+and other intermediate compiler files.
+
+Using configure
+----------------------------------------------------------------
+
+Instead of using the makefiles, you can use the configure
+system to generate appropriate makefiles, as used on Unix
+and Mac OS X systems.
+
+Change directory to the root of the wxWidgets distribution,
+make a build directory, and run configure and make in this directory.
+
+For example:
+
+ cd $WXWIN
+ mkdir build-debug
+ cd build-debug
+ ../configure --with-msw --enable-debug --enable-debug_gdb --disable-shared
+ make
+ make install % This step is optional, see note (6) below.
+ cd samples/minimal
+ make
+ ./minimal.exe
+
+Notes:
+
+1. See also the Cygwin/MinGW on the web site or CD-ROM for
+ further information about using wxWidgets with these compilers.
+
+2. libwx.a is 100 MB or more - but much less if compiled with no
+ debug info (-g0) and level 4 optimization (-O4).
+
+3. If you get a link error under MinGW 2.95.2 referring to:
+
+ EnumDAdvise__11IDataObjectPP13IEnumSTATDATA@8
+
+ then you need to edit the file objidl.h at line 663 and add
+ a missing PURE keyword:
+
+ STDMETHOD(EnumDAdvise)(THIS_ IEnumSTATDATA**) PURE;
+
+4. There's a bug in MinGW headers for some early distributions.
+
+ in include/windows32/defines.h, where it says:
+
+ #define LPSTR_TEXTCALLBACKA (LPSTR)-1L)
+
+ it should say:
+
+ #define LPSTR_TEXTCALLBACKA ((LPSTR)-1L)
+
+ (a missing bracket).
+
+5. OpenGL support should work with MinGW as-is. However,
+ if you wish to generate import libraries appropriate either for
+ the MS OpenGL libraries or the SGI OpenGL libraries, go to
+ include/wx/msw/gl and use:
+
+ dlltool -k -d opengl.def -llibopengl.a
+
+ for the SGI DLLs, or
+
+ dlltool -k -d opengl32.def -llibopengl32.a
+
+ and similarly for glu[32].def.
+
+6. The 'make install' step is optional, and copies files
+ as follows:
+
+ /usr/local/lib - wxmswXYZd.dll.a and wxmswXYZd.dll
+ /usr/local/include/wx - wxWidgets header files
+ /usr/local/bin - wx-config
+
+ You may need to do this if using wx-config with the
+ default root path.
+
+7. With Cygwin, you can invoke gdb --nw myfile.exe to
+ debug an executable. If there are memory leaks, they will be
+ flagged when the program quits. You can use Cygwin gdb
+ to debug MinGW executables.
+
+8. Note that gcc's precompiled headers do not work on current versions of
+ Cygwin. If your version of Cygwin is affected you will need to use the
+ --disable-precomp-headers configure option.
+
+OLD VERSIONS: