]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/msw/install.txt
Windows and Unicode compilation fixes
[wxWidgets.git] / docs / msw / install.txt
index b7a7c3e32fea34a106b0193b7e72e345a2ee52b8..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:
@@ -364,7 +390,7 @@ Metrowerks CodeWarrior compilation
 ----------------------------------
 
 1. CodeWarrior Pro7 project files in XML format are already 
-   included in wxMSW-x.y.z.zip and the setup version.
+   included in wxMSW-2.3.3.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 CVS version) to make sure the settings reflect 
    what you want.  If you aren't sure, leave it alone and go with the 
@@ -386,7 +412,7 @@ Metrowerks CodeWarrior compilation
       (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 CVS version) to lib\cw7mswd\include\wx\setup.h
-5. Import srcwxWindows.xml to create the project file wxWindows.mcp.
+5. Import src\wxWindowsW7.xml to create the project file wxWindowsW7.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.
@@ -404,9 +430,16 @@ Metrowerks CodeWarrior compilation
    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, for the minimal, controls, dialogs, dnd, 
-   and docview samples.  You can use these project files as templates for 
-   the other samples and for your own projects.
+   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 "newgrid" sample, 
+         just copy the project file for the "minimal" sample, minimalW7.mcp 
+         (made by importing minimalW7.xml into CodeWarrior), into the 
+         sample/newgrid directory, calling it newgridW7.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....
 
 
 Symantec C++ compilation
@@ -461,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 )
@@ -519,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:
 
@@ -539,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: