git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_2_BRANCH@8070 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			626 lines
		
	
	
		
			23 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			626 lines
		
	
	
		
			23 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
 | |
| Installing wxWindows 2.2
 | |
| ------------------------
 | |
| 
 | |
| This is wxWindows 2.2 for Microsoft Windows 3.1, 95, 98 and
 | |
| Windows NT/Windows 2000. This is an official, stable release.
 | |
| 
 | |
| IMPORTANT NOTE: If you experience problems installing, please
 | |
| re-read this instructions and other related files (changes.txt,
 | |
| readme.txt, notes on the Web site) carefully before mailing
 | |
| wx-users or the author. Preferably, try to fix the problem first and
 | |
| then send a patch to the author. Please report bugs using the
 | |
| bug report form on the wxWindows web site.
 | |
| 
 | |
| Unarchiving
 | |
| -----------
 | |
| 
 | |
| A setup program is provided (setup.exe) to automatically copy files to a
 | |
| directory on your hard disk. Do not install into a path that contains spaces.
 | |
| The installation program should set the WXWIN environment variable, which
 | |
| will be activated when your machine is rebooted. The setup
 | |
| program contains the following:
 | |
| 
 | |
| - All common, generic and MSW-specific wxWindows source;
 | |
| - samples;
 | |
| - documentation in Windows Help format;
 | |
| - makefiles for most Windows compilers, plus BC++ and
 | |
|   VC++ IDE files;
 | |
| - JPEG library source;
 | |
| - TIFF library source;
 | |
| - Object Graphics Library;
 | |
| - Tex2RTF source;
 | |
| - Dialog Editor binary.
 | |
| 
 | |
| Alternatively, you may unarchive the .zip form by hand:
 | |
| wxMSW-x.y.z.zip where x.y.z is the version number.
 | |
| 
 | |
| Unarchive the required files plus any optional documentation
 | |
| files into a suitable directory such as c:\wx.
 | |
| 
 | |
| Other add-on packages are available from the wxWindows Web site, such as:
 | |
| 
 | |
| - mmedia.zip. Audio, CD, video access for Windows and Linux.
 | |
| - ogl3.zip. Object Graphics Library: build network diagrams, CASE tools etc.
 | |
| - tex2rtf3.zip. Tex2RTF: create Windows Help, HTML, and Word RTF files from
 | |
|   the same document source.
 | |
| 
 | |
| For instructions on compiling wxBase (wxWindows-without-GUI),
 | |
| please see docs/base/install.txt.
 | |
| 
 | |
| General installation notes
 | |
| --------------------------
 | |
| 
 | |
| Alter your WXWIN environment variable to point to this directory.
 | |
| For Cygwin or Mingw32 compilation, make sure WXWIN contains only
 | |
| forward slashes.
 | |
| 
 | |
| If installing from the CVS server, copy include/wx/msw/setup0.h to
 | |
| include/wx/msw/setup.h and edit the resulting file to choose the featrues you
 | |
| would like to compile wxWindows with[out].
 | |
| 
 | |
| Compilation
 | |
| -----------
 | |
| 
 | |
| The following sections explain how to compile wxWindows with each supported
 | |
| compiler.
 | |
| 
 | |
| Visual C++ 4.0/5.0/6.0 compilation
 | |
| ----------------------------------
 | |
| 
 | |
| Using project files (VC++ 5 and 6 only):
 | |
| 
 | |
| 1. Unarchive wxWindows-x.y.z-vc.zip, the VC++ 5/6 project
 | |
|    makefiles (already included in wxMSW-x.y.z.zip and the setup version).
 | |
| 2. Open src/wxvc.dsp, set Debug or Release configuration for
 | |
|    the wxvc project, and compile. Alternatively, use Batch Build
 | |
|    to build both Debug and Release configurations.
 | |
|    This will produce lib/wx.lib (release) and lib/wxd.lib (debug),
 | |
