Port IrcServerHandler::defaultHandler() to the event backend
[quassel.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index 5d76c0c..b7da160 100644 (file)
--- a/INSTALL
+++ b/INSTALL
-These are preliminary instructions, until we get the config more polished.
+Quassel IRC - Installation Notes
+================================
 
-To build Quassel IRC, cd to build/ and run qmake && make. This builds all three
-versions of Quassel. You may choose individual targets by setting qmakes BUILD
-variable:
+These should help you to install Quassel IRC from source. Please also have a
+look at the README file!
 
-qmake BUILD=<foo>
+Quassel IRC provides three binaries: quasselcore, quasselclient, and
+quassel. While quasselcore and quasselclient obviously provide the
+separated core and client functionality, the latter one (quassel) is a
+monolithic version containing both of them for convenience.
 
-where <foo> is any combination of qtclient, core, mono or all. Note that in order
-to change this later, you will have to make distclean, otherwise the BUILD setting
-seems to be ignored by qmake.
+Note that quasselcore is no longer being built by default, since it tends to
+confuse users more than it helped. It will be back as soon as we have simple mode
+implemented.
 
-After running make, you will find the binaries in build/targets.
+We now use CMake as our build system. CMake supports and encourages out-of-source 
+builds, which do not clutter the source directory. You can (and should) thus use 
+an arbitrary directory for building.
 
-make install will probably do something, but it has never been tried and may destroy
-your system or kill a kitten. It's not necessary anyway, since there are no installable
-files other than the binaries. Though this might change in later releases.
+There is no "make distclean"; "make clean" should usually be enough since CMake
+actually cleans up properly (qmake often didn't). If you really want to get rid
+of all build files, just remove the build directory.
 
-On first run of the Quassel core, it will wait for a client to connect and present a
-(preliminary) first-run wizard. This will allow you to create the database and one
-admin user for the core-side storage. Note that Quassel does not support the
-administration of user accounts yet, this includes adding more users, changing passwords
-and so on. This is high on our TODO list, of course.
+Usually, you will build Quassel as follows:
 
-Please also do read the README file.
+cd /path/to/build/dir
+cmake /path/to/quassel
+make
 
-Thanks,
-~ The Quassel IRC Team
+Additionally, you may add some options to the cmake call, prefixed by -D. These need
+to follow the source directory PATH:
+
+cmake /path/to/quassel -D<option1> -D<option2>
+
+NOTE: In order to reconfigure, you need to remove CMakeCache.txt (or empty
+      the build directory), otherwise cmake will ignore modified -D options!
+
+Quassel recognizes the following options:
+
+-DWANT_(CORE|QTCLIENT|MONO)=(ON|OFF)
+    Allow to choose which Quassel binaries to build.
+
+-DWITH_KDE=ON
+    Enable integration into KDE4
+
+-DWITH_OXYGEN=(ON|OFF|AUTO)
+    Whether to install Oxygen icons used by Quassel. By default (AUTO) we don't install them if
+    KDE integration is enabled and KDE > 4.3.0 is present, as all needed icons are part of the
+    system Oxygen iconset in this case. Using ON or OFF you can override automatic detection.
+
+-DWITH_OPENSSL=OFF
+    Disable OpenSSL support
+
+-DWITH_DBUS=OFF
+    Disable D-Bus support. This will disable support for notification-daemon.
+
+-DWITH_WEBKIT=OFF
+    Disable WebKit support. You will not have webpage previews on hovering URLs.
+
+-DWITH_PHONON=OFF
+    Disable support for audio notifications via Phonon.
+
+-DWITH_LIBINDICATE=OFF
+    Disable support for Ayatana notifications (libindicate-qt)
+
+-DWITH_CRYPT=OFF
+    Disable crypt support
+
+-DLINGUAS="<languages">
+    Allow to choose which languages should be compiled into the binary.
+    <languages> is a space- or comma-separated list of language codes.
+    Example: -DLINGUAS="de en_US"
+
+-DEMBED_DATA=ON
+    Embed all external data files (e.g. icons) into the binary. This will give you a
+    standalone binary that does not require installation. Will be ignored if KDE support
+    is enabled.
+
+-DQT=/path/to/qt
+    Use a non-system Qt installation. This is for example useful if you have a static
+    Qt installed in some local dir.
+
+-DSTATIC=ON
+    Enable static building of Quassel. On Linux, you should link the static versions of some libs
+    (in particular libstdc++.a) into /path/to/build/dir/staticlibs in oder to create
+    a portable binary! Be aware of the fact that some things we do in STATIC mode might not be portable
+    or require a particular setup; it's mainly meant for the devel team. See also doc/.
+
+BUILDING ON WINDOWS:
+--------------------
+We have tested building on Windows with a statically built Qt (with its /bin directory in %PATH%)
+and MSVC 2005/2008. Make sure that you use a "shell" that has all needed env variables setup,
+such as the "Visual Studio Command Prompt". You will also need the /bin of the Microsoft SDK in
+your %PATH% at least for VS 2008, otherwise rc.exe is not found.
+Currently, only building in the shell using nmake seems to work; CMake can also create MSVC project
+files, but they seem to be problematic. However, YMMV. Software development on Windows is a real
+PITA.
+
+After you have everything setup:
+
+cd C:\path\to\quassel-build
+cmake -G"NMake Makefiles" C:\path\to\quassel\source -DSTATIC=1
+nmake