| 1 | This is Qt version 4.6.2 for OS/2 and eCS.
 | 
|---|
| 2 | 
 | 
|---|
| 3 | This document contains a brief information on the OS/2 version of the Qt
 | 
|---|
| 4 | library. Please read it carefully before starting your work. You may also
 | 
|---|
| 5 | visit the project page at
 | 
|---|
| 6 | 
 | 
|---|
| 7 |   http://svn.netlabs.org/qt4/wiki
 | 
|---|
| 8 | 
 | 
|---|
| 9 | to get more information and the latest news and also to report bugs.
 | 
|---|
| 10 | 
 | 
|---|
| 11 | To get a brief list of OS/2-specific changes from release to release
 | 
|---|
| 12 | please see the CHANGES.OS2 file included in this distribution.
 | 
|---|
| 13 | 
 | 
|---|
| 14 | Please note that this version is binary incompatible with previous versions of
 | 
|---|
| 15 | Qt 4 for OS/2! This is not a behavior of the original Qt library (where versions
 | 
|---|
| 16 | with the same major number are usually binary compatible), but it is due to the
 | 
|---|
| 17 | fact that we continue to add missing features to the OS/2 version ot Qt and this
 | 
|---|
| 18 | cannot be done witout breaking the binary compatibility. On practice, this means
 | 
|---|
| 19 | that you need to recompile your applications with the new version of the Qt
 | 
|---|
| 20 | library in order to make them work with it.
 | 
|---|
| 21 | 
 | 
|---|
| 22 | 
 | 
|---|
| 23 | 
 | 
|---|
| 24 | REQUIREMENTS
 | 
|---|
| 25 | 
 | 
|---|
| 26 | In order to compile the Qt library and Qt-based applications, you will need
 | 
|---|
| 27 | the following tools:
 | 
|---|
| 28 | 
 | 
|---|
| 29 |   - One of the OS/2 Warp 4, OS/2 Warp 4.5 or eComStation operating systems.
 | 
|---|
| 30 | 
 | 
|---|
| 31 |   - GCC compiler version 4.4.2 for OS/2, patched OpenWatcom linker and
 | 
|---|
| 32 |     GNU Make 3.81beta1 or above. The GCC compiler must be set up to use the
 | 
|---|
| 33 |     OpenWatcom linker for linking.
 | 
|---|
| 34 | 
 | 
|---|
| 35 |     If you do not have a working GCC environment with the above requirements, it
 | 
|---|
| 36 |     is recommended to download a ready-to-use GCC 4.2.2 distribution from here:
 | 
|---|
| 37 | 
 | 
|---|
| 38 |       ftp://ftp.netlabs.org/pub/qt4/gcc-4_4_2-complete-20091205.zip
 | 
|---|
| 39 | 
 | 
|---|
| 40 |     This distribution includes all tools necessary to compile and build the Qt
 | 
|---|
| 41 |     library from the source code. Just follow the installation instructions
 | 
|---|
| 42 |     contained in the README file inside this ZIP archive to set up the GCC
 | 
|---|
| 43 |     environment.
 | 
|---|
| 44 | 
 | 
|---|
| 45 |     Please note that starting from Qt 4.6.2, support for GCC 3.3.5 and earlier
 | 
|---|
| 46 |     versions of the compiler has been dropped and the Qt library will most
 | 
|---|
| 47 |     likely not build if you use one of these compilers. Later versions prior to
 | 
|---|
| 48 |     GCC 4.4.2 may work but they are not tested and not supported.
 | 
|---|
| 49 | 
 | 
|---|
| 50 | There is also a set of optional tools which are necessary to enable the selected
 | 
|---|
| 51 | features of the Qt library. If these tools are missing, the Qt configuration
 | 
|---|
| 52 | script (discussed in section "COMPILING QT" below) will automatically disable
 | 
|---|
| 53 | the corresponding feature:
 | 
|---|
| 54 | 
 | 
|---|
| 55 |   - LxLite 1.3.3 or above (not tested) to enable the compression of Qt DLLs and
 | 
|---|
| 56 |     application executables (which saves hard disk space and application startup
 | 
|---|
| 57 |     time). If you use a recent version of eComStation (e.g. 2.0 rc6) you will
 | 
|---|
| 58 |     already have LxLite installed. Otherwise, you may take it from here:
 | 
|---|
| 59 | 
 | 
|---|
| 60 |       http://www.os2site.com/sw/util/archiver/lxlt133.zip
 | 
|---|
| 61 | 
 | 
|---|
| 62 |   - CUPS 1.3.11 or later to support printing in Qt. The CUPS libraries are
 | 
|---|
| 63 |     available at:
 | 
|---|
| 64 | 
 | 
|---|
| 65 |       http://download.smedley.info/cups-1.3.11-os2-20090807.zip
 | 
|---|
| 66 | 
 | 
|---|
| 67 |     Linking against eCUPS also requires pthread.lib:
 | 
|---|
| 68 | 
 | 
|---|
| 69 |       http://web.os2power.com/download/lib/pthread-20100217-os2.zip
 | 
|---|
| 70 | 
 | 
|---|
| 71 |   - OpenSSL 0.9.8o or later to support OpenSSL in Qt. The OpenSSL libraries are
 | 
|---|
| 72 |     available at:
 | 
|---|
| 73 | 
 | 
|---|
| 74 |       http://bauxite.sakura.ne.jp/tmp/os2/openssl-1.0.0a-os2knix-20100706-runtime.zip
 | 
