This is a copy of Qt version 4.5.1.  It may include
modifications which are necessary for KDE; these are listed in the
patches directory.

1. Qt-copy patches
==================

You may also consider running the apply_patches script before configuring qt-copy,
which will apply all not yet applied patches from the patches/ directory that
are considered safe (they mostly include optimizations and features that don't
add new API). Note that most of those patches haven't been accepted
by Qt Software yet. and therefore they'll make your qt-copy differ from official
Qt version.

2. Configuring Qt
=================

The recommended compile line is:

--default-config-begin--
./configure -qt-gif -debug -fast -no-exceptions -no-separate-debug-info \
   -system-libpng -system-libjpeg -system-zlib \
   -dbus -webkit -no-phonon -plugin-sql-mysql \
   -nomake examples -nomake demos -prefix <installdir>
--default-config-end--

It contains "-debug", which greatly improves the use for backtraces (but
also needs a lot more disk space and makes things slower). To build in
release mode, replace it with "-release".

It also contains "-no-separate-debug-info", which disables separate .debug
files. Instead, the debug information will be built into the libraries.
This option is needed when you install Qt.
If you don't install Qt, it can be useful to disable this option,
thus having separate debug symbol files. With separate debug files, you can
just move those debug files to another directory to remove Qt debug symbols.
Moving the files back will enable Qt debug symbols again.
This is useful if you rarely need to step into Qt functions during debugging,
because GDB loads much faster and uses less memory without Qt debug symbols.
In the rare case you need to step into Qt code, you can temporarily enable
debug symbols again by moving the debug files back. You can even load the Qt
debug symbols from within GDB on demand, using the "symbol-file" command.

It also contains the "-no-exceptions" argument, which disables C++
exception support. Disabling exception support may improve memory
consumption if GCC is being used. However, that also disables the
QtXmlPatterns module since that requires exception support. If you
plan on using that module, remove the option.

If you are planning to compile Qt using an Icecream cluster you have to
pass the option -no-pch (no precompiled headers) to configure to make
distributed compilation work.

3. Compiling Qt
===============

To compile Qt on a Unix platform, run:

   export MAKEFLAGS=-j2
   make
   make install

If your computer has more than one core or processor, you may consider
increasing the "2" above. If you've got a compile farm available, you
should adjust the -j argument to match the number of slots in that
farm.

4. Modifying & rebuilding Qt
============================

If you make modifications to the Qt source code, you don't need to
build everything again. Simply go to the directory containing the
Makefile closest to the files you changed and run "make" again.

For example, if you modified src/corelib/io/qiodevice.cpp, do:

   cd src/corelib
   make

Do not commit your modifications to qt-copy as such. If you have a fix
that benefit others, see the "Creating Qt-copy patches" section below.

5. Building Qt examples and demos
=================================

The "-nomake examples -nomake demos" arguments to the configure script
mean that those two sections will not be configured for
building. Which is unneeded for usage of the library.  If you want to
compile the examples or demos later; just enter either directory and
type:

   qmake
   make

6. Building Qt documentation (only applies to Snapshot versions of Qt)
============================

To build and install the documentation, run:

   make docs
   ./config.status
   make install

It is necessary to do this once only, even if you rebuild Qt later.

7. Using Qt uninstalled
=======================

To use without having to install it, configure it as follows:

   ./configure <other configure options>  -prefix $PWD
   make sub-src
   make sub-tools

Attention: DO NOT run

   make install

If you do, Qt will overwrite your include/ directory with its
installation.

8. Creating Qt-copy patches
===========================

If you have fixed a bug in Qt or modified it in any way that may
benefit others, please share your change in the form of a patch. Do
not commit your changes directly to the qt-copy module because they
may be lost in a future update if they have not been added to the
official Qt release.

The exception to the above rule is that if the fix has been accepted
by Qt Software (and so will appear in the next release of Qt), then
it can be applied directly to qt-copy.  In this case, the patch
should still be placed in patches/ as usual, but it should have a
header line
    Applied: yes

Before creating a patch, it is recommended to contact Qt Software
support via qt-bugs@trolltech.com and explain the situation. There may
be a solution for the problem already or a new direction that should
be accounted for.

To create a patch, do the following:
  a) make sure your Qt sources are clean of other changes. Run:
     svn revert -R .
  b) make your changes to the Qt source code and verify that it
  compiles, links and works.
  c) open the patches/README file and get the next patch number
  (you must read and understand the README file; if you don't, ask for
  help from other KDE developers)
  d) create the patch with:
     svn diff > patches/NNNN-short-description-of-your-patch.diff
  where NNNN is the next available number.
  e) open the file you've just created and add the header to it. The
  header should be the template in patches/README followed by a longer
  description of your patch.

Don't forget to submit your patch to qt-bugs@trolltech.com along with
the long description of the issue found, if you haven't already.
Qt Software does not monitor the patches/ directory, so qt-copy
patches do not get automatically applied to Qt official releases.

When you receive the issue number and task tracker numbers, update the
patch file.

9. Known issues with current Qt code
====================================

In case you have strange issues with non-resizing windows and similar, use
   export QT_USE_NATIVE_WINDOWS=1
before starting KDE.

10. Troubleshooting: Re-configuring and re-compiling
===================================================

For those updating the source in a directory where Qt has already
been compiled, you may need to run the following commands from the
top directory of your Qt sources:

	find . -name '*.moc' | xargs rm

Sometimes ./configure will refuse to run.  You may need to:
	rm .qmake.cache

If you think you may have run "make install" on an install-less Qt
(srcdir == $QTDIR), run:

	svn revert -R include
