]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/msw/install.txt
OS/2 info added
[wxWidgets.git] / docs / msw / install.txt
index 3106546ca8c9f1b63dd64418c408c05eb20a3de2..04311b7ad88afd375888c87fb940617fb607bb02 100644 (file)
@@ -4,8 +4,8 @@ Installing wxWindows 2.1
 
 This is a beta release of wxWindows 2.1 for Microsoft
 Windows 95, 98 and NT. This is not a production release,
-although a huge number of bugs found in wxWindows 2.0 have been
-fixed.
+although a huge number of bugs found in earlier versions
+of wxWindows have been fixed.
 
 IMPORTANT NOTE: If you experience problems installing, please
 re-read this instructions and other related files (release.txt,
@@ -29,9 +29,8 @@ program contains the following:
 - makefiles for most Windows compilers, plus BC++ and
   VC++ IDE files;
 - JPEG library source;
+- TIFF library source;
 - Object Graphics Library;
-- wxGLCanvas library;
-- wxTreeLayout library;
 - Tex2RTF source;
 - Dialog Editor binary.
 
@@ -48,13 +47,14 @@ wx2_x_y_vc.zip             MS VC++ 5.0 project files
 wx2_x_y_cw.zip             Metrowerks CodeWarrior project files
 wx2_x_y_bc.zip             BC++ 5 project files
 jpeg.zip                   Use this to allow wxImage to read and write JPEG files
+tiff.zip                   Use this to allow wxImage to read and write TIFF files
 
 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:
 
-- glcanvas.zip. Use OpenGL in a wxWindows window.
+- 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.
@@ -79,28 +79,35 @@ compiler.
 Visual C++ 4.0/5.0/6.0 compilation
 ----------------------------------
 
-Using project files:
+Using project files (VC++ 5 and 6 only):
 
 1. Unarchive wx2_x_y_vc.zip, the VC++ 5/6 project makefiles.
-2. Open src/wxvc.dsp, set Debug or Release configuration, and
-   compile. This will produce src/Debug/wxvc.lib or
-   src/Release/wxvc.lib.  The project file src/wxvc_dll.dsp
-   will make a DLL version of wxWindow, which will go in
-   src/DebugDLL/wxvc.[lib,dll] and src/ReleaseDLL/wxvc.[lib,dll].
-3. If you want to use JPEG in your application (such as the image
-   sample), open src/jpeg/jpeg.dsp (VC++ 5/6 only) and compile in
-   Debug and Release configurations. If you have VC++ 4,
-   use makefile.vc, but you may only have one set of object
-   files at a time in use (debug or release versions).
-4. Open a sample project file, choose a configuration using
-   Build | Set Active Configuration..., and compile.
-   The project files don't use precompiled headers, to save
+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. Change directory to wx\src\msw. Type:
+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'
 
@@ -111,13 +118,10 @@ Using makefiles:
 
    to make the wxWindows core library without debug information
    (wx\lib\wx.lib).
-3. If you wish to use JPEG in your applications, do the same
-   procedure in src\jpeg but add the 'all' target to the
-   command line.
 4. Change directory to wx\samples and type 'nmake -f makefile.vc'
    to make all the samples. You can also make them individually.
 
-Notes:
+Makefile notes:
 
   Use the 'clean' target to clean all objects, libraries and
   executables.
@@ -138,8 +142,8 @@ To build the DLL version using makefiles:
    suitable precompiled header file for compiling applications.
    The resulting libraries are called:
 
-      wx\lib\wx200.lib(dll) (debug version)
-      wx\lib\wx200.lib(dll)   (release version, using FINAL=1)
+      wx\lib\wx[version].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
@@ -154,8 +158,9 @@ 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 unlikely to be compatible, so use one method or
-the other.
+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
@@ -169,7 +174,12 @@ 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.
+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.
 
 Note (4): some crash problems can be due to inconsistent compiler
 options. If strange/weird/impossible things start to happen please
@@ -178,6 +188,11 @@ 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 2.1.14" from the Download page of the
+web site or CD-ROM.
+
 Visual C++ 1.5 compilation (16-bit)
 -----------------------------------
 
@@ -204,7 +219,7 @@ Compiling using the makefiles:
 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
+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'
@@ -230,6 +245,16 @@ 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).
+
 Compiling using the IDE files:
 
 1. Load src\bc32.ide (Release settings)