|---|
| 75 |       http://bauxite.sakura.ne.jp/tmp/os2/openssl-1.0.0a-os2knix-20100706-dev.zip
 | 
|---|
| 76 | 
 | 
|---|
| 77 |   - MySQL 5.1 or later for the MySQL Qt plugin. The MySQL libraries are
 | 
|---|
| 78 |     available at:
 | 
|---|
| 79 | 
 | 
|---|
| 80 |       http://download.smedley.info/mysql-5.1.51-os2-20101001.zip
 | 
|---|
| 81 | 
 | 
|---|
| 82 |     Note that you will also need the above OpenSSL libraries and pthread.lib to
 | 
|---|
| 83 |     be able to use this MySQL build.
 | 
|---|
| 84 | 
 | 
|---|
| 85 |   - PostgersSQL 9.0.1 or later to support the PostgresSQL Qt plugin. The
 | 
|---|
| 86 |     PostgresSQL libraries are available at:
 | 
|---|
| 87 | 
 | 
|---|
| 88 |       http://download.smedley.info/postgresql-9.0.1-os2-20101108.zip
 | 
|---|
| 89 | 
 | 
|---|
| 90 |     Note that you will also need libc064x.dll for this PostgresSQL build:
 | 
|---|
| 91 | 
 | 
|---|
| 92 |       http://download.smedley.info/libc064x.zip
 | 
|---|
| 93 | 
 | 
|---|
| 94 | 
 | 
|---|
| 95 | 
 | 
|---|
| 96 | SETTING UP THE ENVIRONMENT
 | 
|---|
| 97 | 
 | 
|---|
| 98 | First of all, make sure that your GCC environment is set up and meets the
 | 
|---|
| 99 | specified requirements. To perform a quick check, you may run the following
 | 
|---|
| 100 | command:
 | 
|---|
| 101 | 
 | 
|---|
| 102 |   gcc --version && make --version && wl /version
 | 
|---|
| 103 | 
 | 
|---|
| 104 | If the setup is done properly, it will print the versions of the key tools
 | 
|---|
| 105 | to the console.
 | 
|---|
| 106 | 
 | 
|---|
| 107 | The next step is to set up the Qt environment. If you installed the Qt
 | 
