]> git.saurik.com Git - wxWidgets.git/blob - docs/os2/install.txt
added extra parentheses to wxDynamicCast() to allow using it like wxDynamicCast(foo...
[wxWidgets.git] / docs / os2 / install.txt
1 Installing wxWindows 2.3.3
2 --------------------------
3
4 This is wxWindows 2.3.3 for IBM OS/2 Warp3 and Warp4. This is an unstable
5 development release and OS/2 is considered to be in beta.
6
7 IMPORTANT NOTE: If you experience problems installing, please
8 re-read this instructions and other related files (changes.txt,
9 readme.txt, notes on the Web site) carefully before mailing
10 wx-users or the author. Preferably, try to fix the problem first and
11 then send a patch to the author. Please report bugs using the
12 bug report form on the wxWindows web site.
13
14 Unarchiving
15 -----------
16
17 At this time there is no comprehensive setup.exe type installation program.
18 wxWindows for OS/2 requires you download various .zip files and unpack them
19 to your desired location on your system. Pick a location say,
20 C:\wx\wxwindows, copy the .zip files to there and unzip them ensuring you
21 unzip the subdirectories as well. You will need:
22
23 - All common, generic and OS2-specific wxWindows source;
24 - samples;
25 - documentation in HTML Help format;
26 - makefiles for VisualAge V3.0 (possibly for EMX and Watcom C++);
27 - HTML library source;
28 - JPEG library source;
29 - TIFF library source;
30 - PNG library source;
31 - ZLIB library source;
32
33 Other add-on packages are available from the wxWindows Web site, such as:
34
35 - mmedia.zip. Audio, CD, video access for Windows and Linux.
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
40 General installation notes
41 --------------------------
42
43 After unzipping everything your directory tree should look something like
44 this:
45
46 x:\wx\wxwindows\docs (your HTML reference manual)
47 x:\wx\wxwindows\include\wx
48 x:\wx\wxwindows\include\wx\generic
49 x:\wx\wxwindows\include\wx\html
50 x:\wx\wxwindows\include\wx\os2
51 x:\wx\wxwindows\samples\.... (all the sample directories)
52 x:\wx\wxwindows\src
53 x:\wx\wxwindows\src\common
54 x:\wx\wxwindows\src\generic
55 x:\wx\wxwindows\src\html
56 x:\wx\wxwindows\src\jpeg
57 x:\wx\wxwindows\src\os2
58 x:\wx\wxwindows\src\png
59 x:\wx\wxwindows\src\tiff
60 x:\wx\wxwindows\src\zlib
61
62 You will need to ensure you have a \lib directory as well,
63 x:\wx\wxwindows\lib.
64
65 Set a WXWIN environment variable in your config.sys,
66 SET WXWIN=X:\WX\WXWINDOWS;
67
68 Compilation
69 -----------
70
71 For now, only VisualAge V3.0 FP 8 is supported. However, the library has
72 been successfully compiled with EMX and Watcom C++. As those build
73 environments get a bit more "formalized", I will add them here.
74
75 In addition to VisualAge V3.0 Fixpack 8 you will need the following inorder
76 to successfully build and use wxWindows for OS/2:
77
78 1. IBM OS/2 Toolkit Version 4.5 or later
79 2. IBM TCPIP V4.0 or later
80 3. You will need the IBMLAN Lan Requester service and UPM if you wish to use
81 network based components of the library (generally a standard part of any
82 Warp Connect 3.0 or Warp 4.0 installation.
83 4. I strongly suggest that you have the latest IBM fixpacks installed for
84 all your components.
85
86 Go to the \src directory and open the file, makeva.env (there should be a
87 .env for each supported compiler when they are fully supported), for edit.
88 This is where the "make" environment for wxOS2 is set. Locate UMPLIB, NETLIB,
89 and TCPIP environment variables about 20 lines down. Set these to match
90 your system.
91
92 There are number of possible outputs you can produce. There is a static
93 lib and a dynamically linked lib, and both can be built in debug or release
94 mode. Since wxOS2 is a beta and a rough one at that, I suggest, for now,
95 you stick to the debug builds. The resultant linkable binaries will be
96 output to the \lib directory as will the .dll files. The statically linked
97 lib will be named wx.lib. Each of the third party libs will be there as well,
98 including png.lib, jpeg.lib, tiff.lib, and zlib.lib. For DLL builds the
99 import libs will have the same name, only with a 'd' appended. Thus the
100 import library for the main lib in a dll build is wxd.lib.
101
102 Object modules will be output into paths dictated by the build mode. For
103 example, for debug static the outputs will be in DebugOS2, for DLLs in
104 DebugOS2DLL.
105
106 For your first build, you can directly build the library. For subsequent
107 builds you will want to "clean" the output paths. To build the static library
108 go to \src and execute nmake all -f makefile.va. To clean out the outputs
109 execute nmake clean -f makefile.va.
110
111 To build the wx.dll execut nmake all -f makefile.va WXMAKINGDLL=1. To clean
112 the outputs execute namek clean -f makefile.va WXMAKINGDLL=1. For
113 VisualAge 3.0 we use the module definition file method.
114
115 If, for some reason you encounter linking problems with your dll build you may
116 need to rebuild the module definition file, wx23.def, found in \src\os2. To
117 do this you need to have a static version built. Go to the \lib directoy and
118 execute CPPFILT /B /P wx.lib>temp.def. Copy this file to \src\os2. Delete
119 the temp.def from your \lib directory.
120
121 I find the following to be the easiest to reconstruct the .def file. Open
122 both the wx23.def and the temp.def file. Copy the header of the wx23.def to
123 the clipboard and paste it into the top of the temp.def file. If you have
124 a valid SQL database client with its SDK on your system you can skip the next
125 step. wxWindows included some ODBC and SQL modules. They expect the standard
126 sql.h and such to available. If you do not have a database client with its
127 SDK (such as DB/2) then for the .dll build you need to delete the exports for
128 the following three modules from your temp.def file, db.cpp, dbgrid.cpp and
129 dbtable.cpp. save you changes to temp.def. Delete wx23.def and rename your
130 temp.def to wx23.def and you are ready to go.
131
132 I hope to clean up the .dll builds at some point before the the library is
133 a full fledged production caliber product. Fortunately EMX and Watcom can use
134 the import and export pragmas successfully negating the need for manual .def
135 files. VA 3.0, unfortunately in C++ does not properly export the mangled
136 names so we are stuck with the CPPFILT .def file method of .dll builds for
137 now.
138
139 When building an application that uses the wx.dll you need to build it using
140 the WXUSINGDLL=1 macro. For example to build the minimal sample you would
141 go to \samples\minimal and execute nmake all -f makefile.va WXUSINGDLL=1.
142
143 I strongly suggest when developing apps using wxWindows for OS/2 under old
144 VisualAge 3.0, that you use the dynamically linked library. The library is
145 very large and even the most trivial statically linked .exe can be very
146 large and take a long time to link. The release builds are much smaller,
147 however. Fortunately, EMX seems to build much smaller static executables.