]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/msw/install.txt
Windows and Unicode compilation fixes
[wxWidgets.git] / docs / msw / install.txt
index 974f37312d11f618a92998fb32fb06e280a53dff..264b2c6e51ca28a7b82b07bad615f657193a40fa 100644 (file)
@@ -12,10 +12,15 @@ relevant section below for details.
 
 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.
+readme.txt, FAQ) carefully before mailing wx-users. Preferably,
+try to fix the problem first and then upload a patch to
+SourceForge:
+
+  http://sourceforge.net/patch/?group_id=9863
+
+Please report bugs using the SourceForge bug tracker:
+
+  http://sourceforge.net/bugs/?group_id=9863
 
 Unarchiving
 -----------
@@ -29,8 +34,8 @@ 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;
+- makefiles for most Windows compilers, plus CodeWarrior,
+  BC++ and VC++ IDE files;
 - JPEG library source;
 - TIFF library source;
 - Object Graphics Library;
@@ -220,31 +225,52 @@ executables.
 Borland C++ 4.5/5.0/5.5 compilation
 -------------------------------
 
-Compiling using the makefiles:
+Compiling using the makefiles (updated 24 Seot 02):
 
-0. If downloading from CVS, copy include\wx\msw\setup0.h to
-   include\wx\setup.h.
 1. Make sure your WXWIN variable is set [e.g add
    set WXWIN=c:\wxwindows
    to your autoexec.bat file], and that it uses the FAT (short
    name) form with no spaces.
    Reboot if needed for the changes to autoexec.bat to take effect.   
 2. Change directory to src\msw. Type 'make -f makefile.b32' to
-   make the wxWindows core library. Ignore the warnings about
-   'XXX' not found in library.
+   make the wxWindows core library. Ignore the compiler warnings.
+   This produces a library in the wxwindows\lib directory called
+   wx32ds.lib
 3. Change directory to a sample or demo such as samples\minimal, and type
-  'make -f makefile.b32'.
+  'make -f makefile.b32'. This produces a windows exe file
 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.
+   for the library and samples. This produces a library wx32s.lib eliminating
+   all debugging information - if you wish to retain reduced debugging information
+   'make -f makefile.b32 clean'
+   'make -f makefile.b32 FINAL=hybrid'
+
 5. To make and use wxWindows as a DLL, type
    'make -f makefile.b32 clean'
    'make -f makefile.b32 DLL=1'
+   which generates a DLL (wx32d.dll) and import library (wx32d.lib), 
    and then for each sample,
    'make -f makefile.b32 WXUSINGDLL=1'
    Please note that the samples have not been exhaustively tested
-   with this configuration.
+   with this configuration. You may also generate a sepratae library
+   and second DLL using the commands
+   'make -f makefile.b32 clean'
+   'make -f makefile.b32 DLL=1 FINAL=1'
+   which generates a DLL (wx32.dll) and import library (wx32.lib), 
+   and then for each sample,
+   'make -f makefile.b32 WXUSINGDLL=1 FINAL=1'
+
+6. To make console mode applications with wxWindows functions go
+   to the src\msw directory
+   'make -f makebase.b32 clean'
+   'make -f makebase.b32'
+   There is a sample\console directory and in this type
+   'make -f makefile.b32 wxUSE_GUI=0'
+
+Note (0): This provides the ability to produce separate wxwindows libraries
+   for different purposes, and only have to rebuild the applications
+
 
 Note (1): In Borland 4.5 and earleir, using bcc.exe you also need to define BCCDIR
 in the autoexec.bat file; like this:
@@ -468,47 +494,69 @@ NOTE: some notes specific to old Cygwin ( < 1.1.x )
       and MinGW ( < 1.0 ) are at the end of this section
       ( see OLD VERSIONS )
 
-Here are the steps required:
 