|---|
| 108 | development libraries from the WPI archive (refer to section "USING OFFICIAL
 | 
|---|
| 109 | BINARY QT ARCHIVES" below for more details about existing WPI archives), you
 | 
|---|
| 110 | will only need to run the supplied "QtEnv.cmd" script which will do all the
 | 
|---|
| 111 | setup job for you. The script is located in the directory where you installed
 | 
|---|
| 112 | the developmnent libraries (or in the WPS folder created by the WPI installer).
 | 
|---|
| 113 | Execute this script in a command line session to make it ready for building
 | 
|---|
| 114 | Qt 4 applications (for example, using the "qmake" command follwed by "make"
 | 
|---|
| 115 | for applications based on qmake project files which most of them are). If you
 | 
|---|
| 116 | go that way, you may skip the rest of this section and proceed directly to
 | 
|---|
| 117 | section "USING OFFICIAL BINARY QT ARCHIVES" below.
 | 
|---|
| 118 | 
 | 
|---|
| 119 | If you use the full source code ZIP distribution of the Qt library or work
 | 
|---|
| 120 | directly with the Qt SVN tree, you will need to set up the environment yourself
 | 
|---|
| 121 | by performing the following steps:
 | 
|---|
| 122 | 
 | 
|---|
| 123 |   - Add the "bin" subdirectory of the directory where you unpacked the Qt4
 | 
|---|
| 124 |     source tree to PATH and BEGINLIBPATH, like this:
 | 
|---|
| 125 | 
 | 
|---|
| 126 |       set PATH=D:\Coding\Qt4\bin;%PATH%
 | 
|---|
| 127 |       set BEGINLIBPATH=D:\Coding\Qt4\bin;%BEGINLIBPATH%
 | 
|---|
| 128 | 
 | 
|---|
| 129 |   - Add the system DLLs to the GCC library path with the following command:
 | 
|---|
| 130 | 
 | 
|---|
| 131 |       set LIBRARY_PATH=C:\OS2\DLL;C:\MPTN\DLL;%LIBRARY_PATH%
 | 
|---|
| 132 | 
 | 
|---|
| 133 |     where C: is your boot drive.
 | 
|---|
| 134 | 
 | 
|---|
| 135 |   - Make sure CMD.EXE is your command line processor (the generated makefiles
 | 
|---|
| 136 |     will rely on its 'copy', 'if' and other commands). If you have a Unix shell
 | 
|---|
| 137 |     (SH.EXE) in your environment, you may need to force GNU make to use CMD.EXE
 | 
|---|
| 138 |     by executing the followingn command:
 | 
|---|
| 139 | 
 | 
|---|
| 140 |        set MAKESHELL=C:\OS2\CMD.EXE
 | 
|---|
| 141 | 
 | 
|---|
| 142 |     where C: is your boot drive.
 | 
|---|
| 143 | 
 | 
|---|
| 144 | Note that the QTDIR environment variable used in previous Qt versions is not
 | 
|---|
| 145 | used in Qt4 anymore. Therefore, there is no need to set this variable
 | 
|---|
| 146 | explicitly.
 | 
|---|
| 147 | 
 | 
|---|
| 148 | There is also no need to set the QMAKESPEC variable explicitly. If it is absent,
 | 
|---|
| 149 | qmake will use the specification stored in the <Qt4_Home>/mkspecs/default
 | 
|---|
| 150 | directory, which on OS/2 always refers to the "os2-g++" specification, the only
 | 
|---|
| 151 | one supported at the present time.
 | 
|---|
| 152 | 
 | 
|---|
| 153 | NOTE:
 | 
|---|
| 154 | 
 | 
|---|
| 155 |     It is especially important to make sure that there are no traces of any
 | 
|---|
| 156 |     other Watcom or OpenWatcom installation in the environment where you build
 | 
|---|
| 157 |     Qt as it will interfere with the patched OpenWatcom linker we use. This
 | 
|---|
| 158 |     basically means removing all environment variables containing "WATCOM" in
 | 
|---|
| 159 |     their names and also removing references to all those Watcom installations
 | 
|---|
| 160 |     from PATH.
 | 
|---|
| 161 | 
 | 
|---|
| 162 | 
 | 
|---|
| 163 | 
 | 
|---|
| 164 | SETTING UP OPTIONAL TOOLS
 | 
|---|
| 165 | 
 | 
|---|
| 166 | The following list describes the steps necessary to set up the optional tools
 | 
|---|
| 167 | that the Qt library depends on:
 | 
|---|
| 168 | 
 | 
|---|
| 169 |   - Unzip the CUPS libraries to some directory and set the following environment
 | 
|---|
| 170 |     variables to tell the Qt configure script its location:
 | 
|---|
| 171 | 
 | 
|---|
| 172 |       set CUPS_INCLUDEPATH=<path_to_CUPS>\include
 | 
|---|
| 173 |       set CUPS_LIBS=-L<path_to_CUPS>\lib -llibcups.a -L<path_to_pthread> -lpthread.lib
 | 
|---|
| 174 | 
 | 
|---|
| 175 |   - Unzip the OpenSSL libraries to some directory and set the following
 | 
|---|
| 176 |     environment variables to tell the Qt configure script its location:
 | 
|---|
| 177 | 
 | 
|---|
| 178 |       set OPENSSL_INCLUDEPATH=<path_to_OpenSSL>\include
 | 
|---|
| 179 |       set OPENSSL_LIBS=
 | 
|---|
| 180 | 
 | 
|---|
| 181 |     Note that you will also need to place OpenSSL DLLs to BEGINLIBPATH (if they
 | 
|---|
| 182 |     are not already in your LIBPATH) so that Qt applications can find them at
 | 
|---|
| 183 |     runtime:
 | 
|---|
| 184 | 
 | 
|---|
| 185 |       set BEGINLIBPATH=<path_to_OpenSSL>\dll;%BEGINLIBPATH%
 | 
|---|
| 186 | 
 | 
|---|
| 187 |   - Unzip the MySQL archive to some directory and set the following environment
 | 
|---|
| 188 |     variables to tell the Qt configure script the library location:
 | 
|---|
| 189 | 
 | 
|---|
| 190 |       set MYSQL_INCLUDEPATH=<path_to_MySQL>\include'
 | 
|---|
| 191 |       set MYSQL_LIBS=-L<path_to_MySQL>\lib -lmysqlclient_r -L<path_to_OpenSSL>\lib -llibssl -llibcrypto -L<path_to_pthread> -lpthread
 | 
|---|
| 192 | 
 | 
|---|
| 193 |   - Unzip the PostgresSQL archive to some directory and set the following
 | 
|---|
| 194 |     environment variables to tell the Qt configure script the library location:
 | 
|---|
| 195 | 
 | 
|---|
| 196 |       set PSQL_INCLUDEPATH=<path_to_PostgresSQL>\include'
 | 
|---|
| 197 |       set PSQL_LIBS=-L<path_to_PostgresSQL>\lib -llibpq -L<path_to_OpenSSL>\lib -llibssl -llibcrypto -L<path_to_pthread> -lpthread
 | 
|---|
| 198 | 
 | 
|---|
| 199 | 
 | 
|---|
| 200 | 
 | 
|---|
| 201 | COMPILING QT
 | 
|---|
| 202 | 
 | 
|---|
| 203 | You should skip this section if you installed the Qt development libraries using
 | 
|---|
| 204 | the WPI archive (that already contains compiled release versions of the
 | 
|---|
| 205 | libraries) and proceed directly to the next section.
 | 
|---|
| 206 | 
 | 
|---|
| 207 | When the environment is set up, go to the directory where you unpacked the
 | 
|---|
| 208 | Qt4 source tree and type:
 | 
|---|
| 209 | 
 | 
|---|
| 210 |   configure.cmd
 | 
|---|
| 211 | 
 | 
|---|
| 212 | This will set up the Qt library (by creating necessary configuration and include
 | 
|---|
| 213 | files and a bunch of Makefiles for variuos components) and build the qmake tool.
 | 
|---|
| 214 | 
 | 
|---|
| 215 | The next step is to type:
 | 
|---|
| 216 | 
 | 
|---|
| 217 |   make
 | 
|---|
| 218 | 
 | 
|---|
| 219 | This will compile and link the Qt library. Note that by default both the release
 | 
|---|
| 220 | and the debug version of the library are built (please be patient, it may take
 | 
|---|
| 221 | quite some time depending on your hardware). The release and debug libraries can
 | 
|---|
| 222 | co-exist in the same source tree and may be used in parallel: all the debug DLLs
 | 
|---|
| 223 | get a 'd' letter in their name preceeding the Qt major version number and use
 | 
|---|
| 224 | separate directories for object files.
 | 
|---|
| 225 | 
 | 
|---|
| 226 | To save time, you may build the release and the debug versions of the Qt library
 | 
|---|
| 227 | separately by typing 'make release' or 'make debug' accordingly instead of just
 | 
|---|
| 228 | 'make'.
 | 
|---|
| 229 | 
 | 
|---|
| 230 | Once the library is successfully built, you may try to compile the demos and
 | 
|---|
| 231 | examples by visiting the individual example subdirectories in the source tree
 | 
|---|
| 232 | and typing 'qmake' followed by one of 'make', 'make release' or 'make debug'
 | 
|---|
| 233 | in that subdirectory.
 | 
|---|
| 234 | 
 | 
|---|
| 235 | NOTE:
 | 
|---|
| 236 | 
 | 
|---|
| 237 |      This version of Qt for OS/2 includes the Extended system tray plugin for
 | 
|---|
| 238 |      XCenter/eCenter which is necessary to enable Qt support for the special
 | 
|---|
| 239 |      notification area on the XCenter/eCenter panel (called the "system tray")
 | 
|---|
| 240 |      which is used by many long-running applications to display their status.
 | 
|---|
| 241 |      In order to activate this support, you need to install this plugin to your
 | 
|---|
| 242 |      XCenter or eCenter. The plugin is built during the normal Qt build process
 | 
|---|
| 243 |      and can be found in the file \plugins\xcenter\xsystray.dll in the Qt source
 | 
|---|
| 244 |      tree. In order to install the plugin, do the following:
 | 
|---|
| 245 | 
 | 
|---|
| 246 |      a. Copy xsystray.dll to <XWorkplace installation folder>\plugins\xcenter\
 | 
|---|
| 247 |         (on eComStation, this will be C:\ecs\system\ewps\plugins\xcenter\ where
 | 
|---|
| 248 |         C: is your boot drive).
 | 
|---|
| 249 | 
 | 
|---|
| 250 |      b. Restart WPS.
 | 
|---|
| 251 | 
 | 
|---|
| 252 |      c. Add the "Extended system tray" widget to the XCenter/eCenter panel using
 | 
|---|
| 253 |         the XCenter context menu ('Create new widget').
 | 
|---|
| 254 | 
 | 
|---|
| 255 |      Note that if you upgrade from the previous version of the plugin then
 | 
|---|
| 256 |      please unlock xsystray.dll in the target folder using the UNLOCK.EXE
 | 
|---|
| 257 |      utility (which you can find in the LxLite package, for example) before
 | 
|---|
| 258 |      performing step a., otherwise the copy operation will fail.
 | 
|---|
| 259 | 
 | 
|---|
| 260 | IMPORTANT NOTE:
 | 
|---|
| 261 | 
 | 
|---|
| 262 |      Please take into account that the Qt library you build on your own as
 | 
|---|
| 263 |      described above is NOT intended for wide distribution with Qt applications
 | 
|---|
| 264 |      you port or create. Such private Qt builds help you develop Qt applications
 | 
|---|
| 265 |      (because you can easily debug your program and parts of the Qt framework at
 | 
|---|
| 266 |      the source level) but being widely distributed they will create a so-called
 | 
|---|
| 267 |      DLL hell when a program running on a user computer crashes because it picks
 | 
|---|
| 268 |      up a wrong build of the Qt library. This will happen because even a single
 | 
|---|
| 269 |      change to Qt configuration options may make your build binary incompatible
 | 
|---|
| 270 |      with another build. And even if you convince the user to isolate different
 | 
|---|
| 271 |      DLLs (using LIBPATHSTRICT and BEGINLIBPATH) it will create another major
 | 
|---|
| 272 |      problem: two different Qt applications will load two different copies of Qt
 | 
|---|
| 273 |      into memory which will create an unnecessary overhead by doubling the
 | 
|---|
| 274 |      amount of used system resources.
 | 
|---|
| 275 | 
 | 
|---|
| 276 |      In order to nicely solve this problem, netlabs.org provides the official
 | 
|---|
| 277 |      binary builds of the Qt library distributed as WPI archives which are
 | 
|---|
| 278 |      described in the next section.
 | 
|---|
| 279 | 
 | 
|---|
| 280 | 
 | 
|---|
| 281 | 
 | 
|---|
| 282 | USING OFFICIAL BINARY QT ARCHIVES
 | 
|---|
| 283 | 
 | 
|---|
| 284 | For your convenience, netlabs.org provides the following binary distributions
 | 
|---|
| 285 | of the Qt library (where X_Y_Z is the Qt version number) distributed as WPI
 | 
|---|
| 286 | archives:
 | 
|---|
| 287 | 
 | 
|---|
| 288 |   qt-lib-X_Y_Z.wpi   - Runtime DLLs and binaries ("lib" archive)
 | 
|---|
| 289 |   qt-dev-X_Y_Z.wpi   - Development libraries, tools and headers ("dev" archive)
 | 
|---|
| 290 | 
 | 
|---|
| 291 | These archives are called the official binary archives of the Qt library for
 | 
|---|
| 292 | OS/2. An official binary archive contains the most complete Qt build that
 | 
|---|
| 293 | enables all features of the Qt library and includes all standard Qt plugins
 | 
|---|
| 294 | implemented for the OS/2 platform at the time of the release.
 | 
|---|
| 295 | 
 | 
|---|
| 296 | The "lib" archive contains the release versions of DLLs (and may contain a few
 | 
|---|
| 297 | helper binaries) necessary to run applications created using the Qt framework.
 | 
|---|
| 298 | This package is usually installed by end users together with Qt applications
 | 
|---|
| 299 | they want to use.
 | 
|---|
| 300 | 
 | 
|---|
| 301 | The "dev" archive contains pre-built release versions of import libraries and
 | 
|---|
| 302 | a complete set of C++ include headers of the Qt framework. This package is used
 | 
|---|
| 303 | by developers and porters of Qt applications to build release versions of the
 | 
|---|
| 304 | applications that are binary compatibie with the Qt runtime provided by the
 | 
|---|
| 305 | official "lib" archive described above. Using the "dev" package requires the
 | 
|---|
| 306 | same environment as described in section "SETTING UP THE ENVIRONMET" above.
 | 
|---|
| 307 | 
 | 
|---|
| 308 | Please note again that the "dev" archive is intended to make a final release
 | 
|---|
| 309 | build of the Qt application which you do when you decide to ship a new version
 | 
|---|
| 310 | to the end users -- makes sure that the deployed application will share the same
 | 
|---|
| 311 | Qt runtime with other Qt applications. However, for daily work it is highly
 | 
|---|
| 312 | recommended that you build the debug version of the Qt library yourself (using
 | 
|---|
| 313 | the full source code ZIP archive or directly from SVN) as described in section
 | 
|---|
| 314 | "COMPILING QT").
 | 
|---|
| 315 | 
 | 
|---|
| 316 | Besides the "lib" and the "dev" archives, the following official archives exist
 | 
|---|
| 317 | that you may also find useful:
 | 
|---|
| 318 | 
 | 
|---|
| 319 |   qt-examples-X_Y_Z.wpi  - Demo and example sources ("examples")
 | 
|---|
| 320 | 
 | 
|---|
| 321 | The "examples" archive contains the source code and compiled binaries of the
 | 
|---|
| 322 | demo and example applications shipped with Qt. They serve as a good
 | 
|---|
| 323 | demonstration of the Qt library features and it is recommended to look at them.
 | 
|---|
| 324 | The binaries are compiled using the official "lib" archive. Please note that
 | 
|---|
| 325 | some demos and examples may miss from the arcvhice since not all features have
 | 
|---|
| 326 | been implemented in the OS/2 version of Qt yet.
 | 
|---|
| 327 | 
 | 
|---|
| 328 | NOTE:
 | 
|---|
| 329 | 
 | 
|---|
| 330 |      All .DLL and .EXE files of the official binary build contain a DESCRIPTION
 | 
|---|
| 331 |      string with the vendor field set to "netlabs.org" (by contrast, all custom
 | 
|---|
| 332 |      Qt builds will set the vendor field to what the USER environment variable
 | 
|---|
| 333 |      contains or to "anonymous" if USER is not set). Please note that you must
 | 