|    plus various subordinate libraries. It assumes you have
 | |
|    the TIFF and JPEG source, which is already in the setup
 | |
|    version of the distribution.
 | |
|    The project file src/wxvc_dll.dsp will make a DLL version of wxWindow,
 | |
|    which will go in lib/wxdll.[lib,dll] and lib/wxdlld.[lib,dll].
 | |
| 3. Open a sample project file, choose a configuration such as
 | |
|    Debug using Build | Set Active Configuration..., and compile.
 | |
|    The project files don't use precompiled headers, to save disk
 | |
|    space, but you can switch PCH compiling on for greater speed.
 | |
|    NOTE: you may also use samples/SamplesVC.dsw to access all
 | |
|    sample projects without opening each workspace individually.
 | |
|    You can use the Batch Build facility to make several samples
 | |
|    at a time.
 | |
| 
 | |
| Using makefiles:
 | |
| 
 | |
| 1. Make sure your WXWIN variable is set.
 | |
| 2. If you do NOT have the TIFF or JPEG source code, please remove
 | |
|    the tiff and jpeg targets from the 'all' target in
 | |
|    src\msw\makefile.vc. Also ensure the settings in
 | |
|    include\wx\msw\setup.h specify not to use JPEG or TIFF.
 | |
| 3. Change directory to wx\src\msw. Type:
 | |
| 
 | |
|   'nmake -f makefile.vc'
 | |
| 
 | |
|    to make the wxWindows core library with debug information
 | |
|    (wx\lib\wxd.lib), then
 | |
| 
 | |
|   'nmake -f makefile.vc cleanall FINAL=1'
 | |
|   'nmake -f makefile.vc FINAL=1'
 | |
| 
 | |
|    to make the wxWindows core library without debug information
 | |
|    (wx\lib\wx.lib).
 | |
| 4. Change directory to wx\samples and type 'nmake -f makefile.vc'
 | |
|    to make all the samples. You can also make them individually.
 | |
| 
 | |
| Makefile notes:
 | |
| 
 | |
|   Use the 'cleanall' target to clean all objects, libraries and
 | |
|   executables.
 | |
| 
 | |
|   To build the release version using makefiles, add FINAL=1 to your
 | |
|   nmake invocation, both when building the library and for samples.
 | |
|   You MUST use the 'cleanall' target (with FINAL=1 or FINAL=0)
 | |
|   before making a different configuration, because otherwise
 | |
|   object files used to build the previous configuration may be
 | |
|   used accidentally for the current configuation. You might see
 | |
|   this manifested in unexpected link errors or warnings. This problem
 | |
|   doesn't occur when using project files to build wxWindows.
 | |
| 
 | |
|   Note that the wxWindows core library allows you to have debug
 | |
|   and release libraries available simultaneously, by compiling the
 | |
|   objects in different subdirectories, whereas samples must be
 | |
|   cleaned and re-made to build a different configuration.
 | |
| 
 | |
| To build the DLL version using makefiles:
 | |
| 
 | |
| 1. Change directory to wx\src\msw. Type 'nmake -f makefile.vc dll pch'
 | |
|    to make both a suitable DLL and import library, and to build a
 | |
|    suitable precompiled header file for compiling applications.
 | |
|    The resulting libraries are called:
 | |
| 
 | |
|       wx\lib\wx[version]d.lib(dll) (debug version)
 | |
|       wx\lib\wx[version].lib(dll) (release version, using FINAL=1)
 | |
| 
 | |
| 2. Invoke a sample makefile with 'nmake -f makefile.vc WXUSINGDLL=1'
 | |
|    (or edit src\makeprog.vc to set WXUSINGDLL to 1 for all
 | |
|    applications).
 | |
| 
 | |
| Note (1): if you wish to use templates, please edit
 | |
| include\wx\msw\setup.h and set wxUSE_DEBUG_NEW_ALWAYS to 0.
 | |
