| 1 | This is Qt version 4.5.1 GA 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 |
|
|---|
| 15 |
|
|---|
| 16 | REQUIREMENTS
|
|---|
| 17 |
|
|---|
| 18 | In order to compile the Qt library and Qt-based applications, you will need
|
|---|
| 19 | the following tools:
|
|---|
| 20 |
|
|---|
| 21 | - One of the OS/2 Warp 4, OS/2 Warp 4.5 or eComStation operating systems.
|
|---|
| 22 |
|
|---|
| 23 | - InnoTek GCC compiler version 3.3.5 CSD3 or 4.4.2 (recommended).
|
|---|
| 24 | You can download the GCC 4.4.2 compiler using the following link:
|
|---|
| 25 |
|
|---|
| 26 | http://download.smedley.info/gcc-4.4.2-os2-20091205.zip
|
|---|
| 27 |
|
|---|
| 28 | GCC 4.4.2 requires newer binutils available at:
|
|---|
| 29 |
|
|---|
| 30 | http://download.smedley.info/binutils-2.19.1-os2-20090427.zip
|
|---|
| 31 |
|
|---|
| 32 | Note that in order to use the above version of GCC, you will also need
|
|---|
| 33 | to install the previous 3.x version (e.g. 3.3.5 CSD3) available at:
|
|---|
| 34 |
|
|---|
| 35 | ftp://ftp.netlabs.org/pub/gcc/GCC-3.3.5-csd3.zip
|
|---|
| 36 |
|
|---|
| 37 | - Patched OpenWatcom linker which you can download from here:
|
|---|
| 38 |
|
|---|
| 39 | ftp://ftp.netlabs.org/pub/gcc/wl-hll-r1.zip
|
|---|
| 40 |
|
|---|
| 41 | Note that if you use IBM ILINK (no matter what version), you will
|
|---|
| 42 | not be able to build the debug version of the library due to
|
|---|
| 43 | bugs/limitations of ILINK.
|
|---|
| 44 |
|
|---|
| 45 | - GNU Make 3.81beta1 or above (not tested) available at:
|
|---|
| 46 |
|
|---|
| 47 | http://unix.os2site.com/pub/binary/make/make-3_81beta1-bin-static.zip
|
|---|
| 48 |
|
|---|
| 49 | - eCUPS 1.3.11 or later to support printing in Qt. The eCUPS WPI is available
|
|---|
| 50 | at:
|
|---|
| 51 |
|
|---|
| 52 | ftp://ftp.netlabs.org/incoming/eCUPS003.wpi or
|
|---|
| 53 | ftp://ftp.netlabs.org/pub/ecups/eCUPS003.wpi
|
|---|
| 54 |
|
|---|
| 55 | Linking against eCUPS also requires pthread.lib:
|
|---|
| 56 |
|
|---|
| 57 | http://web.os2power.com/download/lib/pthread-20100217-os2.zip
|
|---|
| 58 |
|
|---|
| 59 | - LxLite 1.3.3 or above (not tested) if you want Qt DLLs and application
|
|---|
| 60 | executables to be compressed (to save hard disk space and load time). If
|
|---|
| 61 | you have a recent eComStation installation (e.g. 2.0 rc6) you will already
|
|---|
| 62 | have LxLite installed. Otherwise, you may take it from here:
|
|---|
| 63 |
|
|---|
| 64 | http://www.os2site.com/sw/util/archiver/lxlt133.zip
|
|---|
| 65 |
|
|---|
| 66 |
|
|---|
| 67 |
|
|---|
| 68 | SETTING UP THE ENVIRONMENT
|
|---|
| 69 |
|
|---|
| 70 | After unpacking the GCC archive, you will have to set up the compiler
|
|---|
| 71 | environment by invoking gccenv.cmd from the "bin" subdirectory with the correct
|
|---|
| 72 | arguments (type gccenv.cmd -? for help). For the OpenWatcom linker, specify
|
|---|
| 73 | WLINK as the second argument.
|
|---|
| 74 |
|
|---|
| 75 | Please note that setting up the GCC 4.x environment requires some additional
|
|---|
| 76 | steps. Please look through the README files contained within the OS/2
|
|---|
| 77 | distribution.
|
|---|
| 78 |
|
|---|
| 79 | You will also need to perform the following steps:
|
|---|
| 80 |
|
|---|
| 81 | - Make sure the selected linker, the make utility and LxLite executable are
|
|---|
| 82 | in PATH.
|
|---|
| 83 |
|
|---|
| 84 | - Make sure CMD.EXE is your command line processor (the generated makefiles
|
|---|
| 85 | will rely on its 'copy', 'if' and other commands). If you have a Unix shell
|
|---|
| 86 | (SH.EXE) in your environment, you may need to force GNU make to use CMD.EXE
|
|---|
| 87 | by doing 'set MAKESHELL=C:\OS2\CMD.EXE' where C: is your boot drive.
|
|---|
| 88 |
|
|---|
| 89 | - Do set LIBRARY_PATH=C:\OS2\DLL;C:\MPTN\DLL where C: is your boot drive.
|
|---|
| 90 |
|
|---|
| 91 | - Make sure that there are no traces of any other Watcom or OpenWatcom
|
|---|
| 92 | installation in the environment where you build Qt as it will most likely
|
|---|
| 93 | interfere with the patched OpenWatcom linker we use. This basically means
|
|---|
| 94 | removing all *WATCOM* environment variables and removing references to those
|
|---|
| 95 | Watcom installations from PATH.
|
|---|
| 96 |
|
|---|
| 97 | - Add the "bin" subdirectory of the directory where you unpacked the Qt4
|
|---|
| 98 | source tree to PATH and BEGINLIBPATH using its full path, e.g.:
|
|---|
| 99 |
|
|---|
| 100 | set PATH=D:\Coding\Qt4\bin;%PATH%
|
|---|
| 101 | set BEGINLIBPATH=D:\Coding\Qt4\bin;%BEGINLIBPATH%
|
|---|
| 102 |
|
|---|
| 103 | - Install the eCUPS WPI archive to enable printing support. If this WPI is
|
|---|
| 104 | installed, the Qt build system will pick up all necessary libraries
|
|---|
| 105 | automatically. Otherwise, you will need to use the following environment
|
|---|
| 106 | variables to tell it where to look for CUPS:
|
|---|
| 107 |
|
|---|
| 108 | set CUPS_INCLUDEPATH=X:\Path\to\CUPS\include
|
|---|
| 109 | set CUPS_LIBS=X:\Path\to\CUPS\lib\libcups.a
|
|---|
| 110 |
|
|---|
| 111 | Note that if the eCUPS WPI is not installed and these variables are not set,
|
|---|
| 112 | printing support will be completely disabled in the resulting Qt build.
|
|---|
| 113 |
|
|---|
| 114 | You will also need to make sure that pthread.lib is placed somewhere in your
|
|---|
| 115 | system library path so that the compiler can find it.
|
|---|
| 116 |
|
|---|
| 117 | Note that the QTDIR environment variable used by previous Qt versions is not
|
|---|
| 118 | used by Qt4 anymore (except two rare cases that do not affect the OS/2 platform
|
|---|
| 119 | anyway and are probably leftovers after the migration of the qmake feature
|
|---|
| 120 | specifications to Qt4). Therefore, there is no need to set this variable
|
|---|
| 121 | explicitly. See also a note below about hard-coded paths to the source tree.
|
|---|
| 122 |
|
|---|
| 123 | There is also no need to set the QMAKESPEC variable explicitly. If it is absent,
|
|---|
| 124 | qmake will use the specification stored in the <Qt4_Home>/mkspecs/default
|
|---|
| 125 | directory, which on OS/2 always refers to the "os2-g++" specification, the only
|
|---|
| 126 | one supported at the present time.
|
|---|
| 127 |
|
|---|
| 128 |
|
|---|
| 129 |
|
|---|
| 130 | COMPILING QT
|
|---|
| 131 |
|
|---|
| 132 | You should skip this section if you downloaded and installed a binary
|
|---|
| 133 | distribution of the Qt library for developers (qt-dev-X_Y_Z.wpi) and proceed
|
|---|
| 134 | directly to section USING OFFICIAL BINARY QT PACKAGES below.
|
|---|
| 135 |
|
|---|
| 136 | When the environment is set up, go to the directory where you unpacked the
|
|---|
| 137 | Qt4 source tree and type:
|
|---|
| 138 |
|
|---|
| 139 | configure.cmd
|
|---|
| 140 |
|
|---|
| 141 | This will set up the library (by creating necessary configuration and include
|
|---|
| 142 | files and a bunch of Makefiles for variuos components) and build the qmake
|
|---|
| 143 | utility.
|
|---|
| 144 |
|
|---|
| 145 | The next step is to type:
|
|---|
| 146 |
|
|---|
| 147 | make
|
|---|
| 148 |
|
|---|
| 149 | This will compile and link the library. Note that by default both the release
|
|---|
| 150 | and the debug version of the library are built (please be patient, it may take
|
|---|
| 151 | quite some time depending on your hardware). The release and debug libraries can
|
|---|
| 152 | co-exist in the same source tree and may be used in parallel: all the debug DLLs
|
|---|
| 153 | get a 'd' letter in their name preceeding the Qt major version number and use
|
|---|
| 154 | separate directories for object files.
|
|---|
| 155 |
|
|---|
| 156 | To save time, you may also build the release and the debug versions of the
|
|---|
| 157 | library separately by typing 'make release' or 'make debug' accordingly
|
|---|
| 158 | instead of just 'make'.
|
|---|
| 159 |
|
|---|
| 160 | Once the library is successfully built, you may try to compile the demos
|
|---|
| 161 | and examples by visiting the individual example subdirectories in the source
|
|---|
| 162 | tree and typing 'qmake' followed by one of 'make', 'make release' or
|
|---|
| 163 | 'make debug' in that subdirectory.
|
|---|
| 164 |
|
|---|
| 165 | NOTE:
|
|---|
| 166 |
|
|---|
| 167 | This version of Qt for OS/2 includes the Extended system tray plugin for
|
|---|
| 168 | XCenter/eCenter which is necessary to enable Qt support for the special
|
|---|
| 169 | notification area on the XCenter/eCenter panel (called the "system tray")
|
|---|
| 170 | which is used by many long-running applications to display their status.
|
|---|
| 171 | In order to activate this support, you need to install this plugin to your
|
|---|
| 172 | XCenter or eCenter. The plugin is built during the normal Qt build process
|
|---|
| 173 | and can be found in the file \plugins\xcenter\xsystray.dll in the Qt source
|
|---|
| 174 | tree. In order to install the plugin, do the following:
|
|---|
| 175 |
|
|---|
| 176 | a. Copy xsystray.dll to <XWorkplace installation folder>\plugins\xcenter\
|
|---|
| 177 | (on eComStation, this will be C:\ecs\system\ewps\plugins\xcenter\ where
|
|---|
| 178 | C: is your boot drive).
|
|---|
| 179 |
|
|---|
| 180 | b. Restart WPS.
|
|---|
| 181 |
|
|---|
| 182 | c. Add the "Extended system tray" widget to the XCenter/eCenter panel using
|
|---|
| 183 | the XCenter context menu ('Create new widget').
|
|---|
| 184 |
|
|---|
| 185 | Note that if you upgrade from the previous version of the plugin then
|
|---|
| 186 | please unlock xsystray.dll in the target folder using the UNLOCK.EXE
|
|---|
| 187 | utility (which you can find in the LxLite package, for example) before
|
|---|
| 188 | performing step a., otherwise the copy operation will fail.
|
|---|
| 189 |
|
|---|
| 190 | IMPORTANT NOTE:
|
|---|
| 191 |
|
|---|
| 192 | Please take into account that the Qt library you build on your own as
|
|---|
| 193 | described above is NOT intended for wide distribution with Qt applications
|
|---|
| 194 | you port or create. Such private Qt builds help you develop Qt applications
|
|---|
| 195 | (because you can easily debug your program and parts of the Qt framework at
|
|---|
| 196 | the source level) but being widely distributed they will create a so-called
|
|---|
| 197 | DLL hell when a program running on a user computer crashes because it picks
|
|---|
| 198 | up a wrong build of the Qt library. This will happen because even a single
|
|---|
| 199 | change to Qt configuration options may make your build binary incompatible
|
|---|
| 200 | with another build. And even if you convince the user to isolate different
|
|---|
| 201 | DLLs (using BEGINLIBPATH and alike) it will create another major problem:
|
|---|
| 202 | two different Qt applications will load two different Qt builds into memory
|
|---|
| 203 | which will double resource usage; having three different builds will
|
|---|
| 204 | tripple it and so on -- what a vaste of system resources!
|
|---|
| 205 |
|
|---|
| 206 | In order to nicely solve this problem, netlabs.org provides the official
|
|---|
| 207 | binary builds of the Qt library distributed as WPI packages which are
|
|---|
| 208 | described in the next section.
|
|---|
| 209 |
|
|---|
| 210 |
|
|---|
| 211 |
|
|---|
| 212 | USING OFFICIAL BINARY QT PACKAGES
|
|---|
| 213 |
|
|---|
| 214 | For your convenience, netlabs.org provides the following binary distributions
|
|---|
| 215 | of the Qt library (where X_Y_Z is the Qt version number):
|
|---|
| 216 |
|
|---|
| 217 | qt-lib-X_Y_Z.wpi - Runtime DLLs and binaries ("lib" package)
|
|---|
| 218 | qt-dev-X_Y_Z.wpi - Development libraries, tools and headers ("dev" package)
|
|---|
| 219 |
|
|---|
| 220 | These packages are called the official binary packages of the Qt library for
|
|---|
| 221 | OS/2. An official binary distribution is the most complete Qt build available
|
|---|
| 222 | that enables all Qt library features and includes all standard Qt plugins that
|
|---|
| 223 | were implemented for OS/2.
|
|---|
| 224 |
|
|---|
| 225 | The "lib" package contains the release versions of DLLs (and may contain a few
|
|---|
| 226 | helper binaries) necessary to run applications created using the Qt framework.
|
|---|
| 227 | This package is usually installed by end users together with the Qt applications
|
|---|
| 228 | they want to use.
|
|---|
| 229 |
|
|---|
| 230 | The "dev" package contains pre-built release versions of import libraries and
|
|---|
|
|---|