|---|
| 334 |      NOT set vendor to "netlabs.org" when creating your own builds of the Qt
 | 
|---|
| 335 |      library because it will make it difficult to identify various distributions
 | 
|---|
| 336 |      and track possible problems with the builds.
 | 
|---|
| 337 | 
 | 
|---|
| 338 | 
 | 
|---|
| 339 | 
 | 
|---|
| 340 | QMAKE CONFIG OPTIONS
 | 
|---|
| 341 | 
 | 
|---|
| 342 | The following CONFIG options of the qmake tool have a special meaning in OS/2:
 | 
|---|
| 343 | 
 | 
|---|
| 344 |   windows           Turns on generation of PM (WINDOWAPI) executables. By
 | 
|---|
| 345 |                     default, this option is set for release builds that link
 | 
|---|
| 346 |                     to the Qt GUI library.
 | 
|---|
| 347 | 
 | 
|---|
| 348 |   console           Turns on generation of text mode (WINDOWCOMPAT) executables.
 | 
|---|
| 349 |                     By default, this option is set when setting the "windows"
 | 
|---|
| 350 |                     option is not appropriate (see above).
 | 
|---|
| 351 | 
 | 
|---|
| 352 | In addition, qmake recognizes the following OS/2-specific CONFIG options:
 | 
|---|
| 353 | 
 | 
|---|
| 354 |   map               Turns on generation of the .map files for executables and
 | 
|---|
| 355 |                     DLLs. This option is set by default.
 | 
|---|
| 356 | 
 | 
|---|
| 357 |   exepack           Turns on compression for executables and DLLs. The option is
 | 
|---|
| 358 |                     turned on by default for release builds if configure.cmd
 | 
|---|
| 359 |                     finds a compression tool (LxLite) in PATH.
 | 
|---|
| 360 | 
 | 
|---|
| 361 |   highmem           Turns on high memory usage for dynamically allocated memory
 | 
|---|
| 362 |                     in DLLs and executables. When this option is set, a special
 | 
|---|
| 363 |                     compiler flag (-Zhigh-mem for GCC) is used to enable high
 | 
|---|
| 364 |                     memory support in the C library (LIBC). This option is set
 | 
|---|
| 365 |                     by default so that all Qt DLLs and Qt applications built
 | 
|---|
| 366 |                     with qmake are enabled for high memory. Note that high
 | 