| Without this, the redefinition of 'new' will cause problems in
 | |
| the headers. Alternatively, #undef new before including template headers.
 | |
| You will also need to set wxUSE_IOSTREAMH to 0 if you will be
 | |
| using templates, to avoid the non-template stream files being included
 | |
| within wxWindows.
 | |
| 
 | |
| Note (2): libraries and applications generated with makefiles and
 | |
| project files are now (hopefully) compatible where static libraries
 | |
| are concerned, but please exercise caution nevertheless and if
 | |
| possible, use one method or the other.
 | |
| 
 | |
| Note (3): VC++ 5's optimization code seems to be broken and can
 | |
| cause both compile and run-time 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.
 | |
| 
 | |
| Similarly, in VC++ 4, optimization can cause internal compiler
 | |
| errors, so edit src\makevc.env and change /O1 to /Od before
 | |
| trying build a release version of the library. Or, type:
 | |
| 
 | |
| nmake -f makefile.vc noopt FINAL=1
 | |
| 
 | |
| and then resume compilation in the normal way. This will build
 | |
| troublesome files with no optimization. However, there now seems to be
 | |
| an internal linker error using VC++ 4, in addition to internal
 | |
| compiler errors for most of the samples, so this version of the compiler
 | |
| cannot be recommended!
 | |
| 
 | |
| Note (4): some crash problems can be due to inconsistent compiler
 | |
| options. If strange/weird/impossible things start to happen please
 | |
| check (dumping IDE project file as makefile and doing text comparison
 | |
| if necessary) that the project settings, especially the list of defined
 | |
| symbols, struct packing, etc. are exactly the same for all items in
 | |
| the project. After this, delete everything (including PCH) and recompile.
 | |
| 
 | |
| Note (5): for some further notes about upgrading your project
 | |
| files to be compatible with wxWindows 2.1.14, please see
 | |
| "Highlights of wxWindows" from the Download page of the
 | |
| web site or CD-ROM.
 | |
| 
 | |
| Note (6): to create your own IDE files, see the technical note on the
 | |
| wxWindows web site or CD-ROM, entitled "Compiling wxWindows
 | |
| applications in the VC++ IDE" (technical note docs/tech/tn0010.htm in the
 | |
| wxWindows distribution). You can also copy .dsp and .dsw
 | |
| files from an existing wxWindows sample and adapt them.
 | |
| 
 | |
| Visual C++ 1.5 compilation (16-bit)
 | |
| -----------------------------------
 | |
| 
 | |
| 1. Make sure your WXWIN variable is set, and uses the FAT (short
 | |
|    name) form.
 | |
| 2. Change directory to wx\src\msw. Type 'nmake -f makefile.dos' to
 | |
|    make the wxWindows core library.
 | |
| 3. Change directory to a sample, such as wx\samples\minimal, and
 | |
|    type 'nmake -f makefile.dos'.
 | |
| 
 | |
| Add FINAL=1 to your makefile invocation to build the release
 | |
| versions of the library and samples.
 | |
| 
 | |
| Use the 'clean' target to clean all objects, libraries and
 | |
| executables.
 | |
| 
 | |
| Borland C++ 4.5/5.0 compilation
 | |
| -------------------------------
 | |
| 
 | |
| Compiling using the makefiles:
 | |
| 
 | |
| 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 or demo such as samples\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.
 | |
| 5. To make and use wxWindows as a DLL, type
 | |
|    'make -f makefile.b32 clean'
 | |
|    'make -f makefile.b32 DLL=1'
 | |
|    and then for each sample,
 | |
|    'make -f makefile.b32 WXUSINGDLL=1'
 | |
|    Please note that the samples have not been exhaustively tested
 | |
|    with this configuration.
 | |
| 
 | |
| Note (1): 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.
 | |
| 
 | |
| Note (2): unfortunately most samples won't link in 16-bit mode,
 | |
| because the automatic data segment exceeds 64K. The minimal
 | |
