source: trunk/README.OS2@ 441

Last change on this file since 441 was 429, checked in by Dmitry A. Kuminov, 15 years ago

README.OS2: Added ENVIRONMENT variables section.

File size: 14.6 KB
Line 
1This is Beta 5 of Qt version 4.5.1 for OS/2 and eCS.
2
3This document contains a brief information on the OS/2 version of the Qt
4library. Please visit the project page at
5
6 http://svn.netlabs.org/qt4/wiki
7
8to get more information and the latest news and also to report bugs.
9
10To get a brief list of OS/2-specific changes from release to release
11please see the CHANGES.OS2 file included in this distribution.
12
13
14
15REQUIREMENTS
16
17In order to compile the Qt library and Qt-based applications, you will need
18the following tools:
19
20 - One of the OS/2 Warp 4, OS/2 Warp 4.5 or eComStation operating systems.
21
22 - InnoTek GCC compiler version 3.3.5 CSD3 or above (not tested).
23 You can download a copy of the compiler using the following link:
24
25 ftp://ftp.netlabs.org/pub/gcc/GCC-3.3.5-csd3.zip
26
27 - Patched OpenWatcom linker which you can download from here:
28
29 ftp://ftp.netlabs.org/pub/gcc/wl-hll-r1.zip
30
31 Note that if you use IBM ILINK (no matter what version), you will
32 not be able to build the debug version of the library due to
33 bugs/limitations of ILINK.
34
35 - GNU Make 3.81beta1 or above (not tested) available at:
36
37 http://unix.os2site.com/pub/binary/make/make-3_81beta1-bin-static.zip
38
39 - LxLite 1.3.3 or above (not tested) if you want Qt DLLs and application
40 executables to be compressed (to save hard disk space and load time). If
41 you have a recent eComStation installation (e.g. 2.0 rc6) you will already
42 have LxLite installed. Otherwise, you may take it from here:
43
44 http://www.os2site.com/sw/util/archiver/lxlt133.zip
45
46
47
48SETTING UP THE ENVIRONMENT
49
50After unpacking the GCC archive, you will have to set up the compiler
51environment by invoking gccenv.cmd from the bin subdirectory with the correct
52arguments (type gccenv.cmd -? for help). For the OpenWatcom linker, specify
53WLINK as the second argument.
54
55You will also need to perform the following steps:
56
57 - Make sure the selected linker, the make utility and LxLite executable are
58 in PATH.
59
60 - Make sure CMD.EXE is your command line processor (the generated makefiles
61 will rely on its 'copy', 'if' and other commands). If you have a Unix shell
62 (SH.EXE) in your environment, you may need to force GNU make to use CMD.EXE
63 by doing 'set MAKESHELL=C:\OS2\CMD.EXE' where C: is your boot drive.
64
65 - set LIBRARY_PATH=C:\OS2\DLL;C:\MPTN\DLL where C: is your boot drive.
66
67 - Make sure that there are no traces of any other Watcom or OpenWatcom
68 installation in the environment where you build Qt as it will most likely
69 interfere with the patched OpenWatcom linker we use. This basically means
70 removing all *WATCOM* environment variables and removing references to those
71 Watcom installations from PATH.
72
73Note that the QTDIR environment variable used by previous Qt versions is not
74used by Qt4 anymore (except two rare cases that do not affect the OS/2 platform
75anyway and are probably leftovers after the migration of the qmake feature
76specifications to Qt4). Therefore, there is no need to set this variable
77explicitly. See also a note below about hard-coded paths to the source tree.
78
79There is also no need to set the QMAKESPEC variable explicitly. If it is absent,
80qmake will use the specification stored in the <Qt4_Home>/mkspecs/default
81directory, which on OS/2 always refers to the "os2-g++" specification, the only
82one supported at the present time.
83
84
85
86COMPILING QT
87
88You should skip this section if you downloaded and installed a binary
89distribution of the Qt library for developers (qt-dev-X_Y_Z.wpi) and proceed
90directly to section USING OFFICIAL BINARY QT PACKAGES below.
91
92When the environment is set up, go to the directory where you unpacked the
93Qt4 source tree and type:
94
95 configure.cmd
96
97This will set up the library (by creating necessary configuration and include
98files and a bunch of Makefiles for variuos components) and build the qmake
99utility.
100
101The next step is to type:
102
103 make
104
105This will compile and link the library. Note that by default both the release
106and the debug version of the library are built (please be patient, it may take
107quite some time depending on your hardware). The release and debug libraries can
108co-exist in the same source tree and may be used in parallel: all the debug DLLs
109get a 'd' letter in their name preceeding the Qt major version number and use
110separate directories for object files.
111
112To save time, you may also build the release and the debug versions of the
113library separately by typing 'make release' or 'make debug' accordingly
114instead of just 'make'.
115
116Once the library is successfully built, you may try to compile the demos
117and examples by visiting the individual example subdirectories in the source
118tree and typing 'qmake' followed by one of 'make', 'make release' or
119'make debug' in that subdirectory.
120
121NOTE:
122
123 This version of Qt for OS/2 includes the Extended system tray plugin for
124 XCenter/eCenter which is necessary to enable Qt support for the special
125 notification area on the XCenter/eCenter panel (called the "system tray")
126 which is used by many long-running applications to display their status.
127 In order to activate this support, you need to install this plugin to your
128 XCenter or eCenter. The plugin is built during the normal Qt build process
129 and can be found in the file \plugins\xcenter\xsystray.dll in the Qt source
130 tree. In order to install the plugin, do the following:
131
132 a. Copy xsystray.dll to <XWorkplace installation folder>\plugins\xcenter\
133 (on eComStation, this will be C:\ecs\system\ewps\plugins\xcenter\ where
134 C: is your boot drive).
135
136 b. Restart WPS.
137
138 c. Add the "Extended system tray" widget to the XCenter/eCenter panel using
139 the XCenter context menu ('Create new widget').
140
141 Note that if you upgrade from the previous version of the plugin then
142 please unlock xsystray.dll in the target folder using the UNLOCK.EXE
143 utility (which you can find in the LxLite package, for example) before
144 performing step a., otherwise the copy operation will fail.
145
146IMPORTANT NOTE:
147
148 Please take into account that the Qt library you build on your own as
149 described above is NOT intended for wide distribution with Qt applications
150 you port or create. Such private Qt builds help you develop Qt applications
151 (because you can easily debug your program and parts of the Qt framework at
152 the source level) but being widely distributed they will create a so-called
153 DLL hell when a program running on a user computer crashes because it picks
154 up a wrong build of the Qt library. This will happen because even a single
155 change to Qt configuration options may make your build binary incompatible
156 with another build. And even if you convince the user to isolate different
157 DLLs (using BEGINLIBPATH and alike) it will create another major problem:
158 two different Qt applications will load two different Qt builds into memory
159 which will double resource usage; having three different builds will
160 tripple it and so on -- what a vaste of system resources!
161
162 In order to nicely solve this problem, netlabs.org provides the official
163 binary builds of the Qt library distributed as WPI packages which are
164 described in the next section.
165
166
167
168USING OFFICIAL BINARY QT PACKAGES
169
170For your convenience, netlabs.org provides the following binary distributions
171of the Qt library (where X_Y_Z is the Qt version number):
172
173 qt-lib-X_Y_Z.wpi - Runtime DLLs and binaries ("lib" package)
174 qt-dev-X_Y_Z.wpi - Development libraries, tools and headers ("dev" package)
175
176These packages are called the official binary packages of the Qt library for
177OS/2. An official binary distribution is the most complete Qt build available
178that enables all Qt library features and includes all standard Qt plugins that
179were implemented for OS/2.
180
181The "lib" package contains the release versions of DLLs (and may contain a few
182helper binaries) necessary to run applications created using the Qt framework.
183This package is usually installed by end users together with the Qt applications
184they want to use.
185
186The "dev" package contains pre-built release versions of import libraries and
187a complete set of C++ include headers of the Qt framework. This package is used
188by developers and porters of Qt applications to build release versions of the
189applications for OS/2 that are binary compatibie with the "lib" package
190described above.
191
192Using the "dev" package requires the same environment as the one necessary for
193building Qt and described in section SETTING UP THE ENVIRONMET above. The
194process of compiling Qt applications using the "dev" package is basically the
195same as with the hand made-build of Qt. Note, however, that if you are
196developing or porting a Qt application, it is still recommended that you build
197the debug version of the Qt library yourself and use it in your daily work since
198it will give you much more feedback than the stripped down release version
199contained in the "dev" package. The "dev" package, as said above, is intended
200for making the final release build of the application for subsequent
201distribution together with the official "lib" package.
202
203Besides the binary "lib" and the "dev" packages, the following official
204non-binary packages exist that you may also find useful:
205
206 qt-examples-src-X_Y_Z.wpi - Demo and example sources ("examples")
207
208In order to build the demo and example applications, go to the directory where
209you installed the respective package (e.g. D:\Coding\Qt4\demos) and type:
210
211 qmake
212 make
213
214Please note that not all demos and examples will build with the current version
215of Qt4 for OS/2 since not all features have been implemented in the OS/2 version.
216
217NOTE:
218
219 All .DLL and .EXE files of the official binary build contain a DESCRIPTION
220 string with the vendor field set to "netlabs.org" (by contrast, all custom
221 Qt builds will set the vendor field to what the USER environment variable
222 contains or to "anonymous" if USER is not set). Please note that you must
223 NOT set vendor to "netlabs.org" when creating your own builds of the Qt
224 library because it will make it really difficult to identify various
225 distributions and track possible problems with the builds.
226
227
228
229ENVIRONMENT VARIABLES
230
231The Qt library recognizes a number of OS/2-specific environment variables that
232affect its functionality at runtime. The table below lists these variables and
233their meaning:
234
235 QT_PM_NO_SOUND_SHARE If set, Qt will open the audio device in exclusive
236 only one sound may be played on the computer at a
237 time. This mode is recommended for some sound cards
238 when using the Uniaud audio driver as it is known to
239 have problems with simultaneous playback. In current
240 Qt builds, this is the default behavior if neither
241 this nor the QT_PM_SOUND_SHARE variable is set.
242
243 QT_PM_SOUND_SHARE The opposite to the above. If set, Qt will open the
244 audio device in shared mode. This variable is
245 ignored if QT_PM_NO_SOUND_SHARE is set.
246
247 QT_PM_NO_REGISTRY If set, Qt will not use the Open32 registry to store
248 application settings with QSettings. Instead, plain
249 text INI files will be used for both NativeFormat
250 and IniFormat. Due to a number of problems in the
251 Open32 registry implementation (that may easily lead
252 to registry corruption), this is the default
253 behavior if neither this nor the QT_PM_REGISTRY
254 variable is set.
255
256 QT_PM_REGISTRY The opposite to the above. If set, Qt will use the
257 Open32 registry to store application settings.
258
259
260
261CURRENT LIMITATIONS
262
263 1. configure.cmd is not yet capable to generate individual Makefiles for demos
264 and examples, it only generates the main Makefile that builds the library
265 and the necessary tools. Demos and examples can be compiled by hand
266 (as described above).
267
268 2. OS/2 bitmap fonts are not yet supported. Use TTF or Type1 (PFB) fonts with
269 Qt.
270
271 3. In order to let Qt correctly detect the regional settings and choose the
272 right language for translating the user interface, the LANG environment
273 variable must be set. The format is
274
275 set LANG=ll_CC
276
277 where <ll> is the language code and <CC> is the country code (refer to
278 wikipedia.org to find correct letters for your langage and country if you
279 do not know them). Note that the optional encoding part of the LANG
280 specification is ignored by Qt for OS/2 since 4.5.1 Beta 5 because it now
281 detects the encoding automatically based on the system OS/2 settings.
282
283 Later, the correct language will be detected from the system settings and
284 specifying LANG will be not necessary at all.
285
286 4. Some functionality of the already available Qt classes may be limited or
287 unimplemented. If you find such a case and there is no ticket for it
288 in the bug tracker, feel free to add one.
289
290 5. No qt3support module. This functionality is rarely necessary in mature
291 real life applications and has low priority.
292
293 6. No native PM style, but Qt will use fonts and colors from the current
294 OS/2 theme. Hint: if your default OS/2 font is "WarpSans", install the
295 "Workplace Sans" TTF font from Alex Taylor to get more native look & feel.
296 It is recommended to install version 0.6 of the Normal face and version 0.2
297 of the Bold face which you can find here:
298
299 http://users.socis.ca/~ataylo00/creative/fonts/workplace/
300
301 7. QProcess: when starting PM applications from text-mode applications and
302 when detaching applications with startDetached(), the returned PID is a
303 PID of the intermediate cmd.exe process, not the target application.
304
305 8. No QDesigner, no QAssistant.
306
307 9. No Drag&Drop, no printer support. See the project roadmap for more
308 information on the current progress and future plans:
309
310 http://svn.netlabs.org/qt4/roadmap
311
312
313
314CREDITS
315
316Dmitry A. Kuminov (development)
317Silvan Scherrer (management)
318
319netlabs.org (hosting & support)
320
321Nokia Corporation (original Qt library)
322
323We also want to THANK all individuals and organizations who made the donations
324to this project and helped to make it happen. Please visit
325
326 http://qt.netlabs.org/en/site/index.xml
327
328to get the full list of sponsors and to find information on how you can support
329the project.
330
331
332Qt is a trademark of Nokia Corporation and/or its subsidiary(-ies).
333OS/2 and OS/2 Warp are trademarks of the IBM Corporation and/or its subsidiary(-ies).
334eComStation is a trademark of Serenity Systems International and/or its subsidiary(-ies).
335Etc.
Note: See TracBrowser for help on using the repository browser.