|---|
| 367 |                     memory support must be enabled for all LIBC-based DLLs
 | 
|---|
| 368 |                     linked to the executable as well as for the executable
 | 
|---|
| 369 |                     itself: high memory usage will be disabled if one of them
 | 
|---|
| 370 |                     votes against it.
 | 
|---|
| 371 | 
 | 
|---|
| 372 |   export_all        Cause the linker to export all public symbols in a generated
 | 
|---|
| 373 |                     DLL. By default (when this option is absent), only the
 | 
|---|
| 374 |                     symbols marked with the __declspec(dllexport) compiler
 | 
|---|
| 375 |                     directive in the source files.
 | 
|---|
| 376 | 
 | 
|---|
| 377 | 
 | 
|---|
| 378 | 
 | 
|---|
| 379 | PRINTING SUPPORT
 | 
|---|
| 380 | 
 | 
|---|
| 381 | Starting with version 4.6.2, Qt for OS/2 supports printing through the CUPS
 | 
|---|
| 382 | framework (provided that this support is enabled when building Qt, see the
 | 
|---|
| 383 | respective sections in the beginning of this document). The OS/2 implementation
 | 
|---|
| 384 | of the CUPS framework is provided by the eCUPS package available at
 | 
|---|
| 385 | http://svn.netlabs.org/ecups/.
 | 
|---|
| 386 | 
 | 
|---|
| 387 | The Qt Runtime detects the presence of eCUPS in the system on the fly and talks
 | 
|---|
| 388 | to the CUPS daemon directly, bypassing the standard OS/2 printing subsystem.
 | 
|---|
| 389 | This means that in order to print from Qt applications, you don't need to create
 | 
|---|
| 390 | and configure printer objects using the standard OS/2 system printer setup
 | 
|---|
| 391 | procedure -- you only need to install eCUPS and configure your printers in
 | 
|---|
| 392 | there. Please refer to the eCUPS user manual to obtain the detailed instructions
 | 
|---|
| 393 | on how to configure CUPS printers.
 | 
|---|
| 394 | 
 | 
|---|
| 395 | 
 | 
|---|
| 396 | 
 | 
|---|
| 397 | ENVIRONMENT VARIABLES
 | 
|---|
| 398 | 
 | 
|---|
| 399 | The Qt library recognizes a number of OS/2-specific environment variables that
 | 
|---|
| 400 | affect its functionality at runtime. The table below lists these variables and
 | 
|---|
| 401 | their meaning:
 | 
|---|
| 402 | 
 | 
|---|
| 403 |   QT_PM_NO_DIVE             If set, Qt will not use DIVE (direct interface video
 | 
|---|
| 404 |                             extensions) for painting widgets even if DIVE (which
 | 
|---|
| 405 |                             provides a much faster painting speed than the
 | 
|---|
| 406 |                             regular GPI approach) is available. Currently, this
 | 
|---|
| 407 |                             is the default setting if the Panorama video driver
 | 
|---|
| 408 |                             is detected because its DIVE implementation contains
 | 
|---|
| 409 |                             a number of bugs.
 | 
|---|
| 410 | 
 | 
|---|
| 411 |   QT_PM_DIVE=<mode>         Enables using DIVE for painting widgets. <mode> is
 | 
|---|
| 412 |                             one of:
 | 
|---|
| 413 | 
 | 
|---|
| 414 |                               - FB (direct framebuffer access, which is the
 | 
|---|
| 415 |                                 fastest mode but causes the curruption of the
 | 
|---|
| 416 |                                 screen under the software mouse pointer due to
 | 
|---|
| 417 |                                 the limitation of DIVE). If this mode is not
 | 
|---|
| 418 |                                 available, BLIT will be used (see below).
 | 
|---|
| 419 | 
 | 
|---|
| 420 |                               - FBSWM (the same FB but hides the mouse pointer
 | 
|---|
| 421 |                                 before painting which introduces mouse flicker
 | 
|---|
| 422 |                                 and may be a bit slower than the raw FB).
 | 
|---|
| 423 | 
 | 
|---|
| 424 |                               - BLIT (slower than both FB and FBSWM but prevents
 | 
|---|
| 425 |                                 screen corruption under the mouse pointer and
 | 
|---|
| 426 |                                 does not produce the mouse pointer flicker
 | 
|---|
| 427 |                                 effect).
 | 
|---|
| 428 | 
 | 
|---|
| 429 |                             This variable is ignored if QT_PM_NO_DIVE is set. If
 | 
|---|
| 430 |                             neither this nor the QT_PM_NO_DIVE variable is set,
 | 
|---|
| 431 |                             the FBSWM mode is used by default (unless the
 | 
|---|
| 432 |                             current video driver is Panorama, see above).
 | 
|---|
| 433 | 
 | 
|---|
| 434 |   QT_PM_NO_SOUND_SHARE      If set, Qt will open the audio device in exclusive
 | 
|---|
| 435 |                             only one sound may be played on the computer at a
 | 
|---|
| 436 |                             time. This mode is recommended for some sound cards
 | 
|---|
| 437 |                             when using the Uniaud audio driver as it is known to
 | 
|---|
| 438 |                             have problems with simultaneous playback. In current
 | 
|---|
| 439 |                             Qt builds, this is the default behavior if neither
 | 
|---|
| 440 |                             this nor the QT_PM_SOUND_SHARE variable is set.
 | 
|---|
| 441 | 
 | 