| sample links and runs, however.
 | |
| 
 | |
| Note (3): the wxWindows makefiles assume byte structure alignment. Please
 | |
| make sure that your own project or makefile settings use the
 | |
| same alignment, or you could experience mysterious crashes. To
 | |
| change the alignment, add a suitable option to the $(CFG) target code
 | |
| in src/msw/makefile.b32.
 | |
| 
 | |
| Note (4): if you get undefined _SQL... symbols at link time,
 | |
| either install odbc32.lib from the BC++ CD-ROM into your BC++ lib
 | |
| directory, or set wxUSE_ODBC to 0 in include\wx\msw\setup.h and
 | |
| recompile wxWindows. The same applies if compiling using the IDE.
 | |
| 
 | |
| Note (5): BC++ 4.5 (not 5.0) trips up over jdmerge.c in the JPEG folder;
 | |
| you will therefore need to set wxUSE_LIBJPEG to 0 in setup.h and remove
 | |
| the jpeg target from src\msw\makefile.b32, and remove jpeg from
 | |
| src\makeprog.b32.
 | |
| 
 | |
| Note (6): If using C++Builder 4 and above (BC++ 5.4 and above), change LINK=tlink32 to
 | |
| LINK=ilink32 in src\makeb32.env. You may also need to disable
 | |
| wxUSE_LIBJPEG because there is a conflict in the BC++ headers
 | |
| (actually this problem seems to have gone away with 5.5 and SP1).
 | |
| 
 | |
| Note (7): If you wish debug messages to be sent to the console in
 | |
| debug mode, edit src\makeb32.env and change /aa to /Tpe in
 | |
| LINK_FLAGS.
 | |
| 
 | |
| Compiling using the IDE files:
 | |
| 
 | |
| 1. Load src\bc32.ide (Release settings)
 | |
| 2. Go to Options|Project... and specify the correct BC++ include and lib path for
 | |
|    your file structure.
 | |
| 3. Press F9 to compile the wxWindows library.
 | |
| 4. Load samples\bc32.ide.
 | |
| 5. Go to Options|Project... and specify the correct BC++ include and lib path for
 | |
|    your file structure.
 | |
| 6. Press F9 to compile the samples (build each node separately if
 | |
|    you prefer, by right clicking and choose Build Node).
 | |
| 7. Run each sample: you may need to run from each sample's directory
 | |
|    since some (notably the wxHTML samples) look for files
 | |
|    relative to the working directory.
 | |
| 
 | |
| Note (1): the samples project file contains a selection of
 | |
| samples, and not all samples. The remaining samples can be made
 | |
| with the makefiles. See also the demos hierarchy which doesn't
 | |
| have any BC++ project files yet.
 | |
| 
 | |
| Note (2): to make the png, xpm, zlib, jpeg and tiff libraries (needed for
 | |
| some samples) you need to compile them with bc32.ide.
 | |
| 
 | |
| Note (3): the debug version of the wxWindows library is about 40 MB, and the
 | |
| release version is around 5 MB.
 | |
| 
 | |
| See also the file docs/tech/tn0007.txt for further instructions and details
 | |
| of how to create your own project files.
 | |
| 
 | |
| Borland C++ 5.5 compilation
 | |
| ---------------------------
 | |
| 
 | |
| Before compiling wxWindows with Borland C++ 5.5, there are a few 
 | |
| issues concerning the compiler installation: 
 | |
| 
 | |
| 1. The compiler must be installed to a path that does not contain 
 | |
|    spaces, such as c:\Borland\Bcc55 (in particular, do not install 
 | |
|    it below "C:\Program Files").
 | |
| 
 | |
| 2. Make sure that you downloaded and installed the service pack 1 
 | |
|    for Borland C++ 5.5.  This SP1 can be downloaded from:
 | |
|    http://www.borland.com/devsupport/bcppbuilder/file_supplements.html
 | |
| 
 | |
|    IMPORTANT:
 | |
|    When installing SP1, make sure that you extract (UnZip) the files 
 | |
|    to the directory where you installed Borland C++ 5.5 (e.g., 
 | |
|    c:\Borland\Bcc55) with the option "use folder names" selected. 
 | |
|    This is necessary, to ensure that the files (mostly include files) 
 | |
|    are extracted to the right directory.
 | |
| 
 | |
| 3. Create the following two files in the same directory where you 
 | |
|    installed Borland C++ 5.5 (e.g., c:\Borland\Bcc55):
 | |
| 
 | |
|    a. bcc32.cfg
 | |
|       text file containing the following two lines:
 | |
|       -I"c:\Borland\Bcc55\include"
 | |
|       -L"c:\Borland\Bcc55\lib"
 | |
| 
 | |
|    b. ilink32.cfg
 | |
|       text file containing the following line:
 | |
|       -L"c:\Borland\Bcc55\lib"
 | |
| 
 | |
|    (replace c:\Borland\Bcc55 with the actual path where you installed 
 | |
|    Borland C++ 5.5)
 | |
| 
 | |
| 4. Add the borland BIN directory to your path (e.g., c:\Borland\Bcc55\bin), 
 | |
|    and define the environment variable BCCDIR=<Borland C++ 5.5 path>
 | |
|    (e.g., set BCCDIR=c:\Borland\Bcc55)
 | |
| 
 | |
| Compiling wxWindows:
 | |
| 
 | |
| Once the compiler and its service pack are properly installed, you build 
 | |
| wxWindows using the provided makefile.b32 in the src/msw directory:
 | |
| 
 | |
| a. To build wxWindows in DEBUG mode:
 | |
| 
 | |
|     cd c:\wx2\src\msw
 | |
|     make -f makefile.b32
 | |
| 
 | |
|     (replace c:\wx2 with the actual path where you installed wxWindows)
 | |
| 
 | |
| b. To build wxWindows in RELEASE mode:
 | |
| 
 | |
|     cd c:\wx2\src\msw
 | |
|     make -f makefile.b32 FINAL=1   
 | |
| 
 | |
|     (if you had previously built wxWindows, you need to clean all of
 | |
|     the object and intermediate files.  Before the above make command, 
 | |
|     run: 'make -f makefile.b32 CLEANALL')
 | |
| 
 | |
| IMPORTANT:
 | |
| The Service Pack 1 for Borland C++ 5.5 must be installed before wxWindows 
 | |
| is compiled.  If you compiled wxWindows before, it is advised that you 
 | |
| re-compile it following the next steps:
 | |
| 
 | |
|     cd c:\wx2\src\msw
 | |
|     make -f makefile.b32 CLEANALL
 | |
|     make -f makefile.b32   (or make -f makefile.b32 FINAL=1)
 | |
| 
 | |
|     (replace c:\wx2 with the actual path where you installed wxWindows)
 | |
| 
 | |
| ** REMEMBER **
 | |
| 
 | |
| In all of your wxWindows applications, your source code should include 
 | |
| the following preprocessor directive:
 | |
| 
 | |
| #ifdef __BORLANDC__
 | |
| #pragma hdrstop
 | |
| #endif
 | |
| 
 | |
| (check the samples -- e.g., \wx2\samples\minimal\minimal.cpp -- for 
 | |
| more details) 
 | |
| 
 | |
| Borland C++Builder compilation
 | |
| ------------------------------
 | |
| 
 | |
| 1. Build the wxWindows libraries using the Borland make utility as
 | |
|    specified in the section called "Borland C++ 4.5/5.0 compilation"
 | |
|    above. (C++ Builder includes a stand-alone C++ compiler.  For example,
 | |
|    C++ Builder 4.0 comes with C++ 5.4.)
 | |
| 
 | |
| 2. You can build samples using the makefiles as per the
 | |
|    instructions for BC++ above, or you can follow the instructions
 | |
