]> git.saurik.com Git - wxWidgets.git/blame - docs/msw/install.txt
1. fixed small bug with toolbar size updates
[wxWidgets.git] / docs / msw / install.txt
CommitLineData
2bda0e17 1
0544bc0a
RR
2Installing wxWindows 2.1
3------------------------
4
154f22b3
JS
5This is a beta release of wxWindows 2.1 for Microsoft
6Windows 95, 98 and NT. This is not a production release,
0544bc0a
RR
7although a huge number of bugs found in wxWindows 2.0 have been
8fixed.
9
dbda9e86 10IMPORTANT NOTE: If you experience problems installing, please
154f22b3
JS
11re-read this instructions and other related files (release.txt,
12todo.txt, bugs.txt etc.) carefully before mailing wxwin-users or
dbda9e86 13the author. Preferably, try to fix the problem first and
154f22b3
JS
14then send a patch to the author. Please report bugs using the
15bug report form on the wxWindows web site.
dbda9e86 16
2bda0e17
KB
17Unarchiving
18-----------
19
154f22b3 20A setup program is provided (setup.exe) to automatically copy files to a
01dba85a
JS
21directory on your hard disk. Do not install into a path that contains spaces.
22The installation program should set the WXWIN environment variable, which
23will be activated when your machine is rebooted. The setup
24program contains the following:
25
26- All common, generic and MSW-specific wxWindows source;
27- samples;
28- documentation in Windows Help format;
29- makefiles for most Windows compilers, plus BC++ and
30 VC++ IDE files;
31- JPEG library source;
32- Object Graphics Library;
33- wxGLCanvas library;
34- wxTreeLayout library;
35- Tex2RTF source;
36- Dialog Editor binary.
37
38Alternatively, you may unarchive the set of .zip files by hand,
39where x is the minor version number and y is the release number:
40
41wx2_x_y_gen.zip Generic source code and samples (required)
42wx2_x_y_msw.zip Windows-specific source code and samples (required)
43wx2_x_y_doc.zip Documentation source code (not required)
44wx2_x_y_hlp.zip WinHelp documentation
45wx2_x_y_pdf.zip Acrobat PDF documentation
46wx2_x_y_htm.zip HTML documentation
47wx2_x_y_vc.zip MS VC++ 5.0 project files
48wx2_x_y_cw.zip Metrowerks CodeWarrior project files
49wx2_x_y_bc.zip BC++ 5 project files
50jpeg.zip Use this to allow wxImage to read and write JPEG files
d1e418ea 51tiff.zip Use this to allow wxImage to read and write TIFF files
2bda0e17
KB
52
53Unarchive the required files plus any optional documentation
dbda9e86 54files into a suitable directory such as c:\wx.
2bda0e17 55
8870c26e
JS
56Other add-on packages are available from the wxWindows Web site, such as:
57
58- glcanvas.zip. Use OpenGL in a wxWindows window.
59- ogl3.zip. Object Graphics Library: build network diagrams, CASE tools etc.
60- tex2rtf3.zip. Tex2RTF: create Windows Help, HTML, and Word RTF files from
61 the same document source.
62
dbda9e86
JS
63General installation notes
64--------------------------
65
66Alter your WXWIN environment variable to point to this directory.
67For Cygwin or Mingw32 compilation, make sure WXWIN contains only
68forward slashes.
69
70If installing from the CVS server, copy include/wx/msw/setup0.h to
f74ececa
VZ
71include/wx/msw/setup.h and edit the resulting file to choose the featrues you
72would like to compile wxWindows with[out].
dbda9e86 73
2bda0e17
KB
74Compilation
75-----------
76
dbda9e86
JS
77The following sections explain how to compile wxWindows with each supported
78compiler.
2bda0e17 79
4fabb575
JS
80Visual C++ 4.0/5.0/6.0 compilation
81----------------------------------
2bda0e17 82
a367b9b3
JS
83Using project files:
84
01dba85a 851. Unarchive wx2_x_y_vc.zip, the VC++ 5/6 project makefiles.
a367b9b3 862. Open src/wxvc.dsp, set Debug or Release configuration, and
cba2db0c
JS
87 compile. This will produce src/Debug/wxvc.lib or
88 src/Release/wxvc.lib. The project file src/wxvc_dll.dsp
89 will make a DLL version of wxWindow, which will go in
90 src/DebugDLL/wxvc.[lib,dll] and src/ReleaseDLL/wxvc.[lib,dll].
85f3749f 913. If you want to use JPEG in your application (such as the image
01dba85a
JS
92 sample), open src/jpeg/jpeg.dsp (VC++ 5/6 only) and compile in
93 Debug and Release configurations. If you have VC++ 4,
94 use makefile.vc, but you may only have one set of object
95 files at a time in use (debug or release versions).
1a3aa77f
JS
964. Open a sample project file, choose a configuration using
97 Build | Set Active Configuration..., and compile.
16553659
JS
98 The project files don't use precompiled headers, to save
99 space, but you can switch PCH compiling on for greater speed.
a367b9b3
JS
100
101Using makefiles:
102
62448488 1031. Make sure your WXWIN variable is set.
d1e418ea
JS
1042. If you do NOT have the TIFF or JPEG source code, please remove
105 the tiff and jpeg targets from the 'all' target in
106 src\msw\makefile.vc. Also ensure the settings in
107 include\wx\msw\setup.h specify not to use JPEG or TIFF.
1083. Change directory to wx\src\msw. Type:
ca5c8b2d
JS
109
110 'nmake -f makefile.vc'
111
112 to make the wxWindows core library with debug information
113 (wx\lib\wx_d.lib), or
114
115 'nmake -f makefile.vc FINAL=1'
116
117 to make the wxWindows core library without debug information
118 (wx\lib\wx.lib).
85f3749f 1194. Change directory to wx\samples and type 'nmake -f makefile.vc'
2bda0e17
KB
120 to make all the samples. You can also make them individually.
121
ca5c8b2d 122Notes:
e2a6f233 123
ca5c8b2d
JS
124 Use the 'clean' target to clean all objects, libraries and
125 executables.
126
127 To build the release version using makefiles, add FINAL=1 to your
128 nmake invocation, both when building the library and for samples.
129
130 Note that the wxWindows core library allows you to have debug
131 and release libraries available simultaneously, by compiling the
132 objects in different subdirectories, whereas samples must be
133 cleaned and re-made to build a different configuration. This
134 may be changed in later versions of wxWindows.
e2a6f233
JS
135
136To build the DLL version using makefiles:
137
1381. Change directory to wx\src\msw. Type 'nmake -f makefile.vc dll pch'
139 to make both a suitable DLL and import library, and to build a
140 suitable precompiled header file for compiling applications.
ca5c8b2d
JS
141 The resulting libraries are called:
142
01dba85a 143 wx\lib\wx200.lib(dll) (debug version)
ca5c8b2d
JS
144 wx\lib\wx200.lib(dll) (release version, using FINAL=1)
145
1462. Invoke a sample makefile with 'nmake -f makefile.vc WXUSINGDLL=1'
147 (or edit src\makeprog.vc to set WXUSINGDLL to 1 for all
148 applications).
e2a6f233 149
3f1af920 150Note (1): if you wish to use templates, please edit
025e88c5
JS
151include\wx\msw\setup.h and set wxUSE_DEBUG_NEW_ALWAYS to 0.
152Without this, the redefinition of 'new' will cause problems in
153the headers. Alternatively, #undef new before including template headers.
dbda9e86
JS
154You will also need to set wxUSE_IOSTREAMH to 0 if you will be
155using templates, to avoid the non-template stream files being included
156within wxWindows.
025e88c5 157
3f1af920
JS
158Note (2): libraries and applications generated with makefiles and
159project files are unlikely to be compatible, so use one method or
160the other.
161
750b78ba 162Note (3): VC++ 5's optimization code seems to be broken and can
ad556aa9
JS
163cause both compile and run-time problems: this can be seen when
164deleting an object Dialog Editor, in Release mode with optimizations
165on. If in doubt, switch off optimisations, although this will result in much
750b78ba
JS
166larger executables. It seems possible that the library can be created with
167strong optimization, so long as the application is not strongly
168optimized. For example, in wxWindows project, set to 'Minimum
169Size'. In Dialog Editor project, set to 'Customize: Favor Small
170Code' (and no others). This will then work.
171
6474416b
JS
172Similarly, in VC++ 4, optimization can cause internal compiler
173errors, so edit src\makevc.env and change /O1 to /Od before
174trying build a release version of the library.
175
ad813b00
JS
176Note (4): some crash problems can be due to inconsistent compiler
177options. If strange/weird/impossible things start to happen please
178check (dumping IDE project file as makefile and doing text comparison
179if necessary) that the project settings, especially the list of defined
180symbols, struct packing, etc. are exactly the same for all items in
181the project. After this, delete everything (including PCH) and recompile.
182
8fb3a512
JS
183Visual C++ 1.5 compilation (16-bit)
184-----------------------------------
2bda0e17 185
62448488
JS
1861. Make sure your WXWIN variable is set, and uses the FAT (short
187 name) form.
1882. Change directory to wx\src\msw. Type 'nmake -f makefile.dos' to
2bda0e17 189 make the wxWindows core library.
62448488 1903. Change directory to a sample, such as wx\samples\minimal, and
f60d0f94 191 type 'nmake -f makefile.dos'.
2bda0e17 192
e2a6f233
JS
193Add FINAL=1 to your makefile invocation to build the release
194versions of the library and samples.
195
196Use the 'clean' target to clean all objects, libraries and
197executables.
198
2bda0e17
KB
199Borland C++ 4.5/5.0 compilation
200-------------------------------
201
ca5c8b2d
JS
202Compiling using the makefiles:
203
62448488
JS
2041. Make sure your WXWIN variable is set, and uses the FAT (short
205 name) form if doing a 16-bit compile.
2062. Change directory to wx\src\msw. Type 'make -f makefile.b32' to
207 make the wxWindows core library. Ignore the warnings about
208 'XXX' not found in library.
2093. Change directory to a sample such as minimal, and type
210 'make -f makefile.b32'.
4bf78aae
JS
2114. For release versions, recompile wxWindows and samples using
212 'make -f makefile.b32 clean'
213 'make -f makefile.b32 FINAL=1'
214 for the library and samples.
62448488 215
1a7f3062 216Note (1): the wxWindows library and (some) samples compile in 16-bit mode
3b1de9c2
JS
217using makefile.bcc, but at present the wxWindows resource system is switched
218off in this mode. See issues.txt for details.
2bda0e17 219
8fb3a512
JS
220Note (2): unfortunately most samples won't link in 16-bit mode,
221because the automatic data segment exceeds 64K. The minimal
222sample links and runs, however.
223
224Note (3): the wxWindows makefiles assume byte structure alignment. Please
1a7f3062
JS
225make sure that your own project or makefile settings use the
226same alignment, or you could experience mysterious crashes. To
227change the alignment, add a suitable option to the $(CFG) target code
228in src/msw/makefile.b32.
229
154f22b3
JS
230Note (4): if you get undefined _SQL... symbols at link time,
231either install odbc32.lib from the BC++ CD-ROM into your BC++ lib
232directory, or set wxUSE_ODBC to 0 in include\wx\msw\setup.h and
233recompile wxWindows. The same applies if compiling using the IDE.
234
ca5c8b2d
JS
235Compiling using the IDE files:
236
01dba85a 2371. Load src\bc32.ide (Release settings)
ca5c8b2d
JS
2382. Go to Options|Project... and specify the correct BC++ include and lib path for
239 your file structure.
2403. Press F9 to compile the wxWindows library.
33b64e6f 2414. Load samples\bc32.ide.
ca5c8b2d
JS
2425. Go to Options|Project... and specify the correct BC++ include and lib path for
243 your file structure.
01dba85a
JS
2446. Press F9 to compile the samples (build each node separately if
245 you prefer, by right clicking and choose Build Node).
2467. Run each sample: you may need to run from each sample's directory
247 since some (notably the wxHTML samples) look for files
248 relative to the working directory.
ca5c8b2d 249
01dba85a
JS
250Note that to make the png, xpm, zlib and jpeg libraries (needed for
251some samples) you need to compile them with bc32.ide.
33b64e6f
JS
252
253The debug version of the wxWindows library is about 37 MB, and the
254release version is around 3 MB.
255
ca5c8b2d
JS
256See also the file bc_ide.txt for further instructions and details
257of how to create your own project files.
258
4bf78aae
JS
259Borland C++Builder compilation
260------------------------------
261
262C++Builder compilation is the same as for Borland C++ above.
3f1af920
JS
263
264Tested with C++Builder 1.0 and 3.0. Only makefiles are currently
265supplied.
4bf78aae 266
ace03f87 267Watcom C++ 10.6/11 compilation
7be1f0d9
JS
268---------------------------
269
cba2db0c
JS
2701. Make sure your WXWIN variable is set, and uses the DOS short
271 name form.
62448488 2722. Change directory to wx\src\msw. Type 'wmake -f makefile.wat' to
7be1f0d9 273 make the wxWindows core library.
62448488 2743. Change directory to wx\samples\minimal and type 'wmake -f makefile.wat'
ace03f87
JS
275 to make this sample. Repeat for other samples of interest.
276
277Note (1): setup.h overrides wxUSE_LIBJPEG and sets it to 0, since
278imagjpeg.cpp doesn't compile.
279Note (2): makewat.env uses the odbc32.lib supplied in wxWindows' lib\watcom
280directory. See the notes in that directory.
cff4a45c
JS
281Note (3): makefile compilation seems broken (28/12/99) with a
282GPF in the linker. Too many object files? Could try switching
283some options off in setup.h.
7be1f0d9 284
62448488
JS
285Metrowerks CodeWarrior compilation
286----------------------------------
287
01dba85a 2881. Downloaded and unzip wx2_x_y_cw.zip.
3b1de9c2
JS
2892. Load the make_cw.mcp project in wx\src, and compile.
2903. Load the make_cw.mcp project in wx\samples\minimal, and compile.
291 Further project files for samples will be available in due
292 course.
62448488 293
8fb3a512 294Note (1): you need CodeWarrior Pro 4 plus the patches to 4.1 from the
33b64e6f 295Metrowerks Web site.
0a240683 296
8fb3a512
JS
297Note (2): unfortunately these files are not yet up-to-date for the
298current release.
299
3f1af920
JS
300Symantec C++ compilation
301------------------------
302
3031. Make sure your WXWIN variable is set, and uses the FAT (short
304 name) form.
3052. Edit setup.h and set wxUSE_DRAG_AND_DROP to 0.
3063. Change directory to wx\src\msw. Type 'make -f makefile.sc' to
307 make the wxWindows core library.
3084. Change directory to wx\samples\minimal and type 'make -f makefile.sc'
309 to make this sample.
310
311Note: the minimal sample doesn't link properly ('Error: no
312start address').
31332-bit compilation only (partially) supported at present, using SC++ 6.1.
314Some functionality is missing using this compiler (see makefile).
315Add -D__WIN95__ if your SC++ has Windows 95 support, and ignore
316Step (2). 16-bit compilation is left as an excercise for the user!
317
ce3ed50d
JS
318Salford C++ compilation
319-----------------------
320
3211. Make sure your WXWIN variable is set, and uses the FAT (short
322 name) form.
3232. Edit SALFORDDIR and RESOURCEDIR in src/makesl.env as per
324 notes.
3253. Change directory to wx\src\msw. Type 'mk32 -f makefile.sl all' to
326 make the wxWindows core library.
3274. Change directory to wx\samples\minimal and type 'mk32 -f makefile.sl'
328 to make this sample.
329
330Unfortunately, Salford C++ seems to have problems with its code generation for
331operations on objects, as seen in wxFrame::OnMenuHighlight
332(minimal sample) or wxWindow::SetValidator (mdi sample). Also the
333the debugging version of the library is 90MB, with samples coming in
334at 40MB :-) However, wxWindows at least makes a good test suite for
335improving the compiler.
336
8870c26e
JS
337Cygwin b19/b20/Mingw32 compilation
338----------------------------------
2bda0e17 339
4c0a2c5c 340wxWindows 2 supports Cygwin (formerly GnuWin32) b19, b20, Mingw32, and Mingw32/EGCS.
2bda0e17
KB
341
342Thanks are due to Keith Garry Boyce (garp@opustel.com) and Cygnus for making
343it all possible.
344
8870c26e
JS
345From wxWindows 2.0 beta 9, both Cygwin and Mingw32 (the minimal
346distribution of Cygwin) can be used with the same makefiles.
2bda0e17
KB
347
348Here are the steps required:
349
8870c26e 350- Retrieve and install the latest beta of Cygwin, or Mingw32, as per the
2bda0e17
KB
351 instructions with either of these packages.
352
353- If using Mingw32 (including the EGCS variant), you need some
354 extra files to use the wxWindows makefiles. You can find these
355 files in ports/mingw32 on the ftp site or CD-ROM, as extra.zip.
356 These should be extracted to the Mingw32 directory.
8870c26e
JS
357 If you have already have downloaded bison, flex, make, rm, mv
358 from elsewhere, you won't need this.
359
4c0a2c5c
JS
360 If using Mingw32 2.8.1, see also see mingw32.txt in this directory
361 (docs/msw) about a fix that has to be applied to a Mingw32 header file.
362
363 If using Mingw32 2.95 with wxWindows 2.1 or above, and wish to use OLE, you
364 should hand-patch in Mingw32-gcc295.patches (located in the top-level of the
365 wxWindows 2 installation).
2bda0e17
KB
366
367- Modify the file wx/src/cygnus.bat (or mingw32.bat or mingegcs.bat)
368 to set up appropriate variables, if necessary mounting drives.
369 Run it before compiling.
370
8870c26e 371- For Cygwin, make sure there's a \tmp directory on your
2bda0e17
KB
372 Windows drive or bison will crash.
373
4c0a2c5c
JS
374- Edit wx/src/makeg95.env and set the MINGW32 variable at the top of
375 the file to either 1 (you have Mingw32) or 0 (you have Cygwin32).
1a7f3062
JS
376 If using MINGW32, also set the MINGW32VERSION variable
377 appropriately.
2bda0e17 378
4c0a2c5c
JS
379- Mingw32 may not support winsock.h, so if you have a problem
380 here, comment out socket-related files in src/msw/makefile.g95.
4fabb575 381
dbda9e86 382- Set your WXWIN variable to where wxWindows is installed.
25889d3c
JS
383 *** IMPORTANT: For Cygwin/Mingw32, use forward slashes in the path, not
384 backslashes.
dbda9e86 385
2bda0e17
KB
386- Use the makefile.g95 files for compiling wxWindows and samples,
387 e.g.:
388 > cd c:\wx\src\msw
389 > make -f makefile.g95
390 > cd c:\wx\samples\minimal
391 > make -f makefile.g95
392
cba2db0c
JS
393 Ignore the warning about the default entry point.
394
2bda0e17
KB
395- Use the 'strip' command to reduce executable size.
396
8870c26e 397- With Cygnus Cygwin, you can invoke gdb --nw myfile.exe to
4fabb575
JS
398 debug an executable. If there are memory leaks, they will be
399 flagged when the program quits.
2bda0e17
KB
400
401- If using GnuWin32 b18, you will need to copy windres.exe
402 from e.g. the Mingw32 distribution, to a directory in your path.
403
404All targets have 'clean' targets to allow removal of object files
405and other intermediate compiler files.
406
7c5dc04f 407Notes:
2bda0e17 408
154f22b3
JS
409- See also the Cygwin/Mingw32 on the web site or CD-ROM for
410 further information about using wxWindows with these compilers.
411
74e34480 412- libwx.a is 48 MB or more - but much less if compiled with no
bb6290e3 413 debug info (-g0) and level 4 optimization (-O4).
7c5dc04f 414
2bda0e17 415- install.exe doesn't have built-in decompression because lzexpand.lib
8870c26e 416 isn't available with Cygwin. However, you can use it with external
2bda0e17 417 decompression utilities.
7c5dc04f 418
ad556aa9 419- There's a bug in Mingw32 headers for some early distributions.
7c5dc04f
JS
420
421 in include/windows32/defines.h, where it says:
422
423 #define LPSTR_TEXTCALLBACKA (LPSTR)-1L)
424
425 it should say:
426
427 #define LPSTR_TEXTCALLBACKA ((LPSTR)-1L)
428
429 (a missing bracket).
430
51babd09
JS
431- If there's a problem with the copy command in
432 src/msw/makefile.g95, you may need to change the relevant
433 section to the following:
434
435 COPY = command /c copy
436 $(COMMDIR)/y_tab.c: $(COMMDIR)/dosyacc.c
437 $(COPY) ..\\common\\dosyacc.c ..\\common\\y_tab.c
438
439 $(COMMDIR)/lex_yy.c: $(COMMDIR)/doslex.c
440 $(COPY) ..\\common\\doslex.c ..\\common\\lex_yy.c
441
2bda0e17
KB
442References:
443
444 - The GNU-WIN32 site is at
445 http://www.cygnus.com/gnu-win32/
446 - Mingw32 is available at:
b4fe5125 447 ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/gcc-2.95/
2bda0e17
KB
448 - See also http://web.ukonline.co.uk/julian.smart/wxwin/gnuwin32.htm
449
57c208c5
JS
450TWIN32 and gcc on Linux
451-----------------------
452
453The wxWindows 2 for Windows port may be compiled using
454the TWIN32 emulator package from www.willows.com. However,
455TWIN32 is by no means finished so this should be taken as
456something to think about for the future, rather than
457a tool for writing products with.
458
459Use makefile.twn in much the same way as makefile.g95, as
460described above. Not all sample makefiles are supplied yet.
461
8870c26e
JS
462For some reason, I found I had to copy TWIN32's Windows resource
463compiler (rc) to the current working directory for it to be found.
464
465General Notes
466-------------
a0a302dc
JS
467
468- Debugging: under Windows 95, debugging output isn't output in
469 the same way that it is under NT or Windows 3.1. Set
470 wxUSE_DBWIN32 to 1 if you wish to enable code to output debugging
471 info to an external debug monitor, such as Andrew Tucker's DBWIN32.
472 You can download DBWIN32 from:
473
474 http://ftp.digital.com/pub/micro/NT/WinSite/programr/dbwin32.zip
475
2b556e9a 476 and it's also on the wxWindows CD-ROM under Packages.
62448488 477
e3065973
JS
478- If you are installing wxWindows 2 from CVS, you may find that
479 include/wx/msw/setup.h is missing. This is deliberate, to avoid
480 developers' different setup.h configurations getting confused.
481 Please copy setup0.h to setup.h before compiling.