|---|
| 442 |   QT_PM_SOUND_SHARE         The opposite to the above. If set, Qt will open the
 | 
|---|
| 443 |                             audio device in shared mode. This variable is
 | 
|---|
| 444 |                             ignored if QT_PM_NO_SOUND_SHARE is set.
 | 
|---|
| 445 | 
 | 
|---|
| 446 |   QT_PM_NO_REGISTRY         If set, Qt will not use the Open32 registry to store
 | 
|---|
| 447 |                             application settings with QSettings. Instead, plain
 | 
|---|
| 448 |                             text INI files will be used for both NativeFormat
 | 
|---|
| 449 |                             and IniFormat. Due to a number of problems in the
 | 
|---|
| 450 |                             Open32 registry implementation (that may easily lead
 | 
|---|
| 451 |                             to registry corruption), this is the default
 | 
|---|
| 452 |                             behavior if neither this nor the QT_PM_REGISTRY
 | 
|---|
| 453 |                             variable is set.
 | 
|---|
| 454 | 
 | 
|---|
| 455 |   QT_PM_REGISTRY            The opposite to the above. If set, Qt will use the
 | 
|---|
| 456 |                             Open32 registry to store application settings. This
 | 
|---|
| 457 |                             variable is ignored if QT_PM_NO_REGISTRY is set.
 | 
|---|
| 458 | 
 | 
|---|
| 459 |   QT_PM_NO_SYSTEM_LOCALE    If set, Qt will ignore the regional settings from
 | 
|---|
| 460 |                             the system locale object found in the Country
 | 
|---|
| 461 |                             Palette located in the System Setup folder and will
 | 
|---|
| 462 |                             take them from the internal Qt locale database
 | 
|---|
| 463 |                             according to the current country and language
 | 
|---|
| 464 |                             settings. Due to the fact that this internal Qt
 | 
|---|
| 465 |                             database usually has a better representation of the
 | 
|---|
| 466 |                             regional settings, this is the default behavior if
 | 
|---|
| 467 |                             neither this nor the QT_PM_SYSTEM_LOCALE variable is
 | 
|---|
| 468 |                             set.
 | 
|---|
| 469 | 
 | 
|---|
| 470 |   QT_PM_SYSTEM_LOCALE       The opposite to the above. If set, Qt will use the
 | 
|---|
| 471 |                             regional settings as found in the default locale
 | 
|---|
| 472 |                             object set the Country Palette.  This variable is
 | 
|---|
| 473 |                             ignored if QT_PM_NO_SYSTEM_LOCALE is set.
 | 
|---|
| 474 | 
 | 
|---|
| 475 |   LANG                      This variable can be used to override the default
 | 
|---|
| 476 |                             country and language used in the Qt application both
 | 
|---|
| 477 |                             for regional settings and for translations. The
 | 
|---|
| 478 |                             format of the value is "ll_CC" where <ll> is the
 | 
|---|
| 479 |                             two-letter ISO language code and <CC> is the two-
 | 
|---|
| 480 |                             letter ISO country code. Note that if this variable
 | 
|---|
| 481 |                             is not set, Qt will derive the language and country
 | 
|---|
| 482 |                             from the system country code specified in the
 | 
|---|
| 483 |                             COUNTRY statement of CONFIG.SYS.
 | 
|---|
| 484 | 
 | 
|---|
| 485 | 
 | 
|---|
| 486 | 
 | 
|---|
| 487 | COMMAND LINE OPTIONS
 | 
|---|
| 488 | 
 | 
|---|
| 489 | Any Qt executable recognizes a number of command line options that may change
 | 
|---|
| 490 | the behavior of the Qt application. Here are the most interesting ones:
 | 
|---|
| 491 | 
 | 
|---|
| 492 |   -style <name>             Changes the default Qt widget style (theme) to a
 | 
|---|
| 493 |                             style with the given name. The buiil-in styles which
 | 
|---|
| 494 |                             are always available in the official build include:
 | 
|---|
| 495 |                             "windows" (currently, the default on OS/2), "motif",
 | 
|---|
| 496 |                             "cde", "plastique" and "cleanlooks". Other styles
 | 
|---|
| 497 |                             may be also provided by the style plugins.
 | 
|---|
| 498 | 
 | 
|---|
| 499 |   -graphicssystem <name>    Changes the graphics system used to paint widgets.
 | 
|---|
| 500 |                             On OS/2, only two values are supported: "native"
 | 
|---|
| 501 |                             (the default one) and "raster". The "native" system
 | 
|---|
| 502 |                             uses DIVE (direct interface video extensions) when
 | 
|---|
| 503 |                             it is available. If DIVE is not available or if it
 | 
|---|
| 504 |                             is disabled (see the QT_PM_NO_DIVE environment
 | 
|---|
| 505 |                             variable description for details), the "raster"
 | 
|---|
| 506 |                             system will be automatically selected as a fallback.
 | 
|---|
| 507 | 
 | 
|---|
| 508 | 
 | 
|---|
| 509 | 
 | 
|---|
| 510 | CURRENT LIMITATIONS
 | 
|---|
| 511 | 
 | 
|---|
| 512 |   1. configure.cmd is does not build demos and examples by default (to save
 | 
|---|
| 513 |      time). They may be built by hand, as described above.
 | 
|---|
| 514 | 
 | 
|---|
| 515 |   2. configure.cmd does not understand any command line options yet. If you want
 | 