|    in docs/tech/tn0004.htm or http://biolpc22.york.ac.uk/wx/bc/ide.html.
 | |
| 
 | |
| Watcom C++ 10.6/11 compilation
 | |
| ---------------------------
 | |
| 
 | |
| 1. Make sure your WXWIN variable is set, and uses the DOS short
 | |
|    name form.
 | |
| 2. Change directory to wx\src\msw. Type
 | |
|    'wmake -f makefile.wat all' to
 | |
|    make the wxWindows core library.
 | |
| 3. Change directory to wx\samples\minimal and type
 | |
|    'wmake -f makefile.wat all'
 | |
|    to make this sample. Repeat for other samples of interest.
 | |
| 
 | |
| Note (1): makewat.env uses the odbc32.lib supplied in wxWindows' lib\watcom
 | |
| directory. See the notes in that directory.
 | |
| Note (2): 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++.
 | |
| Note (3): if Watcom can't read the precompiled header when
 | |
| building a sample or library, try deleting src\msw\watcom.pch and
 | |
| compiling again.
 | |
| Note (4): if you get _popen_ and _pclose_ link errors, try
 | |
| recompiling wxWindows with XPM support disabled in setup.h.
 | |
| Alternatively, make sure these lines exist at the top of
 | |
| src\xpm\xpmi.h:
 | |
| 
 | |
| // Added by JACS for Watcom C++/wxWindows compilation (no popen/pclose functions)
 | |
| #ifdef __WATCOMC__
 | |
| #define NO_ZPIPE
 | |
| #endif
 | |
| 
 | |
| Metrowerks CodeWarrior compilation
 | |
| ----------------------------------
 | |
| 
 | |
| 1. Downloaded and unzip wxWindows-x.y.z-cw.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.
 | |
| 
 | |
| Note (1): you need CodeWarrior Pro 4 plus the patches to 4.1 from the
 | |
| Metrowerks Web site.
 | |
| 
 | |
| Note (2): unfortunately these files are not yet up-to-date for the
 | |
| current release.
 | |
| 
 | |
| 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.
 | |
| 
 | |
| Cygwin/Mingw32 compilation
 | |
| ----------------------------------
 | |
| 
 | |
| wxWindows 2 supports Cygwin (formerly GnuWin32) betas and
 | |
| releases, and Mingw32.
 | |
| 
 | |
| Thanks are due to Keith Garry Boyce (garp@opustel.com), Cygnus
 | |
| and others for making it all possible.
 | |
| 
 | |
| Both Cygwin and Mingw32 (the minimal distribution of Cygwin) can be used
 | |
| with the same makefiles.
 | |
| 
 | |
| Here are the steps required:
 | |
| 
 | |
| - Retrieve and install the latest beta of Cygwin, or Mingw32, as per the
 | |
|   instructions with either of these packages.
 | |
| 
 | |
| - If using Mingw32, 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. If you have alread downloaded bison, flex, make, rm, cp, mv
 | |
|   from elsewhere, you won't need this.
 | |
| 
 | |
|   If using Mingw32 2.95 and below with wxWindows 2.1 or above, you
 | |
|   must hand-patch with Mingw32-gcc295.patches (located in the
 | |
|   top-level of the wxWindows 2 installation). Mingw32 2.95.2
 | |
|   and above contain the fixes already.
 | |
| 
 | |
| - Modify the file wx/src/cygnus.bat (or mingw32.bat or mingegcs.bat)
 | |
|   to set up appropriate variables, if necessary mounting drives.
 | |
|   Run it before compiling.
 | |
| 
 | |
| - For Cygwin, make sure there's a \tmp directory on your
 | |
|   Windows drive or bison will crash (actually you don't need this
 | |
|   for ordinary wxWindows compilation: a pre-generated .c file is
 | |
|   supplied).
 | |
| 
 | |
| - Edit wx/src/makeg95.env and set the MINGW32 variable at the top of
 | |
