]> git.saurik.com Git - wxWidgets.git/blame - docs/msw/install.txt
Some doc corrections; removed wxDocument arg from wxView constructor;
[wxWidgets.git] / docs / msw / install.txt
CommitLineData
2bda0e17
KB
1
2Installing wxWindows 2.0
3------------------------
4
dbda9e86
JS
5IMPORTANT NOTE: If you experience problems installing, please
6re-read this instructions and other related files (todo.txt,
7bugs.txt etc.) carefully before mailing wxwin-users or
8the author. Preferably, try to fix the problem first and
9then send a patch to the author.
10
2bda0e17
KB
11Unarchiving
12-----------
13
14If there is a setup program, run the setup program that comes with the Windows version.
15Do not install into a path that contains spaces. The installation program should set the
16WXWIN environment variable, which will be activated when your machine is rebooted.
17
18If there is no setup program, it will come as a series of .zip
19files:
20
21wx200gen.zip Generic source code and samples (required)
22wx200msw.zip Windows-specific source code and samples (required)
23wx200doc.zip Documentation source code (not required)
24wx200hlp.zip WinHelp documentation
2bda0e17
KB
25wx200pdf.zip Acrobat PDF documentation
26wx200htm.zip HTML documentation
a367b9b3 27wx200vc.zip MS VC++ 5.0 project files
3b1de9c2 28wx200cw.zip Metrowerks CodeWarrior project files
2bda0e17
KB
29
30Unarchive the required files plus any optional documentation
dbda9e86 31files into a suitable directory such as c:\wx.
2bda0e17 32
8870c26e
JS
33Other add-on packages are available from the wxWindows Web site, such as:
34
35- glcanvas.zip. Use OpenGL in a wxWindows window.
36- ogl3.zip. Object Graphics Library: build network diagrams, CASE tools etc.
37- tex2rtf3.zip. Tex2RTF: create Windows Help, HTML, and Word RTF files from
38 the same document source.
39
dbda9e86
JS
40General installation notes
41--------------------------
42
43Alter your WXWIN environment variable to point to this directory.
44For Cygwin or Mingw32 compilation, make sure WXWIN contains only
45forward slashes.
46
47If installing from the CVS server, copy include/wx/msw/setup0.h to
48include/wx/msw/setup.h.
49
2bda0e17
KB
50Compilation
51-----------
52
dbda9e86
JS
53The following sections explain how to compile wxWindows with each supported
54compiler.
2bda0e17 55
4fabb575
JS
56Visual C++ 4.0/5.0/6.0 compilation
57----------------------------------
2bda0e17 58
a367b9b3
JS
59Using project files:
60
611. Unarchive wx200vc.zip, the VC++ 5 project makefiles.
622. Open src/wxvc.dsp, set Debug or Release configuration, and
cba2db0c
JS
63 compile. This will produce src/Debug/wxvc.lib or
64 src/Release/wxvc.lib. The project file src/wxvc_dll.dsp
65 will make a DLL version of wxWindow, which will go in
66 src/DebugDLL/wxvc.[lib,dll] and src/ReleaseDLL/wxvc.[lib,dll].
a367b9b3 673. Open a sample project file, choose a configuration, and compile.
16553659
JS
68 The project files don't use precompiled headers, to save
69 space, but you can switch PCH compiling on for greater speed.
a367b9b3
JS
70
71Using makefiles:
72
62448488 731. Make sure your WXWIN variable is set.
48d1144b 742. Change directory to wx\src\msw. Type 'nmake -f makefile.vc' to
2bda0e17 75 make the wxWindows core library.
48d1144b 763. Change directory to wx\samples and type 'nmake -f makefile.vc'
2bda0e17
KB
77 to make all the samples. You can also make them individually.
78
e2a6f233
JS
79To build the release version using makefiles, add FINAL=1 to your
80nmake invocation, both when building the library and for samples.
81
82Use the 'clean' target to clean all objects, libraries and
83executables.
84
85To build the DLL version using makefiles:
86
871. Change directory to wx\src\msw. Type 'nmake -f makefile.vc dll pch'
88 to make both a suitable DLL and import library, and to build a
89 suitable precompiled header file for compiling applications.
902. Invoke a sample makefile with 'nmake -f makefile.vc WXUSINGDLL=1'.
91
3f1af920 92Note (1): if you wish to use templates, please edit
025e88c5
JS
93include\wx\msw\setup.h and set wxUSE_DEBUG_NEW_ALWAYS to 0.
94Without this, the redefinition of 'new' will cause problems in
95the headers. Alternatively, #undef new before including template headers.
dbda9e86
JS
96You will also need to set wxUSE_IOSTREAMH to 0 if you will be
97using templates, to avoid the non-template stream files being included
98within wxWindows.
025e88c5 99
3f1af920
JS
100Note (2): libraries and applications generated with makefiles and
101project files are unlikely to be compatible, so use one method or
102the other.
103
750b78ba
JS
104Note (3): VC++ 5's optimization code seems to be broken and can
105cause problems: this can be seen when deleting an object Dialog
106Editor, in Release mode with optimizations on. If in doubt,
107switch off optimisations, although this will result in much
108larger executables. It seems possible that the library can be created with
109strong optimization, so long as the application is not strongly
110optimized. For example, in wxWindows project, set to 'Minimum
111Size'. In Dialog Editor project, set to 'Customize: Favor Small
112Code' (and no others). This will then work.
113
2bda0e17
KB
114Visual C++ 1.5 compilation
115--------------------------
116
62448488
JS
1171. Make sure your WXWIN variable is set, and uses the FAT (short
118 name) form.
1192. Change directory to wx\src\msw. Type 'nmake -f makefile.dos' to
2bda0e17 120 make the wxWindows core library.
62448488 1213. Change directory to a sample, such as wx\samples\minimal, and
f60d0f94 122 type 'nmake -f makefile.dos'.
2bda0e17 123
e2a6f233
JS
124Add FINAL=1 to your makefile invocation to build the release
125versions of the library and samples.
126
127Use the 'clean' target to clean all objects, libraries and
128executables.
129
2bda0e17
KB
130Borland C++ 4.5/5.0 compilation
131-------------------------------
132
62448488
JS
1331. Make sure your WXWIN variable is set, and uses the FAT (short
134 name) form if doing a 16-bit compile.
1352. Change directory to wx\src\msw. Type 'make -f makefile.b32' to
136 make the wxWindows core library. Ignore the warnings about
137 'XXX' not found in library.
1383. Change directory to a sample such as minimal, and type
139 'make -f makefile.b32'.
4bf78aae
JS
1404. For release versions, recompile wxWindows and samples using
141 'make -f makefile.b32 clean'
142 'make -f makefile.b32 FINAL=1'
143 for the library and samples.
62448488 144
3b1de9c2
JS
145Note: the wxWindows library and (some) samples compile in 16-bit mode
146using makefile.bcc, but at present the wxWindows resource system is switched
147off in this mode. See issues.txt for details.
2bda0e17 148
4bf78aae
JS
149Borland C++Builder compilation
150------------------------------
151
152C++Builder compilation is the same as for Borland C++ above.
3f1af920
JS
153
154Tested with C++Builder 1.0 and 3.0. Only makefiles are currently
155supplied.
4bf78aae 156
7be1f0d9
JS
157Watcom C++ 10.6 compilation
158---------------------------
159
cba2db0c
JS
1601. Make sure your WXWIN variable is set, and uses the DOS short
161 name form.
62448488 1622. Change directory to wx\src\msw. Type 'wmake -f makefile.wat' to
7be1f0d9 163 make the wxWindows core library.
62448488 1643. Change directory to wx\samples\minimal and type 'wmake -f makefile.wat'
8a2c6ef8 165 to make this sample.
7be1f0d9 166
62448488
JS
167Metrowerks CodeWarrior compilation
168----------------------------------
169
3b1de9c2
JS
1701. Downloaded and unzip wx200cw.zip.
1712. Load the make_cw.mcp project in wx\src, and compile.
1723. Load the make_cw.mcp project in wx\samples\minimal, and compile.
173 Further project files for samples will be available in due
174 course.
62448488 175
0a240683
JS
176NOTES:
177
178(a) Unfortunately CodeWarrior support is broken in this
cba2db0c 179 release. Stefan Csomor (csomor@advancedconcepts.ch) will rectify this shortly.
0a240683 180(b) You need CodeWarrior Pro 4 plus the patches to 4.1 from the
cba2db0c 181 Metrowerks Web site.
0a240683 182
3f1af920
JS
183Symantec C++ compilation
184------------------------
185
1861. Make sure your WXWIN variable is set, and uses the FAT (short
187 name) form.
1882. Edit setup.h and set wxUSE_DRAG_AND_DROP to 0.
1893. Change directory to wx\src\msw. Type 'make -f makefile.sc' to
190 make the wxWindows core library.
1914. Change directory to wx\samples\minimal and type 'make -f makefile.sc'
192 to make this sample.
193
194Note: the minimal sample doesn't link properly ('Error: no
195start address').
19632-bit compilation only (partially) supported at present, using SC++ 6.1.
197Some functionality is missing using this compiler (see makefile).
198Add -D__WIN95__ if your SC++ has Windows 95 support, and ignore
199Step (2). 16-bit compilation is left as an excercise for the user!
200
ce3ed50d
JS
201Salford C++ compilation
202-----------------------
203
2041. Make sure your WXWIN variable is set, and uses the FAT (short
205 name) form.
2062. Edit SALFORDDIR and RESOURCEDIR in src/makesl.env as per
207 notes.
2083. Change directory to wx\src\msw. Type 'mk32 -f makefile.sl all' to
209 make the wxWindows core library.
2104. Change directory to wx\samples\minimal and type 'mk32 -f makefile.sl'
211 to make this sample.
212
213Unfortunately, Salford C++ seems to have problems with its code generation for
214operations on objects, as seen in wxFrame::OnMenuHighlight
215(minimal sample) or wxWindow::SetValidator (mdi sample). Also the
216the debugging version of the library is 90MB, with samples coming in
217at 40MB :-) However, wxWindows at least makes a good test suite for
218improving the compiler.
219
8870c26e
JS
220Cygwin b19/b20/Mingw32 compilation
221----------------------------------
2bda0e17 222
8870c26e 223wxWindows 2.0 supports Cygwin (formerly GnuWin32) b19, b20, Mingw32, and Mingw32/EGCS.
2bda0e17
KB
224
225Thanks are due to Keith Garry Boyce (garp@opustel.com) and Cygnus for making
226it all possible.
227
8870c26e
JS
228From wxWindows 2.0 beta 9, both Cygwin and Mingw32 (the minimal
229distribution of Cygwin) can be used with the same makefiles.
2bda0e17
KB
230
231Here are the steps required:
232
8870c26e 233- Retrieve and install the latest beta of Cygwin, or Mingw32, as per the
2bda0e17
KB
234 instructions with either of these packages.
235
236- If using Mingw32 (including the EGCS variant), you need some
237 extra files to use the wxWindows makefiles. You can find these
238 files in ports/mingw32 on the ftp site or CD-ROM, as extra.zip.
239 These should be extracted to the Mingw32 directory.
8870c26e
JS
240 If you have already have downloaded bison, flex, make, rm, mv
241 from elsewhere, you won't need this.
242
a724d789
JS
243 IMPORTANT: also see mingw32.txt in this directory (docs/msw)
244 about a fix that has to be applied to a Mingw32 header file.
2bda0e17
KB
245
246- Modify the file wx/src/cygnus.bat (or mingw32.bat or mingegcs.bat)
247 to set up appropriate variables, if necessary mounting drives.
248 Run it before compiling.
249
8870c26e 250- For Cygwin, make sure there's a \tmp directory on your
2bda0e17
KB
251 Windows drive or bison will crash.
252
253- Edit wx/src/makeg95.env and search for MINGW32. Take note of
8870c26e 254 the comments for adjusting settings to suit Cygwin or
2bda0e17 255 Mingw32. Basically, this is just a case of adding the __MINGW32__ symbol
8870c26e 256 to OPTIONS for Mingw32, or removing it for Cygnus Cygwin.
2bda0e17 257 For Mingw32/EGCS, add both __MINGW32__ and __EGCS__.
8870c26e
JS
258 You may need to remove -loldnames from WINLIBS for Mingw32, or add it for
259 Cygwin.
2bda0e17 260
4fabb575
JS
261- Mingw32 may not support winsock.h, so comment out
262 socket-related files in src/msw/makefile.g95.
263
dbda9e86
JS
264- Set your WXWIN variable to where wxWindows is installed.
265 For Cygwin/Mingw32, use forward slashes in the path, not backslashes.
266
2bda0e17
KB
267- Use the makefile.g95 files for compiling wxWindows and samples,
268 e.g.:
269 > cd c:\wx\src\msw
270 > make -f makefile.g95
271 > cd c:\wx\samples\minimal
272 > make -f makefile.g95
273
cba2db0c
JS
274 Ignore the warning about the default entry point.
275
2bda0e17
KB
276- Use the 'strip' command to reduce executable size.
277
8870c26e 278- With Cygnus Cygwin, you can invoke gdb --nw myfile.exe to
4fabb575
JS
279 debug an executable. If there are memory leaks, they will be
280 flagged when the program quits.
2bda0e17
KB
281
282- If using GnuWin32 b18, you will need to copy windres.exe
283 from e.g. the Mingw32 distribution, to a directory in your path.
284
285All targets have 'clean' targets to allow removal of object files
286and other intermediate compiler files.
287
288Gotchas:
289
74e34480 290- libwx.a is 48 MB or more - but much less if compiled with no
bb6290e3 291 debug info (-g0) and level 4 optimization (-O4).
2bda0e17 292- install.exe doesn't have built-in decompression because lzexpand.lib
8870c26e 293 isn't available with Cygwin. However, you can use it with external
2bda0e17 294 decompression utilities.
27529614 295- Doesn't compile src/msw/ole files, so no drag and drop.
2bda0e17
KB
296
297References:
298
299 - The GNU-WIN32 site is at
300 http://www.cygnus.com/gnu-win32/
301 - Mingw32 is available at:
302 http://agnes.dida.physik.uni-essen.de/~janjaap/mingw32/index.html
303 - See also http://web.ukonline.co.uk/julian.smart/wxwin/gnuwin32.htm
304
57c208c5
JS
305TWIN32 and gcc on Linux
306-----------------------
307
308The wxWindows 2 for Windows port may be compiled using
309the TWIN32 emulator package from www.willows.com. However,
310TWIN32 is by no means finished so this should be taken as
311something to think about for the future, rather than
312a tool for writing products with.
313
314Use makefile.twn in much the same way as makefile.g95, as
315described above. Not all sample makefiles are supplied yet.
316
8870c26e
JS
317For some reason, I found I had to copy TWIN32's Windows resource
318compiler (rc) to the current working directory for it to be found.
319
320General Notes
321-------------
a0a302dc
JS
322
323- Debugging: under Windows 95, debugging output isn't output in
324 the same way that it is under NT or Windows 3.1. Set
325 wxUSE_DBWIN32 to 1 if you wish to enable code to output debugging
326 info to an external debug monitor, such as Andrew Tucker's DBWIN32.
327 You can download DBWIN32 from:
328
329 http://ftp.digital.com/pub/micro/NT/WinSite/programr/dbwin32.zip
330
2b556e9a 331 and it's also on the wxWindows CD-ROM under Packages.
62448488 332
e3065973
JS
333- If you are installing wxWindows 2 from CVS, you may find that
334 include/wx/msw/setup.h is missing. This is deliberate, to avoid
335 developers' different setup.h configurations getting confused.
336 Please copy setup0.h to setup.h before compiling.