|---|
| 516 |      to customize your build of the Qt library (which is normally not
 | 
|---|
| 517 |      recommended and not supported), you may try to modify configure.cmd itself.
 | 
|---|
| 518 | 
 | 
|---|
| 519 |   3. OS/2 bitmap fonts are not supported. Use TTF or Type1 (PFB) fonts with Qt.
 | 
|---|
| 520 | 
 | 
|---|
| 521 |   4. No native PM style, but Qt will use fonts and colors from the current
 | 
|---|
| 522 |      OS/2 theme. Hint: if your default OS/2 font is "WarpSans", install the
 | 
|---|
| 523 |      "Workplace Sans" TTF font from Alex Taylor to get more native look & feel.
 | 
|---|
| 524 |      It is recommended to install version 0.7 of the Normal face and version 0.3
 | 
|---|
| 525 |      of the Bold face which you can find here:
 | 
|---|
| 526 | 
 | 
|---|
| 527 |        http://users.socis.ca/~ataylo00/creative/fonts/workplace/
 | 
|---|
| 528 | 
 | 
|---|
| 529 |   5. QProcess: when starting PM applications from text-mode applications, the
 | 
|---|
| 530 |      returned PID is a PID of the intermediate cmd.exe process, not the target
 | 
|---|
| 531 |      application.
 | 
|---|
| 532 | 
 | 
|---|
| 533 |   6. The following classes are not available due to their rare usage or low
 | 
|---|
| 534 |      importance on the OS/2 platform: QSharedMemory, QSystemSemaphore,
 | 
|---|
| 535 |      QInputContext. On the source level, a number of macros is defined to
 | 
|---|
| 536 |      reflect this, respectively: QT_NO_SYSTEMSEMAPHORE, QT_NO_SHAREDMEMORY,
 | 
|---|
| 537 |      QT_NO_IM. Normally, Qt applications use these macros in the form of
 | 
|---|
| 538 |      "#fndef QT_NO_SOMEFEATURE" to isolate the relevant parts of the code that
 | 
|---|
| 539 |      uses these classes so that the application still builds when the
 | 
|---|
| 540 |      corresponding feature is missing.
 | 
|---|
| 541 | 
 | 
|---|
| 542 |   7. No qt3support module. This functionality is rarely necessary in mature
 | 
|---|
| 543 |      real life Qt applications and has low priority. In the code, it is
 | 
|---|
| 544 |      reflected by the absense of the QT3_SUPPORT macro.
 | 
|---|
| 545 | 
 | 
|---|
| 546 |   8. The following features are missing (either because of the lack of the
 | 
|---|
| 547 |      required support from the system side or because of the rare usage):
 | 
|---|
| 548 | 
 | 
|---|
| 549 |      - IPV6 support in the network module (QT_NO_IPV6 is defined).
 | 
|---|
| 550 |      - OpenSSL support in the network module (QT_NO_OPENSSL is defined).
 | 
|---|
| 551 |      - phonon module (QT_NO_PHONON is defined).
 | 
|---|
| 552 |      - multimedia module (QT_NO_MULTIMEDIA is defined).
 | 
|---|
| 553 |      - OpenGL module (QT_NO_OPENGL is defined).
 | 
|---|
| 554 |      - declarative module (QT_NO_DECLARATIVE is defined).
 | 
|---|
| 555 |      - tablet support (QT_NO_TABLET is defined).
 | 
|---|
| 556 | 
 | 
|---|
| 557 |   See the project roadmap for more information on the current progress and
 | 
|---|
| 558 |   future plans:
 | 
|---|
| 559 | 
 | 
|---|
| 560 |     http://svn.netlabs.org/qt4/roadmap
 | 
|---|
| 561 | 
 | 
|---|
| 562 |   Feel free to request new features and report bugs using the project bug
 | 
|---|
| 563 |   tracker abaialble at:
 | 
|---|
| 564 | 
 | 
|---|
| 565 |     http://svn.netlabs.org/qt4/report
 | 
|---|
| 566 | 
 | 
|---|
| 567 | 
 | 
|---|
| 568 | 
 | 
|---|
| 569 | CREDITS
 | 
|---|
| 570 | 
 | 
|---|
| 571 | Dmitry A. Kuminov (development)
 | 
|---|
| 572 | Silvan Scherrer (management)
 | 
|---|
| 573 | 
 | 
|---|
| 574 | netlabs.org (hosting & support)
 | 
|---|
| 575 | 
 | 
|---|
| 576 | Nokia Corporation (original Qt library)
 | 
|---|
| 577 | 
 | 
|---|
| 578 | We also want to THANK all individuals and organizations who made the donations
 | 
|---|
| 579 | to this project and helped to make it happen. Please visit
 | 
|---|
| 580 | 
 | 
|---|
| 581 |   http://qt.netlabs.org/en/site/index.xml
 | 
|---|
| 582 | 
 | 
|---|
| 583 | to get the full list of sponsors and to find information on how you can support
 | 
|---|
| 584 | the project.
 | 
|---|
| 585 | 
 | 
|---|
| 586 | 
 | 
|---|
| 587 | Qt is a trademark of Nokia Corporation and/or its subsidiary(-ies).
 | 
|---|
| 588 | OS/2 and OS/2 Warp are trademarks of the IBM Corporation and/or its subsidiary(-ies).
 | 
|---|
| 589 | eComStation is a trademark of Serenity Systems International and/or its subsidiary(-ies).
 | 
|---|
| 590 | Etc.
 | 
|---|