|   the file to either 1 (you have Mingw32 or Cygwin 1.x releases) or 0
 | |
|   (if you have Cygwin betas). If using Mingw32, also set the
 | |
|   MINGW32VERSION variable appropriately.
 | |
| 
 | |
| - Set your WXWIN variable to where wxWindows is installed.
 | |
|   *** IMPORTANT: For Cygwin/Mingw32, use forward slashes in the path, not
 | |
|   backslashes.
 | |
| 
 | |
| - Use the makefile.g95 files for compiling wxWindows and samples,
 | |
|   e.g.:
 | |
|   > cd c:\wx\src\msw
 | |
|   > make -f makefile.g95
 | |
|   > cd c:\wx\samples\minimal
 | |
|   > make -f makefile.g95
 | |
| 
 | |
|   Ignore the warning about the default entry point.
 | |
| 
 | |
| - Use the 'strip' command to reduce executable size.
 | |
| 
 | |
| - 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.
 | |
| 
 | |
| - If using GnuWin32 b18, you will need to copy windres.exe
 | |
|   from e.g. the Mingw32 distribution, to a directory in your path.
 | |
| 
 | |
| All targets have 'clean' targets to allow removal of object files
 | |
| and other intermediate compiler files.
 | |
| 
 | |
| Notes:
 | |
| 
 | |
| 1. See also the Cygwin/Mingw32 on the web site or CD-ROM for
 | |
|    further information about using wxWindows with these compilers.
 | |
| 
 | |
| 2. libwx.a is 48 MB or more - but much less if compiled with no
 | |
|    debug info (-g0) and level 4 optimization (-O4).
 | |
| 
 | |
| 3. There's a bug in Mingw32 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).
 | |
| 
 | |
| 4. If there's a problem with the copy or remove commands in
 | |
|    src/msw/makefile.g95, you may need to change the COPY and
 | |
|    RM variables in makeg95.env.
 | |
| 
 | |
| 5. If there's a problem executing the windres program, try
 | |
|    commenting out RCPREPROCESSOR in makeg95.env.
 | |
| 
 | |
| 6. OpenGL support should work with Mingw32 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.
 | |
| 
 | |
| References:
 | |
| 
 | |
|  - The Cygwin site is at
 | |
|      http://sourceware.cygnus.com
 | |
|  - Mingw32 is available at:
 | |
|      ftp://www.mingw.org
 | |
| 
 | |
| TWIN32 and gcc on Linux
 | |
| -----------------------
 | |
| 
 | |
| The wxWindows 2 for Windows port may be compiled using
 | |
| the TWIN32 emulator package from www.willows.com. However,
 | |
| TWIN32 is by no means finished so this should be taken as
 | |
| something to think about for the future, rather than
 | |
| a tool for writing products with.
 | |
| 
 | |
| Use makefile.twn in much the same way as makefile.g95, as
 | |
| described above. Not all sample makefiles are supplied yet.
 | |
| 
 | |
| For some reason, I found I had to copy TWIN32's Windows resource
 | |
| compiler (rc) to the current working directory for it to be found.
 | |
| 
 | |
| General Notes
 | |
| -------------
 | |
| 
 | |
| - Debugging: under Windows 95, debugging output isn't output in
 | |
|   the same way that it is under NT or Windows 3.1.
 | |
|   Please see DebugView (bin/dbgview.exe in the distribution), also
 | |
|   available from http://www.sysinternals.com and on the wxWindows CD-ROM
 | |
|   under Packages.
 | |
| 
 | |
| - If you are installing wxWindows 2 from CVS, you may find that
 | |
|   include/wx/msw/setup.h is missing. This is deliberate, to avoid
 | |
|   developers' different setup.h configurations getting confused.
 | |
|   Please copy setup0.h to setup.h before compiling. Also, read
 | |
|   the BuildCVS.txt for other hints.
 | |
| 
 |