@@ -245,11 +270,16 @@ Compiling using the IDE files:
    since some (notably the wxHTML samples) look for files
    relative to the working directory.
 
-Note that to make the png, xpm, zlib and jpeg libraries (needed for
+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.
 
-The debug version of the wxWindows library is about 37 MB, and the
-release version is around 3 MB.
+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 bc_ide.txt for further instructions and details
 of how to create your own project files.
@@ -276,6 +306,22 @@ Note (1): setup.h overrides wxUSE_LIBJPEG and sets it to 0, since
 imagjpeg.cpp doesn't compile.
 Note (2): makewat.env uses the odbc32.lib supplied in wxWindows' lib\watcom
 directory. See the notes in that directory.
+Note (3): 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 (4): if Watcom can't read the precompiled header when
+building a sample, try deleting src\msw\watcom.pch and
+compiling the sample again.
+Note (5): 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
 ----------------------------------
@@ -332,7 +378,8 @@ improving the compiler.
 Cygwin b19/b20/Mingw32 compilation
 ----------------------------------
 
-wxWindows 2 supports Cygwin (formerly GnuWin32) b19, b20, Mingw32, and Mingw32/EGCS.
+wxWindows 2 supports Cygwin (formerly GnuWin32) b19, b20, Mingw32,
+and Mingw32/EGCS.
 
 Thanks are due to Keith Garry Boyce (garp@opustel.com) and Cygnus for making
 it all possible.
@@ -349,22 +396,25 @@ Here are the steps required:
   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 already have downloaded bison, flex, make, rm, mv
+  If you have already have downloaded bison, flex, make, rm, cp, mv
   from elsewhere, you won't need this.
 
   If using Mingw32 2.8.1, see also see mingw32.txt in this directory
   (docs/msw) about a fix that has to be applied to a Mingw32 header file.
 
-  If using Mingw32 2.95 with wxWindows 2.1 or above, and wish to use OLE, you
-  should hand-patch in Mingw32-gcc295.patches (located in the top-level of the
-  wxWindows 2 installation).
+  If using Mingw32 2.95 and below with wxWindows 2.1 or above, you
+  must hand-patch in 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.
+  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 0 (you have Cygwin32).
@@ -401,38 +451,43 @@ and other intermediate compiler files.
 
 Notes:
 
-- See also the Cygwin/Mingw32 on the web site or CD-ROM for
-  further information about using wxWindows with these compilers.
+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.
 
-- libwx.a is 48 MB or more - but much less if compiled with no
-  debug info (-g0) and level 4 optimization (-O4).
+   in include/windows32/defines.h, where it says:
 
-- install.exe doesn't have built-in decompression because lzexpand.lib
-  isn't available with Cygwin. However, you can use it with external
-  decompression utilities.
+   #define LPSTR_TEXTCALLBACKA (LPSTR)-1L)
 
-- There's a bug in Mingw32 headers for some early distributions.
+   it should say:
 
-  in include/windows32/defines.h, where it says:
+   #define LPSTR_TEXTCALLBACKA ((LPSTR)-1L)
 
-  #define LPSTR_TEXTCALLBACKA (LPSTR)-1L)
+   (a missing bracket).
 
-  it should say:
+4. If there's a problem with the copy command in
+   src/msw/makefile.g95, you may need to change the COPY and
+   COPYSEP variables in makeg95.env.
 
-  #define LPSTR_TEXTCALLBACKA ((LPSTR)-1L)
+5. If there's a problem executing the windres program, try
+   commenting out RCPREPROCESSOR in makeg95.env.
 
-  (a missing bracket).
+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:
 
-- If there's a problem with the copy command in
-  src/msw/makefile.g95, you may need to change the relevant
-  section to the following:
+     dlltool -k -d opengl.def -llibopengl.a
 
-  COPY = command /c copy
-  $(COMMDIR)/y_tab.c:     $(COMMDIR)/dosyacc.c
-      $(COPY) ..\\common\\dosyacc.c ..\\common\\y_tab.c
+   for the SGI DLLs, or
 
-  $(COMMDIR)/lex_yy.c:    $(COMMDIR)/doslex.c
-      $(COPY) ..\\common\\doslex.c ..\\common\\lex_yy.c
+     dlltool -k -d opengl32.def -llibopengl32.a
+
+   and similarly for glu[32].def.
 
 References:
 
@@ -474,3 +529,4 @@ General Notes
   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.
+