-- Retrieve and install the latest version of Cygwin, or Mingw32, as per the
-  instructions with either of these packages.
+There are two methods of compiling wxWindows, by using the
+makefiles provided or by using 'configure'.
 
-- If using Mingw32, you need some extra files to use the wxWindows
-  makefiles. You can find these files in ports/mingw32 on the
-  wxWindows ftp site or CD-ROM, as extra.zip. 
+Retrieve and install the latest version of Cygwin, or Mingw32, as per the
+instructions with either of these packages.
 
-  ftp://ftp.remstar.com/pub/wxwin/ports/mingw32/extra.zip
+If using Mingw32, you need some extra files to use the wxWindows
+makefiles. You can find these files in ports/mingw32 on the
+wxWindows ftp site or CD-ROM, as extra.zip. 
+
+  ftp://biolp22.york.ac.uk/pub/ports/mingw32/extra.zip
   
-  These should be extracted to the Mingw32 directory. If you have 
-  already downloaded rm, cp, mv from elsewhere, you won't need this.
+These should be extracted to the Mingw32 directory. If you have 
+already downloaded rm, cp, mv from elsewhere, you won't need this.
+
+Using makefiles
+===============
+
+NOTE: The makefile are for compilation under Cygwin, MSYS, or
+      command.com/cmd.exe, they won't work in other environments
+      (such as UNIX)
+
+Here are the steps required using the provided makefiles:
 
 - Set your WXWIN variable to where wxWindows is installed.
   *** IMPORTANT: For Cygwin/Mingw32, use forward slashes in the path, not
   backslashes.
 
+- Check src/makeg95.env to see that MINGW32VERSION is set to correctly
+  reflect the version of gcc that you have. Edit it as needed.
+  
 - Use the makefile.g95 files for compiling wxWindows and samples,
   e.g. to compile a debugging version of wxWindows:
   > cd c:\wx\src\msw
+  > make -f makefile.g95 clean
   > make -f makefile.g95
   > cd c:\wx\samples\minimal
+  > make -f makefile.g95 cleanall
   > make -f makefile.g95
 
   to compile with optimizations:
   > cd c:\wx\src\msw
+  > make -f makefile.g95 clean
   > make -f makefile.g95 FINAL=1
   > cd c:\wx\samples\minimal
+  > make -f makefile.g95 cleanall
   > make -f makefile.g95 FINAL=1
 
   to compile a DLL:
   > cd c:\wx\src\msw
+  > make -f makefile.g95 clean
   > make -f makefile.g95 WXMAKINGDLL=1
   > cd c:\wx\samples\minimal
+  > make -f makefile.g95 cleanall
   > make -f makefile.g95 WXUSINGDLL=1
 
   to compile the Unicode version:
   > cd c:\wx\src\msw
+  > make -f makefile.g95 clean
   > make -f makefile.g95 UNICODE=1
   > cd c:\wx\samples\minimal
+  > make -f makefile.g95 cleanall
   > make -f makefile.g95 UNICODE=1
 
   Options can be combined ( e.g.: UNICODE=1 FINAL=1 )
@@ -526,15 +574,46 @@ All targets have 'clean' targets to allow removal of object files
 and other intermediate compiler files and 'cleanall' targets to
 allow removal of all object files and library 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 wxWindows distribution,
+make a build directory, and then run configure and make.
+
+For example:
+
+  cd $WXWIN
+  mkdir build-debug
+  cd build-debug
+  ../configure --with-msw --enable-debug --enable-debug_gdb --disable-shared
+  make
+  cd samples/minimal
+  make
+  ./minimal.exe
+
+
 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
+2. libwx.a is 100 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.
+3. If you get a link error under Mingw32 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 Mingw32 headers for some early distributions.
 
    in include/windows32/defines.h, where it says:
 
@@ -546,14 +625,14 @@ Notes:
 
    (a missing bracket).
 
-4. If there's a problem with the copy or remove commands in
+5. 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
+6. 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,
+7. 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: